370 likes | 535 Views
防火牆. 鄧姚文. 教材. 陳源謙( 2010 ), Ubuntu Linux 管理與架站實務, 博碩文化股份有限公司, ISBN 978-986-201-389-2 (書號 OS30004 ) 湯秉翰( 2013 ), CentOS Linux 系統建置與實務 ( 第二版 ) , 博碩文化股份有限公司, ISBN 978-986-201-764-7 (書號 OS31312 )
E N D
防火牆 鄧姚文
教材 • 陳源謙(2010), Ubuntu Linux 管理與架站實務, 博碩文化股份有限公司, ISBN 978-986-201-389-2 (書號 OS30004) • 湯秉翰(2013), CentOS Linux系統建置與實務(第二版), 博碩文化股份有限公司, ISBN 978-986-201-764-7 (書號 OS31312) • 鳥哥(2011), 鳥哥的Linux私房菜--伺服器架設篇(第三版), 碁峰資訊股份有限公司, ISBN 9789862579329 (書號 ACA016100)
大綱 • 網路防火牆 • 網路防火牆的啟用設定 • iptables • 以Webmin設定防火牆 • 建置NAT與DMZ服務
認識網路防火牆 • 防火牆(英文:firewall) • 協助確保資訊安全 • 依照 Policy 與 Rule 允許或是限制資料通過 • 設備分類 • 專屬硬體 • 一般硬體+軟體 • 網路區分成 • 私有網路(Private Network) • 公用網路(Public Network)
認識網路防火牆 • 防火牆的功能 • 控制在電腦網路中,不同信任程度區域間傳送的資料流。 • 網際網路 net 是不可信任的區域 • 內部網路 loc是可信任的區域 • 非戰區 dmz是對外營業的區域,可能會被入侵,須設法讓敵人無法經由 dmz 侵入 loc • 最終目標是提供受控連通性在不同水平的信任區域通過安全政策的執行和連通性模型之間根據最少特權原則 • Policy 政策 • 大原則 • Rule 規則 • 違反 Policy • 特別允許的例外
防火牆的類型 • 網路層防火牆 • IP 封包過濾器,運作在底層的TCP/IP協定堆疊上。 • 只允許符合特定規則的封包通過,其餘的一概禁止穿越防火牆。 • 管理員定義或修改規則 • 某些防火牆設備只能套用內建的規則 • 也能以寬鬆的方式制定防火牆規則,只要封包不符合任何一項「否定規則」就予以放行。 • 新式作業系統及網路設備大多內建防火牆功能。 • 新式防火牆能利用封包的多樣屬性進行過濾 • 例如:來源 IP 位址、來源埠號、目的 IP 位址或埠號、服務類型(如 WWW 或是 FTP)。 • 也能經由通訊協定、TTL 值、來源的網域名稱或網段...等屬性來進行過濾。
防火牆的類型 • 應用層防火牆 • 在TCP/IP堆疊的「應用層」上運作 • 使用瀏覽器時所產生的資料流 • 使用 FTP 時的資料流 • 可以攔截進出某應用程式的所有封包 • 例如: 封鎖 P2P • 防火牆藉由監測所有的封包並找出不符規則的內容,可以防範電腦蠕蟲或是木馬程式的快速蔓延。
防火牆的類型 • 代理服務 Proxy • 可能是一台專屬的硬體,或只是普通電腦上的一套軟體 • IP 分享器 • 像應用程式一樣回應輸入封包(例如連線要求),同時封鎖其他的封包,達到類似於防火牆的效果。 • 從外部網路竄改內部系統更加困難 • 內部網路的電腦不直接面對網際網路 • 即使內部系統出現問題也不一定會造成安全上的漏洞 • 相反地,駭客劫持一個公開可及的系統,以它作為代理人 • 網路網址轉換(Network Address Translation,NAT) • 被保護在防火牆之後共同地使用所謂的「私人網址空間」;防火牆的適當配置要求技巧和智慧,它要求管理員對網路協議和電腦安全有深入的了解,因小差錯可使防火牆不能作為安全工具。
Linux 系統上防火牆的主要類別 • Netfilter (封包過濾機制) • TCP Wrappers (程式控管) • Proxy (代理伺服器)
簡易網路防火牆的啟用設定 • 安裝Firestarter桌面防火牆工具
iptables • 介紹一下netfilter 在Linux 核心中有關網路封包處理的架構。 netfilter程式碼在Linux 核心有關處理網路封包的幾個部份,這些部 份串起來就是封包所行走的路線
iptables • 封包從 RRE_ROUTING 進入從 POST_ROUTING 出去,在這段路線中會主要的五個點
如何取得iptables • 下達指令【iptables -L】若能夠列出防火牆規則代表OK
iptables的基本指令 • 基本語法(Usage)
iptables的基本指令 • 你不想讓外部網段為210.123.123.0 的人用ssh 連到你的Mandrake 主機。 • 則定義規則如下:
延伸的比對 • 進一步的比對,讓管理者精確地操作這些不同類型的封包,如前面所提到的『-m match 中的用法』
iptables的基本指令 • 清除預設表格filter中所有鏈結中的所有規則。預設的三個鏈結依舊會存在。同理,還有nat表格與mangle表格。 • iptables –F • 清除預設表格filter所有使用自訂的鏈結。 • iptables –X • 清除nat表中,所有鏈結中的所有規則。 • iptables -t nat –F • 清除nat表中,使用者自訂的所有鏈結中的所有規則。 • iptables -t nat –X • 清除mangle表中,所有鏈結中的所有規則。 • iptables -t mangle –F • 清除nat表中,使用者自訂的所有鏈結中的所有規則。 • iptables -t mangle-X
iptables的基本指令 • 清除mangle表中,所有鏈結中的所有規則。 • iptables -t mangle –F • 清除nat表中,使用者自訂的所有鏈結中的所有規則。 • iptables -t mangle-X • 設定預設的政策,也就是所有的規則都一條一條比完後,都沒有符合的話,就是使用預設的政策,在一開始,皆為ACCEPT。 • iptables -P INPUT -j DROP • (同樣的,這裡對filter表格中的INPUT規則鏈設定,還有OUTPUT與FORWARD鏈,以及不同的表格nat與mangle) • iptalbes -t nat -P FORWARD -j DROP
iptables的基本指令 • 查詢鏈規則,只要是鏈結名稱皆可查詢,從查詢的結果,我們會從上方看到預設的政策是DROP或ACCEPT。 • iptables -L INPUT • (查看filter表格中的INPUT規則鏈) • iptables -t nat -L PREROUTING • (查看nat表格中的PREROUTING規則鏈) • 若是預設的政策是DROP,讀者可能會發現都無法連到Mandrake主機,只能用本機用終端機來設定防火牆,因此我們需要開放某一個介面,比方說,把所有網路卡介面eth0進入與流出的封包接受 • iptables -A INPUT -i eth0 -j ACCEPT • iptables -A OUTPUT -o eth0 -j ACCEPT
iptables的基本指令 • 查詢鏈有些規則,只要是鏈結名稱皆可查詢,從查詢的結果,我們會從上方看到預設的政策是DROP或ACCEPT。 • iptables -L INPUT • (查看filter表格中的INPUT規則鏈) • iptables -t nat -L PREROUTING • (查看nat表格中的PREROUTING規則鏈) • 若是預設的政策是DROP,讀者可能會發現都無法連到Mandrake主機,只能用本機用終端機來設定防火牆,因此我們需要開放某一個介面,比方說,把所有網路卡介面eth0進入與流出的封包接受。 • iptables -A INPUT -i eth0 -j ACCEPT • Iptables -A OUTPUT -o eth0 -j ACCEPT • 不允許使用Telnet服務,丟棄TCP協定與目的埠號為23的封包。 • iptables -A INPUT -p tcp --dport 23 -j DROP
iptables的基本指令 • 不允外部特定網段的使用者(210.0.100.0/24)連到存取Web主機。 • iptables -A INPUT -s 210.0.100.0/24 -p tcp --dport 80 -j DROP • 限制192.168.0.0/24網段的使用者連結www.playboy.com網站。 • nslookup www.playboy.com • (查出playboy網站的IP位址是多少,查詢結果是209.247.228.201) • iptables -A OUTPUT -d 209.247.228.201 -p tcp --dport 80 -j DROP • 不想讓外部的人可以ping指定的主機,當對方使用ICMP的echo-reqeust封包,我們的主機會自動回應ICMP的echo-reply封包,因此我們在OUTPUT鏈,限制我們所回應的echo-reply封包,即達到此目的 • iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP • 如何刪除所建立的防火牆規則? • 首先列出該鏈的規則序號,再從根據序號進行規則的刪除 • iptables -L INPUT --line-number • (列出filter表格的INPUT鏈,並透過--line-number來顯示每條規則的序號) • iptables -D INPUT 1 • (刪除filter表格的INPUT鏈中的第一條規則)
Shoreline Firewall • 建構於 iptables上層的防火牆管理介面 • Wikihttp://en.wikipedia.org/wiki/Shorewall • 官網 http://shorewall.net/ • 安裝介紹 • http://www.cyberciti.biz/faq/debian-ubuntu-linux-shorewall-firewall-configuration/
本章結束 Q&A討論時間