linux如何关闭6379端口,如何阻止端口6379阻止Ubuntu上的外部通信?

问题描述

我想阻止对服务器上端口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

我建议使用类似的方法,它允许在任何接口上使用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

次佳回答

好吧,我建议使用”uncomplicated firewall”(ufw),这也是规范建议的。对于偶尔的端口锁定任务而言,读写iptables太复杂了。

参考资料