《iptables詳解 》RHEL6

 
 
iptables詳解   
Iptables原理
如今防火牆主要分如下三種類型: 包過濾、應用代理、狀態檢測
包過濾防火牆:如今靜態包過濾防火牆市面上已經看不到了,取而代之的是動態包過濾技術的防火牆哈~
代理防火牆:因一些特殊的報文攻擊能夠輕鬆突破包過濾防火牆的保護,好比你們知道的SYN攻擊、ICMP洪水攻擊,因此以代理服務器做爲專門爲用戶保密或者突破訪問限制的數據轉發通道的應用代理防火牆出現了哈~其使用了一種應用協議分析的新技術。
狀態檢測防火牆:其基於動態包過濾技術發展而來,加入了一種狀態檢測的模塊,進一點發展了會話過濾功能,會話狀態的保留是有時間限制的,此防火牆還能夠對包的內容進行分析,從而避免開放過多的端口。
netfilter/iptables IP數據包過濾系統實際上由netfilter和iptables兩個組件構成。netfilter是集成在內核中的一部分,其做用是定義、保存相應的規則,而iptables是一種工具,用來修改信息的過濾規則及其餘配置,咱們能夠經過iptables來設置一些適合咱們企業需求環境的規則哈~,而這些規則會保存在內核空間之中。
netfilter是Linux核心中的一個通用架構,其提供了一系列的表(tables),每一個表由若干個鏈(chains)組成,而每條鏈能夠由一條或若干條規則(rules)組成。實際上netfilter是表的容器,表是鏈的容器,而鏈又是規則的容器。
filter表
image
nat表
image
mangle表
image
iptables內置鏈
PREROUTING:路由表以前
INPUT:經過路由表後目的地爲本機
FORWARDING:經過路由表後,目的地不爲本機
OUTPUT:由本機產生,向外轉發
POSTROUTIONG:路由以後
netfilter五條鏈相互關係,即iptables數據包轉發流程圖
 
Iptables工做流程圖
iptables擁有三個表和五條鏈組成
 
Iptables基本語法
iptables [-t 表名] -命令 -匹配 -j 動做/目標
iptables內置了filter、nat和mangle三張表,咱們可使用-t參數來設置對哪張表生效哈~也能夠省略-t參數,則默認對filter表進行操做。
具體命令參數能夠經過 man iptables查詢哈~
 
配置SNAT命令基本語法
iptables -t nat -A POSTROUTING -o 網絡接口 -j SNAT --to-source IP地址
配置DNAT命令基本語法
iptables -t nat -A PREROUTING -i 網絡接口 -p 協議 --dport 端口 -j DNAT --to-destination IP地址
 
 
 
(1)刪除策略
iptables -F:清空所選鏈中的規則,若是沒有指定鏈則清空指定表中全部鏈的規則
iptables -X:清除預設表filter中使用者自定鏈中的規則
iptables -Z:清除預設表filter中使用者自定鏈中的規則
image
 
 
二、設置迴環地址
有些服務的測試須要使用迴環地址,爲了保證各個服務的正常工做,須要容許迴環地址的通訊,若是不設置迴環地址,有些服務不能啓動哈~。
iptables -A INPUT -i lo -j ACCEPT
  image
三、鏈接狀態設置
爲了簡化防火牆的配置操做,並提升檢查的效率,須要添加鏈接狀態設置
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
鏈接跟蹤存在四種數據包狀態
NEW:想要新建鏈接的數據包
INVALID:無效的數據包,例如損壞或者不完整的數據包
ESTABLISHED:已經創建鏈接的數據包
RELATED:與已經發送的數據包有關的數據包
image
四、設置80端口轉發
公司網站須要對外開放,因此咱們須要開放80端口
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
image
五、DNS相關設置
爲了客戶端可以正常使用域名訪問互聯網,咱們還須要容許內網計算機與外部DNS服務器的數據轉發。
開啓DNS使用UDP、TCP的53端口
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
image 
六、容許訪問服務器的SSH
管理員會經過外網進行遠程管理,因此咱們要開啓SSH使用的TCP協議22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
image
 
 
七、NAT端口映射設置
因爲局域網的地址爲私網地址,在公網上不合法哈~因此必須將私網地址轉爲服務器的外部地址進行地址映射哈~鏈接外網接口爲ppp0
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
MASQUERADE和SNAT做用同樣哈~相樣是提供源地址轉換的操做,可是MASQUERADE是針對外部接口爲動態IP地址來設置滴,不須要使用--to-source指定轉換的IP地址。若是網絡採用的是撥號方式接入互聯網,而沒有對外的靜態IP地址(主要用在動態獲取IP地址的鏈接,好比ADSL撥號、DHCP鏈接等等),那麼建議使用MASQUERADE哈~
注意:MASQUERADE是特殊的過濾規則,其只能夠映射從一個接口到另外一個接口的數據哈~
image
八、內網機器對外發布WEB網站
內網WEB服務器IP地址爲192.168.0.3,咱們須要進行以下配置哈~,當公網客戶端訪問服務器時,防火牆將請求映射到內網的192.168.0.3的80端口
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80
image
九、保存與恢復iptables配置
保存:iptables-save
iptables-save [-c] [-t 表名]
-c:保存包和字節計數器的值。可使在重啓防火牆後不丟失對包和字節的統計
-t:用來保存哪張表的規則,若是不跟-t參數則保存全部的表
可使用重定向命令來保存這些規則集
iptables-save > /etc/iptables-save
恢復:iptables-restore
iptables-restore [-c] [-n]
-c:若是加上-c參數則表示要求裝入包和字節計數器
-n:表示不覆蓋己有的表或表內的規則,默認狀況下是清除全部己存在的規則
使用重定向來恢復由iptables-save保存的規則集
iptables-restore > /etc/iptables-save
若是要在服務或系統重啓後依然生效
service iptables save
image
相關文章
相關標籤/搜索