초보자를 위한 exim4 설치하기
초보자를 위한 Exim4 설치하기
작성자 coolseed@hotmail.com, http://koov.net 이 문서는 http://debianusers.org/DebianWiki/wiki.php/exim4 의 문서가 원본입니다.
1 초보자를 위한 Exim4 설치하기
1.1 목적
데비안 설치시 기본적으로 설치되는 Exim4 MTA를 초보자도 완벽하게 설치 할수 있도록 하는것이 이 문서의 목적이다. 이 문서는 아래와 같은 조건을 기본으로 한다.
- 해당 서버가 메일서버로 동작한다.
- 계정은 시스템 계정을 기본으로 한다.(가상유저 지원안함)
- ?POP3서비스를 제공한다.
- 기본적으로 모든 릴레이는 막혀 있으며 SMTP인증을 통하여 메일을 발송한다.
가정조건
- 문서에 나와있는 호스트의 이름은 mail.foobar.com 이다.
- 이 호스트는 domain.net의 메일도 수신하고 있다.
1.2 준비사항 #
우선 아래의 패키지들을 설치하도록 한다.
- exim4
- qpopper
- sasl2-bin
''$ apt-get install exim4 qpopper sasl2-bin''
1.3 기본설정 #
- /etc/exim4 디렉토리에 들어가면 아래의 파일이 들어있다.
''$ ls exim4.conf.template passwd.client update-exim4.conf.conf''
- 우선 update-exim4.conf.conf 파일을 수정한다.
" # /etc/exim4/update-exim4.conf.conf # # Edit this file and /etc/mailname by hand and execute update-exim4.conf # yourself or use 'dpkg-reconfigure exim4-config' # # Please note that this is _not_ a dpkg-conffile and that automatic changes # to this file might happen. The code handling this will honor your local # changes, so this is usually fine, but will break local schemes that mess # around with multiple versions of the file. # # update-exim4.conf uses this file to determine variable values to replace # the DEBCONFsomethingDEBCONF strings in the configuration template files. # # Most settings found in here do have corresponding questions in the # Debconf configuration, but not all of them. # # This is a Debian specific file dc_eximconfig_configtype='internet' dc_other_hostnames='foobar.com:domain.net' # FQDN 이부분에 메일도메인을 적어준다. 여러개의 도메인을 운영중이라면 : 로 구분한다. dc_local_interfaces='' # 이부분은 접속허용가능호스트를 적어준다. 기본적으로 모든 메일을 받아야 하므로 비워둔다. dc_readhost='' dc_relay_domains='' # 다른곳으로 릴레이 시킬 도메인을 적는부분이다. 비워둔다. dc_minimaldns='false' dc_relay_nets='' dc_smarthost='' CFILEMODE='644' dc_use_split_config='false' dc_hide_mailname='' dc_mailname_in_oh='true' ''
- 자 위와같이 수정한후 아래의 명령을 실행하면 exim config파일이 자동으로 생성된다.
''$ update-exim4.conf -d /etc/exim4 -o /etc/exim4/exim4.conf''
''$ ls /etc/exim4 ./ ../ conf.d/ exim4.conf exim4.conf.template passwd.client update-exim4.conf.conf''
여기까지가 기본적인 Exim4의 설정단계이다. 이렇게 하면 기본적으로 메일을 받는것은 문제 없이 될것이다. 아울러 ?POP3또한 qpopper패키지를 설치하게 되면 별다른 설정없이 ?POP3서비스를 이용할수 있다.
1.4 SMTP인증
이제 메일을 보내는 작업을 하게 될것이다. 일반적으로 모든 메일서버는 릴레이를 제한하여야 하는데 그 이유는 무분별한 스팸메일을 막기 위해서 이다. 그러나 가끔 개념이 없는 관리자는 이런것을 무시하고 메일서버를 대충 설치하는 경우 해당 서버가 스패머들에의해 엄청난양의 스팸메일을 뿌리거나 네트워크 대역폭을 낭비하는 경우가 생긴다. 따라서 서버의 릴레이를 제한하고 인증된 사용자만이 메일을 보낼수 있도록 셋팅하도록 한다.
맨처음에 설치한 패키지중 sasl2-bin 패키지가 이러한 SMTP인증을 해주는 데몬 패키지 이다.
그 첫번째 단계로 우선 Exim4의 설정을 SMTP인증으로 변경하는 작업을 해보도록 하자
- /etc/exim4/exim4.conf.template 파일을 연다.
''$ vi /etc/exim4/exim4.conf.template''
위의 화일을 열어 아래와같이 주석처리된 부분을 제거한다.
''.......상단생략....... # Authenticate against local passwords using sasl2-bin # Requires exim_uid to be a member of sasl group, see README.SMTP-AUTH plain_saslauthd_server: driver = plaintext public_name = PLAIN server_condition = ${if saslauthd{{$2}{$3}}{1}{0}} server_set_id = $2 server_prompts = : # .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS # server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} # .endif # login_saslauthd_server: driver = plaintext public_name = LOGIN server_prompts = "Username:: : Password::" # don't send system passwords over unencrypted connections # server_advertise_condition = ${if eq{$tls_cipher}{}{0}{1}} server_condition = ${if saslauthd{{$1}{$2}}{1}{0}} server_set_id = $1 # .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS # server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} # .endif # ## 이하 모든 아래내용은 주석처리 하도록 한다. ##''
- 위와같이 exim4.conf.template화일을 수정한후
''$ update-exim4.conf -d /etc/exim4 -o /etc/exim4/exim4.conf''
명령을 다시 해주어 exim4.conf화일을 재생성한다.
- 그리고 /etc/group 파일을 열어 Debian-exim유저를 sasl그룹에 포함시켜준다.
''root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: uucp:x:10: man:x:12: proxy:x:13: kmem:x:15: dialout:x:20: fax:x:21: voice:x:22: cdrom:x:24:hal floppy:x:25:hal tape:x:26: sudo:x:27: audio:x:29: dip:x:30: www-data:x:33: backup:x:34: operator:x:37: list:x:38: irc:x:39: src:x:40: gnats:x:41: shadow:x:42: utmp:x:43: video:x:44: sasl:x:45:Debian-exim # 여기에 추가시켜준다. plugdev:x:46: staff:x:50: games:x:60: users:x:100: nogroup:x:65534: crontab:x:101: Debian-exim:x:102: ssh:x:103: messagebus:x:104: dirmngr:x:105: hal:x:106: camera:x:107: scanner:x:108: saned:x:109: gdm:x:110: ''
- sasl 데몬을 기동하기 위해 아래의 파일을 수정한다.
''$ vi /etc/default/saslauthd''
''# This needs to be uncommented before saslauthd will be run automatically # START=yes # You must specify the authentication mechanisms you wish to use. # This defaults to "pam" for PAM support, but may also include # "shadow" or "sasldb", like this: # MECHANISMS="pam shadow" START="yes" # 데몬을 가동하기 위해 추가한다. MECHANISMS="pam shadow" # 기본적인 password방식은 shadow이므로 shadow만 있어도 상관 없다.''
- 이제 exim4와 sasl데몬을 재시작 하도록 한다.
''$ /etc/init.d/saslauthd restart ''
''Stopping SASL Authentication Daemon: saslauthd. Starting SASL Authentication Daemon: saslauthd.''
''$ /etc/init.d/exim4 restart Restarting MTA: exim4.''
- 마지막으로 모든 설정이 제대로 되었는지 확인하기 위해 메일이 잘 오가는지 테스트 해보도록 한다.
- 아울러 릴레이가 제대로 막혀 있는지 확인또한 철저히 하여 불필요한 스팸메일을 발송하지 못하도록 한다.
1.4.1 릴레이 테스트 #
릴레이 테스트는 아래의 페이지에서 간단하게 할 수 있다. http://people.kldp.org/~eunjea/relay-test.php
1.5 마무리 #
이상으로 Exim4의 가장 기본적인 설정을 마무리하도록 한다. 기타 문서에 대한 교정이나 내용의 문의사항은 아래로 연락바랍니다. Email & MSN : coolseed@hotmail.com
relay test
자신의 메일 서버가 오픈 릴레이인지 확인하는 방법은 다음과 같이 아주 간단합니다 (웹에서 테스트 해볼 수 있습니다).일단 릴레이가 허용되지 말아야할 ip를 가진 컴퓨터에서 메일 서버의 25번 smtp포트로 접근합니다. 굵게 표시된 곳이 제가 입력한 것입니다. rcpt to에는 메일 수신자를 입력하는데 릴레이를 허용하거나, 메일 서버가 받아들일 도메인이 아닌데도 그대로 ok 가 떨어지면 릴레이가 열려있는 상태입니다. 다음과 비슷한 메세지가 나오면서 거부되어야 정상입니다.
$ telnet foobar.com 25 Trying 192.168.1.1... Connected to foobar.com. Escape character is '^]'. 220 foobar.com ESMTP helo foobar.com 250 foobar.com mail from: test@test.com 250 ok rcpt to: test@test.com 553 sorry, that domain isn't allowed relay (#5.7.1) |
제발 다시 한번 당부하지만, 메일서버의 릴레이를 오픈해 놓지 말아주십시요. 아무 생각없이 릴레이를 열어놓은 메일 서버는 스패머에게 이용되어 자신뿐만 아니라 다른 사람에게도 피해를 주며 결국에는 국가적 망신입니다."뭐 잠깐 열어 놓는데 별일 있겠어?" 하는 생각을 하시나요? 제 칵테일 패치에 릴레이 시도하면 로그를 남기도록 한 부분이 있는데 패치를 적용한 뒤에 qmail 로그를 확인해보면 얼마나 많은 스패머들이 오픈 릴레이를 노리고 있는지 알 수 있습니다.
[ xxx@silver ]grep "Attempted relay" /var/log/qmail/smtp/current | wc -l 54
출처 - http://ubuntu.or.kr/wiki/doku.php?id=%EC%B4%88%EB%B3%B4%EC%9E%90%EB%A5%BC_%EC%9C%84%ED%95%9C_exim4