Linux系统之iptables

来源:互联网 发布:阿百通软件 编辑:程序博客网 时间:2024/05/16 15:44

一、IPTABLES的认识

1、iptables和firewalld一样,都是一种动态控制防火墙的工具,通过设定一系列的策略从而保证在与其他主机进行数据传输时系统的安全性。

2、iptables具有filter、nat、mangle、raw四种内建表,各个表中又有内建链,有各自不同的功能。

二、IPTABLES的常用内建表

1、filter表:filter表示iptables的默认表,如果没有自定义表,则默认为filter表,具有三种内建链

INPUT:处理来自外部的数据;

OUTPUT:处理往外发送的数据;

FORWARD链:将数据转发至本机的其他网卡上。

2、nat表:nat表中有三种内建链:

PREROUTING:处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址、

     POSTROUTING:处理即将离开本机的数据包。它会转换数据包中的源IP地址

     OUTPUT:处理本机产生的数据包

      3、mangle表:Mangle表用于指定如何处理数据包。有五个内建表

           PREROUTING、OUTPUT、POSTROUTING、FORWARD、INPUT

      4、raw表:用于处理异常,有两个内建表:PREROUTING、OUTPUT

三、IPTABLES的命令设定

     1、安装及部署

             

     

    注意:在使用Iptables管理防火墙时,需要将firewalld服务关掉!!!

             

2、iptables -nL :查看默认表的基本信息

上图可以看出在默认表中设定许多策略,这些策略也可在配置文件/etc/sysconfig/iptables中查看

3、iptables -F :刷新Iptables的策略,即删除所有的策略

service iptables save表示保存该设定,即将该设定写进配置文件(永久设定)

iptables的策略设定

1、iptables -A INPUT -s 172.25.254.25 -p tcp --dport 22 -j ACCEPT

各参数

-A :表示添加一个策略;

-s  :表示策略所指定的ip 

-p :表示策略设定所使用的协议

--dport:表示策略所指定的接口

-j :表示策略的动作,REJECT表示拒绝,ACCEPT表示允许,DROP表示丢弃

该条策略表示允许172.25.254.25主机通过22端口(ssh服务)访问自己,并将该策略写进filter的INPUT链中

2、iptables -I INPUT 2 -j REJECT

各参数

-I :表示添加一条策略

2  :表示将该策略添加到INPUT链的第二条

该条策略表示拒绝所有网络服务

注意:链中策略的读取是有顺序的,如果靠前的策略的设定对于数据包有处理,则不读取靠后的策略,对于上图中该INPUT链的策略,由于第二条策略表示拒绝所有的服务,如果172.25.254.25主机通过22端口访问该主机,由于第二条对该数据包有处理(拒绝),则不读取第三条策略,即不能连接

3、iptables -D INPUT -j REJECT

-D:表示删除某个策略

该命令表示将默认表的INPUT链中的-j REJECT策略删除

4、iptables -D INPUT 1

       

命令表示删除INPUT链中的第一条策略

5、iptables -N westos

-N :表示新建一个链

westos为新链的名称,可以自行设定

6、iptables -E westos linux

-E:表修改链名

该命令表示将westos链的名称修改为linux

7、iptables -X linux

-X:表示删除一个链

该条命令表示删除linux链

8、ipatbles -R INPUT 1 -s 172.25.254.25 -p tcp --dport 22 -j REJECT

-R:表示修改某个策略

该条命令表示将INPUT链中第一条策略修改为“1”后面的策略

9、iptables -P FORWARD DROP

-P:表示修改链的动作

DROP:表示对于所有数据包进行丢弃,没有任何回应

10、iptables -t nat -nL

-t:表示指定表

该命令表示查看nat表的信息

11、iptables -A INPUT ! -s 172.25.254.25 -p tcp --dport 22 -j REJECT

表示该策略是针对于除了该指定Ip的其他IP

该命令表示除了172.25.254.25以外的所有主机都不能从22端口访问该主机

12、iptables -A INPUT -m state --state ESTABLISHED,RLATED -j ACCEPUT

-m,--state:表示iptables的状态机制,共有四种状态机制

NEW:该数据包想要开始一个新的连接

ESTABLISHED:已经注意到两个方向上的数据传输,而且会继续匹配这个连接的包,即只要发送并接到应答

RELATED:该包是属于已经建立的某个连接所建立的新连接

INVALID:该包不匹配于任何连接,通常这些被DROP

该条策略的含义为状态为ESTABLISHED和RELATED的链接全部可通过!!!!

13、iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.121

POSTROUTING表示路由后转发;

-o :表示数据包从eth0网卡出去;

SNAT:表示源地址转换,即发出去的包的IP地址均转换为172.25.254.121

14、iptables -t nat -A PREROUTING -i eth0 -d 172.25.254.121 -j DNAT --to-dest 172.25.0.2

PREROUTING表示路由前转发,即在访问前进行转换

-i:表示数据包从eth0网卡进来;

-d:表示目的地址

DNAT表示目的地址转换;

该条策略表示目的地址为172.25.254.121的数据包在进行访问时目的地址转换为172.25.0.2!!

测试:用网关为172.25.0.2且ip与网关为同一网段的主机连接172.25.254.121,由于与目的地址不在同一网段,没有该策略时肯定不能连通,而有该策略时则可以连通

         

原创粉丝点击