Linux

来源:互联网 发布:机器人单片机 编辑:程序博客网 时间:2024/06/16 09:16

什么是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         保存当前策略



filter表丢弃所有,



设置之后我们可以发现其他的主机无法与本机连接

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