보안을 위해, plain text 로 패스워드가 날아다니는
telnet 과 ftp 대신 ssh 를 사용하더라도..
메일서버에서의 메일 확인은 보호받지 못하죠.
그래서 pop3 와 imap 에 ssl 을 붙일 생각을 하게 되었습니다.
ssl 을 사용하기 위해 openssl 이 필요하고,
이는 뿌우님의 ftp 에서 구할 수 있습니다.
ftp://ftp.oops.org/pub/Linux/Redhat/RPMS/6.x/i386/openssl/ ============================================================
=== imap-2000 RC3 에서 ssl 을 지원합니다.
4.7c 에서는 지원하지 않더군요.
Makefile 을 다음과 같이 고쳐주고.
SPECIALAUTHENTICATORS=ssl
src/osdep/unix/Makefile.ssl,
src/osdep/unix/auth_ssl.c 파일의 몇군데를 건드려야 하는데..
-lRSAglue -lrsaref 플래그를 주면 컴파일되지 않더군요.
128bit 지원하는지는 의문입니다..
(# Use this definition if outside of the USA
이렇게 되어 있거든요.)
===============================================================
컴파일이 다 끝난 후에는 설치를 하고..
/etc/services 와 /etc/inetd.conf 를 손봐야 하는데..
redhat 계열은 ssl 을 사용한 서비스들이..
spop3 995/tcp # POP-3 over SSL
simap 993/tcp # IMAP over SSL
이렇게 되어 있습니다만, 이것을 pop3s, imaps 로 바꾸어주어야 합니다.
그리고 /etc/inetd.conf 에서 두가지에 대한걸 추가해주어야 하죠.
pop3s stream tcp nowait root /usr/sbin/tcpd ipop3d
imaps stream tcp nowait root /usr/sbin/tcpd imapd
마지막으로 inetd 재시작..
# /etc/rc.d/init.d/inetd restart
===============================================================
위에서 컴파일과 설치과정까지를 rpm 으로 만들어봤습니다.
ftp://ftp.arcy.org/pub/mail/imap 최선곤님(bushi at mizi.com) 의 imap+sql rpm 에서..
sql 을 빼고 ssl 을 넣었습니다.
rpm -Uvh 로 깔아주면,
자동으로 다 깔리고 inetd 까지 리스타트 됩니다.
디폴트값으로 pop2, pop3, imap, pop3s, imaps 모두 열립니다.
쓰지 않으실건 닫아주세요.
===============================================================
데몬을 띄운 후에는, (물론 전에 해도 됩니다만. ^^;)
imapd, ipop3d 에서 사용할 cert 를 만들어주어야 합니다.
위치는 auth_ssl.c 에서 지정한 디렉토리에,
(위의 rpm 에서는 /usr/ssl/cert 입니다.)
imapd.pem , ipop3d.pem 파일로 존재해야 합니다.
파일 형식은 RSA private key + certificate 형식이죠..
만드는 방법은 다음과 같습니다.
private 키는 잘 보존해야 하니,
/root 디렉토리 안에서 작업하는게 보안상 좋겠죠?
# openssl req -new > ipop3d.csr
(common name 에 메일서버의 호스트네임을 넣으세요.)
# openssl rsa -in privkey.pem -out ipop3d.key
# openssl x509 -in ipop3d.csr -out ipop3d.cert -req -signkey ipop3d.key -days 365
# cat ipop3d.key ipop3d.cert > ipop3d.pem
그리고 퍼미션을 600으로 바꾼 뒤, 디렉토리로 옮깁니다.
# chmod 600 ipop3d.pem
# mv ipop3d.pem /usr/ssl/certs
(레드햇 7.0 openssl 에서는..
# mv ipop3d.pem /usr/share/ssl/certs 입니다.
2000.10.24 수정..)
===============================================================
클라이언트에서 세팅할땐,
:: Outlook Express 의 경우
Tools - Accounts 에서, 그 계정의 'Advanced' 탭을 보면,
(한글판인 경우 도구-계정 에서 계정의 '고급' 탭..)
Incoming mail(POP3):
아래에 SSL enable 시키는 체크박스가 있습니다.
그걸 선택해주면 자동으로 포트가 995로 바뀌죠.
그리고 성공적으로 메일이 받아지면 성공한겁니다. =)
===============================================================
아웃룩의 경우, 아웃룩에서 설정된 받는 메일 서버 주소와..
cert 만들때 사용한 common name 이 다르면 경고창이 뜨더군요.
주의하시기 바랍니다.
아이피 여러개 사용하는 경우..
imapd-192.168.0.1.pem 같은 방식으로
여러개의 pem 을 사용할 수 있다고 합니다.
자.. 이제 안전하게 e-mail 을 받으시길.. =]
이만.. arcturus 진기..
ps.. 10월 3일 수정했습니다.
openssl 로 cert 를 만들때 -days 옵션을 줘서,
1년간 cert 를 쓸 수 있습니다. ^^
디폴트가 30일이더군요..