一、iptables概述
iptables是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。类似于firewalld。
二、iptables的使用
实验环境:
systemctl stop firewalld
systemctl disable firewalld
systemctl start iptables
systemctl enable iptables
1.iptables常用命令
iptables -nL ##查看iptables的规则信息
iptables -F ##刷新iptables的信息
service iptables save ##将iptables信息保存在/etc/sysconfig/iptables
常用参数:
-n 不做解析
-L查看
-F 清空(临时)
-t 表名
-A添加(默认最后一条)
-I添加(可以指定位置)
-R修改
-s来源
-D删除
-m状态 ESTABLISHED正在连接的 RELATED 已经连接过的 NEW 新的
2.iptables策略的设置
iptables -t filter -nL ##查看filter表的策略信息,-t表示指定表
iptables -P INPUT DROP ##设置INPUT链为不回复
iptables -A INPUT -p tcp --dport 80 -j REJECT ##设置拒绝80端口
iptables -D INPUT 2 ##删除INPU链表的第二条
iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT ##在INPUT链的第一条插入允许80端口
iptables -R INPUT 1 -s 172.25.254.65 -p tcp --dport 80 -j ACCEPT
3.filter表的设置
iptables -N westos 添加westos链
iptables -E westos WESTOS 更改链的名字
iptables -X WESTOS 删除自定义的链
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 允许已经连接过的和正在连接的
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT (sshd)
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT (nfs)
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT(https)
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT (http)
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT 允许回环接口
iptables -A INPUT -j REJECT 除上述规则之外的所有都拒绝
地址的伪装:
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.168
测试:
ping 172.25.254.65 ##可以ping通
路由前进(自动调转):
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 172.25.9.169
测试:
ssh [email protected]
ifconfig ##ip为169,自动跳转