阻止所有連接,但僅允許具有 iptables 的少數端口

阻止所有連接,但僅允許具有 iptables 的少數端口

我需要的規則是:

  1. 阻止所有傳入流量(網際網路 > 伺服器),但允許傳出流量(伺服器 > 網際網路)並允許本機服務運行

  2. 只接受來自我想要的連接埠的傳入流量。

我還需要在 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 的回答下的評論中所說

相關內容