Postfix-logo

많이들 설치하고있는 postfix를 이용하여 메일서버를 구축하고자한다.

편의상 sudo는 생략한다.

postfix 설치

apt-get install postfix
설치 과정에서 설정 UI가 나오는데
대부분 그냥 확인을 선택해 넘어가고,
시스템 메일이름, 관리자 메일 주소는 직접 입력한다.
필자의 경우 “인터넷 프로토콜” 단계에서 모두(ipv6 + ipv4)를 선택했더니
서버가 ipv6 지원이 안되는 상태라 오류가 발생했다.
이런 경우 ipv4만 선택하면되겠다.
procmail은 사용안함으로 설정할 것

설치 과정에 나온 설정을 다시 하고싶다면 아래 명령어를 입력한다.
dpkg-reconfigure postfix

메일폴더 설정

postconf -e ‘home_mailbox = Maildir/’
기본 메일 경로는 /var/mail/유저아이디 인데 이 경로는 외부에서 일반 계정으로 접근이 안되는 경로이다.
위와같이 메일 경로를 해당 계정 하위에 두어 해당 계정 아이디/비번으로 들어와 메일을 가져갈 수 있게 해야한다.

SMTP인증 설정

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’

vi /etc/postfix/sasl/smtpd.conf
아래 내용 추가
pwcheck_method: saslauthd
mech_list: plain login

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 = server1.example.com’

sasl2 설치

외부에서 이 서버로 메일을 보내는데 필요함.
apt-get install libsasl2 libsasl2-modules sasl2-bin

필자의 경우 libsasl2가 없고 libsasl2_2로 대체 설치되었다. 버전업 된듯하다.

saslauthd 설정

vi /etc/default/saslauthd
아래 항목 수정
START=yes
PWDIR=”/var/spool/postfix/var/run/saslauthd”
PARAMS=”-m ${PWDIR}”
PIDFILE=”${PWDIR}/saslauthd.pid”
OPTIONS=”-c -m /var/spool/postfix/var/run/saslauthd”

dpkg 업데이트

dpkg-statoverride –force –update –add root sasl 755 /var/spool/postfix/var/run/saslauthd

saslauthd 실행
/etc/init.d/saslauthd start

POP3 및 IMAP 설치

아웃룩 처럼 외부에서 메일을 가져가기 위하 필요함.
POP3도 좋지만 여러 단말기에서 메일을 확인한다면 IMAP가 편리할 수도 있다.
필요한 것으로 설치한다. 필자는 둘 다 설치했다.
sudo apt-get install courier-pop
sudo apt-get install courier-imap

메일 경로 설정

maildirmake /etc/skel/Maildir
maildirmake /etc/skel/Maildir/.Drafts
maildirmake /etc/skel/Maildir/.Sent
maildirmake /etc/skel/Maildir/.Trash
maildirmake /etc/skel/Maildir/.Templates

새로 생성되는 유저는 메일 경로가 자동으로 만들어지지만
이미 생성된 유저는 메일 경로를 일일이 만들어 주어야한다.

cp -r /etc/skel/Maildir /home/myuser/
chown -R myuser:usergroup /home/myuser/Maildir
chmod -R 700 /home/myuser/Maildir

메일 유저 생성

터미널을 사용할 경우 아래와 같이 생성한다.
sudo useradd -m -s /bin/bash 계정아이디
sudo passwd 계정아이디

메일만 사용하는 계정인 경우 굳이 터미널 권한을 주지 않아도 된다.
sudo useradd -m -s /sbin/nologin 계정아이디
sudo passwd 계정아이디

메일 주고 받기 테스트

테스트는 아래 사이트 참고…
참고사이트

https://help.ubuntu.com/community/Postfix
http://kairess.net/5771
http://justin.kr/?p=123

카테고리: BlogDevelopment

댓글 남기기