liunx中的iptables
作者: 邓聪聪
iptables 的入站端口放行策略:
1:
iptables -A INPUT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp --dport 993 -j ACCEPT iptables -A INPUT -p tcp --dport 995 -j ACCEPT iptables -A INPUT -p tcp --dport 110 -j ACCEPT iptables -A INPUT -p tcp --dport 143 -j ACCEPT iptables -A INPUT -p tcp --dport 25 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -s 118.188.0.0/16 -p tcp -m tcp --dport 22 -j ACCEPT iptables -A INPUT -j DROP
2:
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -s 118.188.20.0/24 -j ACCEPT
iptables -I INPUT -s 123.115.85.16/29 -j ACCEPT
iptables -I INPUT -s 1.81.0.0/22 -j ACCEPT
iptables -I INPUT -s 113.200.0.0/16 -j ACCEPT
iptables -A INPUT -j DROP
Cents7 安装 iptables 的应用 :yum -y install iptables-services
利用 liunx 的 iptables 进行目的地址转换和源地址转换
!!!需要开启内核转发
echo 1 >/proc/sys/net/ipv4/ip_forward
SNAT:
假如我要让公司 192.168.10.0/24 段的地址都通过 linux 服务器的 eth0 :123.123.123.123 上网
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 123.123.123.123
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j SNAT --to 123.123.123.123 # 更改所有来自 192.168.1.0/24 的数据包的源 ip 地址为 123.123.123.123
DNAT:
eth0:123.123.123.123
GATEWAY eth1:192.168.10.1 内网主机:192.168.10.10
要使访问 123.123.123.123 的 80 自动跳到 192.168.10.10 的 80 端口上
iptables -t nat -A PREROUTING -p tcp -d 123.123.123.123 --dport 80 -j DNAT --to-destination 192.168.10.10:80
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.10 --dport 80 -j SNAT --to-source 192.168.10.1 (内网之间进行 nat 才加上)
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -i eth1 -j DNAT --to 123.123.123.123 #更改所有来自 192.168.1.0/24 的数据包的目的 ip 地址为 123.123.123.123
第一条:将外部数据包的目的地址改到内网主机的指定端口
第二条:转发前,将外部源地址改为内网本地地址