LinuCレベル2 202試験の例題と解説
2.12.1iptables や firewalld によるパケットフィルタリング
今回はLinuCレベル2 202試験の試験範囲から「2.12.1 iptables や firewalld によるパケットフィルタリング」についての例題を解いてみます。
ここでは、firewalldを使った設定の確認方法について学びます。
例題
デフォルトゾーンの現在のパケットフィルタリング設定を確認するコマンドで正しいものを一つ選択してください。
- # firewall-cmd --list-all
- # firewall-cmd --get-default-zone
- # firewall-cmd --get-active-zone
- # firewall-cmd --get-service
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「1. # firewall-cmd --list-all」です。
パケットフィルタリングとは、送受信するIPパケットの内容を確認して、そのパケットの送受信を許可もしくは拒否する機能です。アクセス元を制限したり、送信するはずのないIPパケットの送信を拒否することでサーバのセキュリティを高めることができます。
firewalldではパケットフィルタリングのルールをゾーンという単位で管理を行います。ゾーンをインターフェースに割り当てたり、各ゾーンに設定を追加、削除することでパケットフィルタリングを行います。
ゾーンは標準で用意されているものもありますが、任意で追加することもできます。
デフォルトゾーンとは、パケットフィルタリング設定時などにゾーンを明示的に指定しない場合、割り当てられるゾーンのことです。
それでは、選択肢を見ていきます。
1. # firewall-cmd --list-all
正解です。
パケットフィルタリング設定を確認するには、「firewall-cmd」コマンドに「--list-all」オプションを指定します。ゾーンを明示的に指定しない場合は、デフォルトゾーンの設定が出力されます。
以下は、選択肢にあるコマンドを実行した場合の例です。
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens3
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
上記の場合、「public」がデフォルトゾーンであることが分かります。
なお、ゾーンを明示的に指定する場合は、以下のように「--zone=」にゾーンを指定して実行します。
# firewall-cmd --list-all --zone=home
home
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client mdns samba-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
2. # firewall-cmd --get-default-zone
誤りです。
「--get-default-zone」オプションは、デフォルトゾーンを確認するオプションです。実行すると以下のように表示されます。
# firewall-cmd --get-default-zone
public
3. # firewall-cmd --get-active-zone
誤りです。
「--get-active-zone」オプションは、現在割り当てられているゾーンおよびそのゾーンに割り当てられているインターフェースを表示するオプションです。
実行すると以下のように表示されます。
# firewall-cmd --get-active-zone
public
interfaces: ens3
4. # firewall-cmd --get-service
誤りです。
「--get-service」オプションは使えるサービスの一覧を取得するオプションです。
実行すると以下のように表示されます。
# firewall-cmd --get-service
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kerberos kibana klogin kpasswd kprop kshell ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius redis rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server
firewall-cmdコマンドを使って実際に設定したり、動作させることで、サーバやネットワークのセキュリティを高められるようにしておきましょう。
例題作成者
株式会社デージーネット OSS研究室 橋本 知里