阻止除本地網路之外的所有傳入請求

阻止除本地網路之外的所有傳入請求

我有一個專用伺服器,我在其上使用公用 IP 位址啟動了 Ubuntu 22.04.1 LTS 伺服器。我想鎖定 ssh 端口,只允許特定的 IP 位址通過。

我有 3 個工作 IP 位址和我在伺服器上設定的具有 IP 範圍的網路。

我該如何只允許這些 IP 位址登入我的伺服器?

我在另一篇文章中找到了這個:

iptables -I INPUT -p tcp ! -s yourIPaddress --dport 22 -j REJECT

如果我為每個 IP 位址運行它,這會起作用嗎?

還有,這樣就夠了嗎?我應該鎖定其他連接埠嗎?這是全新安裝,僅包含 postgresql。我正在嘗試了解有關 Ubuntu 和 postgresql 的更多信息,但我不希望我的伺服器成為目標。

感謝您的輸入!

答案1

我建議您將您的方法從單一連接埠重點調整為全面的「防禦」態勢:將 IP 列入白名單,拒絕所有其他連線嘗試。這適用於您環境中的大多數連接埠 - 因為否則您將不得不將其列入黑名單每一個已知的 IP 會進行服務掃描,因此您將在其位置上看到一個非常長的清單。服務掃描器掃描每一個端口,因此您應該首先採用“拒絕信任”方法。像是Web 伺服器(如果是公共站點,則HTTP/HTTPS 的連接埠80、443 可能需要比特定IP 更廣泛的存取權限)之類的東西也會被掃描,但可以透過適當強化Web 伺服器和內容來「保護」。然而,全部連接埠由服務掃描器掃描,且全部連接網路的裝置會受到掃描,因此拒絕一切啟動是更好的方法。

因此,「拒絕信任」最有效的方法是簡單地允許某些 IP 連接到電腦上的連接埠和所有其他服務,然後拒絕所有其他連線嘗試。同時也允許本地主機與其自身通信,這是可以的。

在開啟其他連接埠之前,請先使用白名單保護所有內容。如果您需要更多服務,我們可以為來自任何地方的 HTTP 流量等配置額外的允許規則。

# Allow localhost traffic
iptables -A INPUT -i lo -j ACCEPT

# INVALID type packets should be DROPped regardless of source.
iptables -A INPUT -m state --state INVALID -j DROP

# Allow traffic for related/established connections already running
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Allow all new connections/traffic from the local subnet you're on 
# (10.20.30.0/24 is used in example)
iptables -A INPUT -m state --state NEW -s 10.20.30.0/24 -j ACCEPT

# Whitelist your IPs - repeat this step for each of your IPs permitted
# to access the machine outside of local network
iptables -A INPUT -s IPADDRESS -m state --state NEW -j ACCEPT

# If you have other services you want to configure for *public* access, then
# use this rule as a template and execute this before you follow the last step.
#
# Change PROTO to the protocol (tcp/udp, etc.) and PORT to the port number 
# (80 for HTTP, ex.)
#
# Add this to the end of the rule if you want to allow only certain 
# IPs to the specified service:
#   -s IPADDRESS 
iptables -A INPUT -p PROTO --dport PORT -m state --state NEW -j ACCEPT

# Deny all other traffic
iptables -A INPUT -j REJECT --reject-with icmp-host-unreachable

這是基於我近 15 年的伺服器經驗以及我的網路安全培訓。以及我作為 IT​​ 安全專業人員的知識。

相關內容