iptables参数详解

一、IPTABLES 主要参数:

-A   添加规则到链表末尾

-I     添加规则到首部

-t     操作的表,后面加表名,不加这个参数默认操作表为filter

-D  删除表中规则,可以指定序列号或者匹配的规则来删除

(iptables  -t nat  -D PREROUTING 1)

-F  清空规则,重启后恢复(iptables -F 清空的是filter表)

-L  列出规则

-p  用来指定协议

-s     指定源地址 (取相反ip  -s  ‘!’ 172.24.254.120 )

-d    指定目的地址(取相反ip  -s  ‘!’  172.24.254.120/24  其中/24 表示的是掩码)

-i     进入接口 如:eth0

-o  流出接口

-j   采取的动作:ACCEPT,DROP,SNAT,DNAT,MASQUERADE,REDIRECT

--sport     源端口 

--dport    目的端口,端口必须和协议一起,才能使用;多个端口如何使用?--dprot 1:24

 

二、配置文件:/etc/sysconfig/iptables

三、启动服务:/etc/init.d/iptables start/stop/restart

四、Iptables的三个表:filter(管理本机的数据包进出),nat(用来进行来源与目的ip或者port的转换),mangle(可以只定义规则,一般用不到)

五、例题

    Iptables  -t filter -A INPUT  -s  172.24.254.120 -p tcp --dport 80 -j  DROP

     禁止172.24.254.120 访问本机的80端口 (使用--dport必须加上协议

    Iptables  -t  filter -I  OUTPUT -d  172.24.254.111 -j DROP

     禁止本机向172.24.254.111发送信息包

六、注意项

   规则顺序的重要性:假设input列表中有10条规则,当一个数据包要进入主机时,防火墙如何分析这个数据包的,数据包过滤的规则操作及分析过程:数据包先与input链中第一条规则进行匹配,符合匹配则进行第一条规则的动作:accept或者drop。而不会理睬后续的9条规则。如果不符合第一条规则则逐一往下匹配,如果全部不符合则执行默认策略(ACCEPT或者DROP)。

如何修改默认策略?Iptables-P INPUT DROP/ACCEPT

当修改input默认策略为drop时(iptables -P INPUT DROP);ssh会马上掉线

 

简单的filter表规则添加不多提,详细可以参考鸟哥服务器篇,262页。

 

七、NAT原理与配置

1、在做nat之前,要先将路由转发功能打开,不然数据链forward都过不了

 

2、nat表中的三个链:PREROUTING(路由之前),POSTROUTING(路由之后),OUTPUT

3、需要用到的几个动作选项:

          REDIRECT:端口的转换

    SNAT:  源地址转换

DNAT:  目的地址转换

MASQUERADE:ip伪装用于动态获取ip地址的主机。如果主机地址静态分配的,就用SNAT

4、数据流向过程分析

      数据依次经过PREROUTING-------FORWORD -------POSTROUTING这三个链

      SNAT数据流向过程分析:首先进入PREROUTING,发现不是本网段的地址,而后开始查找路由表(查找路由的过程在PREROUTING和FORWORD之间),再经过FORWORD进行转发,在经过POSTROUTING进行nat转换。在这个流程中,nat转换的步骤在POSTROUTING链上操作,之所以不在PREROUTING上操作是因为数据进来之前还不知道本网段地址是外网地址。

       DNAT数据流向过程分析:在DNAT中nat抓换在PREROUTING链上操作,因为数据进入主机后,路由选择过程在PREROUTING和FORWORD之间,所以只有先做完地址转换,才进行路由选择。

 

      科普下:路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由工作在OSI参考模型第三层——网络层数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IPIPX/SPXAppleTalk等协议)。

八、例题

1、使用防火墙,将80端口的请求转发到8080端口

Iptables  -t nat -I PREROUTING  -p tcp --dprot80  -j REDIRECT --to-port 8080

 

2、使用防火墙技术,将本机上的80端口请求转发到另外一台主机的8080端口上

假设本机内网ip为172.24.254.55/16  外网ip为 172.24.254.120/24

另一台内网ip为:172.24.254.44/16

        Iptables -t nat  -I PREROUTING -d 172.24.254.120/24 -p tcp--dport  80 -j 

        DNAT --to-destination172.24.254.44:8080

        Iptables -t nat -I POSTROUTING  -s 172.24.254.44/16 -p tcp --dport 8080 -j

        SNAT --to-source 172.24.254.120:80

 

3、定制一条iptables,实现:只允许8.8.8.8,使用udp协议,访问本机的1-1024端口,其他全部拒绝。

        Iptables -I INPUT -s ‘!’ 8.8.8.8-p udp --dport 1:1024 -j dorp

 

 

 

九、当数据包到达防火墙是,防火墙的一系列操作

1、以本地为目标的包

2、以本地为源的包

3、被转发的包

  

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值