防火墙规则之iptables

防火墙规则之iptables

一 如何禁止外面应用对某个端口访问

    iptables -I INPUT -p TCP ! --source 127.0.0.1 --dport 8080 -j DROP
    iptables -I INPUT -p TCP ! --source 127.0.0.1 --dport 9200 -j DROP

这条命令的意思是拒绝外面的所有的IP对本机的8080和9200端口的访问,但是允许本地的127.0.0.1以及localhost能够访问本地的9200以及8080端口

二 iptables的INPUT链的一些拓展

  iptables -t filter -A INPUT -s 10.88.32.20 -d 10.88.32.19 -p tcp -m multiport --dport 80,22 -m state --state NEW -j DROP

  解释:该条命令使用的是filter表,INPUT链,拒绝10.88.32.20网段的IP访问主机80,22端口

    -t 使用的是filter表也可以省略

    -A 插入的形式

            -s 源端的ip地址

    -p tcp协议

    -m 制定mac地址,多端口或者对tcp各种状态的限制等

    -j 动作   丢弃或者接受

  注意:这个生效的前提是iptables里面的规则不能与其有冲突

三 还可以针对某个网段的IP进行限制访问

  例如: iptables -t filter -A INPUT -p tcp -s 10.88.0.0/16 -d 10.88.32.19 -m multiport --dport 80,22 -m state --state NEW -j DROP

  用法解释:10.88.32.19这个IP对于源IP是10.88.0.0/16网段的

四  针对服务的某个端口仅仅只对指定的IP开放

  例如: iptables -t filter -A INPUT -p tcp ! -s 10.88.32.20 -d 10.88.32.19 -m multiport --dport 80,22 -m state --state NEW -j DROP

  用法解释:10.88.32.19这个地址的80以及22的端口只能允许10.88.32.19这个ip访问

五 针对某个机器的某些端口只对某个网段访问支持

  例如:iptables -t filter -A INPUT -p tcp ! -s 10.88.0.0/16 -d 10.88.3.20 -m multiport --dport 80,22 state --state NEW -j DROP

六  如何删除一条iptables规则

  iptables -D chainname[INPUT/OUPPUT/FORWARD]

  例如: iptables -D INPUT 5

  意思是删除本机的INPUT表的第五条规则

七 使用iptables对服务器禁止ping命令

  iptables -t filter -A INPUT -p icmp ! -s 10.88.0.0/16 -d 10.88.32.19 -m state --state NEW -j DROP 

  用法解释:这条命令是可以让目的IP为10.88.32.19的服务器仅仅接受来自10.88.0.0/16网段的ip的ping测试

八 iptables的OUTPUT链的拓展

  8.1  不允许本机服务器对外面所有的机器进行ping命令

    iptables -t filter -A OUTPUT -p icmp -j DROP

  8.2 仅仅允许对指定的10.88.0.0/16网段进行ping命令访问

    iptables -t filter -A OUTPUT ! -d 10.88.0.0/16 -m state --state NEW -j DROP

  8.3 本机仅仅只能对10.88.0.0/16网段的指定22,8888端口访问

    iptables -t filter -A OUTPUT -p tcp ! -d 10.88.0.0/16 -m multiport --dport 22,8888 -m state --state NEW -j DROP

  8.4 禁止mac为00:0c:29:27:55:3F的访问本机的22端口

    iptables - t filter -A INPUT -p tcp -m tcp -s 10.88.0.0/16 --dport 22 -m mac --mac-source 00:0c:29:27:55:3F -j DROP

  8.5 防止DDOS攻击

    iptables -t filter -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-brust 100 -j ACCEPT

    当链接数超过100的时候允许最多每分钟25个进行链接 

九 iptables的NAT链的拓展

  9.1  在同一个网段的地址转换,我希望的是将来自10.88.32.20的8888端口转发到10.88.32.19的80端口上面

    iptables -t nat -A PREROUTING -p tcp -d 10.88.32.20 --dport 8888 -j DNAT --to-destination 10.88.32.19:80

    iptables -t filter -A INPUT -p tcp -m tcp --dport 8888 -j ACCEPT

注意: 更详细的规则描述可以参考

  https://www.cnblogs.com/kevingrace/p/6265113.html

原文地址:https://www.cnblogs.com/wxm-pythoncoder/p/14577290.html