일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Mail Server
- javascript
- 안드로이드 푸시
- 안드로이드
- FCM
- roundcube
- Android
- chart.js
- C#
- mysql
- 설치
- php 시큐어코딩
- 안드로이드 푸쉬
- 자바스크립트
- android 효과음
- dovecot
- 우분투
- php 취약점
- not working
- curl
- PHP
- 폼메일
- 자동 생성
- soundpool
- UML
- WebView
- html5
- xe
- C# IO
- 안드로이드 gcm
- Today
- Total
그러냐
우분투 메일서버 세팅하기 postfix, dovecot, roundcube - 1 본문
출처 : http://zzaps.tistory.com/312
우분투 14.04에 메일 서버를 세팅하려고 한다.
할 때마다 인터넷 검색하는게 지겨워서 제대로 정리해놓으려는 목적.
다음에 보고, 그냥 따라하면 되도록...
현재 서버의 상태는 apache2, php5, mysql, vsftp, bind9 패키지가 설치되어서 정상 동작하고 있는 상태.
메일서버 세팅하고, roundcube로 웹메일 구현하는 것이 목표다.
postfix는 메일보내기 위한 데몬,
dovecot은 메일 수신을 위한 데몬,
roundcube는 웹메일 클라이언트.
하나하나 해보자.
참고는 http://www.krizna.com/ubuntu/setup-mail-server-ubuntu-14-04 다.
메일주소는 @my.kr 이라고 치고, 메일서버 주소는 서버 도메인명과 같게 할 거다. 따로 mail.my.kr 이렇게 하지 않는다는...
postfix 설치 및 설정
/etc/hostname 에 my.kr 이 할당되어있어야한다.
편집기로 열어서 my.kr 이라고 적어준다.
my.kr
/etc/hosts 에 고정IP와 도메인명을 적어준다.
123.123.123.123 my.kr
이제 postfix 를 설치한다.
$ sudo apt-get install postfix
설치 중에 묻는 것들이 있는데, 그냥 엔터엔터로 설치한다. 이후에 다시 설정을 할 거다.
설치가 끝나면 다시 설정을 한다.
$ sudo dpkg-reconfigure postfix
여기는 메일이 리다이렉트될 실제 관리자 계정 적어주면 된다. 실제 ryu 라는 계정이 sudo를 할 수 있는 관리자 계정이며, 실제 사용자가 아닌 시스템 계정들과 관련된 메일은 이 계정으로 전달된다는 거 같다.
이제 /etc/postfix/main.cf 파일을 수정한다. SMTP-AUTH 어쩌구라는데, 자세한 건 모르겠다. 파일 열어서 추가해주자.
home_mailbox = Maildir/
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
터미널에서 아래 명령을 통해 인증서를 만든다.
$ openssl genrsa -des3 -out server.key 2048
$ openssl rsa -in server.key -out server.key.insecure
$ mv server.key server.key.secure
$ mv server.key.insecure server.key
$ openssl req -new -key server.key -out server.csr
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
$ sudo cp server.crt /etc/ssl/certs
$ sudo cp server.key /etc/ssl/private
인증 파일들을 /etc/ssl 로 복사했다.
postfix에게 이 파일들의 위치를 알려준다.
$ sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/server.key'
$ sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/server.crt'
이제 /etc/postfix/master.cf 파일을 열어서 아래 내용처럼 주석처리된 것들을 해제해준다.
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
smtps inet n - n - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
dovecot SASL 을 설치한다.
$ sudo apt-get install dovecot-common
/etc/dovecot/conf.d/10-master.conf 파일을 열고 # Postfix smtp-auth 를 찾아 아래처럼 수정한다.
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
/etc/dovecot/conf.d/10-auth.conf 열어 auth_mechanisms = plain 을 찾아 아래처럼 수정한다.
auth_mechanisms = plain login
이제 postfix, dovecot 을 재시작한다.
$ sudo service postfix restart
$ sudo service dovecot restart
여기서 테스트!
터미널에서 telnet
$ telnet my.kr smtp
Trying 127.0.1.1...
Connected to my.kr.
Escape character is '^]'.
220 my.kr ESMTP Postfix (Ubuntu)
ehlo my.kr
250-my.kr
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
요 3개가 나와야된단다.
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
587포트로도 테스트를 해보라는데, 접속은 되지만 결과는 다르게 보인다.
$ telnet my.kr 587
Trying 127.0.1.1...
Connected to my.kr.
Escape character is '^]'.
220 my.kr ESMTP Postfix (Ubuntu)
ehlo my.kr
250-my.kr
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
이제 dovecot 본체를 설치한다.
sudo apt-get install dovecot-imapd dovecot-pop3d
/etc/dovecot/conf.d/10-mail.conf 를열어
mail_location = mbox:~/mail:INBOX=/var/mail/%u
를 찾아서 아래처럼 수정한다.
mail_location = maildir:~/Maildir
/etc/dovecot/conf.d/20-pop3.conf 를 열어
#pop3_uidl_format = %08Xu%08Xv
를 찾아 주석 해제한다.
pop3_uidl_format = %08Xu%08Xv
/etc/dovecot/conf.d/10-ssl.conf 를 열어
#ssl = yes
를 찾아 주석 해제한다.
ssl = yes
dovecot 재시작!
$ sudo service dovecot restart
pop3와 imap 테스트!
110, 993,995,143 포트에 접속해본다.
$ telnet my.kr 110
Trying 127.0.1.1...
Connected to my.kr.
Escape character is '^]'.
+OK Dovecot (Ubuntu) ready.
^]
telnet> q
Connection closed.
$ telnet my.kr 995
Trying 127.0.1.1...
Connected to my.kr.
Escape character is '^]'.
^]
telnet> q
Connection closed.
$ telnet my.kr 993
Trying 127.0.1.1...
Connected to my.kr.
Escape character is '^]'.
^]
telnet> q
Connection closed.
$ telnet my.kr 143
Trying 127.0.1.1...
Connected to my.kr.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS LOGINDISABLED] Dovecot (Ubuntu) ready.
^]
telnet>
110, 143은 dovecot 이 리스팅하고 있는데, 993,995는 아니네??
110 : pop3
143 : imap
993 : imaps
995 : pop3s
TLS/SSL 포트라고 나오는데.... 서버가 SSL이 아니라 그런가...?
여기까지 잘 됐으면 메일 송수신은 되어야한다.
mail 명령어로 간단하게 테스트!
$ sudo apt-get install mailutils
$ mail my.other.mail@naver.com
Cc: test
Subject: subject...
this is test message.
$
내용을 다 적고 Ctrl+D 하면 작성완료! 전송이다.
네이버 메일로 잘 날아왔다. 처음 Cc: 에 적은 test 는 test@my.kr 를 가리킨다. 같은 서버에 있는 아이디~!
네이버에서 답장한 메일도 잘 받아졌다. 끝!
아...roundcube 가 남았지?!
너무 길어져서 다음 글에 정리해야겠다.
'Linux' 카테고리의 다른 글
우분투 메일서버 세팅하기 postfix, dovecot, roundcube - 3 (0) | 2016.11.09 |
---|---|
우분투 메일서버 세팅하기 postfix, dovecot, roundcube - 2 (0) | 2016.11.09 |
우분투 php curl 설치 후 crontab undefined function (0) | 2016.10.05 |
우분투 10 아파치 2 PHP 5 에서 curl 사용하기 (0) | 2016.10.05 |
MySQL 외부 접근 허용하기 (0) | 2016.09.29 |