메일 서버 세팅을 잘 마쳤고, 이제 웹 메일 클라이언트를 설치한다.



roundcube 이다.


roundcube.net 에 가서 1.2.0 - Complete 의 다운로드 주소를 확인하고, wget 으로 서버에서 바로 받는다.


$ wget https://github.com/roundcube/roundcubemail/releases/download/1.2.0/roundcubemail-1.2.0-complete.tar.gz



www 디렉토리에 옮겨놓고 압축 해제!


디렉토리 이름이 기니까, rc 로 수정!

그럼, roundcube 의 웹 주소는 http://my.kr/rc/가 되겠다. 다르게 해도 상관이 없다. 다른데 숨기고 alias 해도 되겠다.

어쨋든...


phpmyadmin 으로 가서, rc를 위한 데이터베이스 하나 준비해 놓는다.

데이터베이스 이름을 rc로 주고, 사용자도 rc라고 하나 만들어 두자.



브라우저에서 접근! 하는데, rc 아래에 installer 로 접근하자.


예> http://my.kr/rc/installer


첫 화면에서는 인스톨러가 현재 서버의 설정 상태를 체크하고 결과를 보여주는데, 준비가 덜 된 것들은 해결해주고 다음으로 넘어가면 된다.


Intl:  NOT AVAILABLE 이라길래


$ sudo apt-get install php5-intl


LDAP:  NOT AVAILABLE 이라길래


$ sudo apt-get install php5-ldap



date.timezone 이 NOT_OK 라고해서 /etc/php5/apache2/php.ini 를 열고 아래처럼 수정해줬다. 


[Date]

date.timezone = Asia/Seoul


수정후엔 아파치 재시작!


RC 설치 페이지에서 Next!


2. Create Config 화면이다.


Database setup 부분에 가서 미리 준비해둔 데이터베이스 관련 정보를 입력한다.


나머지는 건드리지 않고, 맨 아래 [Create Config]클릭!

상단에 설정 파일 내용이 보인다. 


복사해서 rc/config/config.inc.php 파일로 저장한다.


그리고 다시 설치 페이지로 와서 [Continue] 클릭!


3. Test Config 화면이다.

NOT OK 를 살펴보니....


/home/ryu/www/rc/temp/:  NOT OK(not writeable for the webserver)
/home/ryu/www/rc/logs/:  NOT OK(not writeable for the webserver)


디렉토리에 쓰기 권한을 줘야겠다.


$ chmod o+w logs

$ chmod o+w temp


페이지 새로고침하면 OK 로 바뀐다.


그 다음

DB Schema:  NOT OK(Database not initialized)


바로 아래의 [Initialize database] 클릭!

바로 OK 떨어진다.


그리고, 

메일 전송 테스트 해보고, 

IMAP 로그인 테스트도 해보고,


문제 없으면 이제 http://my.kr/rc/로 접속해서 사용하면 된다.


주의할 점!


첫 로그인 하기 전에!!!!!


rc/config/defaults.inc.php 열어서 아래 부분 true로 수정하자.

메일 삭제하니까, 쓰레기통이 없다고 하는데, 알아서 만들도록 설정하는 거다.


// automatically create the above listed default folders on user login

$config['create_default_folders'] = true;


만약 벌써 로그인을 해 버렸다면, 홈디렉토리 아래 Maildir 아래에 .Trash 라고 만들어주면 된다. 쩜Trash다. 점이 있다.


그리고,,,

보안을 위해 installer 디렉토리를 삭제하던지, 아니면, config.inc.php 파일에 enable_installer 를 disable 해 두는 것이 좋단다.


$config['enable_installer'] = false;


아예 웹 디렉토리 밖으로 옮겨놓는 것을 권장한다.


이상~~!









Posted by 똑똑한 영장류

우분투 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 가 남았지?!


너무 길어져서 다음 글에 정리해야겠다.





































Posted by 똑똑한 영장류