✨ Q27. 외부에서 열려 있는 포트번호 조회하기 ✨
레벨업챌린지: 리눅스 실습 실력 향상시켜보세요!
👉 https://reallinux.co.kr/level-up/p/1/p/1/27/
• 🔍 nmap을 이용해 외부 서버의 특정 포트가 열려 있는지 확인하기
• 🌐 포트번호와 서비스의 관계를 이해하고 서버에서 제공 중인 서비스를 파악하기
1. 🌐 포트번호는 무엇일까?
서버에는 하나의 IP 주소로 여러 네트워크 서비스가 동시에 동작할 수 있습니다.
이때 어떤 서비스와 통신할 것인지 구분하기 위해 사용하는 번호가 포트(Port) 번호입니다.
대표적인 포트는 다음과 같습니다.
| 서비스 | 포트번호 | 설명 |
|---|---|---|
| FTP | 20, 21 | 파일 송수신 |
| SSH | 22 | 원격 접속 |
| HTTP | 80 | 웹 서비스 |
| HTTPS | 443 | 암호화된 웹 서비스 |
| SMTP | 25 | 이메일 전송 |
예를 들어 웹 브라우저에서 HTTP 서버에 접속하면 기본적으로 80번 포트를 사용합니다.
💻 사용자 │ │ HTTP 요청 ▼ 🌐 서버 IP : 80 │ ▼ 🖥️ Web Server
따라서 외부에서 서버를 점검할 때 어떤 포트가 열려 있는지 확인하면 해당 서버에서 어떤 서비스가 동작하고 있는지 추측할 수 있습니다.
2. 🧰 nmap 설치하기
외부 서버의 포트를 확인할 때 대표적으로 사용하는 도구가 nmap(Network Mapper) 입니다.
Rocky Linux에서는 다음과 같이 설치합니다.
sudo dnf install -y nmap
nmap은 특정 서버의 포트 상태를 확인하거나 네트워크 서비스를 조사할 때 많이 사용하는 도구입니다.
3. 🔍 특정 포트만 확인하기
특정 서버의 80번 포트가 열려 있는지 확인해보겠습니다.
nmap -p 80 www.google.com
여기서 -p 옵션은 확인할 포트번호를 지정합니다.
nmap -p 80 www.google.com │ └── 80번 포트만 검사
결과에서는 주로 다음과 같은 상태를 확인하게 됩니다.
PORT STATE SERVICE 80/tcp open http
🚦 포트 상태 이해하기
open
→ 해당 포트가 열려 있고 서비스가 요청을 받을 수 있는 상태
closed
→ 서버에는 접근할 수 있지만 해당 포트를 사용하는 서비스가 없는 상태
filtered
→ 방화벽 등의 영향으로 nmap이 포트 상태를 명확하게 판단하지 못하는 상태
4. 🛰️ 여러 포트를 한 번에 확인하기
서버에서 어떤 서비스가 열려 있는지 전체적으로 확인하고 싶다면 다음처럼 사용할 수 있습니다.
nmap nmap.org
기본적으로 nmap은 자주 사용되는 TCP 상위 1000개 포트를 검사합니다.
예를 들어 다음과 같은 결과를 확인할 수 있습니다.
PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http 443/tcp open https
이 결과를 보면 해당 서버에서
🔐 22 → SSH 📧 25 → SMTP 🌐 80 → HTTP 🔒 443 → HTTPS
와 같은 서비스가 외부에 공개되어 있다는 것을 알 수 있습니다.
5. 🔎 특정 포트와 전체 스캔의 차이
특정 포트만 빠르게 확인하려면 -p 옵션을 사용합니다.
nmap -p 80 www.google.com
반대로 서버에서 어떤 서비스들이 열려 있는지 전체적인 상태를 확인하려면 다음처럼 기본 스캔을 사용할 수 있습니다.
nmap nmap.org
🎯 특정 서비스 확인 nmap -p 80 서버주소 ↓ 80번 포트만 검사 🔍 서버 서비스 전체 확인 nmap 서버주소 ↓ 주요 TCP 포트 검사
필요하다면 -p- 옵션을 이용해 1~65535 전체 TCP 포트를 검사할 수도 있습니다.
nmap -p- 서버주소
다만 전체 포트를 검사하면 시간이 훨씬 오래 걸릴 수 있습니다.
🎯 핵심 정리
외부에서 서버의 포트 상태를 확인하는 기본 흐름은 다음과 같습니다.
🌐 외부 서버 ↓ 🔍 nmap으로 포트 스캔 ↓ 🚦 open / closed / filtered 확인 ↓ 🖥️ 어떤 서비스가 동작하는지 파악
실습에서 기억해야 할 핵심 명령어는 다음과 같습니다.
# 1. 🧰 nmap 설치 sudo dnf install -y nmap # 2. 🔍 80번 포트 확인 nmap -p 80 www.google.com # 3. 🌐 주요 포트 확인 nmap nmap.org # 4. 🛰️ 전체 TCP 포트 확인 nmap -p- 서버주소
💡 핵심 포인트
- 🔍
nmap -p 포트번호 서버주소→ 특정 포트의 외부 접근 가능 여부 확인 - 🌐
nmap 서버주소→ 서버에서 외부에 열려 있는 주요 서비스 확인 - 🚦
open,closed,filtered를 통해 포트 상태를 구분 - 🧩 포트번호를 확인하면 HTTP, SSH, HTTPS 등 서버에서 제공하는 서비스를 파악할 수 있습니다.
🐧 핵심은 단순히 nmap 명령어를 외우는 것이 아니라 서버 → 포트 → 서비스의 관계를 이해하는 것입니다.
⚠️ 포트 스캔은 본인이 관리하거나 스캔 허가를 받은 서버를 대상으로 실습하는 것이 좋습니다.
추가적으로 리눅스 네트워크를 더 공부하고싶다면 네트워크 완전정복을 참고하세요. https://reallinux.co.kr/course/se_network