포트를 여는 서비스 이해

포트를 여는 서비스 이해

데비안 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명령은 루트로 실행해야 합니다. 그렇지 않으면 사용자에게 속한 수신 포트만 표시됩니다.

# 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

관련 정보