공감 스토리

[Linux/Unix]포트가 열렸는지 여부확인 (퍼온글) 본문

프로그래밍

[Linux/Unix]포트가 열렸는지 여부확인 (퍼온글)

완전공감 2014. 9. 12. 14:18

[출처] [Linux/Unix]포트가 열렸는지 여부확인 | 작성자 bestheroz 

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

 

 

출처: 서적:리눅스 서버 보안관리 실무(홍석범 지음)  


'프로그래밍' 카테고리의 다른 글

[CSS][링크] CSS속성 설명  (0) 2017.07.10
Comments