iptables小案例bash
vi /usr/local/sbin/iptables.sh //加入以下內容網絡
#! /bin/bash ipt="/usr/sbin/iptables" $ipt -F 清空規則 $ipt -P INPUT DROP 更改input鏈的默認規則爲drop, 如下2個鏈爲accept $ipt -P OUTPUT ACCEPT $ipt -P FORWARD ACCEPT $ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -m 指定狀態放行 //除了如下幾條規則外也需加上這條規則,不然不能正常通訊 $ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT $ipt -A INPUT -p tcp --dport 80 -j ACCEPT $ipt -A INPUT -p tcp --dport 21 -j ACCEPT
執行: sh /usr/local/sbin/iptables.shtcp
icmp示例code
iptables -I INPUT -p icmp --icmp-type 8 -j DROP 外網禁ping本機地址ip
• nat表應用路由
• A機器兩塊網卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33能夠上外網,ens37僅僅是內部網絡,B機器只有ens37(192.168.100.100),和A機器ens37能夠通訊互聯。input
• 需求1:可讓B機器鏈接外網虛擬機
A虛擬機上增長一塊網卡, 選van區段, 配置ip, netmask B機器網卡也選van區段, 設置ip,netmask , 讓互相ping通table
• A機器上打開路由轉發 echo "1">/proc/sys/net/ipv4/ip_forward配置
• A上執行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
• B上設置網關爲192.168.100.1
route add default gw 192.168.100.1
• 需求2:C機器只能和A通訊,讓C機器能夠直接連通B機器的22端口(端口映射)
先清除nat表的規則
• A上打開路由轉發echo "1">/ proc/sys/net/ipv4/ip_forward
• A上執行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
• A上執行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130
• B上設置網關爲192.168.100.144