iptables笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptables笔记相关的知识,希望对你有一定的参考价值。

查看iptables表

iptables -t filter -L
iptables -t nat -L
iptables -t mangle -L

介绍iptables命令

iptables -t table 命令 chain rules -j target

    table 可以是filter、nat、mangle,默认是filter
    -p 或--policy 定义默认策略
    -A 或--addend 在规则列表的最后增加一条规则
    -I 或--insert 在指定的位置插入一条规则
    -D 或--delete 删除一个规则
    -R 或--replace 替换规则列表中的某个规则
    -F 或--flush  删除表中所有规则

    iptables -t filter -P FORWARD ACCEPT
    iptables -t filter -I INPUT -p icmp -j DROP
    iptables -t filter -I INPUT 2 -p icmp -j DROP
    iptables -t filter -D INPUT 1
    iptables -t filter -R INPUT 1 -p icmp -j ACCEPT
    iptables -t filter -F

iptables 匹配选项

-i 或--in-interface---------指定数据包从哪个网络接口进入。
-o 或--out-interface------指定数据包从哪个网络接口输出
-p 或--protocol------------协议类型,指定数据包匹配协议
-s 或--source--------------指定数据包匹配的源地址
-d 或--destination--------指定数据包匹配的目标地址
--sport----------------------指定数据包匹配的源端口号
--dport----------------------指定数据包匹配的目标端口

iptables 处理动作

-j 参数用来指定要进行的处理动作,常用的处理动作包括:ACCEPT、REJECT、DROP、REDIRECT、MASQUERADE、LOG、DNAT、SNAT、MIRROR、RETURN、MARK。

    ACCEPT:
        将封包放行,进行完此处理动作后,将不再匹配其它规则,直接跳往下一个规则链。

        示例:iptables -t filter -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT      
    DROP:
        丢弃封包不予处理,进行完此动作后,将不再匹配其它规则,直接中断过滤程序。

        示例:iptables -t filter -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
    REJECT:
        阻拦该封包,并传送封包通知对方,可以传送的封包有几个选择:ICMP port-unreachable、ICMP echo-reply或是tcp-reset(这个封包会要求对方关闭连接)、进行完此处理动作后,将不再匹配其它规则,直接中断过滤程序。

        示例:iptables -t filter -A INPUT -p icmp -m icmp --icmp-type 8 -j REJECT
    LOG:
        将封包相关信息记录到/var/log中,日志文件详细位置查阅/etc/syslog.conf配置文件,进行完此动作处理后,将会继续匹配其它规则。

        示例:iptables -t filter -I INPUT -p tcp --dport 80 -j LOG

iptables 扩展匹配选项

匹配扩展中,还需要加-m引用模块的显示扩展

    参数 -m state
        基于状态监测的包过滤,指定监测那种状态
        --state {NEW, ESTTBLISHED, INVALID, RELATED}
        说明:用来比对链接状态,链接状态共有四种NEW, ESTTBLISHED, INVALID, RELATED。
        INVALID 表示该封包的链接编号(Session ID)无法辨识或编号不正常
        ESTABLISHED 表示该封包属于某个已经建立的连接
        NEW 表示该封包想要起始一个连接(重设连接或将连接重定向)
        RELATED 表示该封包是属于某个已经建立的连接,所建立的新连接。例如:FTP-DATA 连接必定是源自某个FTP连接

        示例:DMZ区域中的服务器不能主动建立TCP连接,在OUTPUT链中将所有SYN报文丢弃
            iptables -t filter -I OUTPUT -m state --state NEW -j DROP

    参数 -m icmp --icmp-type
        ping命令使用ICMP协议检查网络是否畅通,ICMP有两种常见的类型的数据包即icmp-type,常用的类型为echo-reply和echo-request。也可以使用代码来表示。
        echo-reply 0
        echo-request 8

        示例:服务器可以ping通其他机器,其他机器不能ping通本机器
            iptables -t filter -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP

    参数 -m multiport
        指定多端口号
            --sport     源端口
            --dport     目标端口
            可以使用"起始端口:结束端口"的格式指定一个范围的端口

        示例:对外只放行22,80,1024-1026端口,其它端口的报文全部丢弃
            iptables -t filter -A INPUT -p tcp -m multiport --dport 22,80,1024:1026 -j ACCEPT
            iptables -t filter -P INPUT DROP

    参数 -m iprange
        指定多IP段
        --src-rangeip-ip
        --dst-rangeip-ip

        示例:只允许192.168.56.1-192.168.56.254访问本服务器22,88端口,其它IP拒绝访问
            iptables -t filter -A INPUT -p tcp -m multiport --dport 22,80 -m iprange --src-range 192.168.56.1-192.168.56.254 -j ACCEPT
            iptables -t filter -A INPUT -p tcp -m multiport --dport 22,80 -j DROP

    参数 -m connlimit
        --connlimit-above 限定连接数

        示例:ssh只允许同一个IP建立两个会话,超出丢弃,防止ssh爆破
            iptables -t filter -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 2 -j DROP

    参数 -m limit 
        --limit

        用来比对某段时间内封包的平均流量,上面的例子是用来比对每小时平均流量是否超过300个封包。
        除了每小时平均一次外,也可以每秒钟、每分钟、每小时或每天平均一次,

        示例:
            iptables -t filter -I INPUT -m limit --limit 300/second -j ACCEPT
            iptables -t filter -A INPUT -j DROP

    参数 -m mac --mac-source
        用来比对封包来源网络接口网卡硬件地址,这个参数不能用在OUTPUT和Postrouing规则链上。

        示例:ssh服务只允许MAC为 0A:00:27:00:00:14 访问,其他全部拒绝
            iptables -t filter -A INPUT -p tcp --dport 22 -m mac --mac-source 0A:00:27:00:00:14 -j ACCEPT
            iptables -t filter -A INPUT -p tcp --dport 22 -j DROP

以上是关于iptables笔记的主要内容,如果未能解决你的问题,请参考以下文章

iptables 学习笔记

iptables学习笔记

linux自学笔记--iptables

iptables学习笔记

iptables基础笔记

iptables防火墙使用笔记