Linux2012. 12. 17. 16:12
 

홈서버의 꽃이라면 대부분이 apache2+mysql+php 등을 이용한 웹서버/블로그 구축을 꼽겠지만 내게 가장 큰 관심사는 메일서버 구축이었다. 대형 포탈사이트의 도메인인 hanmail.net 이나 gmail.com 등을 떼어버린 나만의 메일주소!! 그대 가슴이 뛰지 않는가?

참고로 쥔장은 현재 이 도메인을 홈서버에 연결하여 blog@justin.kr 이라는 개인 이메일을 사용하고있다. 안정성을 따진다면 대형 포탈사이트의 그것을 따라갈리 만무하겠지만 어떤가? 처음 홈서버에 내 메일계정을 성공적으로 구축했던 그 순간은 인류가 최초로 달에 착륙했을 때 이상 흥분되는 순간이었다.

처음 Postfix를 이용하여 메일서버를 만드려고 할때 인터넷의 HOW-TO 를 참조하였지만, 곧 수많은 에러를 만날 수 있었다. 그래서 그때 참고한 문서들을 바탕으로 나의 상황에 맞춘 최소한의 설명과 절차만을 기록한다. 각 명령문의 의미와 상세한 설명은 생략하며 다른 문서들을 참고하여 공부하기 바란다.

즉, 메일서버의 구축은 아래의 순서를 차근히 따라가기만 하면 가능하다. 

 

0. 시작하는 말

본 과정에서는 Postfix라는 메일서버 프로그램을 이용해 가장 간단한 메일서버를 구축하도록 한다. 이를 위해서 기본적으로 콘솔에 들어가 vim 이라는 편집기를 간단하게나마 사용할 수 있으며, 압축을 풀고 복사하는 최소한의 개념을 알고있다고 가정한다.

지금 설치하게 될 Postfix의 메일함은 Maildir 형식을 따르고 있으며 이것이 무엇인지 모른다면 그냥 무시하고 넘어간다. 이 글은 홈서버를 통해, 사용자가 Outlook 이나 Thunderbird 등의 메일 클라이언트로 외부에서 메일을 보내고 받는 기능을 사용할 수 있도록 하는것에 목적을 둔다.

또한 아래의 순서는 쥔장 편의에 의해 뒤죽박죽일 수 있다. 설치가 제대로 되었는지 확인하는 일련의 과정도 생략되었다. Postfix 설치에 대해 잘 알고 있는 사람이 본다면 오리려 혼란이 올 수 있으므로 참고만하자.

준비사항:

(1) 인터넷 제공 업체에서 관련포트 (25,110,143번) 를 블록하지 않은 공인아이피
(2) 공인아이피가 연결된 서버를 가리키는 도메인 (DDNS 가능)

위 (1)번에 해당하지 않을 경우 VPN 접속을 이용하는 것도 하나의 방법임 (쥔장의 방법)

 

1. 먼저 관련 프로그램을 설치하도록 한다. (ROOT 계정으로 실행)

#su
(root 비밀번호 입력) 

#apt-get -y install postfix

Postfix 설치 중간에 이런 화면이 나온다. [확인] 을 선택하여 다음으로.

인터넷 서비스를 선택하고 [확인]

메일주소로 사용할 도메인을 입력하고 [확인]

 

#dpkg-reconfigure postfix

세번째 화면까지는 위의 postfix 설치시와 같으므로 생략. 이곳에는 우분투/루분투를 설치할때 사용한 계정명@도메인 이렇게 넣어준다. 예를 들면 blog@justin.kr 과 같이 넣어주면 된다.

제일 앞의 도메인이 위 과정에서 입력한 자신의 도메인이 맞는지 확인한다. 만약 같은 서버에 운용할 다른 도메인이 있다면 ,(콤마) 뒤에 덧붙여 입력해준다.

[아니오] 선택

127.0.0.0/8 이 입력되어 있는지 확인하고 그대로 [확인]

본인의 계정에 제한은 필요 없으므로 0 (제한없음) [확인]

+ 입력되어있는 그대로 [확인]

뭔지 모르면 ‘모두’ 선택하고 [확인] 이것으로 이번 과정도 끝

 

#apt-get -y install libsasl2-2 libsasl2-modules sasl2-bin

#apt-get -y install courier-pop

선택

 

