ポートを開くサービスについて

ポートを開くサービスについて

Debian 8.2 で不要なポートを閉じたいと思います。

$ nmap localhost | grep open
25/tcp  open  smtp
631/tcp open  ipp

smtpに対応するサービスを検索し、

$ lsof -i:25
$ sudo systemctl --all | grep smtp

どちらのコマンドも何も表示しません。 IPも同じだ。ポートを開くサービスについてはわかりません。どうすればいいですか?

ベストアンサー1

このlsofコマンドはrootとして実行する必要があります。それ以外の場合は、ユーザーに属する受信ポートのみが表示されます。

# lsof -i:25
COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
master  844 root   12u  IPv4   6975      0t0  TCP *:smtp (LISTEN)
master  844 root   13u  IPv6   6976      0t0  TCP *:smtp (LISTEN)

このsystemctlコマンドは、ポート番号やプロトコル名ではないサービスについてのみ知っています。つまり、どの特定のソフトウェアパッケージ(たとえばsendmaileximなどpostfix)がsmtpサービスを提供しているかを知る必要があります。例えば

# systemctl | grep -E 'postfix|exim|sendmail|qmail'
postfix.service

別のオプションは、検索対象をより一般的なものにすることです。たとえばmail、代わりにgrepsmtp

# systemctl --all | grep -i mail
  postfix.service                 loaded    active   running   LSB: Postfix Mail Transport Agent
  mail-transport-agent.target     loaded    active   active    Mail Transport Agent

おすすめ記事