Linux,Unix,BSD

[linux] UDP 포트 열려 있는지 확인하는 방법

채윤아빠 2024. 3. 7. 09:07
728x90
반응형

개요

서비스를 구성하는데, UDP 포트를 사용하여 연동하는 서비스가 있었습니다. 문제는 서비스의 기능이 정상적으로 동작하지 않아서 UDP 포트 서비스가 정상적으로 동작하는지 확인해야만 했습니다. 본 문서에서는 UDP 포트가 정상적으로 서비스 중인지 확인할 방법으로 "netcat"과 "nmap"을 알아 보도록 하겠습니다.


netcat

netcat (줄여서 "nc") 명령을 이용하면 간단하게 특정 포트가 열려 있는지 확인 가능합니다.

# netcat -vz -t 192.168.0.10 3306
Connection to 192.168.0.10 3306 port [tcp/mysql] succeeded!
# netcat -vz -u 192.168.0.10 36011
Connection to 192.168.0.10 36011 port [udp/*] succeeded!
# netcat -vz -u 192.168.0.209 36011
# netcat -vz -u 192.168.0.209 36012
# netcat -vz -u 192.168.0.209 36014
# netcat -vz -u 192.168.0.209 36010
#

위와 같이 "-t" 옵션으로 TCP 포트도 확인할 수 있고, "-u" 옵션으로 UDP 포트도 확인할 수 있습니다.

UDP 포트 확인 시에, 해당 포트에 연결이 성공해야 "Connection to 192.168.0.10 36011 port [udp/*] succeeded!"와 같은 메시지가 출력됩니다.

하지만, 윈도우 서버에 대해서 netcat의 UDP 포트를 확인하는 것은 문제가 있습니다. 윈도우 서버의 경우에는 방화벽 때문인지 실제로 열려 있는 포트가 없음에도 모두 열려 있는 것 처럼 결과가 나오는 점을 주의하셔야 합니다.


nmap

"nmap"이라는 포트 스캔 프로그램을 이용하면, 해당 포트가 열려 있고 서비스 중인지 간단하게 확인할 수 있습니다.

"namp"을 이용하여 다음과 같이 자기 자신의 36000 ~ 36020 포트가 정상적으로 열려 있는지 확인할 수 있습니다.

# sudo nmap -sU -O -p 36000-36020 127.0.0.1
Starting Nmap 7.80 ( https://nmap.org ) at 2024-03-28 15:16 KST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000033s latency).

PORT      STATE         SERVICE
36000/udp closed        unknown
36001/udp closed        allpeers
36002/udp closed        unknown
36003/udp closed        unknown
36004/udp closed        unknown
36005/udp closed        unknown
36006/udp closed        unknown
36007/udp closed        unknown
36008/udp closed        unknown
36009/udp closed        unknown
36010/udp open|filtered unknown
36011/udp closed        unknown
36012/udp closed        unknown
36013/udp closed        unknown
36014/udp closed        unknown
36015/udp open|filtered unknown
36016/udp closed        unknown
36017/udp closed        unknown
36018/udp closed        unknown
36019/udp closed        unknown
36020/udp closed        unknown
Too many fingerprints match this host to give specific OS details
Network Distance: 0 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2.66 seconds

nmap을 이용하여 36000 ~ 36020까지의 포트를 확인해 보니, 36010, 36015 두개의 포트가 열려 있는 것을 확인할 수 있었습니다.

그런데 이를 자기 자신이 아닌 다른 서버를 대상으로 시험해 보면 결과가 매번 다르게 나오는 게 신뢰성이 좀 떨어집니다.

특히 윈도우 서버에 대해서 시험을 하면, 윈도우 방화벽 때문인지 모두 열려 있다고 결과가 나와서 좀 당황스러웠습니다.

# sudo nmap -sU -O -p 36000-36020 192.168.0.10
Starting Nmap 7.80 ( https://nmap.org ) at 2024-03-28 16:13 KST
Nmap scan report for 192.168.0.10
Host is up (0.00019s latency).

PORT      STATE         SERVICE
36000/udp open|filtered unknown
36001/udp open|filtered allpeers
36002/udp open|filtered unknown
36003/udp open|filtered unknown
36004/udp open|filtered unknown
36005/udp open|filtered unknown
36006/udp open|filtered unknown
36007/udp open|filtered unknown
36008/udp open|filtered unknown
36009/udp open|filtered unknown
36010/udp open|filtered unknown
36011/udp open|filtered unknown
36012/udp open|filtered unknown
36013/udp open|filtered unknown
36014/udp open|filtered unknown
36015/udp open|filtered unknown
36016/udp open|filtered unknown
36017/udp open|filtered unknown
36018/udp open|filtered unknown
36019/udp open|filtered unknown
36020/udp open|filtered unknown
MAC Address: 4C:ED:FB:97:7A:C7 (Asustek Computer)
Too many fingerprints match this host to give specific OS details
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 4.52 seconds

이런 면에서 nmap 보다는 nc 명령이 조금 더 신뢰성이 있는 것 같습니다.


참고자료