Linux

IPtables 鎖定網站,只允許 SSH

  • June 6, 2014

我已經編寫了我的第一個 IPtables 規則文件,以嘗試在除 SSH 和 Web 所需的埠之外的所有埠上保護我的伺服器。

這就是我想出的:

i=/sbin/iptables

# Flush all rules
$i -F
$i -X

# Setup default filter policy
$i -P INPUT DROP
$i -P OUTPUT DROP
$i -P FORWARD DROP

# Allow unlimited traffic on loopback
$i -A INPUT -i lo -j ACCEPT
$i -A OUTPUT -o lo -j ACCEPT

# Open up ports for nginx
$i -A INPUT -p tcp --dport 443 -j ACCEPT
$i -A INPUT -p tcp --dport 80 -j ACCEPT
$i -A INPUT -p tcp --dport 22 -j ACCEPT

# Make sure nothing comes or goes out of this box
$i -A INPUT -j DROP
$i -A OUTPUT -j DROP

我知道在涉及 IP 表時有一些魔法,所以我想知道是否有人可以參與進來,看看這是否是保護 Web 伺服器的正確方法。

您可能不想丟棄所有傳出連接。

您可能希望儘早添加規則以允許 ESTABLISHED 連接,如果使用像 ftp 這樣的協議,您也可以將 RELATED 添加到規則中,例如

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

記住規則順序很重要 - 第一場比賽獲勝。

您可能應該看一下我們關於保護 Web 伺服器安全的問答保護 LAMP 伺服器的提示它有很多很好的資訊。

你在-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT某個地方失踪了。此外,我不會丟棄所有傳出數據包。

引用自:https://serverfault.com/questions/602297