什么是iptables
IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。
iptables 有三张表(filter 表 nat表 mangle 表) 和五条链(INPUT 链 、OUTPUT 链、PORWARD 链、PREROUTING链、POSTROUTING链)
一 安装并启动iptable 服务
yum install iptables
然后关闭防火墙 ,打开iptables
查看iptables列表
iptables -F 刷掉filter表中的测量,当没有用-t指定表名称时默认为filter
service iptables save 保存当前策略
设置之后我们可以发现其他的主机无法与本机连接
filtre 表设置通过所有的连接
我们再次尝试从其他的主机连接 可以连通
设置允许lo
允许访问22端口
允许访问80端口
iptable -D INPUT 1 删除INPUT链中的第一条策略
删除允许接入80端口的策略
iptables -D INPUT -p tcp --dport 80 -j REJECT
修改第一条策略
iptables -R INPUT 1 -s 172.25.254.228-p tcp --dport 80 -j ACCEPT
.iptables -N TEST 增加链TEST
改变链的名称
iptables -X 链名 删除链
数据包状态策略
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #允许RELATED,ESTABLISHED状态通过
iptables -A INPUT -i lo -m state --state NEW -j ACCEPT #允许lo 回环接口状态为NEW 的通过
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT #允许访问端口22状态为NEW通过
iptables -A INPUT -j REJECT #拒绝所有的数据来源
vsftp 在iptables 开启下的设置
ftp 在使用的时候会产生随机大于1024的端口这样就会导致新产生的端口无法通过防火墙
我们可以将端口固定
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
添加iptables允许通过6700端口策略
关闭selinux
setenforce 0
然后在另外一台主机上尝试可以登陆ftp
iptables 的伪装
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.128 #源地址转换
iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-dest 172.25.0.128 #目的地址转换
首先我们将客户机的ip 设置为 172.25.16.216 真机的ip为172.25.254.16
服务端的ip设置为 172.25.254.116 和 172.25.16.116 的双网卡
然后在服务端设置伪装
数据进入时的伪装
设置将从服务端eth1进去的数据伪装成源数据为172.25.254.116
先清空策略
添加策略
然后用客户机ping 172.25.254.16 发现可以ping 通
数据回来时的伪装
设置将从服务端eth0回来的数据伪装成源数据为172.25.16.216