我是 Centos 7/Server 管理新手。我正在尝试弄清楚如何使用防火墙。我的内核版本是:2.6.32-042stab084.20(OpenVZ)
和:
#firewall-cmd --version
#0.3.9
问题是我无法从firewall-cmd中获得任何功能。以下是我尝试过的一些命令:
# systemctl status firewalld -l
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
Active: active (running) since ...;
Main PID: 120
CGroup: /system.slice/firewalld.service
└─120 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
systemd[1]: Starting firewalld - dynamic firewall daemon...
systemd[1]: Started firewalld - dynamic firewall daemon.
firewalld[120]: ERROR: ebtables not usable, disabling ethernet bridge firewall.
firewalld[120]: ERROR: INVALID_ZONE
看起来,firewalld 正在运行,实际上它正在执行防火墙的工作。但是当我尝试使用firewall-cmd时:
# firewall-cmd --state
not running
#firewall-cmd --get-zones
#[nothing happens]
#firewall-cmd --reload
[X]Server crashed and I had to request a reboot!
我已经安装了 fail2ban,它通过将 IP 添加到禁止列表来工作,我可以通过以下方式查看:iptables -L -n。
# iptables -V
#iptables v1.4.21
# iptables -nvL
Chain INPUT (policy ACCEPT 798 packets, 89141 bytes)
pkts bytes target prot opt in out source destination
76260 14M f2b-SSH tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
69823 14M f2b-sshd tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 725 packets, 113K bytes)
pkts bytes target prot opt in out source destination
Chain INPUT_ZONES (0 references)
pkts bytes target prot opt in out source destination
Chain INPUT_ZONES_SOURCE (0 references)
pkts bytes target prot opt in out source destination
Chain INPUT_direct (0 references)
pkts bytes target prot opt in out source destination
Chain f2b-SSH (1 references)
pkts bytes target prot opt in out source destination
17 1060 REJECT all -- * * 111.222.333.444 0.0.0.0/0 reject-with icmp-port-unreachable
...
...
但现在我想为某个应用程序打开特定端口,但无法使用firewall-cmd。我该怎么办?
- PS:我将防火墙客户端改为使用firewalld并禁用iptables服务的原因是fail2ban无法与iptables配合使用。它只是待在那里什么也不做。但这是另一个问题!
答案1
问题是您正在使用 OpenVZ。OpenVZ 运行的是 2.6 内核,它不具备防火墙守护进程所依赖的功能,并且所有 systemd 更改都已移植到 OpenVZ 的 sysvinit 中。