1. TOPTOP
  2. Webサービス
  3. Linux

CentOS7のfirewalldに新規サービスを登録・公開する方法 ~ 監視サーバー(Munin)から監視されるサーバーにポート接続

|

centos7_firewalld_add_new_services

CentOS7,PHP7,MySQL5.6でWordPressサイトを構築 その5(ファイアウォールの設定)

上記の記事でファイアウォールにおけるサービス(http,https,mysql)と任意のポート番号(ssh)の公開を行なっています。これらサービスとポート番号の公開設定は、「さくらのVPS」WordPressサイトを構築するためのもので、公開する作業はさほど難しくありません。すべてCentOS7の初期設定でファイアウォールに登録されているサービスを使用しているためです。

初期設定以外のサービスの公開・登録は設定が必要

ですがCentOS7の初期設定でファイアウォールに登録されている以外のサービスを利用しようとすると、冒頭に挙げた記事のように簡単に公開することはできません。公開する前にそのサービスを登録する必要があるためです。

そこで今回の記事ではサーバー監視ツールのMuninを例として、監視対象サーバーにおいて監視するサーバーからのポート接続ができるようにするための設定方法をご紹介します。なお今回の記事は以下のページを参考とさせていただきました。

firewalldに新規サービスを登録・公開する方法

監視対象サーバーにおいてfirewalldに新規サービスを登録・公開し、監視するサーバーがポート接続ができるようにするためには、具体的には以下の手順で行います。

公開可能なサービスの一覧を確認

# 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

これから公開したいサービスが本当に登録されていないかどうか、あらかじめ公開可能なサービスを確認しておきましょう。

# firewall-cmd --list-services --zone=public --permanent
dhcpv6-client ssh http https mysql

firewalldに登録されているサービスのうち、公開されているサービスも確認しておきましょう。初期設定の状態ではMuninは登録・公開されていません。

新規サービス(Munin)の登録設定

# vi /etc/firewalld/services/munin.xml
<?xml version="1.0" encoding="utf-8"?>
<service name>
  <short>Munin</short>
  <description>Munin Agent</description>
  <port protocol="tcp" port="4949"/>

firewalldにおいて、xmlファイルを使って新規サービスの設定登録を行います。shortタグとdescriptionタグの内容は、任意です。ですがMuninを使う場合はファイル名・ポートタグのプロパティは上記の通りに記述します。

# cat /usr/lib/firewalld/services/https.xml

ちなみにmunin.xmlはhttps.xmlはhttps.xmlを参考にしています。実際にmunin.xmlを作成するときは、https.xmlの内容をコピペして必要な箇所だけ書き換えします。

新規サービス(Munin)の公開設定

# vi /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"/>
  <service name="ssh"/>
  <service name="http"/>
  <service name="https"/>
  <service name="mysql"/>
  <service name="munin"/> ← 追記
  <port protocol="tcp" port="YOURPORTNUMBER"/>
  <port protocol="tcp" port="4949"/>← 追記
</zone>

ファイアウォールにおいて、xmlファイルを使って新規サービスの公開登録を行います。public.xmlファイルはあらかじめ存在していますので、その中で”<service name=”munin”/>”と”<port protocol=”tcp” port=”4949″/>”を追記します。なお、すでにMuninのインストールが完了していると、”<port proprotocol=”tcp” port=”4949″/>”が表示されています。

設定の反映とサービスの再起動

# systemctl restart firewalld
# firewall-cmd --permanent --add-service=munin --zone=public
Warning: ALREADY_ENABLED: munin
success

まずfirewalldで登録、公開できるサービスを変更しましたのでその反映を行います。次に”munin”のサービスが公開されるようにサービスを追加します。赤色で”Warning: ALREADY_ENABLED: munin”と表示されても、”success”が表示されればMuninの公開は完了したことになります。

サービス公開の確認

# firewall-cmd --reload
success
# firewall-cmd --list-services --zone=public --permanent
dhcpv6-client ssh http https mysql munin

再読み込みをしてMuninのサービスが公開されているかどうか確認します。ssh、http、https、mysqlとともにmuninが表示されているばサービスは公開され、当該ポートに接続ができる状態になっています。

つまり今回の例で言うと監視サーバーは監視対象サーバーの4949番ポートを使って接続ができている状態になります。

ポートスキャンによる接続の確認

さくらのVPS 初期状態で開放されているポートは22番ポートのみ Nmapによるポートスキャンの様子をスクリーンショット

$ nmap -p 4949 160.×××.×××.×××(監視対象サーバーのIPアドレス)
PORT     STATE SERVICE
4949/tcp open  munin

もしお手元のクライアントPCにNmapがインストールされている方は、監視されるサーバーのIPアドレスと4949番ポートをスキャンするとポート番号とサービスが使える状態になっていることが分かります。