一、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的默许装备。
/etc/shorewall/policy的装备如下(默许)
#SOURCE ZONE DESTINATION ZONE POLICY LOG LIMIT:BURST
# LEVEL
loc net ACCEPT
net all DROP info
all all REJECT info
#LAST LINE — DO NOT REMOVE
我一般改为下面,省得每次开端口费事。
fw net ACCEPT
net all DROP info
all all REJECT info
上面的意义是答应本机一切衔接网络的要求;网络衔接到我的一切zones(比方防火墙fw,本地loc)都丢掉该衔接要求的tcp封包,并记入日志。回绝一切衔接要求并记入日志(当衔接被回绝了,防火墙就会回来一个RST (参加协议是TCP) 或许一个 ICMP端口不能到达的包给其他协议)