vim /usr/local/sbin/iptables.sh
#!/bin/bash
ipt="/usr/sbin/iptables"
$ipt -F
$ipt -P INPUT DROP
$ipt -P OUTPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A INPUT -s 192.168.104.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
禁止别的电脑ping本机
iptables -I INPUT -p icmp --icmp-type 8 -j DROP
10.16 iptables nat表应用 (上)
nat 表应用
A机器两块网卡 ens33(192.168.104.160)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部往来,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联
需求1:可以让B机器连接外网
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
需求2: C 机器只能和 A 通信,让C机器可以直接连通B机器的22端口
A上打开路由转发 echo "1" > /proc/sys/net/ipv4/ip_forward
A上执行 iptables -t nat -A PREROUTING -d 192.168.104.160 -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.104.160
B上设置网关为 192.168.100.1
ifconfig ens37 192.168.100.1/24
ifconfig ens37 192.168.100.100/24
10.17 iptables nat表应用 (中)
A上打开端口转发,再添加iptables规则
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
B上设置网关
route add default gw 192.168.100.1
ping 192.168.104.160 能ping通,说明与外网可以通信了
添加DNS 119.29.29.29
10.18 iptables nat表应用 (下)
A 机器 先清空规则,再添加规则 (端口映射,实现远程连接)
iptables -F
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d 192.168.104.160 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.104.160
B上设置网关为 192.168.100.1
ifconfig ens37 192.168.100.100/24
route add default gw 192.168.100.1
原文地址:http://blog.51cto.com/9298822/2090029