zoukankan      html  css  js  c++  java
  • iptables简单应用


    可以修改/etc/rc.d/boot.local让规则重启后也能生效,如:
    /sbin/iptables -F
    /sbin/iptables -A INPUT -i eth0 -p tcp --sport 80 -j ACCEPT
    /sbin/iptables -A INPUT -i eth0 -p tcp -j DROP
    /sbin/iptables -A INPUT -i eth0 -p udp -j DROP


    iptables是一个链的方式从前往后判断,如果前面的规则成立就不会往后继续,所以要注意顺序,一般每行对应一条规则。
    -A是Append意思,也就是追加
    -I是Insert意思,也就是插入


    -F表示清除(即删除)掉已有规则,也就是清空。
    查看已有的规则,执行命令:iptables -L -n
    如(参数-L为list意思,-n表示以数字方式显示IP和端口,不指定-n则显示为名称,如:http即80端口):
    # iptables -L -n
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:443
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80
    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           
    DROP       udp  --  0.0.0.0/0            0.0.0.0/0           


    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         


    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination 


    从可以看到:iptables有三种规则链(Chain),即INPUT、OUTPUT和FORWARD。
    INPUT 用于指定输入规则,比如外部是可以访问本机的80端口
    OUTPUT 用于指定输出规则,比如本机是否可以访问外部的80端口
    FORWARD 用于指定端口转发规则,比如将8080端口的数据转到到80端口


    -I和-A需要指定链(Chain)名,其中-I的链名后还需要指定第几条(行)规则。
    可通过-D参数删除规则,有两种删除方式,一是匹配模式,二是指定第几条(行)。
    也可以通过-R参数修改已有规则,另外-L参数后也可以跟链(Chain)名,表示只列出指定链的所有规则。
    -j参数后跟的是动作,即满足规则时执行的操作,可以为ACCEPT、DROP、REJECT和REDIRECT等。


    在iptables的INPUT链的第一行插入一条规则(可访问其它机器的80端口):
    iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT


    在iptables的INPUT链尾追加一条规则(可访问其它机器的80端口):
    iptables -A INPUT -p tcp --sport 80 -j ACCEPT


    如果要让其它机器可以访问本机的80端口,则为:
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT


    插入前:
    # iptables -L -n
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           
    DROP       udp  --  0.0.0.0/0            0.0.0.0/0  


    插入:
    # iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT


    插入后:
    # iptables -L -n
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80
    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           
    DROP       udp  --  0.0.0.0/0            0.0.0.0/0  


    追加前:
    # iptables -L -n
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           
    DROP       udp  --  0.0.0.0/0            0.0.0.0/0 


    追加:
    # iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT


    追加后(ACCEPT将不能生效):
    # iptables -L -n
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           
    DROP       udp  --  0.0.0.0/0            0.0.0.0/0 
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80
  • 相关阅读:
    java web 入门实例servlet篇(显示后台数据库列表,删除某一条记录并显示)
    我的成长比价系列:java web开发过程中遇到的错误一:sql语句换行错误
    spring mvc + velocity 搭建实例程序maven版本并且使用的是tomcat容器而不是jetty(step by step)
    spring mvc学习笔记(一)web.xml文件配置的一点重要信息
    与数据库连接的页面增删改查 的easyui实现(主要是前端实现)
    oracle 11g 空表导出
    EMCA和EMCTL的简单用法
    vs2010补丁
    CAS 策略已被 .NET Framework 弃用
    sqlserver2008 链接服务器 2000
  • 原文地址:https://www.cnblogs.com/aquester/p/9891494.html
Copyright © 2011-2022 走看看