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
に、各ゾーンごとの設定ファイルが入ってるよ。そこを変更することでも設定可能。
まとめ
ここで挙げているものは、基本の設定を行うものです。
細かい設定を行う場合は、下記を参照にしてみてください。
では。 ヾ(・д・。)マタネー♪