Warning: count(): Parameter must be an array or an object that implements Countable in /www/wwwroot/mdaeo.org/usr/plugins/AMP/Action.php on line 388
ubuntu防火墙配置工具 – shorewall

ubuntu防火墙配置工具 – shorewall

2012-03-17T20:12:32

ubuntu下配置iptable防火墙,手工一条条写比较繁琐,有个方便的工具可以胜任这个工作,那就是shorewall,iptable防火墙配置工具。

安装


sudo apt-get install shorewall-common shorewall-doc shorewall-perl

copy配置文件
sudo cp /usr/share/doc/shorewall-common/examples/one-interface/* ./
examples目录下有one-interface/three-interfaces/two-interfaces三个目录,分别代表你有单网卡(外网)、双网卡(内外网)、三网卡(内外网+DMZ)三种模式,我的是外网服务器,所以选择one-interface

定义网络区域
nano /etc/shorewall/zones

fw firewall
net ipv4

定义fw、net两个区域,fw防火墙本身,net外网

定义网络接口
nano /etc/shorewall/interfaces

net     eth0    detect dhcp,tcpflags,logmartians,nosmurfs

定义防火墙策略
nano /etc/shorewall/policy

$FW net ACCEPT 
net $FW DROP info
net all DROP info
all all REJECT info

定义最普通的防火墙策略,ACCEPT就是允许;DROP就是不允许,不能通过;REJECT是抵制(被这个选项控制的网络会发生地址冲突的问题)。
第一行定义的是:允许本地网络访问外部网络。
第一行定义的是:禁止外部网络访问本地网络。
第二行定义的是:不允许外部网络访问所有的网络。info是只在DROP连接的同时log文件中会有信息提示。
第三行定义的是:所有网络的默认连接规则是抵制。(建议将REJECT修改为DROP,防止网络被REJECT)

定义防火墙规则
nano /etc/shorewall/rules

Ping/ACCEPT net $FW  
ACCEPT $FW net icmp 
ACCEPT net $FW tcp 22
ACCEPT net $FW tcp 80

定义防火墙规则
第一行,允许外部网络ping防火墙接口,如果想禁ping的话,将Ping/ACCEPT改为Ping/DROP
第二行,允许内部网络ping防火墙接口
第三行,允许外部网络访问服务器22端口
第四行,允许外部网络访问服务器80端口

启动防火墙

sudo shorewall start

启动防火墙后,shorewall会使用perl编译器,complie iptable规则

停止防火墙

sudo shorewall stop

这里需要注意一点,停止防火墙并不会完全清除规则,它会置input链的状态为Drop,造成外网不能访问服务器,所以在停止之前,要执行sudo shorewall clear。

清除规则

sudo shorewall clear

显示规则状态

sudo shorewall show

show 还可以现次细分状态,如下
actions|capabilities|classifiers|config|connections|filters|ip|log|macros|mangle|nat|raw|routing|tc|vardir|zones
 

 

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »
因本文不是用Markdown格式的编辑器书写的,转换的页面可能不符合MIP标准。