コンテンツへスキップ

Linux のファイアウォール(firewalld)設定について簡潔にまとめ。

Linux のファイアウォールについての備忘録です。

Linux のファイアウォール(firewalld)設定について簡潔にまとめ。

ファイアウォールについて

Linux のファイアウォールは、「firewalld」になります。
firewall-cmd コマンドで操作します。

「ゾーン」という単位で規則が複数定義されていて、いずれかのゾーンをアクティブ・ゾーンに指定することで、
サーバーへのアクセスを制限します。

※起動時にアクティブになっているゾーンは「デフォルトのゾーン」として指定されているゾーンになります。

インストール時は「block、dmz、drop、external、home、internal、public、trusted、work」のゾーンが定義されています。

それぞれのゾーン毎にポートやサービスの通過規則が設定ができます。

※イメージ図

アクティブ・ゾーンを切り替えることで、アクセス制御の内容を変更することができます。

ゾーンは既存のものを使用することもできますし、新規でゾーンを作成することもできます。

ゾーンとかサービスとかいろいろありますが、とりあえず「ポートの追加(許可)」 の操作を覚えれば困らないと思います。

ファイアウォール・コマンドの使用

ファイアウォールのサービス名は「firewalld」です。

ファイアウォールを操作する為に「firewall-cmd」コマンドが用意されています。

firewall-cmd <オプション>でファイアウォールの各種設定の変更や、操作をします。

※設定変更後はファイアウォールの再起動が必要になります。

ファイアウォールの再起動

設定を変更した時に使用します。

–reload で再起動します。

firewall-cmd --reload

systemd を使っても再起動できます。

systemctl restart firewalld

デフォルトゾーンの確認と変更。

–get-default-zone で現在のデフォルト設定を確認できます。

firewall-cmd --get-default-zone 

uniuni@zapsrv01:~ $ firewall-cmd --get-default-zone 
public
uniuni@zapsrv01:~ $ 

–set-default-zone=*** で、デフォルトのゾーンを変更できます。

firewall-cmd --set-default-zone=test

root@zapsrv01:/home/uniuni# firewall-cmd --set-default-zone=test
success
root@zapsrv01:/home/uniuni# 

現在の設定を確認。

–list-all で現在の設定が表示されます。

firewall-cmd --list-all

uniuni@zapsrv01:~ $ firewall-cmd --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
uniuni@zapsrv01:~ $ 

サービスを追加

–add-service=<サービス名>

ファイヤーウォールを通過するサービスを指定します。

firewall-cmd --add-service=ssh --permanent

root@zapsrv01:/home/uniuni# firewall-cmd --add-service=ssh --permanent
success
root@zapsrv01:/home/uniuni# 

※追加できるサービスの一覧は「firewall-cmd –get-services」で確認できます。

uniuni@zapsrv01:~ $ firewall-cmd --get-services
RH-Satellite-6 RH-Satellite-6-capsule amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit collectd condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger foreman foreman-proxy freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-apiserver ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nbd nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rquotad rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server vpnserver wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server
uniuni@zapsrv01:~ $ 

ポートを追加。

–add-port=[-<portid>]/<protocol>

firewall-cmd --add-port=443/tcp --permanent

–permanent は設定を永続化する場合のオプションです。

root@zapsrv01:/home/uniuni# firewall-cmd --add-port=443/tcp --permanent
success
root@zapsrv01:/home/uniuni# 

追加先は現在アクティブなゾーン。

root@zapsrv01:/home/uniuni# firewall-cmd --list-all
test
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 443/tcp
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
root@zapsrv01:/home/uniuni# 

新規ゾーンを作成。

任意の名前のゾーンを作成できます。

–new-zone=<新しいゾーンの名前>

※–permanent は永続化のオプションです。指定しないとエラーになるコマンドもあります。

firewall-cmd --new-zone=test --permanent

root@zapsrv01:/home/uniuni# firewall-cmd --new-zone=test --permanent
success
root@zapsrv01:/home/uniuni# 

作成したゾーンの内容確認。

root@zapsrv01:/home/uniuni# firewall-cmd --info-zone=test
test
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
root@zapsrv01:/home/uniuni# 

新規サービスの追加

新しくサービスを追加(作成)する。

–new-service=<サービス名>

firewall-cmd --new-service=vpnserver --permanent

root@zapsrv01:/home/uniuni# firewall-cmd --new-service=vpnserver --permanent
success
root@zapsrv01:/home/uniuni# 

何にも入っていないけど。

追加したサービスを確認。

root@zapsrv01:/home/uniuni# firewall-cmd --info-service=vpnserver
vpnserver
  ports: 
  protocols: 
  source-ports: 
  modules: 
  destination: 
  includes: 
  helpers: 
root@zapsrv01:/home/uniuni# 

サービスの単位でポートの追加など設定ができます。

例:サービスにポートを追加する。

–service= –add-port=<portid>[-<portid>]/<protocol>

firewall-cmd --service=vpnserver --add-port=992/tcp --permanent

root@zapsrv01:/home/uniuni# firewall-cmd --service=vpnserver --add-port=992/tcp --permanent
success

以上です。

(Visited 520 times, 1 visits today)
タグ:

「Linux のファイアウォール(firewalld)設定について簡潔にまとめ。」への1件のフィードバック

  1. ピンバック: SoftEther をRaspberry Pi にインストールしてVPN Server 化する。 - .zapping

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です