Post on 17-Mar-2016
description
SuSE Linux
SYSTEM MANAGEMENT
Iptable & OpenVPN
資策會中壢網工班 80期 Ryan
在此次的 Linux LAB 中,擔當 iptables的重要角色,而 iptables 往往在許
多的人中跟防火牆防火牆畫上等號,這並不是一個正確的觀念。iptables 是一
個用來與 netfilter 溝通的套件,將規則寫入給 netfilter執行。因此 iptables
並不是防火牆,而僅僅是個套件。
在這次的 LAB中,採取的是三隻腳的方式,以下是我們組的拓譜:
總公司的部分採取內部網路、DMZ及外部網路,並加上了分公司的部分,而
除了負責 iptables之外,另外研究了 OpenVPN的課題來完成分公司的架構。在
以下內容均會一一呈現。
環境介紹
主機系統版本
rhel-server-5.5-x86_64-dvd
LAB系統版本
SLES-10-SP2-DVD-i386-GM-DVD1
Iptables
在報告的時候,所使用的 shell script是採取單一功能的驗證,而在 Lab
之中,會採取將每個功能加上,然後一一驗證。我將 iptables寫到 shell script
中,並把它寫入 /etc/init.d/boot.local 中,以便開機自動執行。
首先是將 show出來:
接著整個 shell script 的部分:
先設定變數,以便之後萬一拓譜有所更動,需要變動時,只需要設定變數,
而不用大規模更動。
(3) 將 IP Forward的功能打開
(13-14) 接著 filter、nat清除的參數
(15-18) 定義新增的 HTTP、MAIL、FTP、DNS
(19-20) 將 filter中的 FORWARD、INPUT的 policy由 ACCEPT改為 drop
(24) 無效的封包丟棄
(27) 針對同一連線的 ESTABLISHED與會伴隨不同連線的 RELATED參數
(30-49)在 NAT轉換的部分,讓服務由各主機對應到防火牆上,以對外提供服務
(52) 針對內部網路開放進入 DMZ區域
(55-66) 針對外部網路進入 DMZ區域如 NAT部分,並進行只要符合條件就進行紀
錄(HTTP、MAIL、FTP、DNS)
由 HTTP、MAIL、FTP、DNS的 Chain中,為防止流量過高及惡意攻擊使用此方式:
(70-73) 在 HTTP中符合在資料庫中前 60秒超過 30次的連接就 DROP,直到不符
合條件才 ACCEPT。
(75-78) 在 MAIL中符合在資料庫中前 60秒超過 5次的連接就 DROP,直到不符
合條件才 ACCEPT。
(80-83) 在 FTP中符合在資料庫中前 60秒超過 2次的連接就 DROP,直到不符合
條件才 ACCEPT。
(85-88) 在 DNS中符合在資料庫中前 60秒超過 30次的連接就 DROP,直到不符
合條件才 ACCEPT。
最後則是 DMZ區域對外的部分,首先開放一個 PING指令進行是否可以連線。
接著針對 WEB、MAIL、FTP及 DNS的主機個別開放所提供的服務,這裡在實作時
發生二個問題,就是一開始都有在 WEB、MAIL、FTP及 DNS規則加入 –i eth0 卻
發生無法連線的現象,去掉之後就可以提供服務了,另外則是 DNS的開放原本只
有 UDP,但是要加入 TCP才可以正常,這讓我研究好久, 大家有興趣可以試試
看,是否結果一樣!最後一條規則是 nagios的部分。
在之後則是進行效果驗收:
1.在 Mail Gateway主機進行 Ping 168.95.192.1測試
2.在 WEB & DNS的部分,我先設定了/etc/resolv.conf指向 FW1的外部 IP
,接者才輸入 links –dump 的指令來檢驗 WEB是否 OK!
3.接著是 SMTP,直接用 telnet IP 25 來檢驗
4.POP3的部分:
5.FTP的部分:
6.在 squid的部分:(沒照到 PROXY設定,真的有出來!)
OPENVPN 的部分
在自我嘗試的部分,這部分困難度較高,畢竟 SuSE的 Enterprise我還有努
力的空間。而相依性更是一大問題,連我裝到後面都有些搞混了,我將我使用的
套件給列出:
Server:
openvpn-2.1_rc15.tar.gz
openvpn-as-1.5.6-Fedora10.i386
Clinet:
openvpn-2.0.9-gui-1.0.3-install
以下是 Server 的 VPN設定檔:(多餘東西都清除)
Client的部分:
client
dev tun
proto tcp
remote 10.120.12.250 1194
persist-key
persist-tun
ca ca.crt
cert ryanfu.crt
key ryanfu.key
ns-cert-type server
tls-auth ta.key 1
comp-lzo
verb 3
因為時間的關係 OPENVPN 沒有研究很深,只有做出 VPN Client的部分。以下是
效果:
接著連線成功,使用 ipconfig觀察:
最終部分 感想
因為 RHCE的以及 CISCO課程的關係,導致報告現在才出來,我目前的心得
是甚麼?就是事情多,還是事情多。在這次 Linux LAB中,本人很榮幸身為一組
之長,在此我也要跟我的三位組員憲文、志豪與祖華來個一鞠躬,跟我這個組長
一起瞎搞,雖然結果令人還算滿意,不過還是辛苦他們嚕!當然大家那麼辛苦,
我相信在這次 LAB中就會各有所得,理所當然的,我也是收穫最多的啦!(當然
也是最累的)
這次雖然手下只有三人,卻讓我體悟到協調、溝通是相當重要的,身為一個
Leader必須要一碗水端平,不可能做到絕對公平,但是要做到相對公平,有人
有困難,不僅自己要體諒,也要讓大家體諒;每個人都有不一樣的個性,我需要
怎樣跟他進行溝通,那就是找出最佳方程式了,而今天我們組是四個人,那就是
四元連立方程式,畢竟不可以因為自己是組長就把自己給賣了吧!而最重要的是
發揮每個組員的強項,去避免他們的弱項,這是我努力的方向,至少在這次中,
我很高興有所成果,並且給我們組加分,更讓有所得。
不僅是 Leader的部分,還有 LAB的部分,這次的防火牆由我來操刀,這也
是我在之前 MS LAB的體悟。防火牆沒問題,甚麼問題都不是問題;防火牆有問
題,沒有問題都會有問題。因此這部分我是兵馬未動,糧草先行。早就在 Linux
報告之前就已經完成,在之後只是進行 Check和其他 server的架設;並且進行
自我課題的研究,雖然沒有完成 site to site的 VPN,但是有所得卻是讓我感
覺沒有白費。
最後的部分,則是要感謝 Guru老師及 350學長給我的幫忙與指教,很多事
情不是需要直接的幫忙,而是間接地幫忙。Guru老師的課程中,很多東西都跟
LAB息息相關,更重要的是老師給我 suvery的精神,Guru老師常說:「有不明白
的,就 man呀!」 老師不但言教,而且身教。讓我也不自覺得 MAN了起來,雖然
MAN有時不太了解,但是就是有那種"高級 Linux工程師"的感覺。而 350 學長也
是,那厚厚一本的教材,當初看到真的很無言,不過到後來卻發現,真的是一本
不錯的參考書,真的幫助很大。不過書要回收了,我只留 PDF了。
參考資料
更安全的 Linux 网路电子工业出版社作者:陈勇勋
使用 iptables 建置 Linux 防火牆 作者:李忠憲
http://www.spps.tp.edu.tw/documents/memo/iptables/iptables.htm
BurstNET VPS 搭建 OpenVPN全程实录
http://old.mven.cn/post/51.html