⚠️ 記事内に広告を含みます。

listenしてるポート111を閉じる方法

ポート111を閉じる

まとめ
ポート111はrpc bind(主にnfsで利用)というサービスで使用

NFS未使用ならsystemctl stop rpcbindで停止OK!

ポート111が開いてる?何に使われているの?

netstatで見知らぬポート111が開いているのに気づきました。

結論から言うとポート111はNFSを使っていなければ閉じてよいです。

不要なポートは閉じる!のがセキュリティの基本です

ポートとは?

サーバが家なら玄関や窓がポート。玄関や窓は閉めないと泥棒が侵入するかも?

ちなみに、開いているポートはnmapで調べられます。

nmapの使用例

# nmap 127.0.0.1
Starting Nmap 7.70 ( https://nmap.org ) at 2020 10 10 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00018s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
111/tcp open rpcbind

nmapの情報からポート111はrpcbindというサービスが使用していることが分かります。

bash

# systemctl status rpcbind
● rpcbind.service - RPC bind portmap service
Loaded: loaded (/lib/systemd/system/rpcbind.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2021-12-18 19:37:24 JST; 31min ago
Docs: man:rpcbind(8)
Main PID: 18489 (rpcbind)
Tasks: 1 (limit: 2062)
CGroup: /system.slice/rpcbind.service
└─18489 /sbin/rpcbind -f -w
# netstat -ltnp | grep 111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/init
tcp6 0 0 :::111 :::* LISTEN 1/init
 # ss -ltnp | grep 111
LISTEN 0 128 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=18489,fd=4),("systemd",pid=1,fd=107))
LISTEN 0 128 [::]:111 [::]:* users:(("rpcbind",pid=18489,fd=6),("systemd",pid=1,fd=109))

rpcbind はnfsを利用するのに必要なサービスです。逆に言えばnfsを使っていなければrpcbindは不要です。

rpc(remote procedure call) bind とは?

rpcbindはかつてはportmapというサービスが代用されていました。

rpcbind(portmap)は動的に変化するnfsのポート番号をrpcbindに問い合わせれば教えてくれるというサービスです。

ポートは基本的に固定されているものと、変化する動的ポートがあります。

  • 固定ポート:80(web), 443(web),25(mail)
  • 動的ポート:???(nfs)

nfsはポート番号が決まっていません。

ポート番号が決まっていないとnfsクライアントは受付先が分からないので困ってしまいます。

  • webクライアント→80(http)に何も考えずに接続
  • NFSクライアント→NFSポート番号は??

とはいえ、NFSのポート番号はでたらめに決めているわけではなく、rpcbindが割り振っています。rpcbindは111なのでNFSクライアントは111(rpcbind)に問い合わせます。rpcbindはnfsポート番号を知っているので教えてくれます。

  • rpcbind(111)→2049(nfs)
  • NFSクライアント→111(rpcbind)ー2049(nfs)
  • 2049のポート番号をNFSクライアントに返す

rpcbindはnfsサーバが使用するポートを知っているのでリダイレクトしてnfsクライアントがnfsサーバに通信できるようになるということです。

nfsクライアント -> rpcbind( port 111) — nfs server use port 1908 <–> nfs サーバ


rpcbindを無効化してポート111を閉じよう!

動きが分かったところで、利用していなければrpcbindを無効化しましょう。

無効化するにはsystemctl stop rpcbind rpcbind.socketを実行します。

bash

# systemctl stop rpcbind rpcbind.socket
# systemctl status rpcbind | grep -i active
● rpcbind.service - RPC bind portmap service
   Loaded: loaded (/lib/systemd/system/rpcbind.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:rpcbind(8)
# netstat -ltnp
稼働中のインターネット接続 (サーバのみ)
Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態        PID/Program name
tcp        0      0 0.0.0.0:22            0.0.0.0:*               LISTEN      519/sshd
tcp6       0      0 :::22                 :::*                    LISTEN      519/sshd
//自動起動を無効化するため disableする
# systemctl disable rpcbind

これでポート111は閉じられました。

sshしかしないので↑のサーバはsshdの22ポートしかlistenしていません。

コメントを残す

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