我已经使用 netfilter 从命令行设置了一些 IPTables 规则(在 Centos 上)。允许使用 SSH,但不允许使用 FTP。当我测试它时,它运行正常。
但是如果我连接到 gnome 桌面并查看系统->管理->安全级别和防火墙(我认为这是系统配置安全级别的 GUI),它会显示防火墙已启用,并且所有可用服务(包括 SSH)均不受信任。
我希望它能够反映我创建的 iptables 规则。
在我看来,IPTables 和 system-config-securitylevel 规则是分开的,并且 IPTables 规则优先。但是,我读过的书和浏览过的网站似乎都表明它们只是同一防火墙的两个接口。
有人能帮我解决这个问题吗?提前谢谢。C
SSH 在通常的端口 22 上,这是我的 iptables 规则:
Chain INPUT (policy DROP 1000 packets, 144K bytes)
pkts bytes target prot opt in out source destination
9024 900K fail2ban-SSH tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
11393 1107K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
29519 3091K ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
17465 1952K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
1287 735K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 55448 packets, 37M bytes)
pkts bytes target prot opt in out source destination
Chain fail2ban-SSH (1 references)
pkts bytes target prot opt in out source destination
8987 895K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
在 gnome 桌面上的系统 -> 管理 -> 安全级别和防火墙下,我有一个窗口显示已启用的防火墙和我可以勾选以信任的服务列表:FTP、邮件、NS4、SSH、samba、HTTPS、HTTP、telnet 尽管有上述 IPtables 规则,但没有一个被勾选。
答案1
首先,ssh 是否在自定义端口上运行?
其次,您能否发布您的 iptables 规则集的副本以及 gui 接口集的描述。
列出 iptables:
iptables -L -n -v
更新:
看起来有很多事情,其中之一就是添加了 fail2ban。更不用说 system-config-securitylevel 以非常具体的方式配置防火墙,任何超出此确切设置的操作都会导致它无法识别这些服务,因为它的配置方式不同。这就是差异的原因,也是意料之中的。
iptables 中列出的是有效的规则。无论 system-config-securitylevel 的状态如何,iptables -L 始终会显示现有且有效的规则集。
答案2
防火墙与 SELinux 不同。防火墙用于阻止通过网络端口的访问,而 SELinux 是本地保护(增强权限、文件标签和进程安全)。它们可以单独配置,并且独立运行。
两者并不优先,只是如果 SSH 流量被防火墙阻止,它根本无法到达您的机器。SELinux SSH 规则用于确保 SSH 进程在您的实际服务器上运行时不会试图超越其界限(写入奇怪的文件、更新不应该更新的内容等)。
简而言之,您可以将 SELinux 视为本地保护,将防火墙视为远程保护(大部分情况下确实如此)。