CentOS7からサービスの制御が「systemd」にファイアウォール設定が「firewalld」に変更になりました。
CentOS6までと同じように設定しようとすると「?」が頭の上に並ぶことになるので、基本事項だけ覚え書き。
systemd
CentOS6まではservice httpd start
やchkconfig httpd on
だったものです。
基本コマンド
systemctl start httpd // httpdサービスを起動する
systemctl enable httpd // httpdサービスをサーバ起動時に起動する
2つのコマンドだったものが1つのコマンドにまとめられたわけです。
firewalld
CentOS6までのファイアウォール設定は「iptables」を直接編集する形でしたが、CentOS7からは「firewalld」で制御する形に変わりました。
「firewalld」はインターフェイスごとにゾーンを設定して、それぞれでパケットの制御を行うという考え方で処理を行います。
基本コマンド
systemctl start firewalld // ファイアウォール起動
systemctl stop firewalld // ファイアウォール停止
systemctl enable firewalld // ファイアウォールをサーバ起動時に起動
systemctl disable firewalld // ファイアウォールをサーバ起動時に起動しない
確認コマンド
firewall-cmd --list-all-zones
こんな感じに表示されます。publicがデフォルトでアクティブになってます。
ちなみにSSHはデフォルトで許可されているので、適宜変更してください。
block
interfaces:
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
dmz
interfaces:
sources:
services: ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
drop
interfaces:
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
external
interfaces:
sources:
services: ssh
ports:
masquerade: yes
forward-ports:
icmp-blocks:
rich rules:
home
interfaces:
sources:
services: dhcpv6-client ipp-client mdns samba-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
internal
interfaces:
sources:
services: dhcpv6-client ipp-client mdns samba-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
trusted
interfaces:
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
work
interfaces:
sources:
services: dhcpv6-client ipp-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
設定コマンド
プロトコルを有効化・無効化する場合(例:http)
firewall-cmd [--zone=<zone>] --add-service=http
firewall-cmd [--zone=<zone>] --add-service=http --permanent
firewall-cmd [--zone=<zone>] --remove-service=http
firewall-cmd [--zone=<zone>] --remove-service=http --permanent
ポートを有効化・無効化する場合(例:ポート番号110)
firewall-cmd [--zone=<zone>] --add-port=110/tcp
firewall-cmd [--zone=<zone>] --add-port=110/tcp --permanent
firewall-cmd [--zone=<zone>] --remove-port=110/tcp
firewall-cmd [--zone=<zone>] --remove-port=110/tcp --permanent
こんな感じで設定します。
設定ファイルのある場所
なんか需要ありそうなので追記。
設定ファイルを直接弄りたい場合や、設定をファイルで確認したい場合は
/etc/firewalld/zones
に、各ゾーンごとの設定ファイルが入ってるよ。そこを変更することでも設定可能。
まとめ
ここで挙げているものは、基本の設定を行うものです。
細かい設定を行う場合は、下記を参照にしてみてください。
では。 ヾ(・д・。)マタネー♪