包过滤防火墙
iptables 工具
4部分功能(4个表)
raw
mangle 关于数据流量的跟踪与整形
nat 网络地址转换
filter 过滤
中间做路由交换的虚拟机需要开启路由转发。
临时开启(路由转发)
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t filter -nvL
n:IP地址使用数字显示
v:详细信息
L:列出全部
每个表都有专门写规则的地方(chain链)
filter 表有三个链
INPUT
FORWARD(转发规则链):当源地址192.168.1.1 以及目标地址172.16.1.10
OUTPUT(出站链):将数据包向外发送
watch -n1 iptables -t filter -nvL
看iptables一秒变化一下
iptables -t filter -I INPUT -p tcp --dport 80 -j REJECT
给iptables filter的INPUT链加一条规则,这条规则加在最上面,如果这个协议是TCP协议,访问的是我的80端口,那我就拒绝访问(注意大写REJECT)
iptables编写格式
控制类型可以写:
DROP与REJECT的区别:
用ping的提示作为对比,如果是拒绝是目标主机不可达。如果是丢弃则会持续丢包,不会有提示。
查看方面的选项:
删除规则:
指定默认策略:(REJECT不可以选)
匹配规则:
通用匹配:
iptables-save 保存当前状态(当前转态)
iptables-restore < 路径/文件(导入规则)
service iptables save (保存成为默认规则,重启也生效)
NAT表 网络地址转换
路由后链:POSTROUTING
iptables -t nat -A POSTROUTING -p tcp -o ens-33(网口) -s 192.168.1.0/24 -j SNAT --to-source 12.34.56.79
在配置完成后,若依然没有能够转发,可能是iptables FORWARD 进行了限制
如果我的源地址一直在进行变化,该如何配置NAT目标地址转换?
iptables -t nat -A POSTROUTING -p tcp -o ens-33(网口) -s 192.168.1.0/24 -j MASQUERADE