원본 출처 : http://bestheroz.blog.me/96293248
① nmap으로 스캔하는 방법
"nmap -p 1-65535 localhost" 또는 "nmap -p 1-65535 공인IP" 를 실행하면 현재 자신의 시스템에 어떤 포트가 떠 있는지 모든 포트에 대해 확인 가능하다. 만약 아무런 옵션을 주지 않고 "nmap localhost" 만 실행하면 사전에 정의된 Well Known 포트에 대해서만 스캔을 한다는 것을 주의하자. 또한 "nmap -p 21,23,53,80 192.168.1.0/24" 와 같이 스캔할 경우에는 192.168.1.0 대역(즉 192.168.1.1 부터 192.168.1.255까지 모든 호스트)에 대해 21,23,53,80번등의 특정 포트가 열려있는지에 대해서만 스캔을 하게 된다.
② netstat -l 로 확인해 보는 방법
% netstat -lnp
netstat에서는 많은 옵션을 제공하고 있는데, 현재 시스템 상에서 특정 포트를 점유하여 소켓 데몬 형태로 대기중인 서비스에 대한 사항은 listen의 의미인 -l 옵션을 주면된다. 더불어서 -p 옵션을 주면 해당 포트를 사용 중인 program 이름도 확인할 수 있다.
위의 경우를 보면 좌측에 현재 리슨하고 있는 포트를 알 수 있으며 우측에 있는 정보를 보면 해당 포트가 어떤 PID(Process ID)이며 어떤 프로그램인지 확인할 수 있다. 만약 포트631/tcp를 리슨하고 있는 프로세스 정보를 알고자 한다면 pid가 2414이고 프로그램 이름이 cupsd인 것을 알수 있는데, 좀 더 상세히 알고자 한다면 앞에서 살펴본 바와 같이 ls -la /proc/<pid> 를 실행하면 된다.
③ tcp의 경우 "telnet host_ip 포트번호" 로 확인하면 된다.
telnet 자체는 tcp 프로토콜이므로 tcp 관련 프로토콜에 대해서만 접속 가능하며 udp 포트에 대한 telnet 접속 시도는 의미가 없다. 따라서 이를테면 snmp가 작동하는지 확인하기 위해 161/udp로 telnet 접속하는 것은 의미가 없다는 뜻이다.
아래의 사이트를 참조하면 특정한 포트 번호가 어떤 역할을 하는지에 대해서 상세한 정보를 얻을 수 있다.
http://www.grc.com/portdatahelp.htm
http://www.iss.net/security_center/advice/Exploits/Ports/default.htm
http://www.chebucto.ns.ca/~rakerman/port-table.html
http://www.networksorcery.com/enp/nav0204.htm
http://www.practicallynetworked.com/sharing/app_port_list.htm
'Linux' 카테고리의 다른 글
[각 OS별]커널 bit 확인 하는 법 32/64bit (187) | 2012.07.12 |
---|---|
CentOS 6 Minimal 리눅스 서버 (164) | 2012.07.12 |
개발자가 놓치지 말아야 할 (명저) 베스트 70 (259) | 2012.07.11 |
message queue늘리는 방법(Solaris) (274) | 2012.07.11 |
LINUX 디스크, CPU 정보 확인 명령 (481) | 2012.07.11 |