반응형

sendmail의 보안

1. 설정파일 속성 변경하기

    # chattr +i /etc/mail/sendmail.cf or /etc/sendmail.cf
    # chattr +i /etc/mail/local-host-nameds
    # chattr +i /etc/mail/aliases or /etc/aliases
    # chattr +i /etc/mail/access

2.Sendmail deamon을 실행하는 쉘을 바꾸어주기

Sendmail의 보안을 위해서는 보통 프로그램의 /bin/sh을 smrsh program으로 바꾸어 주어야 합니다. /bin/sh로 실행이 되었을 경우에 해킹의 우려가 있으므로, 이를 제한하기 위해서 Sendmail 프로그램의 실행을 제한할 필요가 있기 때문입니다.

하지만, 레드햇의 RPM으로 설치했을 경우에는 Default로 설정이 되어 있습니다.
/etc/mail/sendmail.cf 또는 /etc/sendmail.cf 파일에서

Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/H drToL, D=$z:/,
T=X-Unix/X-Unix/X-Unix,
A=sh -c $u

의 굵게 쓴 파일을 아래와 같이 바꾸어주고
Mprog, P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/H drToL, D=$z:/,
T=X-Unix/X-Unix/X-Unix,
A=smrsh -c $u
sendmail.cf 파일을 저장하고 아래와 같이 sendmail deamon을 재시작합니다.

    # /etc/rc.d/init.d/sendmail restart

3. 인증되지 않은 사용자의 Sendmail Deamon사용을 제한하기

S endmail에는 Anti-Spam Feature를 포함하고 있습니다. 이 기능을 제대로 사용하기 위해서는 /etc/mail/sendmail.cf 또는 /etc/sendmail.cf파일에서 옵션을 바꾸어 주어야 합니다.

    # privacy flags
    O PrivacyOptions=authwarnings, goaway

Sendmail에서 goaway 옵션을 사용할 경우에 SMTP의 EXPN, VRFY명령어를 제한하게 됩니다. 이로 인해서 VERB명령어도 더불어 제한하게 됩니다. 처음 SMTP에 접하시는 분들은 이 명령어에 대해서 생소할 수 있으므로 약간의 설명을 덧붙이겠습니다. STMP에 접속하여서 MAIL을 전달하기 위해서는 여러 가지 명령어를 사용하게 되어 있습니다.

아래와 같이 접속 후 HELP 명령어를 타이핑하면 HELO, EHLO, MAIL, RCPT, DATA, RSET, NOOP, QUIT, HELP, VRFY, EXPN, VERB ETRN, DSN, AUTH, STARTTLS등의 사용 가능한 명령어를 보실 수 있습니다.

자세한 사용법과 내용은 HELP <Command>하시면 알 수 있습니다.

    HELP AUTH <- 입력
    214-2.0.0 AUTH mechanism [initial-response]
    214-2.0.0 Start authentication.
    214 2.0.0 End of HELP info

    EXPN aroma <- 입력 (Mail list의 관계된 메일 계정을 보여줄 수 있는 명령어입니다.)
    250 2.1.5 <sweetness@linux.co.kr>
    VRFY aroma <- 입력(Alias에 관계된 메일 계정을 보여줄 수 있는 명령어입니다.)
    250 2.1.5 <aroma@mail.linuxul.com>

보안설정 후에는 아래와 같은 메시지가 나타납니다.

    EXPN aroma <- 입력
    502 5.7.0 Sorry, we do not allow this operation

4. mailq command의 제한하기

/usr/bin/mailq 명령어를 제한하기 위해서는 /etc/mail/sendmail.cf or/etc/sendmail.cf파일에서 옵션을 바꾸어 주어야 합니다.

    # privacy flags
    O PrivacyOptions=authwarnings, goaway, restrictmailq

또한, queue디렉토리를 root권한으로 막아주고 재시작합니다.

    #chmod 0700 /var/spool/mqueue
    #/etc/rc.d/init.d/sendmail restart

mailq명령어를 실행시키면 아래와 같은 메시지가 나타납니다.

    aroma$ mailq
    You are not permited to see the queue

5. Queue 프로세스를 root권한으로 제한하기

Queue프로세스를 root권한으로 제한하기 위해서는 /etc/mail/sendmail.cf 또는 /etc/sendmail.cf파일에서 아래와 같이 옵션을 바꾸어 줍니다.

    # privacy flags
    O PrivacyOptions=authwarnings, goaway, restrictmailq, restrictqrun

파일을 저장후 재시작합니다.

    #/etc/rc.d/init.d/sendmail restart

6. SMTP Greeting Message를 수정하기

Sendmail의 Version 정보라든지 여러 가지 이유로 Connected중에 보여주는 아래와 같은 메시지들을 바꾸어주므로, 불필요한 정보를 숨길 수 있습니다.

    [root@mail /root]# telnet mail.linuxul.com 25
    Trying 211.106.100.89...
    Connected to mail.linuxul.com.
    Escape character is '^]'.
    220 mail.linuxul.com ESMTP Sendmail 8.11.0/8.11.0; Wed, 21 Feb 2001 22:50:51 +0900

/etc/mail/sendmail.cf 또는 /etc/sendmail.cf파일에서 옵션을 바꾸어 주어야 합니다.

    # SMTP initial login message (old $e macro)
    O SmtpGreetingMessage=$j Sendmail $v/$Z; $b

를 아래와 같이 수정합니다.

    # SMTP initial login message (old $e macro)
    O SmtpGreetingMessage=$j

파일을 저장후 Sendmail을 재시작합니다.

    #/etc/rc.d/init.d/sendmail restart

수정후에는 아래와 같은 메시지가 출력됩니다.

    # telnet mail.linuxul.com 25
    220 localhost.localdomain ESMTP

7. Sendmail 모니터링

[Sendmail의 프로세스 상태보기]

    # ps aux|grep sendmail
    root 21094 0.0 0.3 3244 1504 ? S 08:43 0:00 sendmail: accepti

    [Sendmail의 mail 상태를 모니터링하기]
    praliases명령은 현재 메일 시스템의 Aliases상태를 보여줍니다.
    # praliases


----  출처 : 인터넷..
반응형
Posted by 공간사랑
,