10.15 iptables filter表小案例
1、iptables小案例
vi /usr/local/sbin/iptables.sh //加入如下内容
#! /bin/bash
ipt="/usr/sbin/iptables" //定义变量,指定
绝对路径,避免因环境变量问题导致命令无法执行
$ipt -F //清除之前的规则
$ipt -P INPUT DROP //“-P”定义默认策略
$ipt -P OUTPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT //添加规则,正对指定的状态放行,使连接更顺畅
$ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT //添加规则,指定源网段放行
$ip,t -A INPUT -p tcp --dport 80 -j ACCEPT //添加规则,目的端口为80端口的数据包放行
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT //添加规则,目的端口为21端口的数据包放行
2、icmp示例
iptables -I INPUT -p icmp --icmp-type 8 -j DROP //禁止外部机器ping本机,本机可ping同外部机器
#systemctl restart iptables.service //重启iptables服务,恢复iptables规则
10.16-10.18 iptables nat表应用
A机器两块网卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联。
(1)需求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, 运行命令:route add default gw 192.168.100.1
- 注意给B机器ens37配置ip时可以通过编辑配置文件完成,也可以运行命令:ifconfig ens37 192.168.100.100/24 完成,但重启后就失效,建议编辑配置文件修改,B机器的ens33最好运行命令ifdown ens33关闭该网卡
(2)需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口
- 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机器的1122端口映射到B机器的22端口
- A上执行:iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130 //B机器的回包源IP路由到A机器的IP
- B上设置网关为192.168.100.1