Ubuntu
埠並沒有真正被 iptables 阻塞
我在 Ubuntu 14.04.4 LTS 上,我受到了一些埠的攻擊,我在自己的伺服器中阻止了除 SSH 之外的所有埠,我這樣做是這樣的:
iptables -F iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -A INPUT -p icmp -j DROP iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -j DROP iptables -A OUTPUT -p icmp -j DROP iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT iptables -A OUTPUT -j DROP iptables -A FORWARD -p icmp -j DROP iptables -A FORWARD -j DROP
當我攻擊自己的伺服器並通過 TCPDump 查看數據包時,仍有傳入數據包到 27015 INPUT UDP 埠!我錯過了什麼?這些數據包使我的伺服器滯後!
tcpdump 顯示線路上發生了什麼。它不會告訴您該數據包是否會被轉發到其他地方或由機器處理或丟棄,它不會告訴您機器是否生成控制消息(ICMP)以響應該數據包 - 它只是說:該數據包是從網路進入機器或離開機器。
我相信,在您的情況下,到 udp 27015 的數據包確實已到達機器。這就是它出現在 tcpdump 中的原因。然後,如果您發布的規則集確實應用於電腦,則該數據包被第 8 行的規則丟棄。tcpdump 日誌中的存在並不表示您的防火牆不起作用。tcpdump 根本不是分析數據包進入機器後發生的情況的正確工具。
您無法控制其他人發送的內容。你只控制你用它做什麼。您將防火牆設置為丟棄所有內容 - 這不會阻止任何人向您發送流量。想一想:如果他們尖叫,你的耳膜會振動,即使你沒有註意到這些尖叫聲。
這就是“頻寬”DoS 攻擊的可能方式——攻擊者不需要受害者有任何弱點,他們只是用大量浪費流量淹沒整個頻寬,阻止合法流量到達受害者。
解決這個問題的唯一方法是擁有更高的頻寬(通常,您需要的頻寬比攻擊者可以安排的攻擊更多)。