데이터베이스 포트가 인터넷에 노출되어 있는지 확인하기
공용 인터넷에서 응답하는 데이터베이스는 가장 흔한 서버 실수 중 하나입니다. 서버 주소를 입력하면 MySQL(3306), PostgreSQL(5432), Redis(6379) 중 어느 것이 외부 연결을 받아들이는지 확인할 수 있습니다. 목록에 아무것도 나타나지 않으면 여기에서는 접근할 수 없다는 뜻입니다.
노출된 데이터베이스를 확인하는 방법
-
1
서버 주소 입력
데이터베이스가 실행되는 장비의 공용 호스트 이름 또는 IP 주소를 사용하세요.
-
2
검사 실행
다음을 누른 다음 "일반 포트 검사"를 클릭하세요.
-
3
3306, 5432, 6379 확인
이 중 하나라도 목록에 있으면 해당 서비스가 인터넷에서 오는 연결을 받아들이고 있는 것입니다.
-
4
비공개여야 할 항목 수정
서비스를 사설 주소에 바인딩하거나 방화벽에서 포트를 닫은 다음 다시 검사하세요.
노출이 중요한 이유
데이터베이스와 캐시는 낯선 사람이 아니라 여러분의 애플리케이션이 접근하도록 설계되어 있습니다. 특히 Redis는 기본 설정에서 비밀번호 없이 실행되는 경우가 많고, MySQL이나 PostgreSQL 포트가 접근 가능하면 비밀번호 추측 공격을 부추깁니다. 이 포트들을 공용 인터넷에서 차단하는 것은 기본적인 예방 조치입니다.
각 결과의 의미
| 포트 | 서비스 | 목록에 표시된 경우 |
|---|---|---|
| 3306 | MySQL | 서버가 인터넷에서 오는 TCP 연결을 받아들임 |
| 5432 | PostgreSQL | 동일합니다. 접근 규칙과 바인딩 주소를 검토하세요 |
| 6379 | Redis | 동일합니다. 비밀번호와 사설 바인딩 주소를 확인하세요 |
포트가 열려 있다고 해서 데이터베이스가 보호되지 않는다는 뜻은 아닙니다. 인증이나 호스트 규칙이 로그인을 거부할 수도 있습니다. 하지만 해당 서비스에 접근할 수 있다는 뜻이므로 더 자세히 살펴볼 가치가 있습니다.
일반적인 해결 방법
- 데이터베이스를 localhost 또는 사설 네트워크 주소에 바인딩하세요.
- 애플리케이션 서버에서만 해당 포트를 허용하는 방화벽 규칙을 추가하세요.
- 클라우드 서버라면 호스트 방화벽과 함께 보안 그룹 또는 네트워크 ACL도 검토하세요.
- 다시 검사하여 포트가 더 이상 나타나지 않는지 확인하세요.
이 검사의 한계
기본 포트 세 개만 테스트합니다. 사용자 지정 포트에서 실행되는 데이터베이스는 감지되지 않습니다. 닫힘, 필터링됨, 접근 불가 상태는 모두 빈 결과로 나타나므로, 검사 결과가 깨끗하다는 것은 이 위치에서 이 포트들이 연결을 받아들이지 않았다는 의미일 뿐입니다. 여러분이 소유하거나 관리하는 서버만 검사하세요.
노출이 의도된 경우
관리형 서비스가 허용 목록에 있는 주소의 연결만 받아들이거나, 다른 지역에서 연결하는 복제본처럼 데이터베이스를 의도적으로 노출하는 구성도 있습니다. 이런 경우에는 이 검사에서 포트가 열려 보이는 것이 예상된 결과입니다. 확인해야 할 질문은 허용 목록이 실제로 접근을 제한하고 있는지 여부이며, 그 방법은 허용 목록 밖의 주소에서 포트가 의도한 대로 동작하는지 확인하는 것입니다.
노출을 의도하지 않았다면, 열려 있는 데이터베이스 포트는 오늘 바로 고쳐야 할 문제로 취급하세요. 그다음 알 수 없는 주소에서 온 연결 시도가 있는지 데이터베이스 로그를 확인하세요.
자주 묻는 질문
아닙니다. 포트에 TCP 연결을 열고 연결이 수락되었는지만 보고합니다. 자격 증명을 보내지 않으며 쿼리도 실행하지 않습니다.
아닙니다. 고정 목록에 있는 기본 포트만 테스트하므로 다른 포트의 데이터베이스는 확인되지 않습니다.
항상 그렇지는 않습니다. 인증이나 암호화가 여전히 보호할 수 있습니다. 하지만 노출되면 공격 표면이 넓어지므로 대부분의 구성에서는 이 포트들을 비공개로 유지합니다.
방화벽이 사무실 주소만 허용하고 있을 수 있습니다. 검사는 다른 공용 주소에서 실행되므로 다른 모든 사람이 보는 것을 보게 되며, 이것이 이 검사의 목적입니다.
관련 도구
IP 서브넷 계산기
모든 IPv4 CIDR 블록에 대해 서브넷 범위, 네트워크 주소, 브로드캐스트 주소, 사용 가능한 호스트, 와일드카드 마스크를 계산합니다. /0부터 /32까지 완벽하게 지원합니다.
Traceroute 도구
신뢰할 수 있는 공개 프로브 서비스로 어떤 호스트로든 traceroute를 실행하고, 홉별 출력을 읽어 지연 급증, 패킷 손실, 라우팅 문제를 찾아내는 법을 배워보세요.
웹사이트 접속 불가 검사기
웹사이트가 독립된 서버에서 응답하는지 확인하세요. UP 또는 DOWN 상태, HTTP 상태 코드, 응답 시간, 서버 IP를 보여 주어 실제 장애와 로컬 네트워크 문제를 구분할 수 있습니다.
웹사이트 스크린샷 도구
공개 URL을 입력하면 즉시 스크린샷 미리보기를 보여주고, Screenshot Machine, Urlbox, ApiFlash 같은 무료 서비스에서 열거나 Wayback Machine에서 예전 스크린샷을 볼 수 있습니다.
도메인 나이 검사
등록부의 WHOIS 데이터를 사용하여 도메인이 처음 등록된 시점과 그 연·월·일 기준의 운영 기간을 확인하십시오.
DKIM 검사기
도메인과 DKIM 선택자를 입력해 DNS TXT 공개 키를 확인하세요. 레코드, 키 유형, 키 누락·폐기·형식 오류 등의 상태를 설명합니다.
이 도구는 다른 언어로도 제공됩니다
- ตรวจสอบว่าพอร์ตฐานข้อมูลเปิดให้เข้าถึงจากอินเทอร์เน็ตหรือไม่ [TH]
- Sprawdź, czy porty baz danych są wystawione do internetu [PL]
- Kiểm tra xem cổng cơ sở dữ liệu có bị lộ ra internet không [VI]
- Periksa apakah port database terekspos ke internet [ID]
- التحقق مما إذا كانت منافذ قواعد البيانات مكشوفة للإنترنت [AR]
- Prüfen, ob Datenbank-Ports öffentlich im Internet erreichbar sind [DE]
- データベースのポートがインターネットに公開されていないか確認する [JA]
- Verificar se as portas de banco de dados estão expostas à internet [PT]
- Comprobar si los puertos de bases de datos están expuestos a Internet [ES]
- Kontrollera om databasportar är exponerade mot internet [SV]
- Vérifier si les ports de bases de données sont exposés sur Internet [FR]
- Controleren of databasepoorten blootgesteld zijn aan internet [NL]
- Check if Database Ports Are Exposed to the Internet [EN]
- Verifica se le porte dei database sono esposte su Internet [IT]
- Проверка, открыты ли порты баз данных для интернета [RU]
- Veritabanı bağlantı noktaları internete açık mı kontrol edin [TR]
- 检查数据库端口是否暴露在互联网上 [ZH]