我已经尝试了四天来阻止 DDoS 攻击,但没有成功。我想阻止所有未列入白名单的内容。
这是我在Centos 7操作系统上的想法:
//Delete All Existing Rules
iptables --flush
//Set Default Chain Policies
iptables -P INPUT REJECT
iptables -P OUTPUT REJECT
iptables -P FORWARD REJECT
//This is the IP i want to whitelist
//I think this line doesnt work, because i cant connect BUT...
iptables -A INPUT -i eth0 -s 180.243.22.122 -j ACCEPT
//Loop here for add desired future IP
在我的测试中,没有人可以连接到任何端口,但我可以使用任何 UDP 压力器自行进行 DDoS 攻击...为什么?
答案1
您正在使用默认策略 REJECT 主动拒绝任何连接
iptables -P INPUT REJECT
。
要阻止来自某个 IP 的连接,您可以在规则中使用 DROP 或 REJECT 而不是 ACCEPT:
iptables -A INPUT -i eth0 -s 180.243.22.122 -j DROP
您遇到的问题是因为您拒绝了所有连接,使用 REJECT 会向源发送 ICMP 数据包,告知它连接被拒绝。您可以改用 DROP,它不会发送响应。无法连接到任何服务的问题是由于您没有打开任何传入连接,您可以使用例如
iptables -A INPUT -p tcp --dport <port no.> -j ACCEPT
iptables -A INPUT -p udp --dport <port no.> -j ACCEPT
希望这可以帮助。
答案2
这里有三件事让我关心。
1.正如其他人提到的,您的策略设置为REJECT
。甚至不确定这是否是策略的有效目标---我相信它只是一个目标扩展,但请仔细检查您的手册页。
您想要的目标是DROP
。您可以从以下类似内容开始(确保你在控制台上而不是 SSH 上,因为你可能会断开连接并被锁定):
iptables -F # Clear out chains
iptables -Z # Delete user chains
iptables -X # Reset counters
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP # Do not like this, more on that in 2nd and 3rd points
2.如果您只从该 IP 地址获取连接,则处理方式INPUT
应该可以正常工作。但是,由于所有数据包都经过过滤,因此建立连接时会遇到问题OUTPUT
。您应该执行以下操作:
iptables -A INPUT -s 180.243.22.122 -j ACCEPT
iptables -A OUTPUT -d 180.243.22.122 -j ACCEPT
话虽如此...
3.DROP
将其用作OUTPUT
策略可能会产生大量意想不到的后果。例如,从存储库获取更新并导致 DNS 查询失败。坦率地说,在我看来,出口规则很少有道理。我会做以下事情:
iptables -P OUTPUT ACCEPT # Replace the other policy
# This accepts all related connections
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
这会更加理智并且不会带来太多的麻烦。
总结一下,这就是我的想法:
iptables -F # Clear out chains
iptables -Z # Delete user chains
iptables -X # Reset counters
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Accept loopback
iptables -A INPUT -i lo -p all -j ACCEPT
# Accept based on state
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# IP-based exceptions
iptables -A INPUT -s 180.243.22.122 -j ACCEPT