
SRV-006 SMTP 서비스 로그 수준 설정 미흡
【 상세설명 】
SMTP 서비스는 일반적으로 로그 설정을 할 때, 중요한 이벤트만 기록하는 수준부터 발생한 모든 이벤트를 기록하는 수준까지 로그의 기록 정도를 설정할 수 있다. 로그 수준이 너무 낮게 설정되었을 경우, 오류 또는 침해행위로 인한 서비스 장애의 원인을 추적하지 못할 위협이 있기 때문에 로그 수준 설정의 적절성을 점검
【 판단기준 】
- 양호 : SMTP 로그 수준 설정이 적절한 경우
- 취약 : SMTP 로그 수준 설정이 낮은 경우
【 판단방법 】
1. SMTP 서비스 설정 파일에서 로그 수준 설정 값이 기본 값 이상의 수준인지 확인
※ postfix 는 시스템 syslog 설정 사용
■ Linux, AIX, HP-UX, SOLARIS
[ sendmail ] : LogLevel 설정값이 기본값 이상의 수준(9 이상)인지 확인
# cat /etc/sendmail.cf | grep LogLevel
# cat /etc/mail/sendmail.cf | grep LogLevel
O LogLevel=9
[ postfix ] : 시스템 syslog 설정 파일에서 maillog 설정 및 postfix 설정 파일에서 debug_peer_level 설정값이 기본값 이상의 수준(2 이상)인지 확인
# cat /etc/syslog.conf | grep mail
# cat /etc/rsyslog.conf | grep mail
# cat /etc/rsyslog.d/postfix.conf | grep mail
mail.* -/var/log/maillog
# cat /etc/postfix/main.cf | grep debug_peer_level
debug_peer_level = 2
※ "-/var/log/maillog" 의 "-" 은 메모리와 실시간 동기화 중지 옵션으로 syslog의 Global Directives 설정에서 메시지 큐 사이즈 등 제한 설정을 별도로하지 않는 일반 사용자 환경에서는 "/var/log/maillog"와 동일하게 동작
[ exim ] : log_level 설정값이 없거나 기본값 이상의 수준(5 이상)인지 확인(설정값이 없는 경우 Default 값 5 적용)
# cat /etc/exim.conf | grep log_level
# cat /etc/exim/exim.conf | grep log_level
# cat /etc/exim/exim4.conf | grep log_level
# cat /etc/exim4/conf.d/*.conf | grep log_level
log_level = 5
※ exim 4 이상 버전 로깅 설정
- exim 4 이상 버전은 "log_selector"로 로깅 설정("log_level" 등 기존 로깅 관련 옵션은 공식적으로 지원 종료)
- "log_selector" 는 "log_selector = +arguments -retry_defer" 형태로 로깅 옵션 설정 가능
- 일반적으로 "log_selector = MAIN_LOG_SELECTOR" 으로 설정하고 "MAIN_LOG_SELECTOR" 에서 로깅 옵션 설정
- "log_selector" 에서 지원하는 로깅 옵션과 "MAIN_LOG_SELECTOR" 에 설정되어 있는 Default 로깅 옵션은 버전 별로 변경되고 있어 명확한 기준 미존재
(예시 : Exim 4.96 버전)
# cat /etc/exim/exim4.conf
# cat /etc/exim4/conf.d/*.conf
log_selector = MAIN_LOG_SELECTOR
...
MAIN_LOG_SELECTOR = +smtp_protocol_error +smtp_syntax_error +tls_certificate_verified +tls_peerdn
■ 참고 : 로그 수준 설정
- 일반적으로 상위 로그 레벨은 하위 로그 레벨에서 기록하는 정보에 이어서 추가 정보 기록
- 최고 로그 레벨인 경우 모든 정보가 기록되므로 디스크 용량 문제, 많은 디스크 엑세스로 인한 시스템 부하 문제 등이 발생할 수 있으므로 필요한 경우가 아니면 설정 자제 권고
※ sendmail Log level(최고 레벨 : 15)
0 : 최소한의 정보만 기록
1 : "crit", "alert" 수준의 심각한 시스템 실패나 잠재적인 보안 문제 기록
2 : "crit" 수준의 네트워크 문제나 프로토콜 실패 기록
3 : "error" 수준의 forward / include 에러, "notice” 수준의 존재하지 않는 주소, timeout 으로 인한 연결 거부 등 기록
4 : "notice" 수준의 TCP wrapper 등에 의한 접속 거부 및 minor 에러, "info" 수준의 Out-of-date alias 데이터베이스 정보 등 기록
5 : "info" 수준의 수신 메일 레코드, envelope 복사 정보 등 기록
6 : "info" 수준의 VRFY, EXPN, ETRN 명령어, 메일 반송 등 기록
7 : "info" 수준의 메일 송/수신 실패 기록
8 : "info" 수준의 메일 송/수신 성공, "notice" 수준의 alias 데이터베이스 변경 정보 기록
9(default) : "info” 수준의 시스템 자원 부족에 의한 송/수신 지연 기록
10 : "info" 수준의 inbound 연결, 데이터베이스에서 조회한 키 값 및 결과, AUTH= 에러, STARTTLS 에러, "warning" 수준의 TLS 에러 기록
* STARTTLS : SMTP 와 IMAP 에서 사용하는 TLS/SSL 확인 및 암호화를 수행하는 기능(POP3 는 STLS 사용)
11 : "info" 수준의 NIS 에러, 프로세스 종료(또는 작업 삭제) 등 기록
12 : "info" 수준의 outbound 연결 기록
13 : 의심스러운 파일(World-writable 파일, Shell 파일 등) 등 보안 관련 정보 기록
14 : "info" 수준의 접속 거부, STARTTLS 정보 기록
15 : "info" 수준의 SMTP 모든 명령 및 처리되는 정보 기록
16-98 : "debug" 수준의 디버깅 정보 기록
※ postfix debug_peer_level (최고 레벨 : INTMAX, 3 이상 레벨은 일부만 구현되어 거의 동일하게 동작)
0(또는 없는 경우) : 디버깅 정보가 아닌 클라이언트와의 연결(connect), 인증 실패(authentication failed), 연결 종료(disconnect) 등 최소한의 정보만 기록
1 : "-v(verbose)" 수준의 SMTP 명령 및 처리, 송/수신 프로세스, 인증 과정 등 일반적인 디버깅 정보 기록
2(default) : "-v -v" 수준의 자세한 디버깅 정보 기록
3 - INTMAX: 개발자들이 사용하는 디버깅 정보 기록(공지 없이 레벨별 지원하는 정보가 변경되는 설정으로 "3" 이상 사용은 개발자가 권장하지 않음)
※ exim Log level(최고 레벨 : 6)
0 : 최소한의 정보만 기록
1 : exim 시스템 필터의 re-addressing 정책에 의한 거부 정보 기록
2 : 메시지 크기로 인한 거부 정보 기록
3 : 수신 메일 검증 실패 정보 기록
4 : 연결 시간 초과, busy 상태로 인한 연결 거부, 갑작스러운 연결 손실, Load Level 및 연결 가능 수 초과로 인한 연결 지연 등 정보 기록
5(default) : 메일 송/수신 프로세스 관련 정보 및 에러 메시지 등 기록
6 : 유효하지 않은 HELO, EHLO 정보 등 기록
【 조치방법 】
1. 로그 수준 설정 값을 기본 값 이상 수준으로 설정
2. SMTP 또는 시스템 syslog 서비스 재시작
※ postfix 는 “postfix reload” 명령어로 설정 변경 적용 가능
2024-01-13 : (조치과정 삭제)
'인프라 진단 > 전자금융기반시설(서버) - Linux' 카테고리의 다른 글
SRV-007 취약한 버전의 SMTP 서비스 사용 (0) | 2024.01.01 |
---|---|
SRV-005 SMTP 서비스의 expn/vrfy 명령어 실행 제한 미비 (0) | 2024.01.01 |
SRV-004 불필요한 SMTP 서비스 실행 (0) | 2024.01.01 |