我试图阻止所有端口上的整个互联网,但允许多个范围连接到特定的端口。 我希望这个规则集也适用于出站连接(使用REJECT而不是DROP )来防止识别攻击。
*filter # Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0 -A INPUT -i lo -j ACCEPT -A INPUT -d 127.0.0.0/8 -j REJECT # Accept all established inbound connections -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Allow all network traffic -A INPUT -s 192.168.0.0/24 -j ACCEPT -A INPUT -d 192.168.0.0/24 -j ACCEPT # Allow all SSH -A INPUT -p tcp --dport 22 -j ACCEPT # Permitted web connections -A INPUT -s 8.4.0.0/24 -p tcp --dport http -j ACCEPT -A INPUT -s 8.8.0.0/24 -p tcp --dport http -j ACCEPT -A INPUT -s 8.4.0.0/24 -p tcp --dport https -j ACCEPT -A INPUT -s 8.8.0.0/24 -p tcp --dport https -j ACCEPT -A OUTPUT -s 8.4.0.0/24 -p tcp --dport http -j ACCEPT -A OUTPUT -s 8.8.0.0/24 -p tcp --dport http -j ACCEPT -A OUTPUT -s 8.4.0.0/24 -p tcp --dport https -j ACCEPT -A OUTPUT -s 8.8.0.0/24 -p tcp --dport https -j ACCEPT # Reject all web not to or from a safe server -A INPUT -p tcp --dport http -j DROP -A INPUT -p tcp --dport https -j DROP -A OUTPUT -p tcp --dport http -j REJECT -A OUTPUT -p tcp --dport https -j REJECT # Drop all other inbound - default deny unless explicitly allowed -A INPUT -j DROP -A FORWARD -j DROP COMMIT
我非常严格的政策的缺点是添加额外范围的冗长。 每个范围需要四行政策工作。 入站/ HTTP,入站/ HTTPS,出站/ HTTP,出站/ HTTP。 保持直线是一个巨大的痛苦。
我想要这样的东西:
# Pseucode *group webservers 8.8.0.0/24 8.4.0.0/24 *filter -A INPUT -s webservers -p tcp --dport http -j ACCEPT -A INPUT -s webservers -p tcp --dport http -j ACCEPT -A OUTPUT -s webservers -p tcp --dport http -j ACCEPT -A OUTPUT -s webservers -p tcp --dport http -j ACCEPT
有没有简单的方法来完成这个?
你可能想尝试使用ipsets
如果你想
- 存储多个IP地址或端口号,并通过iptables一次性匹配收集;
- 根据IP地址或端口dynamic更新iptables规则,而不会影响性能;
- 用一个iptables规则表示复杂的IP地址和基于端口的规则集,并受益于IP集的速度
那么ipset可能是适合你的工具。
值得注意的是:
IP集是Linux内核中的一个框架,可以通过ipset实用程序进行pipe理
是的,该网站看起来自1996年以来一直没有更新。出于某种原因,计算机安全新闻来源和低级别软件/固件项目网页看起来很像。
您也可以尝试将特定范围内的所有stream量发送到自定义链,然后每个与端口相关的接受成为一个单行:
iptables -N CUSTOM iptables -I INPUT 1 -s 8.4.0.0/24 -j CUSTOM iptables -I INPUT 2 -s 8.8.0.0/24 -j CUSTOM etc. iptables -A CUSTOM - p tcp --dport 80 -j ACCEPT iptables -A CUSTOM - p tcp --dport 443 -j ACCEPT etc.
发送到CUSTOM链的来源范围的数据包与ACCEPT不匹配的数据包将返回到INPUT链,以处理(即DROP ping)所有剩余的不需要的stream量。