我按照本教程在 ubuntu 12.04 上设置 IP 规则。设置时一切正常——但现在我对防火墙进行了更改,这些更改在重新启动时不会持续存在。我不明白为什么会这样。这是我如何使用 iptables-persistent 的演示。我究竟做错了什么?
$ sudo service iptables-persistent start
* Loading iptables rules... * IPv4... * IPv6...
$ sudo iptables -L //shows a certain rule
$ iptables -D INPUT ... //command successfully drops the rule
$ sudo iptables -L //shows rule has been deleted
$ sudo service iptables-persistent restart
* Loading iptables rules... * IPv4... * IPv6... [ OK ]
$ sudo iptables -L //rule is back
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 CentOS 7 中打开一些端口。
我可以使用以下命令打开一个端口:
firewall-cmd --direct --add-rule ipv4 filter IN_public_allow 0 -m tcp -p tcp --dport 7199 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
通过检查 via iptables -L -n,我得到了设置成功的确认:
Chain IN_public_allow (1 references)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:7199
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法使更改永久化。即使使用这样的--permanent选项:
firewall-cmd --direct --permanent --add-rule ipv4 filter IN_public_allow 0 -m tcp -p tcp --dport 7199 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?为什么该--permanent选项无法正常工作?
我有以下设置:/etc/iptables/rules.v4
# Generated by iptables-save v1.4.21 on Mon Jul 1 11:32:00 2019
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [3:620]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.35.107/32 -p icmp -m icmp --icmp-type 8 -j DROP
-A INPUT -s 192.168.35.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -s 192.168.35.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -j DROP
COMMIT
# Completed …Run Code Online (Sandbox Code Playgroud) 我正在租用带有 debian 8 的 vps。我正在尝试iptables按照此博客设置我的:
http://bencane.com/2012/09/iptables-linux-firewall-rules-for-a-basic-web-server/
问题是我的设置似乎不正确。
我首先通过 apt-get update 更新我的服务器然后我将规则添加到iptables, installiptables-persistent但尝试执行命令
iptables-persistentsave 并且我得到“是一个目录”而不是保存过程......当我安装 iptables-persistent 这会保存ipv4 ipv6 设置,并使用 cat/etc/iptables/rules.v4我看到我的规则。
在命令中有最后一步输入 ls -la /etc/rc2.d/ | grep iptables应该显示一些东西,但我的没有。
在我的/etc/init.d/目录中我应该有iptables-persistent但它实际上在/usr/share/doc/所以我将它移动到/etc/init.d/但这似乎并没有解决问题作为尝试命令/etc/init.d/iptablessave 不起作用,我得到“是一个目录”,我认为它应该是一个脚本文件。
我不确定发生了什么。
的内容iptables-persistent是一个 .gz 更改日志文件,所以这可能是命令无法正常工作的原因?
我刚刚阅读了关于iptables-persistent 的文章,我完全迷失了设计。我不是唯一一个不明白它是如何工作的,但实际上它似乎超出了我的想象。
我想象了类似crontab -e 的东西:你编辑一组规则,当编辑器关闭时,它们会被持久化和应用。它们存储在某个地方,而我作为用户不知道在哪里。不要告诉我;这是完美的方式。
有这样的工具吗?为什么iptables-persistent以这种难以遵循的方式工作?
我netfilter-persistent用来管理防火墙。
我想使用伪装(例如,或另一个)共享两个接口之间的连接。当我通过调用iptables它来运行这些操作时。
但是,如果我尝试更新存储在/etc/iptables/rules.v4添加这样一行的防火墙规则:
-t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)
以-tmake开头的行netfilter-persistent无法运行且防火墙未更新:
Nov 16 11:51:32 helena systemd[1]: netfilter-persistent.service: Main process exited, code=exited, status=1/FAILURE
Nov 16 11:51:32 helena systemd[1]: Failed to start netfilter persistent configuration.
Run Code Online (Sandbox Code Playgroud)
所以我想知道是否可以使用netfilter-persistent或存储这种规则
iptables connection-sharing forwarding iptables-persistent netfilter
iptables ×6
centos ×1
debian ×1
firewall ×1
firewalld ×1
forwarding ×1
linux ×1
netfilter ×1
persistence ×1