在我們的日常運維工作中,經常要用到Iptables這個工具來設置IP信息包過濾和防火牆配置,首先,Iptables的配置文件爲/etc/sysconfig/iptables,所有的規則都是要寫到這個文件裏的,不然重啓後就會失效。
1、IPtables通常包括三個表格(Fliter、NAT、Mangle)
filter∶主要跟Linux本機有關,是預設的table。通常下面有三個鏈(chain):
INPUT∶主要與數據包想要進入我們Linux本機有關;
OUTPUT∶主要與Linux本機所要送出的數據有關;
FORWARD∶這個與Linux本機比較沒有關係,他可以將數據包轉發到後端的電腦中,與nat這個table相關
NAT:主要用來做源與目的IP或者端口的轉換,與linux本機無關。
PREROUTING∶在進行路由判斷之前所要進行的規則(DNAT/REDIRECT)POSTROUTING∶在進行路由判斷之後所要進行的規則(SNAT/MASQUERADE)OUTPUT∶與發送出去的封包有關
mangle∶這個表格主要是與特殊的封包的路由旗標有關,早期僅有PREROUTING及OUTPUT鏈,不過從kernel2.4.18之後加入了INPUT及FORWARD鏈。由於這個表格與特殊旗標相關性較高,所以像咱們這種單純的環境當中,較少使用mangle這個表格
2、Iptables的常用命令
查看iptables現有規則:
#iptables-L-n
清除現有iptables規則:
#iptables-F#清除預設表filter中的所有規則鏈的規則:
允許局域網內192.168.0.0/24的所有主機訪問代理服務器,除了192.168.0.3這臺主機:
#iptables-AINPUT-ieth0-s192.168.0.3-jDROP
#iptables-AINPUT-ieth0-s192.168.0.0/24-jACCEPT
將來自eth0的數據包全部接收:
#iptables-AINPUT-ieth0-jACCEPT
將服務器80端口重定向到8080端口:
#iptables-tnat-APREROUTING-Ptcp--dport80-jREDIRECT--to-ports8080
使服務器允許來自網絡接口eth1,並且來源端口爲80的數據進入服務器:
#iptables-AINPUT-ieth1-ptcp--sport80-jACCEPT
讓服務器的80端口對外開放:
#iptables-AINPUT-ieth0-ptcp--dport80-jACCEPT
允許來自外部的ping測試
#iptables-AINPUT-picmp--icmp-typeecho-request-jACCEPT
#iptables-AOUTPUT-picmp--icmp-typeecho-reply-jACCEPT
僅允許來自指定網絡的SSH連接請求
以下規則僅允許來自192.168.100.0/24的網絡:
#iptables-AINPUT-ieth0-ptcp-s192.168.100.0/24--dport22-mstate--stateNEW,ESTABLISHED-jACCEPT #iptables-AOUTPUT-oeth0-ptcp--sport22-mstate--stateESTABLISHED-jACCEPT
允許出站DNS連接
#iptables-AOUTPUT-pudp-oeth0--dport53-jACCEPT
#iptables-AINPUT-pudp-ieth0--sport53-jACCEPT
(再續)