CentOS 7のfirewalldで独自のゾーンとサービスを追加する

今回は、firewalldで独自のゾーンを追加してみたいと思います。eth0はpublicゾーンに定義されていて、基本的にインターネット側からsshとopenvpnの接続を受け付けていますが、openvpnのネットワークもpublicだと色々と支障がでそうなので、vpn用のfirewall定義も追加しておきたいと思います。

まずは新しいゾーンの追加から。

[root@sakura ~]# firewall-cmd --permanent --new-zone=vpn
success
[root@sakura ~]#
[root@sakura ~]# firewall-cmd --reload
success
[root@sakura ~]#

zone名は適当につけてください。追加してsuccessと出たら、reloadを忘れずに。

zoneを新規作成したら、サービスを割り当てます。その前にデフォルトで定義されているサービスの一覧を見ておきます。


[root@sakura ~]# firewall-cmd --get-services
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server
[root@sakura ~]#

デフォルトで定義されているサービスについてはサービス名で追加できます。-permanentを忘れるとfirewalldのリロード(再起動時)時に設定が消えてしまうので気を付けてください。

[root@sakura ~]# firewall-cmd --add-service=ssh --zone=vpn --permanent
success
[root@sakura ~]# firewall-cmd --add-service=http --zone=vpn --permanent
success
[root@sakura ~]# firewall-cmd --add-service=https --zone=vpn --permanent
success
[root@sakura ~]#

とりあえずsshとhttp,httpsを追加しました。

設定が追加されていることを確認。

[root@sakura ~]# firewall-cmd --list-services --zone=vpn --permanent
ssh http https
[root@sakura ~]#

サービスのリストにないものは独自のサービス定義を作ることもできるけど、面倒なので、ポート指定します。

[root@sakura ~]# firewall-cmd --add-port=50000/tcp --zone=vpn --permanent
success
[root@sakura ~]#

あとでDB2をインストールする(かもしれないし、しないかもしれないけどマイナーなポート番号といえばこれしか思いつかなかった)ので、先にポート番号だけ追加しておきます。リロードしたら–list-portsで確認してみます。

[root@sakura ~]# firewall-cmd --reload
success
[root@sakura ~]# firewall-cmd --list-ports --zone=vpn --permanent
50000/tcp
[root@sakura ~]#

ついでにzone=vpnの設定を確認してみます。

[root@sakura ~]# firewall-cmd --list-all --zone=vpn
vpn
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh http https
  ports: 50000/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

[root@sakura ~]#

ちゃんと追加されていました。

ポートを削除する方法は、以下の通り。

[root@sakura ~]# firewall-cmd --remove-port=50000/tcp --zone=vpn --permanent
success
[root@sakura ~]#

add-portがremove-portに代わっただけですね。

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください