问题的说明
我想阻止对服务器上端口6379的访问,但我想在内部连接。 redis-server APP应用程序在此端口上运行,并且只希望在本地连接(127.0.0.1 )。 我怎么做才能做那个?
最佳答案
为此,必须确保正确设置了IPTables规则。 Ubuntu通常在缺省情况下保持服务器打开。 因此,除非您充分了解如何正确执行此操作,否则不建议将其用作服务器。
我想象你的iptables -L -nv看起来是这样的,是吗?
# iptables -L -nv
chain input (策略接受4 mpackets,9M bytes ) )。
ptsbytestargetprotoptinoutsourcedestination
chain forward (策略接受0包,0字节) ) ) ) ) ) )。
ptsbytestargetprotoptinoutsourcedestination
chain output (策略接受8 mpackets,4M bytes ) )。
ptsbytestargetprotoptinoutsourcedestination
建议使用类似的方法。 任何接口都可以使用SSH,任何接口都可以使用tcp 6379,但不要使用此接口。
*过滤器
:INPUT DROP [92:16679]
:前锋drop [ 0:0 ]
: output accept [ 20:36556 ]
- a输入- m状态- -状态related,ESTABLISHED -j ACCEPT
- a输入- ILO-ptcp-mtcp-- dport 6379-j accept
- a输入- ILO-pudp-mudp-- dport 6379-j accept
- a输入- p icmp-j接受
- a输入- ptcp-mtcp-- dport 22-j接受
- a输入- I lo-j accept
命令式
然后,可以将文件保存到/etc/iptables.rules。
当然,需要添加专门打开的端口。
注意:为了清楚起见,我们添加了特定的6379行。 实际上,COMMIT之前的底层ACCEPT实际上是允许的,因为它需要允许Linux系统上的所有环回连接。
此外,还可以将规则放置在/etc /network /interfaces文件中,以便在界面显示时(而不是启动时)添加规则。 建议添加以下内容:
auto eth0
iface eth0 inet dhcp
预升级iptables-restore/etc/iptables.rules
编辑:要首次加载此配置,必须运行上面引用的iptables-restore命令。
iptables-restore/etc/iptables.rules
次佳回答
是的,我们建议使用“未完成防火墙”(ufw )。 这也是规范推荐的。 对于偶尔的端口锁定任务,读写iptables太复杂了。
参考资料