从80到8080的持久端口路由


23

我使用通过ubuntu运作的Amazon EC2实例。默认情况下,根据安全限制,我无法将应用程序绑定到端口80,因此我将其绑定到端口8080,然后通过以下命令将路由重定向从端口80设置为8080:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080

但是我发现,当我重新启动服务器时,此设置不再有效,直到我再次调用此命令。

所以我的问题是,即使系统重新启动,如何启用端口的重定向工作?

Answers:


18

您可以在其中添加此命令/etc/rc.local,因此它将在重新启动后自动执行。


已经做到了,但是仍然感谢您的回答
Ph0en1x 2014年

欢迎我的朋友,多数民众赞成在一个好戏
nux 2014年

2
这可行,但是真正的答案是下面的@MeOMy答案。
Dirk Groeneveld 2015年

15

请改用iptables-save命令。防火墙规则永远不应放入rc.local脚本中。rc.local是要执行的最后一件事。如果将阻止规则放置到rc.local中,则攻击者可以在很短的时间内利用未制定的规则。尽管在这种情况下可能无关紧要,但最好还是不要养成以后可能会咬你的坏习惯。


1
运行“ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080”和“ sudo iptables-save”。但是路由在重新启动时被重置。我误会了怎么做吗?
gromit190 '16

2
答案是不完整的。 iptables-save > some-file-path保存规则,然后您可以通过iptables-restore < some-file-pathin 还原它们rc.local。或安装iptables-persistent作为服务启动期间执行此操作的安装程序。
托马斯·沃德

我想了解如何做到这一点。请更具体一点
gromit190 '18

4

这是ipttable官方文档对我们的教导。看这里

在/ etc / network / interfaces中添加以下两行:
pre-up iptables-restore < /etc/iptables.rules post-down iptables-save > /etc/iptables.rules

“ post-down iptables-save> /etc/iptables.rules”行将保存要在下次启动时使用的规则。


使用正式推荐的方法(在这种情况下为最简单的方法)来完成此任务的荣誉。如果可以使用KISS方法,我希望+2。
DeeJayh

0

我在Ubuntu 16.04上发现了一组目录,这些目录/etc/network将在网络初始化和关闭期间的不同时间运行脚本:

if-down.d
if-post-down.d  
if-pre-up.d  
if-up.d
interfaces.d

因此,我发现可以像往常一样转储配置:

$ sudo sh -c "iptables-save > /etc/iptables.rules"

然后我创建了一个文件`/etc/network/if-pre-up.d/restore:

#!/bin/sh

iptables-restore < /etc/iptables.rules

...并标记为可执行

$ sudo chmod 755 /etc/network/if-pre-up.d/restore
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.