Why did this:因为我的机器配置不高,firestarter也太不稳定,在我的breezy上老崩溃,新手指南上面的shorewall不是针对单机用户,语法规则shorewall3.0.4有所改变。

本机情况:电信ADSL,ISP动态分配ip。单机单网卡连接adsl modem(PPPoE)上网,全新安装shorewall。

一、linux防火墙基本知识:

除了软件和硬件防火墙的分类外,假如以封包抵挡机制来分类,大概能够分为proxy和IP Filter。
基本上linux的IP Filter有两个最基本的防火墙机制,分别是:Ip Filter和TCP_Wrapper。
这里我们谈IP Filter,因为shorewall能够通过IPTABLES简单配置IP Filter的规则。
或说:假如您不麻烦iptables的语法规则,或能够自己写一些shell程式批处理iptables指令,完万能够不安装shorewall或其他防火墙。因为linux下的防火墙基本都是通过配置iptables的规则完成的。

1.首先确定(uname指令确定核心,lsmod确定当前载入模块,假如是ipchains,请执行rmmod ipchains。
然后modprobe ip_tables即可将iptables装入现在使用的模块)您的内核是采用哪种抵挡机制,是不是
我们需要的iptables(Ubuntu5.10的是iptables)

Linux Kernel Version 2.0:使用 ipfwadm
Linux Kernel Version 2.2:使用的是 ipchains
Linux Kernel Version 2.4:主要是使用 iptables 但为了兼容 ipchains ,因此在 Version 2.4 版本中,同时将 ipchains 编译成模组供使用,好让使用者仍然能够使用來自 2.2 版的 ipchains 的防火墙规则。
---------------
然后执行下面代码来观看现在的防火墙规则(连网情况下,root用户)
$ sudo iptables -L -n (L的含义是列出现在的 table 的规则,n含义是不进行IP和HOSTNAME的相互转换,这样能够加快显示速度)
$ sudo iptables -t nat -L -n (-t nat的含义是显示nat的filter。iptables会有nat tables和filter tables,不加参数为filter。有兴趣的兄弟能够参看其他关于iptables的介绍,介于太长,此处不做介绍;)
---------------
接下来我们就要清除掉现在任何的防火墙规则(连网情况下)

root@*** root]# /sbin/iptables [-t tables] [-FXZ]
其中参数含义为:
-F :清除所以已建立的规则;
-X :杀掉任何使用者建立的 chain ( tables );
-Z :把任何的 chain 的计数和流量统计归为0;
範例:
[root@*** root]# /sbin/iptables -F
[root@*** root]# /sbin/iptables -X
[root@*** root]# /sbin/iptables -Z
[root@*** root]# /sbin/iptables -t nat -F
---------------

二、具体安装Shorewall3.0.4

下载shorewall最新的稳定版本3.0.4(tarball安装,即为源代码make安装。确定您的机器跟随‘新手指南’装了基本编译工具),由于新立得里面还是2.多的版本,在官方网站看的是3的介绍,所以安装3.0.4。而且安装很简单,不会出现其他依赖性问题.


------------
1.下载地址:http://www1.shorewall.net/pub/shorewall/3.0/shorewall-3.0.4/

2.安装前需要:iptables(前面提到的) iproute (检查这个的指令是sudo Which ip )(基本上ubuntu5.10都具备了,所以能够不考虑)

3.尽量不要在ms-windows里面编辑shorewall的配置文档,因为ms和lin的文字排版不太相同,比如回车。

4.cd到您解压之后的目录,然后./install.sh 回车,看见没有错误信息,就OK了。但是此刻shorewall没有启动。等会儿我们来启动。默认安装之后就是每次启动就自动启动防火墙(配置文档在 /etc/shorewall/shorewall.conf。找到STARTUP_ENABLED=Yes
,yes代表开机自动启动!)

5.安装之后任何文档分别位于:/usr/shorewall 和/sbin 和 /etc/shorewall,我们需要注意的就是/etc/shorewall。这里是配置文档。(个人建议,对于一些重要的,经常无需变动的文档能够将隐藏属性chattr i 上去,具体指令信息,请找‘男人’man )

6.查看安装后的版本:sudo shorewall version 能够得到3.0.4的消息

---------------

三、配置Shorewall3.0.4

周详的官方文档位于:http://www.shorewall.net/Documentation.htm ,shorewall的文档很多,但是一般用户用到的不多,特别是我们这种单机拨号的用户。
-------------

1.首先配置/etc/shorewall/zones文档,浏览至最后,添加代码如下:
#ZONE TYPE OPTIONS
fw firewall #文档原本存在的这行,fw为防火墙本身,必须
net ipv4
loc ipv4
#LAST LINE -- DO NOT REMOVE

其中关于各个type,options的解释,该配置文档前面部分有,大家假如严格需要,能够参照文档配置,一般用户配置成上面就能够了。

2.配置/etc/shorewall/interfaces,(这里用到的ZONE的名字是在上个文档/etc/shorewall/zones中定义的名字,所以顺序不要弄错了。这种zone名字的方法是比较简单的,推荐这种方法。)
#ZONE INTERFACE BROADCAST OPTIONS
net ppp0
#LAST LINE -- DO NOT REMOVE

同样配置文档对各个参数进行了详尽的解释
--------------

3.配置/etc/shorewall/rules 和 /etc/shorewall/policy

关系: policy是定义默认的策略给任何的连接(从一个zone到另外一个zone, 比如我们定义的从loc到net);
rules是定义特别的防火墙规则,即是policy里面没有的。
先后条件:任何连接,防火墙先检查rules,假如rule中没有关于这个连接需要的描述,就调用policy的默认配置。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!