#apt-get -y install courier-imap 

 

2. 아직 메일함이 없으므로 아래 순서에 따라 만들어주자.

#maildirmake ~/Maildir

#maildirmake /etc/skel/Maildir

#maildirmake /etc/skel/Maildir/.Drafts

#maildirmake /etc/skel/Maildir/.Sent

#maildirmake /etc/skel/Maildir/.Trash

#maildirmake /etc/skel/Maildir/.Templates

 

(위에서 우린 루트의 메일함과 앞으로 adduser 명령어에 의해 생성될 사용자들이 기본적으로 메일함을 가지고 생성되도록 해주었다. 그러나 아직 기존에 있던 유저 -루트를 제외한 설치시에 만든 관리자계정- 에게는 메일폴더가 없다. 그러므로 아래의 절차에 따라서 수동으로 직접 생성해준다.)

#cp -r /etc/skel/Maildir /home/유저명/

#chown -R 유저명:유저명 /home/유저명/Maildir

#chmod -R 700 /home/유저명/Maildir

 

3. 설정파일/인증서 복사와 수정 

원래는 이 과정이 조금 더 복잡할 수도 있으나, 쥔장과 같은 환경에서의 메일서버 설치라는 가정하에 이미 완료된 설정파일을 이곳에 올려놓는다. 설정파일을 덮어씌우므로 위 과정의 일부는 쥔장과 같은 환경으로 리셋된다. 미심쩍은 사람은 본 포스트의 가장 아랫부분을 보면 참고사이트가 있으니 링크를 따라가서 직접 해봐도 상관없다. -오히려 본인의 경험이 된다는 점에서 강력히 추천한다- 파일의 복사는 다운로드된 파일의 압축을 풀고 파일이 위치한 폴더 안에 있다고 가정한다.

다운로드 : postfixsetting.zip (3.16 kB) (download hits: 125)

 

#vim main.cf
(압축을 풀고 나오는 파일 세개 중 main.cf 파일만 약간 손보면 된다. 파일을 편집기로 열고myhostnamemydestination 두가지 항목만 본인에 맞게 편집해준다.) 

#cp main.cf /etc/postfix/

#cp smtpd.conf /etc/postfix/sasl/

#cp saslauthd /etc/default/

(인증서 생성 및 복사 – 무엇인지 몰라도 상관없으나 위 설정파일을 사용했을 경우 반드시 필요하다)

#touch smtpd.key

#chmod 600 smtpd.key

#openssl genrsa 1024 > smtpd.key

#openssl req -new -key smtpd.key -x509 -days 3650 -out smtpd.crt

위 명령어를 입력하고 나면 뭔가를 넣으라는 지시를 한다. 위와같이 입력해도 상관없고 뭔지 모르겠으면 걱정말고 그냥 엔터 쳐서 넘어간다. 필요한 과정이지만 현재로서 내용은 그다지 중요하지 않다.

 

#openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

이번에는 PEM 패스워드라는것을 지정하는데 본인이 기억하는 무엇이든 상관없다. 두번 입력하고 나면  바로 전 과정과 같은 화면이 뜨는데, 그냥 동일하게 입력해주면 된다.

#mv smtpd.key /etc/ssl/private/

#mv smtpd.crt /etc/ssl/certs/

#mv cakey.pem /etc/ssl/private/

#mv cacert.pem /etc/ssl/certs/

#dpkg-statoverride –force –update –add root sasl 755 /var/spool/postfix/var/run/saslauthd
(이 명령문은 오류가 발생하지만 신경 쓰지 말고 한번 반드시 입력해준다.) 

 

4. 설치완료 (메일서버 재시작)

#/etc/init.d/postfix reload

#/etc/init.d/saslauthd start

 

5. 참고사이트

https://help.ubuntu.com/community/PostfixBasicSetupHowto
https://help.ubuntu.com/community/Postfix

'Linux' 카테고리의 다른 글

[ubuntu] Nginx 설치  (0) 2013.07.09
ubuntu에서 모듈 컴파일, 커널 컴파일을 위한 준비  (0) 2012.12.26
Git Sever 설정  (0) 2012.12.14
Redmine + Git  (1) 2012.12.11
XtraBackup을 이용한 mysql 백업하기 (ubuntu)  (0) 2012.12.10


Posted by bayron