firewalld

CentOS 7から使われるようになった.iptablesのラッパーで,iptablesより直感的かつシンプルにファイアウォールを設定出来る.

ネットワークコネクションやインターフェイスの信頼度を定義するゾーンという考え方が取り入られている.ユーザは,そのなかから自分に合ったゾーンを自由に選択し,必要であれば設定を編集することも出来る.

ゾーン一覧

drop (変更不可)

内向きの通信を破棄する.ただし外向きに出て行った通信の戻りパケットは許可する.

block (変更不可)

全てのコネクションを破棄する.

public

デフォルトで選択されているゾーン.sshdhcpv6-clientのみが許可されている.

external

IPマスカレードが有効になっている.またsshのみ許可されている.

dmz

sshのみが許可されている.

work

sshipp-clientdhcpv6-clientが許可されている.

home

sshmdnssamba-clientipp-clientdhcpv6-clientが許可されている.

internal

sshmdnssamba-clientipp-clientdhcpv6-clientが許可されている.

trusted (変更不可)

全てのコネクションを許可する.

基本的なコマンド(firewall-cmd)の使い方

--state

firewalldの起動状態を確認

# firewall-cmd --state
running

--reload

ファイアウォールの設定を反映

# firewall-cmd --reload
success

--get-zones

サポートされている全てのゾーンを一覧

# firewall-cmd --get-zones
block dmz drop external home internal public trusted work

--get-services

サポートされている全てのサービスを一覧

# firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https

--get-icmptypes

サポートされている全てのICMPタイプを一覧

# firewall-cmd --get-icmptypes
destination-unreachable echo-reply echo-request parameter-problem redirect router-advertisement router-solicitation source-quench time-exceeded

--list-all-zones

全てのゾーンと各ゾーンで有効な機能を一覧

# firewall-cmd --list-all-zones
...

[--zone=<zone>] --list-all

その<zone>において有効な機能を表示(省略された場合はデフォルトゾーン)

# firewall-cmd --list-all
public (default, active)
  interfaces: ens32
  sources:
  services: dhcpv6-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

[--zone=<zone>] --list-services

その<zone>において有効なサービスを一覧

# firewall-cmd --list-services
dhcpv6-client ssh

--get-default-zone

デフォルトのゾーンを取得

# firewall-cmd --get-default-zone
public

--get-active-zones

アクティブ状態にあるゾーンを取得

# firewall-cmd --get-active-zones
public
  interfaces: ens32

--set-default-zone=<zone>

デフォルトゾーンとして,<zone>を設定

# firewall-cmd --set-default-zone=public
success

[--zone=<zone>] --add-interface=<interface>

その<zone>に対して,インターフェイスがなければ<interface>を追加

# firewall-cmd --add-interface=ens32
success

[--zone=<zone>] --change-interface=<interface>

その<zone>に対して,インターフェイスが存在すれば<interface>に変更

# firewall-cmd --add-interface=ens32
success

[--zone=<zone>] --add-interface=<interface>

その<zone>に対して,関連付けられた<interface>を削除

# firewall-cmd --add-interface=ens32
success

ファイアウォールのルールの操作

ルールを追加するとき,そのルールが永続的に設定するものか,一時的に設定するものかを選択することが出来る.一時的に設定したものは,リロード(--reload)や再起動後に変更が失われるが,永続的に設定したものは,変更が失われない.

ルールを永続的に設定する場合は,コマンドのオプションに--permanentを付与する.これで,そのルールは永続化され,リロードや再起動があっても維持されたままになる.永続化する場合は,タイムアウトのオプション(後述)を付与することは出来ない.

[--zone=<zone>] --add-service=<service> [--timeout=<seconds>]

その<zone>に対して,指定した<service>を有効化(タイムアウトが省略された場合は,変更が失われるまで有効)

# # HTTPサービスを有効化
# firewall-cmd --add-service=http
success
# # HTTPサービスを60秒だけ有効化
# firewall-cmd --add-service=http --timeout=60
success

[--zone=<zone>] --remove-service=<service>

その<zone>に対して,指定した<service>を無効化

# firewall-cmd --remove-service=http
success

[--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]

その<zone>に対して,指定した<port>-<port>とすることで範囲指定可能)かつ<protocol>を有効化(プロトコルは,tcpudp

# # TCPの80番ポートを有効化
# firewall-cmd --add-port=80/tcp
success
# # TCPの60000から60010番ポートまで有効化
# firewall-cmd --add-port=60000-60010/tcp
success

[--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>

その<zone>に対して,指定した<port><protocol>の組み合わせを無効化

# firewall-cmd --remove-port=80/tcp
success
# firewall-cmd --remove-port=60000-60010/tcp
success

[--zone=<zone>] --add-icmp-block=<icmptype>

その<zone>に対して,指定した<imcptype>の通信をブロック

# # ICMPパケットのecho-replayに関するものをブロック
# firewall-cmd --add-icmp-block=echo-reply
success

[--zone=<zone>] --remove-icmp-block=<icmptype>

その<zone>に対して,指定した<imcptype>の通信をブロックする設定を削除

# firewall-cmd --remove-icmp-block=echo-reply
success

設定ファイル

/etc/firewalld/以下にある.

参考サイト

results matching ""

    No results matching ""