我需要的規則是:
阻止所有傳入流量(網際網路 > 伺服器),但允許傳出流量(伺服器 > 網際網路)並允許本機服務運行
只接受來自我想要的連接埠的傳入流量。
我還需要在 ssh 會話中執行此操作(我之前已被鎖定)。
我問的原因是因為我無法將 UFW 與我的 VPS 提供者一起使用...顯然是因為他們的核心/OpenVZ...
當我嘗試自己學習命令時,就像學習使用工具並嘗試建造房屋一樣。如果我今天能夠提高工作效率,而不是花費大量時間試圖解決這個問題,那就太好了。如果有人可以幫助我,我將非常感激。
答案1
首先允許您的特定端口,然後阻止所有傳入流量
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
其中 22 您的演示端口可根據您的需求進行更改
阻止所有傳入流量
# iptables -A INPUT -j REJECT
允許所有傳出資料包
# iptables -A OUTPUT -j ACCEPT
# iptables -A OUTPUT -o lo -j ACCEPT
答案2
@Rakib 提供了一個很好的答案,我認為它應該被接受。我給的答案只是補充了他的答案。我建議製作一個 shell 腳本,以便您可以在作業系統啟動時自動運行它,或者按需運行,而無需再次全部輸入:
#!/bin/sh
IPT = iptables
#allowing the specific port
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
#block all incoming traffic
$IPT -A INPUT -j REJECT
#ALLOW ALL OUTGOING PACKETS
$IPT -A OUTPUT -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
#same thing for ip6tables (IPv6)
IPT = ip6tables
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -j REJECT
$IPT -A OUTPUT -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
劇本也做了兩次,唯一的差別是ip6表被包括在內,因此也適用於 IPv6,正如 @Michael Mol 在 @Rakib 的回答下的評論中所說