Solaris
[솔라리스10] 현재 열린 포트 체크 및 관리 팁
728x90
현재 시스템의 포트 관리를 위한 관련 명령어를 정리해 놓은 것입니다. Solaris 10을 기준으로 작성되었으므로 Linux나 기타 Solaris 버젼은 http://sunfreeware.com 또는 http://kldp.org 를 참고하셔서 정보를 검색하시기 바랍니다.
nmap은 대상 시스템 TCP 소켓에 3-way handshake 작업으로 열린 port들을 검색해 내며, 해당 포트에 맞는 service name을 알려준다. /etc/service 파일을 참고하여도 좋다. 포트 전반적으로 검색을 하므로 약간의 시간이 필요하다.
위에서 본 것처럼 해당 포트와 포트의 서비스 네임을 대략 알려준다.
만일 대상시스템의 시스템 로그에 흔적을 남기지 않고 스캔을 할려면 Stealth Scanning 기능을 사용하면 된다. 즉, 3-way handshake 과정을 완성시키지 않음으로써 상대 서버의 로그에 기록을 남기지 않는다. 실제 이런 류의 연결에 대해서 로그를 남기는 경우가 거의 없다고 한다. (과정 : 대상서버로 SYN packet 전송 → 대상서버의 port는 SYN | ACK으로 응답 → 공격자가 ACK 대신 RST로 응답 → 연결 종료) 단 반드시 root만이 가능하다.
위와 같이 현재 열린 포트를 사용하고 있는 서비스 명을 알려준다.
- 사용 패키지 : 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 )
- 참고 사이트 :
→ 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
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)
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
댓글