Centos 7/Server管理は初めてです。私はfirewalldを操作する方法を理解しようとしています。私のカーネルリリースは: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をインストールしましたが、iptables -L-nで表示できる禁止リストにIPを追加することで機能します。
# 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を使用できません。じゃあどうすればいい?
問題は、OpenVZを使用していることです。 OpenVZは、firewalldデーモンが依存する機能を持たない2.6カーネルを実行しており、systemdのすべての変更はOpenVZのsysvinitにバックポートされます。