iptables常用使用场景分析

0x 01 前言

iptables功能丰富,应用场景多样,本文介绍5种常用场景。


0x 02 准备工作

1.删除旧表和规则

在配置新的iptables规则前,最好先将旧的配置和规则清除:

iptables -F
清除filter表规则
iptables -X 
清除自定义链
2.设置默认的chain策略

默认ACCEPT

iptables默认的chain策略为ACCEPT,放通所有流量,如果需要限制某些路径,再按需设置策略。

之前我一直觉得这样与ACL精神相违背,后来发现iptables的规则比我想象还要灵活很多,安全和易用可以兼得。下面的配置既可以保证安全,也可以避免起初在设置DROP策略时候,可能会由于人为失误等产生的无法连接的情况,维护起来也更为方便,删除策略不会对连通性产生风险。
具体策略如下:

如果是远程连接,需要先保证远程的shell的正常通信,在此默认使用ssh,且端口为22号,使用stateful防火墙特有的状态监测:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

放通ping的流量和本地回环流量
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

禁止其他的流量和流量转发
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited

默认DROP

这种设计与ACL的deny all 精神相符合,不过用起来确实会麻烦一点,为了完成基础通信,需要更多的配置。具体配置如下。

如果是远程连接,需要先保证远程的shell的正常通信,在此默认使用ssh,且端口为22号:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

为了保证yum或者apt的正常使用,正常连接各个镜像源,需要将DNS服务端口53和HTTP的默认80端口打开:
iptables -A INPUT -p udp -m udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

关闭filter三条默认链的所有流量,包括接收、转发和发出。
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

另外,在chain中要特别注意每条规则的上下顺序,默认是由上往下匹配。而且如果你的tar

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值