작업 환경
- VMware Workstation Pro (17.6.2 ver)
- Server
- Rocky_Linux(8.10 ver) : NAT
U-70 (중) | 3. 서비스 관리 > 3.34 expn, vrfy 명령어 제한 |
취약점 개요 | |
점검 내용 | SMTP 서비스 사용 시 vrfy, expn 명령어 사용 금지 설정 여부 점검 |
점검 목적 | SMTP 서비스의 expn, vrfy 명령을 통한 정보 유출을 막기 위하여 두 명령어를 사용하지 못하게 옵션을 설정해야함 |
보안 위협 | VRFY, EXPN 명령어를 통하여 특정 사용자 계정의 존재유무를 알 수 있고, 사용자의 정보를 외부로 유출 할 수 있음 |
판단 기준 |
양호 : SMTP 서비스 미사용 또는, noexpn, novrfy 옵션이 설정되어 있는 경우 취약 : SMTP 서비스를 사용하고, noexpn, novrfy 옵션이 설정되어 있지 않는 경우 |
참고 | SMTP(Simple Mail Transfer Protocol) 서버: 인터넷상에서 전자우편(E-mail)을 전송할 때 이용하게 되는 표준 통신 규약을 말함 VRFY: SMTP 클라이언트가 SMTP 서버에 특정 아이디에 대한 메일이 있는지 검증하기 위해 보내는 명령어를 말함 EXPN(메일링 리스트 확장): 메일 전송 시 포워딩하기 위한 명령어를 말함 |
서비스 확인법
# noexpn, novrfy 옵션 설정 확인
vi /etc/mail/sendmail.cf
PrivacyOptions= (noexpn, novrfy 또는 goaway 옵션 설정 여부)
파일 미존재
LINUX
1. 서비스 필요 시
- Step 1) vi 편집기를 이용하여 “/etc/mail/sendmail.cf” 파일을 연 후 (단, AIX는 /etc/sendmail.cf)
- vi /etc/mail/sendmail.cf
- Step 2) “/etc/mail/sendmail.cf” 파일에 noexpn, novrfy 옵션 추가
- (수정 전) O PrivacyOptions=authwarnings
- (수정 후) O PrivacyOptions=authwarnings, noexpn, novrfy 또는 goaway
- Step 3) SMTP 서비스 재시작
- systemctl restart smtp
2. 서비스 불필요 시
- Step 1) 실행중인 서비스 중지
- ps –ef | grep sendmail
- kill -9 [PID]
- Step 2) 시스템 재시작 시 SMTP 서버가 시작되지 않도록 OS별로 아래와 같이 설정함
- 위치 확인 : ls –al /etc/rc*.d/* | grep sendmail
- 이름 변경 : mv /etc/rc2.d/S88sendmail /etc/rc2.d/_S88sendmail
참고
📌 VRFY, EXPN 란?
- SMTP 통신 중에 사용하는 정보 확인용 명령어
- 메일 클라이언트나 공격자가 메일 서버에 telnet 등으로 접속해 직접 사용할 수 있음
VRFY
특정 사용자가 메일 서버에 존재하는지 확인
VRFY testuser
- 결과 : 250 User exists
- 이 서버에 testuser 라는 계정이 실제 존재한다는 정보 노출
EXPN
메일링 리스트나 별칭이 실제 누구에게 전달되는지 확인
EXPN staff
- 결과 : staff : user1, user2, user3
- 메일링 그룹의 전체 사용자 목록 노출
보안 설정 방법
/etc/postfix/main.cf 에 아래 항목 추가
disable_vrfy_command = yes
- vrfy 명령을 비활성화하여 사용자 검증 차단
- EXPN 은 기본적으로 Postfix 에서 지원하지 않거나 비활성화됨
테스트 방법
telnet your.mail.server 25
# 연결 후 아래 입력
VRFY root
EXPN staff
- 502 5.5.2 Command not recognized
- 252 Canno VRFY user
- 의 결과가 나오면 설정이 잘 된 것
'정보보안 > 주요정보통신기반시설가이드' 카테고리의 다른 글
[U-69(중)] 3. 서비스 관리 > 3.33 NFS 설정파일 접근권한 (0) | 2025.05.03 |
---|---|
[U-68(하)] 3. 서비스 관리 > 3.32 로그온 시 경고 메시지 제공 (0) | 2025.05.03 |
[U-67(중)] 3. 서비스 관리 > 3.31 SNMP 서비스 Community String의 복잡성 설정 (0) | 2025.05.03 |
[U-66(중)] 3. 서비스 관리 > 3.30 SNMP 서비스 구동 점검 (0) | 2025.05.03 |
[U-65(중)] 3. 서비스 관리 > 3.29 at 서비스 권한 설정 (0) | 2025.05.03 |