linux防火牆包含兩部分:netfilter和iptables。netfilter位於內核空間,一般做用是容許數據表過濾函數掛載到系統內核中。因爲用戶一般沒法接觸和修改內核,因而有了iptables這樣的一個命令行的用戶工具,供用戶添加、管理具體的過濾規則。linux
四表tcp
filter表:過濾規則表
nat表:地址轉換規則表
mangle表:修改數據標記位規則表
raw表:跟蹤數據表規則表ide
五鏈函數
input:入站數據過濾
output:出站數據過濾
forward:轉發數據過濾
prerouting:路由前過濾
postrouting:路由後過濾工具
外部進入通過input和prerouting鏈post
內部出去通過output和postroutinf鏈命令行
路由轉發通過prerouting、forward和postrouting鏈rest
iptables默認操做表爲filter表,若須要操做其餘表。使用-t 參數code
iptables -t 【表名】
查看nat表全部規則blog
# iptables -t nat -nL
清空filter全部規則
# iptables -F
filter表新增入站規則,丟棄192.168.0.1發送給防火牆的數據包
# iptables -A INPUT -s 192.168.0.1 -j DROP
filiter表插入一規則,拒絕192.168.0.1ping防火牆
# iptables -I INPUT -s 192.168.0.1 -p icpm -j REJECT
容許任何主機從eth0接口訪問防火牆的80端口
# iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
查看filter表中防火牆規則並顯示編號
# iptables -nL --line-number
刪除filiter表INPUT鏈第一條規則
# iptables -D INPUT 1
# iptables save >/etc/sysconfig/iptables # iptables-restore < /etc/sysconfig/iptables # iptables-save>firewall.bak # iptables-restore < firewall.bak