CentOS7ファイアウォールで次のポートを開きたい:
UDP 137 (NetBIOS Name Service)
UDP 138 (NetBIOS Datagram Service)
TCP 139 (NetBIOS Session Service)
TCP 445 (SMB)
サービス名にはsamba
include TCP 445が含まれていると推測できますが、他のポートにサービス名が事前設定されているかどうかはわかりません。
サポートされているサービスを次のように一覧表示できます。
$ firewall-cmd --get-services
しかし、これはどのポートがサービスで構成されているかを教えてくれません。
これらのサービスに属するポートをリストして、必要なポートをgrepできるようにする方法はありますか?
この情報が保存されているxmlファイルは、/usr/lib/firewalld/services/
(ディストリビューションマネージドサービスの場合)および/または独自のユーザー定義サービスの場合は/etc/firewalld/services/
にあります。
たとえば、samba.xml
は(私のcentos7で)次のように読み取ります。
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Samba</short>
<description>This option allows you to access and participate in Windows file and printer sharing networks. You need the samba package installed for this option to be useful.</description>
<port protocol="udp" port="137"/>
<port protocol="udp" port="138"/>
<port protocol="tcp" port="139"/>
<port protocol="tcp" port="445"/>
<module name="nf_conntrack_netbios_ns"/>
</service>
そのため、このサービスで有効になっているポートを簡単に見つけることができます。