postfix 이메일 서버 설정
페이지 정보
작성자 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 16,833회 작성일 09-06-05 14:23본문
네트워크 또는 인터넷 상에서 한 사람에서 부터 다른 사람으로 이메일을 가지는 과정은 많은 시스템이 함께 동작하는 것과 관련 됩니다. 각각의 시스템은 과정이 동작하기 위하여 반드시 올바르게 설정되어야 합니다. 보내는 사람은 Mail User Agent (MUA) 또는 이메일 클라이언트를 사용하고, 메세지를 보내기 위하여 하나 또는 여러 개의 Mail Transfer Agents (MTA) 를 통과하며, 마지막으로, 받는 사람의 메일박스에 배달을 하기 위하여 Mail Delivery Agent (MDA) 를 거치게 됩니다. 그리고, 메일은 보통 POP3 또는 IMAP 서버를 통하여 받는 사람의 이메일 클라이언트에 의해 읽혀지게 됩니다.
Postfix 는 우분투에서 기본 설정된 Mail Transfer Agent (MTA) 입니다. 이것은 빠르고 관리와 보안을 하기가 수월 합니다. 그리고 MTA 인 sendmail 과 호환이 됩니다. 이 영역은 postfix 를 어떻게 설치하고 설정하는 지를 설명 합니다. 또한 그것을 보안 연결을 (안전하게 이메일을 보내기 위한) 사용하는 SMTP 서버로서 어떻게 만드는 지를 설명 합니다.
postfix를 SMTP-AUTH와 Transport Layer Security (TLS)과 함께 설치하기 위하여, 다음의 명령을 실행 합니다:
sudo apt-get install postfix
설치 과정 중에 물어보는 질문에 간단히 엔터키를 누르고, 설정은 다음 단계에서 보다 자세히 마쳐지게 됩니다.
postfix 를 설정하기 위하여, 다음 명령을 실행 합니다: screen> sudo dpkg-reconfigure postfix
mail.example.com 는 여러분의 메일 서버 호스트 이름으로 대체 합니다. |
다음 단게는 SMTP AUTH를 위하여 SASL을 사용하도록 postfix를 설정하는 것 입니다. 설정 파일을 직접 편집하는 대신에, 모든 postfix 파라미터를 설정하기 위하여 postconf 명령을 사용할 수 있습니다. 설정 파라미터들은
/etc/postfix/main.cf
파일 내에 저장 됩니다. 나중에 만약 여러분이 특정 파라미터를 재 설정하기를 원한다면, 그 명령을 실행하거나 또는 그 파일을 수작업으로 변경할 수 있습니다.-
SASL을 사용하여 SMTP AUTH를 (saslauthd) 하도록 Postfix를 설정하려면:
postconf -e 'smtpd_sasl_local_domain =' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'smtpd_sasl_security_options = noanonymous' postconf -e 'broken_sasl_auth_clients = yes' postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' postconf -e 'inet_interfaces = all' echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf
-
다음은, TLS를 위하여 디지털 인증서를 설정 합니다. 질문을 물어볼 때, 지시를 따르고 적절하게 대답을 합니다.
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 chmod 600 smtpd.key openssl req -new -key smtpd.key -out smtpd.csr openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt openssl rsa -in smtpd.key -out smtpd.key.unencrypted mv -f smtpd.key.unencrypted smtpd.key openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 mv smtpd.key /etc/ssl/private/ mv smtpd.crt /etc/ssl/certs/ mv cakey.pem /etc/ssl/private/ mv cacert.pem /etc/ssl/certs/
여러분은 인증 기관에서 디지털 인증서를 가질 수 있습니다. 다른 방법으로는, 스스로 인증서를 만들 수 있습니다. 더 자세한 것은 “자가-사인 인증서 만들기” 를 참조 하십시오. -
들어오는 이메일과 나가는 이메일 모두에 TLS 암호화를 적용하도록 Postfix를 설정하려면:
postconf -e 'smtpd_tls_auth_only = no' postconf -e 'smtp_use_tls = yes' postconf -e 'smtpd_use_tls = yes' postconf -e 'smtp_tls_note_starttls_offer = yes' postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key' postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt' postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem' postconf -e 'smtpd_tls_loglevel = 1' postconf -e 'smtpd_tls_received_header = yes' postconf -e 'smtpd_tls_session_cache_timeout = 3600s' postconf -e 'tls_random_source = dev:/dev/urandom' postconf -e 'myhostname = mail.example.com'
명령을 모두 실행하고 나면 postfix를 위한 SMTP AUTH의 설정이 모두 끝납니다. postfix에서 이어서 TLS에서 사용할 인증서를 직접 서명하여 설정합니다. |
이때
/etc/postfix/main.cf
와 this이 같아보여야 합니다.Postfix의 초기 설정이 이제 끝났습니다. Postfix 데몬을 시작하려면
sudo /etc/init.d/postfix start
SASL를 통한 SMTP AUTH 기능을 사용하기 위해서는 application>libsasl2
SASL를 제대로 사용하기 위해서는 수정해야 할 것이 몇 가지 있습니다. Postfix는
/var/spool/postfix
내에 chroot된 상태로 동작하기 때문에, SASL 역시 그 chroot된 환경 내에서 동작할 수 있도록 설정해야합니다(/var/run/saslauthd
대신에 /var/spool/postfix/var/run/saslauthd
가 됩니다). 다음 명령을 입력하십시오: mkdir -p /var/spool/postfix/var/run/saslauthd rm -rf /var/run/saslauthd
saslauthd을 작동시키려면,
/etc/default/saslauthd
을 편집하기 위하여 열고, START 변수를 변경하거나 추가 합니다. saslauthd 이 가짜 root 환경에서 실행되도록 설정하기 위해서는, PWDIR, PIDFILE과 PARAMS 변수를 더합니다. 마지막으로, MECHANISMS 변수를 여러분이 좋아하는 곳으로 설정 합니다. 그 파일을 다음과 비슷하게 보일 겁니다: # This needs to be uncommented before saslauthd will be run # automatically START=yes PWDIR="/var/spool/postfix/var/run/saslauthd" PARAMS="-m ${PWDIR}" PIDFILE="${PWDIR}/saslauthd.pid" # You must specify the authentication mechanisms you wish to use. # This defaults to "pam" for PAM support, but may also include # "shadow" or "sasldb", like this: # MECHANISMS="pam shadow" MECHANISMS="pam"
만약 여러분이 좋아한다면, shadow를 pam 대신에 사용할 수 있습니다. 이것은 MD5 해쉬된 암호 전송을 사용하고 완전하게 안전 합니다. 인증을 하기 위하여 필요한 사용자 이름과 암호는 여러분이 사용하는 서버 시스템의 사용자의 그것들이 됩니다. |
다음은,
/var/spool/portfix/var/run/saslauthd
의 dpkg "state"를 업데이트 합니다. saslauthd init script는 적당한 접근 권한과 소유권을 가지고 없는 디렉토리를 만들기 위하여 이 설정을 사용 합니다: dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd
SMTP AUTH 설정을 마쳤습니다. 이제는 그것을 시작하고 설정을 테스트할 시간 입니다. SASL 데몬을 시작하기 위하여 다음의 명령을 실행할 수 있습니다:
sudo /etc/init.d/saslauthd start
SMTP-AUTH과 TLS가 적절하게 동작하는 지를 보려면, 다음의 명령을 실행 합니다:
telnet mail.example.com 25
여러분이 postfix 메일 서버로 접속을 만들고 난 후,
ehlo mail.example.com
을 입력하고 만약 다음의 줄들을 다른 것과 보게 된다면, 모든 것은 완전하게 동작하는 것 입니다. quit를 입력하여 종료 하십시오.
250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME
Exim4는 인터넷에 연결된 유닉스 시스템 상에서 사용하도록 캠브리지 대학에서 개발한 또다른 Message Transfer Agent (MTA) 입니다. Exim은 sendmail 자리에 설치될 수 있고, 설정은 sendmail의 설정과는 아주 다릅니다.
exim4를 설정하기 위하여, 다음 명령을 실행 합니다:
sudo dpkg-reconfigure exim4-config
사용자 인터페이스가 보여질 겁니다. 사용자 인터페이스는 여러분이 많은 파라미터를 설정할 수 있도록 합니다. 예를 들어, exim4 설정 파일은 여러 개의 파일들로 나누어 집니다. 만약 여러분이 그것들을 한 파일로 갖기를 원한다면 이 사용자 인터페이스에서 적절하게 설정할 수 있습니다.
여러분이 사용자 인터페이스에서 설정할 수 있는 모든 파라미터들은
/etc/exim4/update-exim4.conf.conf
파일에 저장 됩니다. 만약 재 설정하기를 원한다면, 설정 마법사를 재 실행하던지 또는 여러분이 선호하는 편집기를 사용하여 수작업으로 이 파일을 편집할 수 있습니다. 설정한 후, 주 설정 파일을 만들기 위하여 다음 명령을 실행할 수 있습니다: sudo update-exim4.conf
주 설정 파일이 만들어지고
/var/lib/exim4/config.autogenerated
로 저장 됩니다.
언제든, 여러분은 주 설정 파일, /var/lib/exim4/config.autogenerated 을 수작업으로 편집하지 않습니다. 그것은 update-exim4.conf를 실행할 때마다 자동적으로 업데이트 됩니다. |
exim4 데몬을 시작하기 위하여 다음 명령을 실행할 수 있습니다:
sudo /etc/init.d/exim4 start
TODO: 이 영역은 exim4와 함께 SMTP AUTH를 설정하는 것을 다룹니다.
Dovecot 은 보안 우선을 염두에 두고 쓰여진 Mail Delivery Agent 입니다. 이것은 mbox 와 Maildir 같은 주요 메일박스 형식을 지원 합니다. 이 영역은 imap 또는 pop3 서버로서 Dovecot을 어떻게 설정하는 지를 설명 합니다.
dovecot 설치하기 위하여, 명령 프롬프트에서 다음 명령을 실행 합니다:
sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d
dovecot을 설정하기 위하여,
/etc/dovecot/dovecot.conf
파일을 편집할 수 있습니다. 여러분이 사용하고자 하는 프로토콜을 선택할 수 있고, 그것은 pop3, pop3s (pop3 secure), imap 그리고 imaps (imap secure)이 될 수 있습니다. 이 프로토콜에 대한 설명은 이 안내서의 범위 밖 입니다. 더 많은 정보는, wikipedia의 다음 글을, POP3 와 IMAP, 참고 하십시오.IMAPS와 POP3S는 접속할 때 SSL 암호화를 사용하므로 간단한 IMAP과 POP3 보다는 좀 더 안전 합니다. 이 프로토콜을 선택하였다면,
/etc/dovecot/dovecot.conf
파일에 다음 줄을 수정 합니다: protocols = pop3 pop3s imap imaps
그것은 dovecot이 시작될 때 그 프로토콜을 사용 가능하게 합니다. 다음은,
/etc/dovecot/dovecot.conf
파일의 pop3 부분에 다음 줄을 추가 합니다: pop3_uidl_format = %08Xu%08Xv
그 다음은, 사용할 메일박스를 선택 합니다. Dovecot은 maildir 과 mbox 형식을 지원 합니다. 그것은 가장 일반적으로 사용되는 메일박스 형식 입니다. 각각은 서로의 장점을 가지고 그에 대한 것은 dovecot 웹 사이트에 논의되어 있습니다.
여러분의 메일박스 종류를 선택한 후,
/etc/dovecot/dovecot.conf
파일을 편집하기 위하여 열고 다음 줄을 변경 합니다: default_mail_env = maildir:~/Maildir # (for maildir) 또는 default_mail_env = mbox:~/mail:INBOX=/var/spool/mail/%u # (for mbox)
만약 설정한 것과 다르다면, 이 메일박스의 종류로 수신 메일을 전송하기 위한 여러분의 Mail Trasport Agent (MTA)를 설정하여야 합니다. |
여러분이 dovecot을 설정한 후, 그것을 테스트하기 위하여 dovecot 데몬을 시작 하십시오:
sudo /etc/init.d/dovecot start
만약 imap 또는 pop3를 사용 가능하게 하였다면, telnet localhost pop3 또는 telnet localhost imap2 명령을 사용하여 로그인을 시도해 볼 수 있습니다. 다음과 같은 것을 본다면, 설치는 성공적으로 된 것 입니다:
bhuvan@rainbow:~$ telnet localhost pop3 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. +OK Dovecot ready.
SSL을 사용하도록 dovecot을 설정하기 위하여,
/etc/dovecot/dovecot.conf
파일을 편집하기 위해 열고 다음 줄을 수정 합니다: ssl_cert_file = /etc/ssl/certs/dovecot.pem ssl_key_file = /etc/ssl/private/dovecot.pem ssl_disable = no disable_plaintext_auth = no
cert 와 key 파일은 설치될 때 dovecot에 의하여 자동적으로 만들어 집니다. 이 키는 사인되지 않았고 클라이언트에서 연결을 할 때 "bad signature" 에러를 주게 되는 것을 주의 하십시오. 이 것을 피하려면, 상업용 인증서를 사용할 수 있고, 또는 보다 낫게, 여러분 스스로의 SSL 인증서를 사용할 수 있습니다.
Mailman은 전자 우편 회의와 전자 소식 목록을 관리하기 위한 오픈소스 프로그램 입니다. 많은 오픈소스 메일링 리스트는 (모든 우분투 메일링 리스트를 포함한) 메일링 리스트 소프트웨어로 Mailman을 사용 합니다. 이것은 강력하고 설치와 유지보수가 쉽습니다.
Mailman은 관리자와 사용자를 위한 웹 인터페이스를 제공 합니다. 그러므로, 그것은 mod_perl 지원을 하는 아파치를 필요로 합니다. Mailman은 이메일을 보내고 받기 위한 외부 메일 서버를 사용 합니다. 다음의 메일 서버와 완벽하게 동작 합니다:
-
Postfix
-
Exim
-
Sendmail
-
Qmail
우리는 어떻게 mailman, 아파치 웹 서버와 Exim 메일 서버를 설치하는지를 봅니다. 만약 여러분이 mailman을 다른 메일 서버와 함께 설치하기를 원한다면, 참조 영역을 참고 하십시오.
아파치2를 설치하는 것은 “설치” 을 참조 하십시오.
Exim4를 설치하기 위하여 터미널 프롬프트에서 다음 명령을 실행 합니다:
sudo apt-get install exim4 sudo apt-get install exim4-base sudo apt-get install exim4-config
exim4가 설치되면, 설정 파일들은
/etc/exim4
디렉토리에 저장 됩니다. 우분투에서는, 기본 설정으로, exim4 설정 파일은 여러 개의 파일들로 나누어 집니다. /etc/exim4/update-exim4.conf
파일 내의 다음 변수를 변경하는 것으로 이 동작을 바꿀 수 있습니다: -
dc_use_split_config='true'
이 영역에서는 여러분이 mailman, apache2, 그리고 exim4를 성공적으로 설치하였다고 가정 합니다. 이제 여러분은 단지 그것들을 설정할 필요가 있습니다.
아파치2가 설치되면,
/etc/apache2/apache2.conf
파일에 다음의 줄들을 추가할 수 있습니다: Alias /images/mailman/ "/usr/share/images/mailman/" Alias /pipermail/ "/var/lib/mailman/archives/public/"
Mailman은 CGI 스크립트를 사용하기 위하여 아파치2를 이용 합니다. 메일맨 스크립트는 /usr/lib/cgi-bin/mailman 디렉토리에 설치 됩니다. 그러므로 그 메일맨 url은 http://hostname/cgi-bin/mailman/ 이 됩니다. 만약 변경하기를 원한다면,
/etc/apache2/apache2.conf
파일에서 바꿀 수 있습니다.Exim4를 설치한 후, 터미널 프롬프트에서 다음 명령을 사용하여 Exim 서버를 시작할 수 있습니다:
sudo apt-get /etc/init.d/exim4 start
exim4와 함께 mailman이 동작하게 만들려면, exim4를 설정하는 것이 필요 합니다. 앞에 언급된 것과 같이, 기본 설정으로, exim4는 다른 종류의 복수 설정 파일들을 사용 합니다. 자세한 것은 Exim 웹 사이트를 참조 하십시오. mailman을 실행하기 위하여, 다음 설정 종류에 대한 새로운 설정 파일을 추가하여야 합니다:
-
Main
-
Transport
-
Router
Exim은 모든 이 작은 설정 파일들을 정렬하여 주 설정 파일을 만듭니다. 그러므로, 이 설정 파일의 순서는 매우 중요 합니다.
Main 종류에 속하는 모든 설정 파일들은
/etc/exim4/conf.d/main/
디렉토리 내에 저장 됩니다. 04_exim4-config_mailman
이란 이름의 새 파일에 다음의 내용을 추가할 수 있습니다: # start # Home dir for your Mailman installation -- aka Mailman's prefix # directory. # On Ubuntu this should be "/var/lib/mailman" # This is normally the same as ~mailman MM_HOME=/var/lib/mailman # # User and group for Mailman, should match your --with-mail-gid # switch to Mailman's configure script. Value is normally "mailman" MM_UID=list MM_GID=list # # Domains that your lists are in - colon separated list # you may wish to add these into local_domains as well domainlist mm_domains=hostname.com # # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # # These values are derived from the ones above and should not need # editing unless you have munged your mailman installation # # The path of the Mailman mail wrapper script MM_WRAP=MM_HOME/mail/mailman # # The path of the list config file (used as a required file when # verifying list addresses) MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck # end
Transport 종류에 속하는 모든 설정 파일들은
/etc/exim4/conf.d/transport/
디렉토리 내에 저장 됩니다. 40_exim4-config_mailman
이란 이름의 새 파일에 다음의 내용을 추가할 수 있습니다: mailman_transport: driver = pipe command = MM_WRAP \ '${if def:local_part_suffix \ {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \ {post}}' \ $local_part current_directory = MM_HOME home_directory = MM_HOME user = MM_UID group = MM_GID
Router 종류에 속하는 모든 설정 파일들은
/etc/exim4/conf.d/router/
디렉토리 내에 저장 됩니다. 101_exim4-config_mailman
이란 이름의 새 파일에 다음의 내용을 추가할 수 있습니다: mailman_router: driver = accept require_files = MM_HOME/lists/$local_part/config.pck local_part_suffix_optional local_part_suffix = -bounces : -bounces+* : \ -confirm+* : -join : -leave : \ -owner : -request : -admin transport = mailman_transport
Main과 Transport 설정 파일들의 순서는 어느 순서가 되도 무방 합니다. 그러나, Router 설정 파일의 순서는 반드시 똑같아야 합니다. 이 특정 파일은 200_exim4-config_primary 파일 이전에 반드시 나타나야 합니다. 이 두 설정 파일은 같은 종류의 정보를 가지고 있습니다. 첫 번째 파일이 우선권을 가집니다. 더 자세한 것은, 참조 영역을 참고 하십시오. |
mailman을 설치한 후, 다음 명령을 사용하여 그것을 실행할 수 있습니다:
sudo /etc/init.d/mailman start
mailman을 설치한 후, 기본 설정 메일링 리스트를 만들어야 합니다. 메일링 리스트를 만들기 위하여 다음 명령을 실행 합니다:
sudo /usr/sbin/newlist mailman
Enter the email address of the person running the list: bhuvan at ubuntu.com
Initial mailman password:
To finish creating your mailing list, you must edit your /etc/aliases
(or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:
## mailman mailing list
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Hit enter to notify mailman owner...
#
우리는 exim이 mailman에서 오는 모든 이메일을 인식하도록 설정 하였습니다. 그러므로,
/etc/aliases
파일 내에 어떠한 새로운 항목을 만드는 것은 필수적이지 않습니다. 만약 여러분이 그 설정 파일에 어떠한 변경을 하였다면, 다음 영역을 계속하기 전에 그 서비스들을 재 시작하는 것을 확신 하십시오.우리는 여러분이 기본 설정된 설치를 가졌다고 가정 합니다. mailman CGI 스크립트는 여전히 /usr/lib/cgi-bin/mailman/ 디렉토리 내에 있습니다. Mailman은 웹 기반 관리 기능을 제공 합니다. 이 페이지를 접근하기 위하여, 다음의 url을 여러분의 브라우저에서 사용 합니다:
http://hostname/cgi-bin/mailman/admin
기본 설정된 메일링 리스트, mailman 가 이 화면에 나타납니다. 그 메일링 리스트 이름을 클릭하면, 여러분의 인증 암호를 물어볼 것 입니다. 올바르게 암호를 입력하였다면, 여러분은 이 메일링 리스트의 관리자 설정 값을 변경할 수 있습니다. 명령행 유틸리티(/usr/sbin/newlist)를 사용하여 새로운 메일링 리스트를 만들 수 있습니다. 다른 방법으로, 웹 인터페이스를 사용하여 새로운 메일링 리스트를 만들 수 있습니다.
Mailman은 사용자에게 웹 기반의 인터페이스를 제공 합니다. 이 페이지를 접근하려면, 다음 url을 여러분의 브라우저에서 사용 합니다:
http://hostname/cgi-bin/mailman/listinfo
기본 설정된 메일링 리스트, mailman 가 이 화면에 나타납니다. 그 메일링 리스트 이름을 클릭하면, 가입 양식을 보입니다. 여러분의 이메일 주소, 이름(선택사항) 그리고 암호를 가입하기 위하여 입력 합니다. 여러분에게 이메일 초대가 보내집니다. 가입하기 위하여 그 이메일의 절차를 따릅니다.
첨부파일
- postfix.tar.gz (594byte) 15회 다운로드 | DATE : 2009-06-05 14:24:54
관련링크
- http://ystory.kr/239 4034회 연결
댓글목록
등록된 댓글이 없습니다.