歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> iptables經典案例

iptables經典案例

日期:2017/2/28 14:51:04   编辑:Linux教程

iptables經典案例

1.作為雙網卡網關,為內網接入因特網
固定公網IP:

  1. iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 88.88.88.88

動態IP:

  1. iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

這種方法其實是通用的,192.168.1.0/24是內網地址,也可以加上-o eth0指定出口網卡

2.端口映射

  1. iptables -t nat -A PREROUTING -d 88.88.88.88 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.21:8080

--to-destination可以簡寫為--to。這條規則還是應用在網關上的,如果內網的web服務需要對外公開,那麼就需要加上這條規則

3.針對本機的端口跳轉(本機作為Web或者Squid的應用)

  1. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

把80的請求跳轉到3128端口

4.開啟ping響應

  1. iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

5.禁ping

  1. iptables -A INPUT -p icmp --icmp-type 8 -j REJECT --reject-with icmp-host-unreachable

可以直接DROP掉(常規做法),這裡采用REJECT是反饋了所謂的“拒絕理由”:
icmp-host-unreacheable
icmp-net-unreacheable
icmp-port-unreachable(默認)
icmp-proto-unreachable
icmp-net-prohibited
icmp-host-prohibited

6.狀態檢測允許

  1. iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

7.封IP

  1. iptables -A INPUT -s 172.16.1.0/24 -j DROP

這當然的最簡單的應用了,具體可根據實際環境規劃

8.開放常規端口

  1. iptables -A INPUT -p tcp -m multiport --ports 20,21,22,25,53,80,8080,110,443

需要注意的是關於DNS的53號端口,要同時開放tcp和udp兩個協議的53端口,否則無法解析域名

9.IP與MAC地址的綁定

  1. iptables -N IP2MAC
  2. iptables -A FORWARD -i eth1 -o eth0 -j IP2MAC
  3. iptables -A IP2MAC -s 192.168.1.11 -m mac --mac-source XX:XX:XX:XX:XX:XX -j RETURN
  4. iptables -A IP2MAC -s 192.168.1.12 -m mac --mac-source YY:YY:YY:YY:YY:YY -j RETURN
  5. iptables -A IP2MAC -s 192.168.1.13 -m mac --mac-source ZZ:ZZ:ZZ:ZZ:ZZ:ZZ -j RETURN
  6. iptables -A IP2MAC -j DROP

需要注意的是自定義鏈是不能設置默認規則的。另外代碼中很明顯eth1是內網卡,eth0的外網卡

10.期待你的分享和添加

Copyright © Linux教程網 All Rights Reserved