歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

關於Linux下的iptables 的淺析命令和了解

iptables默認三張表:
 •filter:防火牆,包含INPUT、OUTPUT、FORWARD
•nat:網絡地轉轉換,包含PREROUTING、POSTROUTING、OUTPUT
•mangle:流量整形,包含所有的五條鏈
 
iptables的五條鏈 ->寫規則的地方
 •INPUT:數據包的目地的是LINUX主機本身
•OUTPUT:數據包由LINUX主機本身發送
•FORWARD:數據包從一個接口進入,另一個接口發出(如果做路由轉發的話必須開啟/etc/sysctl.conf 修改net.ipv4.ip_forward=1)
•PREROUTING:做路由之前
•POSTROUTING:做路由之後
 
 
 
命令
 
清空防火牆
 
iptables -F
 
把INPUT默認規則改成DROP
 
iptables -P INPUT  DROP
 
添加一條規則允許SSH通過INPUT
 
一般插入很多人都寫iptables -A (是追加規則,添加的規則在最下方,防火牆的規則是誰在最上邊誰生效,所以我一般用-I,添加的規則先生效並且I能指定具體位置)
 
iptables -I INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT
 
iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT(將這條規則插入到上面第二行)
 
只允許允許192.168.0.0、24從eth0網卡訪問本機的22端口
 
iptables -I INPUT -i eth0 -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT
 
列出防火牆規則
 
iptables -L
 
刪除INPUT裡面的第二條規則(從最上面開始)
 
iptables -D INPUT 2
 
保存防火牆規則(防火牆如果沒有保存,重啟服務後規則失效)
 
service iptables save
 
備份防火牆規則
 
iptables-resotre < /etc/sysconfig/iptables.20130301
 
 路由
 
阻止某個IP到達本機
 
iptables -I FORWARD -s 202.106.0.20 -j DROP
 
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SANT --to 1.1.1.1
 
將192.168.0.0網段的地址轉換成1.1.1.1去做nat訪問
 
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SANT --to 1.1.1.1-1.1.1.20
 
將192.168.0.0網段的地址轉換成1.1.1.1-20網段的地址去做nat訪問
 
iptables -t nat -I PREROUTING -i eth0 -p tcp 80 -j DNAT --to 192.168.0.1
 
將通過網卡eth0的訪問80端口的數據包目的地址改為192.168.0.1
 
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
 
將源地址是192.168.0.0/24網段的數據包地址進行偽裝
 
STATE
 
-m state --state 狀態分為
 
NEW: 有別於tcp的syn
 
ESTABLISHED:連接態
 
RELATED:衍生態,與conntrack(連接跟蹤模塊)關聯(FTP)
 
INVALID:不能識別的連接或者狀態
 
iptables -I INPUT -m state --state RELATED,ESTABLISHED \ -就ACCEPT
 
允許連接出去後對方主機回應的數據包
 
MAC
 
-m mac --mac-source MAC
 
iptables -I FORWARD -m mac --mac0source xx:xx:xx:xx:xx:xx \ -j DROP
 
阻斷來自某MAC地址的數據包,經過本機的路由
 
iptables -P FORWARD DROP
 
iptables -I FORWARD -s 192.168.0.2 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT
 
ip與mac地址綁定,只有這個ip能從本機路由
 
LIMIT限速
 
-m limit --limit
 
iptables -I FORWARD -d 192.168.0.2 -m limit --limit 50/s -j ACCEPT
 
iptables -I FORWARD -d 192.168.0.2 -j DROP
 
限速50/s要想實現限制上傳和下載的速度,得結合TC去分網段
 
 簡單web服務器上的防火牆配置
 
iptables -I INPUT -i eth0(網絡端口端口)-j ACCEPT
 
iptables -I INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT
 
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 
iptables -P INPUT DROP
 
網關
 


實例:ADSL 撥號上網的拓撲
 
echo "1" > /proc/sys/net/ipv4/ip_forward
 
iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -o eth0 \
 
 -j MASQUERADE
 


對外服務器
 
服務協議(TCP/UDP)
 
對外服務端口
 
內部服務器私網 IP
 
內部真正服務端口
 
實例:
 
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 \
 
 -j DNAT --to 192.168.1.1
 
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 81 \
 
 -j DNAT --to 192.168.1.2:80

Copyright © Linux教程網 All Rights Reserved