
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
コマンドは、ポート番号やプロトコル名ではないサービスについてのみ知っています。つまり、どの特定のソフトウェアパッケージ(たとえばsendmail
、exim
など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