22 firewall rhel iptables centos
直接编辑这个文件
/etc/sysconfig/iptables
Run Code Online (Sandbox Code Playgroud)
可以为我节省这么多头痛的时间等等......
然而在文件的最顶部它说..
Manual customization of this file is not recommended.
Run Code Online (Sandbox Code Playgroud)
这是一个全新的 centos 6.4 云服务器附带的“/etc/sysconfig/iptables”。
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
Run Code Online (Sandbox Code Playgroud)
要打开端口 80,我可以简单地克隆该行..
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
然后将“22”更改为“80”,然后保存此文件,然后重新启动整个系统。
这将为我打开端口 80。
这是非常简单的操作。但该文件说不建议手动编辑。
我为什么要听从建议?
小智 19
因为被调用的工具system-config-firewall(或者它是基于 ncurses 的兄弟system-config-firewall-tui)管理这个文件。每次使用此工具创建新的 iptables 规则时,它都会覆盖/etc/sysconfig/iptables.
相关手册页:28.1.16。/etc/sysconfig/iptables-config
这就是为什么不推荐但不禁止的原因。使用 CentOS 或任何其他 EL 版本 6 保存规则的最佳方法是在内存中添加一些规则后使用 iptables 服务:
# service iptables save
Run Code Online (Sandbox Code Playgroud)
相关问题:为什么 iptables 不从 centOs 上的 /etc/sysconfig/iptables 获取信息?
不/etc/sysconfig/iptables直接编辑此文件( ) 的原因:
/etc/init.d/iptables。IPTABLES_SAVE_ON_STOP=""和文件IPTABLES_SAVE_ON_RESTART=""内部/etc/sysconfig/iptables-config。也许,调整这些将使您的更改/etc/init.d/iptables持久化。这种“覆盖我的防火墙规则”的另一种解决方案 mindf*** 是完全禁用这些脚本并依赖于管理防火墙的自定义方法,例如由goldilocks公开的方法。
然而在文件的最顶部它说..
嗯,这很奇怪。在我的顶部它说:
# Manual customization of this file is strongly encouraged.
Run Code Online (Sandbox Code Playgroud)
一定有人改变了它 ;) 事实上,甚至将它移出,/etc/sysconfig这样包管理器或其他任何东西都不会“自动取消定制”它 ;) ;)
我认为对于此类配置文件的一般意义在于,如果您不知道自己在做什么,请不要这样做。有时还会警告该文件偶尔会被系统覆盖。这可能是由包管理器在升级时引起的——尽管有时 PM 会注意到文件已被手动更改而不是覆盖它,或者保存副本等——并且它可能是其他一些负责此配置的工具特别(见nwildner 的回答)。
“知道你在做什么”的一部分是意识到这样的角度。我还为 iptables 自定义了 init 服务,以便为配置文件使用不同的位置,最重要的是:我是唯一使用这台计算机的人。
假设还有其他人具有 root 访问权限,我不会在我负责的服务器上执行此操作,除非有比“我更喜欢这种方式”更好的理由,因为这可能会导致混淆并让其他人头疼在某一点。但是,如果您是唯一的用户并且没有其他人依赖于系统,那么您可以自由地做自己想做的事。我配置防火墙的“首选方法”如下所示:
#!/bin/bash
if [[ ! -n "$IPTSET_FILE" ]]; then
IPTSET_FILE=/etc/iptables.current
fi
if [[ ! -e $IPTSET_FILE ]]; then
echo "$IPTSET_FILE does not exist!"
exit 1
fi
vim $IPTSET_FILE
iptables-restore < $IPTSET_FILE
Run Code Online (Sandbox Code Playgroud)
/etc/iptables.current在启动时通过复制创建/etc/iptables(iptables 服务被配置为最初加载)。通过这种方式,我可以在保持系统启动的参考点的同时动态修改内容。
Which brings us to an important point, if you do want to fool around with configurations that contain this sort of warning: Always create a backup copy of the original first.
| 归档时间: |
|
| 查看次数: |
36122 次 |
| 最近记录: |