Shorewall的單用戶簡單設(shè)置
一、linux防火墻基本知識:
本文引用地址:http://www.ex-cimer.com/article/201609/303838.htm除了軟件和硬件防火墻的分類外,如果以封包抵擋機(jī)制來分類,大概可以分為proxy和IP Filter。
基本上linux的IP Filter有兩個(gè)最基本的防火墻機(jī)制,分別是:Ip Filter和TCP_Wrapper。
這里我們談IP Filter,因?yàn)閟horewall可以通過IPTABLES簡單設(shè)置IP Filter的規(guī)則。
或者說:如果你不麻煩iptables的語法規(guī)則,或者可以自己寫一些shell程序批處理iptables指令,完全可以不安裝shorewall或者其他防火墻。因?yàn)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/linux">linux下的防火墻基本都是通過設(shè)置iptables的規(guī)則完成的。
1.首先確定(uname指令確定核心,lsmod確定當(dāng)前載入模塊,如果是ipchains,請執(zhí)行rmmod ipchains。 然后modprobe ip_tables即可將iptables裝入現(xiàn)在使用的模塊)你的內(nèi)核是采用哪種抵擋機(jī)制,是不是我們需要的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 版本中,同時(shí)將 ipchains 編譯成模組供使用,好讓使用者仍然可以使用磣 2.2 版的 ipchains 的防火墻規(guī)則。
---------------
然后執(zhí)行下面代碼來觀看現(xiàn)在的防火墻規(guī)則(聯(lián)網(wǎng)情況下,root用戶)
$ sudo iptables -L -n (L的含義是列出目前的 table 的規(guī)則,n含義是不進(jìn)行IP與HOSTNAME的相互轉(zhuǎn)換,這樣可以加快顯示速度)
$ sudo iptables -t nat -L -n (-t nat的含義是顯示nat的filter。iptables會有nat tables和filter tables,不加參數(shù)為filter。有興趣的兄弟可以參看其他關(guān)于iptables的介紹,介于太長,此處不做介紹;)
---------------
接下來我們就要清除掉現(xiàn)在所有的防火墻規(guī)則(聯(lián)網(wǎng)情況下)
root@*** root]# /sbin/iptables [-t tables] [-FXZ]
其中參數(shù)含義為:
-F :清除所以已經(jīng)建立的規(guī)則;
-X :殺掉所有使用者建立的 chain ( tables );
-Z :把所有的 chain 的計(jì)數(shù)和流量統(tǒng)計(jì)歸為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最新的穩(wěn)定版本3.0.4(tarball安裝,即為源代碼make安裝。確定你的機(jī)器跟隨‘新手指南’裝了基本編譯工具),由于新立得里面還是2.多的版本,在官方網(wǎng)站看的是3的介紹,所以安裝3.0.4。而且安裝很簡單,不會出現(xiàn)其他依賴性問題.
------------
1.下載地址:http://www1.shorewall.net/pub/shorewall/3.0/shorewall-3.0.4/
2.安裝前需要:iptables(前面提到的)+iproute (檢查這個(gè)的指令是sudo Which ip )(基本上ubuntu5.10都具備了,所以可以不考慮)
3.盡量不要在ms-windows里面編輯shorewall的配置文件,因?yàn)閙s和lin的文字排版不太一樣,比如回車。
4.cd到你解壓之后的目錄,然后./install.sh 回車,看見沒有錯(cuò)誤信息,就OK了。但是此刻shorewall沒有啟動。等會兒我們來啟動。默認(rèn)安裝之后就是每次啟動就自動啟動防火墻(設(shè)置文件在 /etc/shorewall/shorewall.conf。找到STARTUP_ENABLED=Yes
,yes代表開機(jī)自動啟動!)
5.安裝之后所有文件分別位于:/usr/shorewall 和/sbin 和 /etc/shorewall,我們需要注意的就是/etc/shorewall。這里是配置文件。(個(gè)人建議,對于一些重要的,經(jīng)常不需要變動的文件可以將隱藏屬性chattr +i 上去,具體指令信息,請找‘男人’man )
6.查看安裝后的版本:sudo shorewall version 可以得到3.0.4的消息
三、配置Shorewall3.0.4
詳細(xì)的官方文檔位于:http://www.shorewall.net/Documentation.htm ,shorewall的文件很多,但是一般用戶用到的不多,特別是我們這種單機(jī)撥號的用戶。
-------------
1.首先配置/etc/shorewall/zones文件,瀏覽至最后,添加代碼如下:
#ZONE TYPE OPTIONS
fw firewall #文件原本存在的這行,fw為防火墻本身,必須
net ipv4
loc ipv4
#LAST LINE -- DO NOT REMOVE
其中關(guān)于各個(gè)type,options的解釋,該配置文件前面部分有,大家如果嚴(yán)格要求,可以參照文件配置,一般用戶配置成上面就可以了。
2.配置/etc/shorewall/interfaces
(這里用到的ZONE的名字是在上個(gè)文件/etc/shorewall/zones中定義的名字,所以順序不要弄錯(cuò)了。這種zone名字的方法是比較簡單的,推薦這種方法。)
#ZONE INTERFACE BROADCAST OPTIONS
net ppp0
#LAST LINE -- DO NOT REMOVE
同樣配置文件對各個(gè)參數(shù)進(jìn)行了詳盡的解釋
--------------
3.配置/etc/shorewall/rules 和 /etc/shorewall/policy
關(guān)系: policy是定義默認(rèn)的策略給所有的連接(從一個(gè)zone到另外一個(gè)zone, 比如我們定義的從loc到net);
rules是定義特殊的防火墻規(guī)則,即是policy里面沒有的。
先后條件:任何連接,防火墻先檢查rules,如果rule中沒有關(guān)于這個(gè)連接要求的描述,就調(diào)用policy的默認(rèn)配置。
/etc/shorewall/policy的配置如下(默認(rèn))
#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
上面的含義是允許本機(jī)所有連接網(wǎng)絡(luò)的要求;網(wǎng)絡(luò)連接到我的所有zones(比如防火墻fw,本地loc)都丟棄該連接要求的tcp封包,并記入日志。拒絕所有連接要求并記入日志(當(dāng)連接被拒絕了,防火墻就會返回一個(gè)RST (加入?yún)f(xié)議是TCP) 或者一個(gè) ICMP端口不能到達(dá)的包給其他協(xié)議)
評論