Iptables
一、Iptables命令管理
1.显示内核三张表的信息
iptables -nL ##默认为filter表
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
iptables -nL -t nat ##显示nat表
Chain PREROUTING (policy ACCEPT)
Chain INPUT (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
Chain POSTROUTING (policy ACCEPT)
iptables -nL -t mangle ##显示mangle表,备用
Chain PREROUTING (policy ACCEPT)
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
Chain POSTROUTING (policy ACCEPT)
2.表格命令编辑 ##默认filter表
iptables -A INPUT -s 172.25.254.2 -j REJECT ##添加
iptables -D INPUT 6 ##删除INPUT链的第8条
iptables -I INPUT -s 172.25.254.2 -j REJECT ##插入至第1条
iptables -R INPUT 1 -j ACCEPT ##将INPUT第1条规则改为ACCEPT
【iptables -F ##刷新(类似删除)配置,但是重启后配置依然存在
systemctl restart iptables.service】
【iptables -F ##刷新后保存,重启后配置为空
service iptables save
systemctl restart iptables.service】
iptables -P FORWARD DROP ##将FORWARD链规则改为DROP
iptables -N redhat ##新建redhat自定义链
iptables -E redhat REDHAt ##修改自定义链的名称
iptables -X REDHAt ##删除自定义链
3.服务管理
[[email protected] ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
###允许所有主机链接ssh(22)
[[email protected] ~]# iptables -A INPUT -s 172.25.254.8 -p tcp --dport 80 -j ACCEPT
###只允许主机8链接http(80)
[[email protected] ~]# iptables -A INPUT ! -s 172.25.254.8 -p tcp --dport 53 -j REJECT
###除了主机8都拒链接DNS(53)
[[email protected] ~]# iptables -A INPUT -j REJECT
###读取以上规则后,其他所有访问拒绝 (从前到后,逐条读取)
##将修改后的配置保存在文件/etc/sysconfig/iptables中
二、Iptables地址转换
注意:
1.一定要刷新filter表
iptables -F
2.打开内核路由
[[email protected] ~]# vim /etc/sysctl.conf
[[email protected] ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0
[[email protected] ~]# sysctl -p ##和重启服务效果一样
net.ipv4.ip_forward = 1
3.主机172.25.66.2配置网络
IPADDR = 172.25.66.2 (一块网卡主机)
GATEWAY = 172.25.66.10 (两块网卡主机IP)
4.设定策略
[[email protected] ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.1
[[email protected] ~]# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 172.25.66.2
[[email protected] ~]# iptables -nL -t nat
5.当主机 10 访问链接 1 主机时,转换到66.2主机上