本文共 1595 字,大约阅读时间需要 5 分钟。
iptables filter表小案例
实现放行21,80端口和对源IP属于133.168.133.0的IP段请求放行22端口:vi /usr/local/sbin/iptables.sh //加入如下内容#! /bin/bashipt="/usr/sbin/iptables"$ipt -F #清空之前的规则(filter表)$ipt -P INPUT DROP$ipt -P OUTPUT ACCEPT$ipt -P FORDARD ACCEPT$ipt -A INPUT -m stat --state RELATED,ESTABLISHED -j ACCEPT #放行状态为RELATED,ESTABLISHED的请求$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备注:
上述脚本第7行要加RELATED的原因是客户端和服务端建立了连接后,还有一些额外连接需要建立,这时状态就变成了RELATED,为了能通信不受到影响,所以此处需加上RELATED.icmp示例:
实现本机能ping通其他机器,但其他机器不能ping通本机:iptables -I INPUT -p icmp --icmp -type 8 -j DROP实验背景:
A机器两块网卡ens33(192.168.133.130),ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互连.* 需求1: 让B机器可以连接外网
(1)A机器上打开路由转发(1表示打开路由转发,默认为0,关闭状态)echo "1" > /proc/sys/net/ipv4/ip_forward(2)A机器上执行iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE(3)B机器上设置网关为192.168.100.1* 需求2: C机器只能和A通信,让C机器可以直接连通B机器的22端口
(1)A机器上打开路由转发(1表示打开路由转发,默认为0,关闭状态)echo "1" > /proc/sys/net/ipv4/ip_forward(2)A机器上执行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130(3)B机器上设置网关为192.168.100.1备注:
转载于:https://blog.51cto.com/13517946/2065112