防火牆基本設定
防火牆系統是保護系統免受侵害的最基本的一種手段。Netfilter/iptables是linux系統提供的一個非常優秀的防火牆工具。
該文檔内容主要将iptables作為主機防火牆的一些基本設定。
首先,普及一下iptables的基本内容
規則鍊是防火牆規則/政策的集合,預設iptables包括了5種規則鍊
INPUT處理入站的資料包
OUTPUT處理出站的資料包
FORWARD處理轉發資料包
PREROUTING在進行路由選擇前處理資料包
POSTROUTING在進行路由選擇後處理資料包
Redhat enterprise linux 的規則表是規則鍊的集合,預設的規則表有4個
raw表确定是否對該資料包進行狀态跟蹤
mangle表為資料包設定标記
nat表修改資料包的源,目标ip或端口
filter表确定是否放行該資料包
我們主要學到的表是filter表和nat表
Iptables指令規則
Iptables [-t 表名 ]<指令>[鍊名][規則号][規則][-j 目标]
Iptables中未指明表名的情況下預設使用filter表
參數
-A在指定的鍊的末尾添加一條或多條規則
-D從指定的鍊中删除一條或多條規則。可以按照規則的序号進行删除,也可以删除滿足比對條件的規則
-R在指定的鍊中用新的規則置換掉某一規則号的舊規則
-I在指定的規則序号前插入一條或多條規則,如果沒有指定規則号,則預設1
-L列出指定鍊中的所有規則,如果沒有指定鍊,則所有鍊中的規則都将列出來
-F删除指定鍊中的所有規則,如果沒有指定,則所有鍊中的規則都将列出
-N建立一個新的使用者自定義鍊
-X删除指定的使用者自定義鍊
-p指定上一層協定
-s指定源ip位址或子網
-d指定目的ip或子網
-i指定資料包進入的網絡接口名稱
-o指定資料包出去的網絡接口名稱
實驗需求:vmwareworkstation,rhel4
檢視filter表中的規則

清空所有規則,在此檢視filter表
删除使用者自定義鍊
因為規則鍊中預設的處理入站資料包為ACCEPT,我們試着在用戶端上通路該伺服器上的web服務
現在,我們試着把預設的規則鍊修改為DROP,再進行通路
是以INPUT鍊阻止了用戶端的通路
那麼,有什麼方法讓你的用戶端ip位址進行通路呢?答案是有的
添加規則
檢視filter表
我們再一次在用戶端測試是否可以通路web服務
答案是可以的
添加新規則
修改新添加的規則
我們可以看到上面的規則中一個是ACCEPT,一個是DROP,當用戶端通路時應遵循哪一條規則呢?
因為比對的兩條規則,前面的是放行的,是以後面的規則就不起作用啦
在伺服器上開啟ftp服務,并且讓用戶端可以通路
用戶端通路
添加開啟ftp20号端口的規則
又或者是先開啟21端口可通過的規則鍊後,加入以下規則
iptables –A INPUT –p tcp –m state –state ESTABLISHED,RELAATED–j ACCEPT