CentOS7で変わった「systemd」と「firewalld」の基本覚え書き

CentOS7からサービスの制御が「systemd」にファイアウォール設定が「firewalld」に変更になりました。
CentOS6までと同じように設定しようとすると「?」が頭の上に並ぶことになるので、基本事項だけ覚え書き。

目次

systemd

CentOS6まではservice httpd startchkconfig 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 に、各ゾーンごとの設定ファイルが入ってるよ。そこを変更することでも設定可能。

まとめ

ここで挙げているものは、基本の設定を行うものです。
細かい設定を行う場合は、下記を参照にしてみてください。

Fedora wiki FirewallD

では。 ヾ(・д・。)マタネー♪

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

主にWordPressでの開発やサーバーの構築や管理なんかをやっているWordPressのプロ・専門家。
静岡 WordPress Meetup 共同オーガナイザーなどWordPressコミュニティにも参加中。

目次