web-dev-qa-db-ja.com

事前設定されたfirewall-cmdサービスに属するポートのリストを取得するにはどうすればよいですか?

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できるようにする方法はありますか?

2
Zhro

この情報が保存されている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>

そのため、このサービスで有効になっているポートを簡単に見つけることができます。

3
Ulrich Schwarz