Ubuntu

如何在 ubuntu 上阻止外部流量的 6379 埠?

  • May 1, 2020

我想阻止對伺服器上埠 6379 的訪問,但我仍然想在內部連接到它。redis-server 應用程序在該埠上執行,我只想在本地(127.0.0.1)連接到它。我怎樣才能做到這一點?

為此,您需要確保您的 IPTables 規則配置正確。預設情況下,Ubuntu 通常將其伺服器完全打開,這就是為什麼我仍然不建議將它們用作伺服器的原因,除非您已經非常清楚如何正確地做到這一點。

我想你iptables -L -nv看起來像這樣,是嗎?

# iptables -L -nv
Chain INPUT (policy ACCEPT 4M packets, 9M bytes)
pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 8M packets, 4M bytes)
pkts bytes target     prot opt in     out     source               destination

它是空的,它是敞開的。Ubuntu IPTables HowTo 可能會對此有所幫助。(https://help.ubuntu.com/community/IptablesHowTo

我推薦這樣的東西,它允許任何介面上的 SSH 和 tcp 6379 任何介面,但你不想要的介面:

*filter
:INPUT DROP [92:16679]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [203:36556]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -p tcp -m tcp --dport 6379 -j ACCEPT
-A INPUT -i lo -p udp -m udp --dport 6379 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT

然後將此文件保存在 /etc/iptables.rules 中。

顯然,應該添加您特別想要打開的任何其他埠。

注意:為了清楚起見,我添加了特定的 6379 行。COMMIT 之前的底部 ACCEPT 實際上會允許這樣做,因為在 Linux 系統上必須允許所有環回連接才能正常執行。

您還需要將規則放在 /etc/network/interfaces 文件中,以確保在介面出現時添加它們,而不是在引導過程的後期添加。建議添加這樣的內容:

auto eth0
iface eth0 inet dhcp
 pre-up iptables-restore < /etc/iptables.rules

編輯:要最初載入此配置,您需要執行上面引用的 iptables-restore 命令:

iptables-restore < /etc/iptables.rules

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