[SMTP] SMTP 상태코드(에러코드)별 종류와 이유
- 2024.06.04 -
SMTP 서버를 최근 파이썬을 이용해 구축하다보니
여러가지를 다루게 되었는데.
그 중 SMTP의 상태코드. 즉, 에러코드 별
종류와 사유를 정리해 보기로 했다.
HTTP 상태코드야.. 당연히
취약점진단 및 모의해킹을 하는 사람들이면
접하기 쉬운 반면 SMTP 서버의 에러코드는 생소해서
나중에 코드별로 원인과 사유를 파악하기 쉽게
정리해 보기로 했다.
SMTP란?
SMTP은 Simple Mail Transfer Protocol의 약자로 해당 프로토콜은
인터넷에서 이메일을 송수신하는 데 사용되는 표준 프로토콜이다.
메일 서버 간의 메시지 전송뿐만 아니라
메일 클라이언트에서 서버로 메일을 전송하는 데 사용된다.
SMTP는 TCP/IP 프로토콜을 기반으로 하며, 일반적으로 TCP의 포트 25를 사용하고
또한 보안이 강화된 SMTP(예: SMTPS)는 포트 465나 587을 사용할 수 있습니다.
주요기능
이메일 전송
SMTP는 주로 이메일 메시지를 A서버에서 다른 B서버로 전송하는 데 사용된다
이메일 클라이언트가 사용자의 이메일을 발송할 때도 SMTP를 통해 전송한다.
이메일 큐잉
메일 서버는 일시적으로 전송할 수 없는 이메일을 큐에 저장해두었다가
전송이 가능할 때 다시 시도하여 전송하는 기능이다.
다중 수신자
SMTP는 한 번의 메시지 전송으로 여러 수신자에게 효율적으로 이메일을 보낼 수 있다.
작동 원리
SMTP 클라이언트와 서버 연결
이메일을 발송하려는 클라이언트는 SMTP 서버와 TCP 연결을 설정
헬로(HELO/EHLO) 명령
클라이언트는 HELO 또는 EHLO 명령을 사용하여 서버에 자신을 소개
메일 발송 요청 (MAIL FROM)
클라이언트는 발신자의 이메일 주소를 서버에 전달
수신자 지정 (RCPT TO)
클라이언트는 수신자의 이메일 주소를 서버에 전달합니다.
여러 명의 수신자를 지정이 가능함
메시지 전송 (DATA)
클라이언트는 DATA 명령을 사용하여 메시지 본문을 전송
메시지 끝은 점(.)으로 표시
세션 종료 (QUIT)
모든 메시지가 전송되면 클라이언트는 QUIT 명령을 사용하여 세션을 종료
에러 코드
에러코드들은 SMTP 프로토콜에 정의되어 있으며
메일 서버와 클라이언트 간의 통신 오류를 디버깅하고 해결하는 데 도움을 줍니다.
추가적인 상세 정보나 특정 상황에 따른 오류 메시지는
메일 서버의 로그를 확인 및 메일 서버 관리자의 도움을 받아야 할 수 있다.
에러코드 | 설명 |
2xx | 성공 |
200 | non-standard success response |
211 | 시스템 상태나 시스템 도움 메시지 |
214 | 도움 메시지 |
220 | 서비스 준비 완료 |
221 | 서비스 닫힘 |
250 | 요청 메일 동작 완료 |
251 | 메일을 다른 곳으로 포워드 함 |
3xx | 추가 정보 필요 |
354 | 메일 입력 시작 |
4xx | 일시적인 에러 ( 잠시 후 다시 시도 가능 ) |
421 | 서비스 사용 불가, 연결 끊김. |
450 | 요청된 메일 동작을 수행할 수 없음 (메일박스 잠금 중) |
451 | 요청된 메일 동작 중 오류 발생 (로컬 오류 처리 중) |
452 | 시스템 저장 공간 부족으로 요청된 메일 동작을 수행할 수 없음 |
5xx | 영구적인 에러 ( 다시 시도해도 실패 ) |
500 | 명령어 인식 불가 |
501 | 매개변수 또는 인수 오류 |
502 | 명령어 실행 불가 |
503 | 명령어 순서 오류 |
504 | 명령어 매개변수 없음 |
550 | 요청된 메일 동작을 수행할 수 없음 : 메일박스 존재하지 않음 |
551 | 사용자가 다른 곳으로 이동했음 |
552 | 저장 공간 초과 |
553 | 메일 주소 형식 오류 |
554 | 트랜잭션 실패 |
'Red Team > 정보보안' 카테고리의 다른 글
CVSS 3.1 Calculate 및 각 명칭 별 설명 (2) | 2024.12.23 |
---|---|
[역량강화] 서브도메인 스캔과 nmap 사용법 및 OSINT (1) | 2024.06.03 |
[역량강화] Curl 이란? (0) | 2024.05.17 |
[역량강화] TLS 1.0, TLS 1.1 버전이 취약한 이유 (0) | 2024.03.21 |
댓글
이 글 공유하기
다른 글
-
CVSS 3.1 Calculate 및 각 명칭 별 설명
CVSS 3.1 Calculate 및 각 명칭 별 설명
2024.12.23 -
[역량강화] 서브도메인 스캔과 nmap 사용법 및 OSINT
[역량강화] 서브도메인 스캔과 nmap 사용법 및 OSINT
2024.06.03 -
[역량강화] Curl 이란?
[역량강화] Curl 이란?
2024.05.17 -
[역량강화] TLS 1.0, TLS 1.1 버전이 취약한 이유
[역량강화] TLS 1.0, TLS 1.1 버전이 취약한 이유
2024.03.21