Ubuntu
如何在 ubuntu 上阻止外部流量的 6379 埠?
我想阻止對伺服器上埠 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