Solaris

청취 중인 포트 확인하기

알 수 없는 사용자 2008. 3. 7.
728x90

네트워크 서비스를 설정하신 후 어떤 포트가 시스템의 네트워크 인터페이스를 청취 중인지 확인하는 것이 중요합니다. 열려진 포트가 있다면 침입자가 있다는 증거일 수도 있습니다.

네트워크 상에서 청취 중인 포트를 찾아낼 수 있는 두가지 방법이 있습니다. 보다 덜 안정적인 방법으로 netstat -an 또는 lsof -i와 같은 명령을 입력하여 네트워크 스택을 질의하실 수 있습니다. 이 프로그램은 네트워크의 시스템에 연결하지 않고 시스템 상에 무엇이 실행 중인지 확인하기 때문에 신뢰성이 떨어집니다. 따라서 침입자는 종종 이 프로그램을 상대로 침입을 시도합니다. 침입자가 권한이 없는 네트워크 포트를 열게된 경우 침입한 자취를 감추는데 이러한 방법을 사용합니다.

보다 안전하게 네트워크 상에서 청취 중인 포트를 확인할 수 있는 방법은 nmap과 같은 포트 스캐너를 사용하는 것입니다.

콘솔에서 다음 명령을 입력하시면 네트워크에서 어느 포트가 TCP 연결을 청취하고 있는지 확인할 수 있습니다:

nmap -sT -O localhost

이 명령의 결과는 다음과 같이 출력될 것입니다:

Starting nmap 3.55 ( http://www.insecure.org/nmap/ ) at 2004-09-24 13:49 EDT
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1653 ports scanned but not shown below are in state: closed)
PORT      STATE SERVICE
22/tcp    open  ssh
25/tcp    open  smtp
111/tcp   open  rpcbind
113/tcp   open  auth
631/tcp   open  ipp
834/tcp   open  unknown
2601/tcp  open  zebra
32774/tcp open  sometimes-rpc11
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.5.25 - 2.6.3 or Gentoo 1.2 Linux 2.4.19 rc1-rc7)
Uptime 12.857 days (since Sat Sep 11 17:16:20 2004)
 
Nmap run completed -- 1 IP address (1 host up) scanned in 5.190 seconds

이 출력 결과는 시스템이 sunrpc 서비스가 존재하기 때문에 portmap을 실행 중인것을 보여줍니다. 그러나 포트 834에서 수상한 서비스를 발견할 수 있습니다. 이 포트가 공식적으로 알려진 서비스와 관계있는지 확인해보시려면 다음 명령을 입력하시기 바랍니다:

cat /etc/services | grep 834

이 명령이 아무런 결과도 출력하지 않습니다. 즉, 포트는 0에서 1023 사이의 범위에 속하지만 루트 권한이 있어야 열 수 있습니다. 따라서 이 포트는 알려진 서비스와 관련되지 않습니다.

다음으로 netstat이나 lsof를 사용하여 포트에 대한 정보를 확인해보시기 바랍니다. netstat을 사용하여 포트 834를 확인하시려면 다음 명령을 사용하십시오:

netstat -anp | grep 834

명령은 다음과 같은 결과를 출력할 것입니다:

tcp   0    0 0.0.0.0:834    0.0.0.0:*   LISTEN   653/ypbind

netstat을 사용하여 열려진 포트를 발견하시면 이 포트가 안전하다고 안심하실 수 있습니다. 그 이유는 크래커가 침입한 시스템에서 은밀하게 포트를 연 경우에는 이 명령을 사용하여 발견되지 않도록 설정할 것이기 때문에 포트가 열려져 있다는 것은 이 포트가 안전하다는 것을 의미합니다. 또한 [p] 옵션은 포트를 연 서비스의 프로세스 ID (PID)를 보여줍니다. 이 예시에서 열려진 포트는 portmap 서비스와 함께 사용되는 RPC 서비스인 ypbind (NIS)에 사용됩니다.

lsof 명령도 열려진 포트와 관련된 서비스를 보여주는 기능을 갖추고 있으므로 유사한 정보를 보여줍니다:

lsof -i | grep 834

다음은 출력 결과에서 이 명령과 관련있는 부분입니다:

ypbind      653        0    7u  IPv4       1319                 TCP *:834 (LISTEN)
ypbind      655        0    7u  IPv4       1319                 TCP *:834 (LISTEN)
ypbind      656        0    7u  IPv4       1319                 TCP *:834 (LISTEN)
ypbind      657        0    7u  IPv4       1319                 TCP *:834 (LISTEN)

이러한 도구를 사용하여 시스템 상에서 실행 중인 서비스의 상태에 대한 많은 정보를 얻을 수 있습니다. 이 도구들은 사용이 유연하며 네트워크 서비스와 설정에 대한 광범위한 정보를 제공합니다. 따라서 lsof, netstat, nmap, services의 메뉴얼 페이지를 참조하시기 바랍니다.

728x90

댓글