본문 바로가기
인프라 진단/전자금융기반시설(서버) - Linux

SRV-009 SMTP 서비스 스팸 메일 릴레이 제한 미설정

by 49 BLOCK 2024. 1. 1.

notice

SRV-009 SMTP 서비스 스팸 메일 릴레이 제한 미설정

【 상세설명 】
SMTP 서비스는 인터넷에서 메일을 전송하는 프로토콜로, 다른 메일 서버가 보낸 메일을 다시 발송하는 relay 기능을 제공하는데 해당 기능은 공격자가 정당한 인증 과정 없이 다량의 메일(스팸 메일 등) 발송을 할 위협이 존재하므로 이에 대한 설정을 점검

【 판단기준 】
- 양호 : 스팸 메일 릴레이 방지 설정을 했을 경우
- 취약 : 스팸 메일 릴레이 방지 설정을 하지 않았을 경우

【 판단방법 】
  1. SMTP 서비스 설정 파일에서 스팸 메일 릴레이 제한 설정 적용 확인
      ※ localhost, 127.0.0.1 으로 접근 제한 설정을 한 경우 local 에서 생성된 메일만 외부로 전송 가능하므로 스팸 메일 릴레이 제한 설정 적용으로 판단 가능
  2. 허용된 네트워크가 0.0.0.0과 같이 과도하게 설정된 값 확인

  ■ Linux, AIX, HP-UX, SOLARIS
    [ sendmail ]
        (8.9 버전 이상) sendmail 설정 파일에서 "promiscuous_relay" 비활성화 확인(default : 비활성화, 아래 예시 설정이 존재하면 "취약")
        # cat /etc/sendmail.mc | grep promiscuous_relay
        # cat /etc/mail/sendmail.mc | grep promiscuous_relay
            FEATURE(promiscuous_relay)dnl
        # cat /etc/sendmail.cf | grep promiscuous_relay
        # cat /etc/mail/sendmail.cf | grep promiscuous_relay
            #####  $Id: promiscuous_relay.m4,v 8.13 2013-11-22 20:51:11 ca Exp $  #####

        ※ Sendmail 8.9(Release 1998-05-19) 버전 이상 부터 기본적으로 스팸 메일 릴레이 제한 설정 적용        
        ※ "promiscuous_relay" 기능을 설정하면 default 상태에서 적용되어 있던 스팸 메일 릴레이 제한 설정이 사라지므로 "promiscuous_relay" 문구 존재 유무로 판단
        ※ "sendmail.mc" 파일에서 "FEATURE(promiscuous_relay)dnl" 설정 후 "sendmail.cf" 생성 시 아래 경고 문구 출력
            *** WARNING: FEATURE(`promiscuous_relay') configures your system as open
            relay.  Do NOT use it on a server that is connected to the Internet!

        (8.9 버전 미만) sendmail 설정 파일에서 스팸 메일 릴레이 제한 설정 확인 
        # cat /etc/sendmail.cf | grep "R$\*" | grep "Relaying denied"
        # cat /etc/mail/sendmail.cf | grep "R$\*" | grep "Relaying denied"
            #R$*        $#error $@ 5.7.1 $: "550 Relaying denied"

    [ postfix ] : smtpd_recipient_restrictions 또는 smtpd_relay_restrictions 구문에서 permit 네트워크 설정 확인
    # vi /etc/postfix/main.cf
        smtp      inet  n       -       n       -       -       smtpd
        ...
        #submission inet n       -       n       -       -       smtpd
        #  -o smtpd_recipient_restrictions=
        #  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
        ...
        #smtps     inet  n       -       n       -       -       smtpd
        #  -o smtpd_recipient_restrictions=
        #  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
        ...

        (smtpd_relay_restrictions=permit_mynetworks,reject 인 경우) 허용된 네트워크가 0.0.0.0 과 같이 과도하게 설정되어 있는지 확인
        # postconf | grep "mynetworks ="
            mynetworks = 127.0.0.1/32 [::1]/128

        ※ SASL(Simple Authentication and Security Layer) 등 인증 통신만 허용 설정 권장
        ※ “/etc/postfix/main.cf" 파일의 “mynetworks” 설정이 주석 처리 되어 있으면 "127.0.0.1/32 [::1]/128" 값 적용

    [ exim ] : acl_smtp_rcpt 및 ACL 설정 확인
    ※ ACL 에서 accept로 허용된 네트워크가 0.0.0.0 과 같이 과도하게 설정되어 있거나 불필요한 설정이 있으면 "취약"
    # cat /etc/exim.conf
    # cat /etc/exim/exim.conf
    # cat /etc/exim/exim4.conf
    # cat /etc/exim4/conf.d/*.conf
        acl_smtp_rcpt = acl_check_rcpt
        ...
        acl_check_rcpt:
          accept  hosts = :
                  control = dkim_disable_verify
        ...

【 조치방법 】
1. SMTP 서비스 설정 파일에서 스팸 메일 릴레이 제한 설정 적용
2. SMTP 또는 시스템 syslog 서비스 재시작
    ※ postfix 는 “postfix reload” 명령어로 설정 변경 적용 가능

2024-01-13 : (조치과정 삭제)

    ※ SMTP 서버 운영 환경에 맞게 스팸 메일 릴레이 제한 추가 설정 진행 필요시 아래 URL 참고
        https://spam.kisa.or.kr/spam/cm/cntnts/cntntsView.do?mi=1085&cntntsId=1114