LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 912|回复: 1

实战:用shorewall组建局域网

[复制链接]
发表于 2007-7-21 21:48:47 | 显示全部楼层 |阅读模式
局域网或者说网关服务器的概念我到现在没全明白,但是如果是只有一个外网端口,其他电脑要共享上网的话,按照以下的操作,应该是没啥问题的,这几年我就是这样做的。
错误之处,敬请指出更正。
debian:etch
网络结构:服务器有两张网卡,一个接外网(固定ip地址),一个接交换机,所有其他机器只有一张网卡,都接在交换机上(24口100M华为的交换机)。
首先是服务器的系统安装,很简单,随便你用啥光盘(网络安装盘还是第一张全光盘)启动安装,既然是服务器,没啥要求,在选择安装包时,只选了standard system,其他一概不装(你要安装桌面也无妨,记得别装gdm,否则随便哪个登录gnome后退出关机就把服务器关了,还是用startx好)。
注意一点,安装时配置网卡时请先配置外网网卡,否则不能上网更新、安装软件包,内网网卡等系统装好后再配置也不迟。
内网采用192.168.a.b网段,a数字不建议是0或者1,1-254数字这么多,没必要去扎堆,以免ip地址冲突之类莫名其妙不能上网的事发生。
内网采用也是固定ip地址,当然能做个dhcp server、dns server更好,我没去折腾了。
一切准备好后,
然后就是安装shorewall
一、apt-get install shorewall
二、安装后shorewall不会启动,因为要配置好后才会启动,现在实战是配置shorewall,注意我的外网是eth2,内网是eth1,你根据自己的情况修改。
注意所有的配置文件前面有很长的说明,就不列出了,如果配置项多,其他的都是采用默认的

1、shorewall 的版本(注意3.0以前的版本配置文件差别有些,升级的话请仔细看文档说明)
# shorewall version
3.2.6

2、启动:
系统boot时,默认是不启动的,因此需要编译/etc/default/shorewall
startup=1(设为1即随系统启动)

3、编辑/etc/shorewall/shorewall.conf
............
IPSECFILE=zones
............
IP_FORWARDING=on
............
DISABLE_IPV6=no
............

4、禁止shorewall log信息控制台滚屏显示,这个很重要,否则你打开显示器就是一大片的信息,登录都看不清,作如下设置:

   (1) 添上 KLOGD="-c 5" 在 /etc/init.d/klogd
   (2) 添上 dmesg -n5 在 /etc/shorewall/start

5、复制/usr/share/doc/shorewall/default-config文件夹中的start、interfaces、policy、rules、zones、masq到/etc/shorewall文件夹中,根据网络状况及READ.Debian的说明一一修改。
(1)/etc/shorewall/start
###############################################################################
dmesg -n5
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE

(2)/etc/shorewall/zones
###############################################################################
#ZONE   TYPE            OPTIONS         IN                      OUT
#                                       OPTIONS                 OPTIONS
fw      firewall
net     ipv4
loc     ipv4
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE

(3)/etc/shorewall/interfaces
###############################################################################
#ZONE   INTERFACE       BROADCAST       OPTIONS
net     eth2            detect
loc      eth1             detect
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

(4)/etc/shorewall/policy
###############################################################################
#SOURCE         DEST            POLICY          LOG             LIMIT:BURST
#                                               LEVEL
$FW             all             ACCEPT
loc             all             ACCEPT
# THE FOLLOWING POLICY MUST BE LAST
#        
all             all             REJECT         info
#LAST LINE -- DO NOT REMOVE

(5)/etc/shorewall/rules
################################################################################
#ACTION SOURCE          DEST            PROTO   DEST    SOURCE          ORIGINAL        
#                                               PORT(S) PORT(S)         DEST
#SECTION ESTABLISHED
#SECTION RELATED
ACCEPT  net             $FW             tcp     http
ACCEPT  net             $FW             tcp     ssh
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

(6)/etc/shorewall/masq
###############################################################################
#INTERFACE              SUBNET          ADDRESS         PROTO   PORT(S) IPSEC
eth2                    eth1
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE

三、以上设置好了后,就执行
#/etc/init.d/shorewall start
如果出错,请仔细看出错信息,然后看说明文档,修改你的配置
四、如果没问题,请重启服务器
五、其他机器的设置就不多说了,只要把网关gateway设置为服务器的内网ip地址即可,切记服务器的内网网卡配置就不要设置网关了。
发表于 2007-7-21 22:53:22 | 显示全部楼层
看来很有用,早就想这样实践一下了。有时间照着做一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表