iptables 仅允许 Web 服务器的输入和输出流量

iptables 仅允许 Web 服务器的输入和输出流量

我有一个 Elastic Search 服务器似乎已被利用(它被用于 DDoS 攻击,大约一个月没有防火墙)。

作为创建新服务器的临时措施,我希望阻止所有不来自或不去往我们 Web 服务器的流量。这些 iptables 规则能否实现这一点:

iptables -I INPUT \! --src 1.2.3.4 -m tcp -p tcp --dport 9200 -j DROP
iptables -P FORWARD \! --src 1.2.3.4 DROP
iptables -P OUTPUT \! --src 1.2.3.4 DROP

第一条规则已经尝试和测试过,但显然无法阻止从我的服务器到其他 IP 地址的流量,所以我希望可以添加后两条规则来完全保护它。

答案1

为了实现这一点,我将在定义允许的 IP 之后实现默认丢弃。因此它看起来像

iptables -I INPUT --src 1.2.3.4 -p tcp --dport 9200 -j ACCEPT
iptables -P INPUT DROP
iptables -I FORWARD --src 1.2.3.4 ACCEPT
iptables -P FORWARD DROP
iptables -I OUTPUT --src 1.2.3.4 ACCEPT
iptables -P OUTPUT DROP

另外,请记住,FORWARD 链很可能不会执行任何操作,除非您有多个 nic、vlan 标记等...并且 中的“1” /proc/sys/net/ipv4/ip_forward

另外,先测试你的规则,并可能添加一个 10 分钟的 cron 来刷新规则,或者你可能如果这是一台远程机器,则将自己锁定,没有带外控制台访问权限:)

相关内容