本篇文章來源於 Linux公社網站(www.linuxidc.com) 原文連結:http://www.linuxidc.com/Linux/2009-03/18941.htm
Linux 提供了強大的防火牆iptables ,但是由於iptables文法比較繁瑣,所以不利於部署和維護,shorewall是第三方免費的防火牆產生器,相當於對iptables又進行了一次集合和最佳化。
介紹一下簡單的部署:
下載:http://www.shorewall.net/ 或者 http://slovakia.shorewall.net/pub/shorewall/
需要下載兩個程式:
shorewall-perl-4.2.2.1.tgz #shorewall的安裝環境
shorewall-common-4.2.2.1.tgz #shorewall的主程式
首先解壓縮shorewall-perl-4.2.2.1.tgz
tar -zxvf shorewall-perl-4.2.2.1.tgz
cd shorewall-perl-4.2.2.1
./configure
make
make install
然後解壓縮shorewall-common-4.2.2.1.tgz
tar -zxvf shorewall-common-4.2.2.1.tgz
cd shorewall-common-4.2.2.1
./configure
make
make install
shorewall 的基本配置文檔是/etc/shorewall/shorewall.conf
將STARTUP_ENABLED=yes 設定為yes,啟用shorewall
/etc/shorewall 下有很多配置文檔,基本的為zones,interfaces,policy,masq等
zones為定義防火牆的地區,我個人認為類似CISCO防火牆的inside ,outside定義
vi /etc/shorewall/zones
# Shorewall version 4 - Zones File
#
# For information about this file, type "man shorewall-zones"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-zones.html
#
###############################################################################
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
in ipv4
out ipv4
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE
我定義了in 和out 兩個地區,注意fw為預設區域,是指linux 防火牆本身。
然後儲存退出。
編輯interfaces
vi /etc/shorewall/interfaces
#
# Shorewall version 4 - Interfaces File
#
# For information about entries in this file, type "man shorewall-interfaces"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-interfaces.html
#
###############################################################################
#ZONE INTERFACE BROADCAST OPTIONS
in eth0
out eth1
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
我將eth0 網卡連接埠劃分進in地區,將eth1連接埠劃分進out地區,注意在這裡我的eth0網卡是內網卡,eth1網卡為外部網卡。
儲存退出
然後定義策略policy
vi /etc/shorewall/policy
# Shorewall version 4 - Policy File
#
# For information about entries in this file, type "man shorewall-policy"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-policy.html
#
###############################################################################
#SOURCE DEST POLICY LOG LIMIT: CONNLIMIT:
# LEVEL BURST MASK
fw all ACCEPT
all fw ACCEPT
in out ACCEPT
out in DROP
#LAST LINE -- DO NOT REMOVE
只要定義了地區,就要定義相關的策略,在這裡從fw到任何地區和從任何地區到fw都是accept的,就是說從本機到任何連接埠或者任何連接埠到原生流量都通過,這顯然不安全,不錯測試,沒所謂。從in到out的流量是允許的,從out到in的流量是被拒絕的。然後儲存推出。
定義nat,編輯masq檔案
vi /etc/showrewall/masq
# Shorewall version 4 - Masq file
#
# For information about entries in this file, type "man shorewall-masq"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-masq.html
#
###############################################################################
#INTERFACE SOURCE ADDRESS PROTO PORT(S) IPSEC MARK
eth1 eth0
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
定義從eth0 到eth1的nat,這樣將會將eht0的網段nat到eth1
儲存退出。
然後運行shorewall check 進行配置檢查,如果有錯誤是無法通過的。
然後shorewall restart
注意一旦啟用了shorewall則iptables已經啟動,並且ipforward也已經啟動。
http://www.qqgb.com/NetWorkSecurity/Fireware/FirewareZh/NetWorkSecurity_159365.html