CentOS 7のfirewalldで独自のサービス定義を追加する

Cent OS7の新しくなったファイアウォールで、前回は独自ゾーンの追加を行いました。今回は独自のサービス定義を追加してみたいと思います。

firewall-cmdを使って、新しいサービス定義を追加します。

[root@sakura ~]# firewall-cmd --permanent --new-service=db2
success
[root@sakura ~]#

これだけではまだ、何もできませんので、定義を追加します。

今回はdb2のデフォルトポートである50000/tcpの通過を許可する設定を追加します。

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

ポートを追加しました。ついでに概要(description)も追加しておきましょう。

[root@sakura ~]# firewall-cmd --permanent --service=db2 --set-description="DB2 port."
success
[root@sakura ~]#

一応、定義全般を見ておきたいと思います。

[root@sakura ~]# firewall-cmd --permanent --info-service=db2
db2
  ports: 50000/tcp
  protocols:
  source-ports:
  modules:
  destination:
[root@sakura ~]#

これでサービス定義の追加は完了しました。実態はxmlファイルなのですが、設定ファイルは/etc/firewalld/services/ディレクトリに保存されています。

[root@sakura ~]# cd /etc/firewalld/
[root@sakura firewalld]#
[root@sakura firewalld]# cd services/
[root@sakura services]#
[root@sakura services]# ls -la
合計 12
drwxr-x---. 2 root root   38  3月 27 02:42 .
drwxr-x---. 7 root root 4096  3月 26 23:53 ..
-rw-r--r--  1 root root  137  3月 26 22:46 db2.xml
-rw-r--r--  1 root root  137  3月 26 22:45 db2.xml.old
[root@sakura services]#
[root@sakura services]# cat db2.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <description>DB2 port.</description>
  <port protocol="tcp" port="50000"/>
</service> [root@sakura services]#

サービス定義を追加しただけでは有効になりません。必ずreloadしてください。そのあとにサービスの一覧を表示すると、今回追加したサービスの名称が一覧に表示されます。

[root@sakura ~]# firewall-cmd --reload
success
[root@sakura ~]#
[root@sakura ~]# firewall-cmd --get-services
RH-Satellite-6 amanda-client ...(中略)... db2 dhcp dhcpv6 ...(中略)... wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server
[root@sakura ~]#

ゾーンにサービス定義を追加します。

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

念のため、ゾーン定義を見てみます。

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

[root@sakura ~]#

これでサービス定義が使えるようになりました。

次はインタフェース別にゾーン定義を割り当てる設定を行います。設定方法は次のエントリで。

コメントを残す

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

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