Solaris

[솔라리스10] 현재 열린 포트 체크 및 관리 팁

알 수 없는 사용자 2008. 2. 24.
728x90
현재 시스템의 포트 관리를 위한 관련 명령어를 정리해 놓은 것입니다. Solaris 10을 기준으로 작성되었으므로 Linux나 기타 Solaris 버젼은 http://sunfreeware.com(새 창으로 열기) 또는 http://kldp.org(새 창으로 열기) 를 참고하셔서 정보를 검색하시기 바랍니다.

- 사용 패키지 : nmap / lsof / netstat
- 참고 사이트 :
   → Red Hat Enterprise Linux 4 보안 가이드 ( http://docs.rootda.org/rhel-sg-ko-4/(새 창으로 열기) )
   → KLDP ( http://kldp.org(새 창으로 열기) )
   → nmap을 이용한 네트워크 스캐닝과 방어하기 ( http://www.linuxlab.co.kr/docs ··· 05-2.htm(새 창으로 열기) )
   → lsof 설치 및 사용가이드 ( http://www.superuser.co.kr/sec ··· c_15.htm(새 창으로 열기) )


현재 열린 포트 검사(Port Scanning)
netstat 명령으로 간단하게 확인할 수 있으나, 잡다한 명령어들이 많이 나오므로 nmap을 이용하여 정확하게 체크하는 것이 좋다.

# nmap -sT [시스템IP]

nmap은 대상 시스템 TCP 소켓에 3-way handshake 작업으로 열린 port들을 검색해 내며, 해당 포트에 맞는 service name을 알려준다. /etc/service 파일을 참고하여도 좋다. 포트 전반적으로 검색을 하므로 약간의 시간이 필요하다.

# nmap -sT 192.168.0.10
Starting nmap 3.93 ( http://www.insecure.org/nmap/(새 창으로 열기) ) at 2007-07-25 19:15 KST
Interesting ports on www (192.168.0.10):
(The 1657 ports scanned but not shown below are in state: closed)
PORT      STATE SERVICE
21/tcp    open  ftp
22/tcp    open  ssh
513/tcp   open  login
6000/tcp  open  X11
7100/tcp  open  font-service
....
....
....
32777/tcp open  sometimes-rpc17
32778/tcp open  sometimes-rpc19

위에서 본 것처럼 해당 포트와 포트의 서비스 네임을 대략 알려준다.

만일 대상시스템의 시스템 로그에 흔적을 남기지 않고 스캔을 할려면 Stealth Scanning 기능을 사용하면 된다. 즉, 3-way handshake 과정을 완성시키지 않음으로써 상대 서버의 로그에 기록을 남기지 않는다. 실제 이런 류의 연결에 대해서 로그를 남기는 경우가 거의 없다고 한다. (과정 : 대상서버로 SYN packet 전송 → 대상서버의 port는 SYN | ACK으로 응답 → 공격자가 ACK 대신 RST로 응답 → 연결 종료) 단 반드시 root만이 가능하다.


현재 열린 포트를 사용하고 있는 서비스 찾기
현 시스템의 열린 포트를 어떤 서비스가 이용하고 있는지 표시할려면 lsof 를 이용하면 된다.

# lsof -i
COMMAND   PID   USER   FD   TYPE        DEVICE  SIZE/OFF NODE NAME
inetd     223   root   29u  IPv6 0x60002958e40       0t0  TCP *:ftp (LISTEN)
inetd     223   root   31u  IPv6 0x60002957ac0       0t0  TCP *:login (LISTEN)
inetd     223   root   37u  IPv4 0x6000452d500       0t0  TCP *:bpcd (LISTEN)

......

xfs       832 nobody    0u  IPv6 0x600028eed80       0t0  TCP *:fs (LISTEN)
xfs       832 nobody    1u  IPv6 0x600028eed80       0t0  TCP *:fs (LISTEN)

위와 같이 현재 열린 포트를 사용하고 있는 서비스 명을 알려준다.


열린 포트 닫기
위와 같은 과정을 거쳐 현재 포트를 사용중인 서비스를 알았다면 Solaris 10 에서는 svcs -a 명령으로 모든 온라인 서비스를 찾아낼 수 있으며, 해당 서비스를 disable 시키고 서비스를 중단하면 사용중이던 포트가 닫히게 된다. 반드시 disable 상태에서만 포트가 닫히며 offline 상태에서는 포트가 열려있는 상황이므로 disable 시키는 것을 잊지 말자.

참고명령어 : svcs , svcadm
728x90

댓글