sendmail 서버 구축
sendamil 서버 구축에 필요한 패키지
- sendmail-version.rpm : sendmail 패키지
- sendmail-cf-version.rpm : sendmail 재 설정시 필요 패키지
sendmail 설치
yum install sendmail
service sendmail start
vi /etc/mail/sendmail.cf
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA
->이렇게 설정하면 내부내트워크에서만 메일이 전송되므로 다른호스트로도 메일을 보내고 싶으면 0.0.0.0으로 바꿔주면 된다.
O DaemonPortOptions=Port=smtp,Addr=0.0.0.0, Name=MTA
도메인 설정
vi /var/named/chroot/var/named/server14.zone
IN MX 5 mail.server14.co.kr.
mail IN A 10.10.64.14
->아래 내용을 추가하고
같은 ip 대역과 메일을 주고 받기 위해서는 zone파일을 설정해 주어야 한다.
vi /var/named/chroot/var/named/server14.co.kr
IN MX 5 mail.server14.co.kr.
mail IN A 10.10.64.14
[root@server14 named]# nslookup
> set type=mx
> server14.co.kr
Server: 10.10.64.14
Address: 10.10.64.14#53
server14.co.kr mail exchanger = 5 mail.server14.co.kr.
vi /var/named/chroot/var/named/server13.zone
$TTL 86400
@ IN SOA server13.co.kr. root.server13.co.kr. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS server13.co.kr.
IN MX 5 mail.server13.co.kr.
mail IN A 10.10.64.13
sendmail 환경설정 파일
/etc/mail/sendmail.mc
sendmail 매크로 설정파일로 sendmail.cf를 새로 생성할 때 사용한다.
m4 sendmail.mc > sendmail.cf
/etc/mail/sendmail.mc
sendmail의 주환경설정 파일
/etc/mail/local-host-names
메일서버의 최종 수신지를 지정
메일 호스트 도메인 지어 파일로 여러 도메인을 한대의 메일 서버에서 사용할 때 등록한다.
/etc/mail/domaintable
특정 도멩인에 배달된 메일을 특정 메일로 전달한다.
/etc/mail/mailertable
특정도메인에게 배달된 메일을 DNS를 참조하지 않고 특정메일로 전달한다.
mail2는 /etc/hosts파일에 등록한다.
/etc/mail/virtusertable
sendmail 가상 사용자를 등록하여 시스템 계정으로 받을 수 있게 설정한다.
사용법
가상메일계정 시스템계정명
vi /etc/mail/virtusertable
webmaster skydriver
/etc/mail/access
메일 릴레이 기능을 설정한다.
사용법
host / networkaddress options
옵션
OK : DNS조회없이 sendmail 릴레이 허용
RELAY : 메일 릴레이 허용
REJECT : 메일 수신 거부(반송)
DISCARD : 메일 수신 무시(반송하지 않음)
501 : 지정된 메일 주소가 같다면 메일 수신 거부
553 : 발신자 주소가 없는 경우 메일 수신 거부
550 : 지정된 도메인에 관련된 모든 메일 수신 거부
예) vi /etc/mail/access
127.0.0.1 RELAY
skydriver.co.kr RELAY
spam.com REJECT
192.168.0.9 550 Don't send me any Spam!!
hacker.com 501 Don't send me
/etc/aliases
sendmail aliases 파일로 사용자 메일을 다른 사용자로 받아 볼수 있게 설정한다.
vi /etc/aliases
test1: skydriver -> test1 사용자의 메일을 skydriver 사용자에게 보낸다.
sendmail db 업데이트
/etc/mail 디렉토리안에 sendmail 파일은 db화 하여 관리하므로 업데이트를 해주어야 한다.
makemap hash /etc/mail/access < /etc/mail/access
->/etc/mail/access.db 파일이 업데이트 된다.
혹은
makemap hash /etc/mail/access.db < /etc/mail/access
해주어도 된다.
make clean : /etc/mail/ 안에 모든 db파일을 삭제한다. 다시 생성해 주려면 make 해주면 된다.
[root@server14 mail]# ls
Makefile domaintable.db mailertable.db submit.cf virtusertable.db
access helpfile sendmail.cf submit.mc
access.db local-host-names sendmail.mc trusted-users
domaintable mailertable spamassassin virtusertable
[root@server14 mail]# make clean
rm -f *.db *~
[root@server14 mail]# ls
Makefile helpfile sendmail.cf submit.cf virtusertable
access local-host-names sendmail.mc submit.mc
domaintable mailertable spamassassin trusted-users
[root@server14 mail]# make
[root@server14 mail]# ls
Makefile domaintable.db mailertable.db submit.cf virtusertable.db
access helpfile sendmail.cf submit.mc
access.db local-host-names sendmail.mc trusted-users
domaintable mailertable spamassassin virtusertable
newaliases
/etc/aliases 파일을 업데이트 한다. 실행하고 나면 /etc/aliases.db 파일이 생성된다.
관련사이트 : http://www.sendmail.org
/etc/mail/sendmail.mc
sendmail 메크로 설정파일
사용법
m4 sendmail.mc > sendmail.cf
->m4 매크로 명령을 이용하여 sendmail.mc 매크로 파일을 sendmail.cf 파일로 변환한다.
/etc/mail/sendmail.cf
sendmail 주환경 설정 파일로 7개의 섹션으로 구분되어 있다.
/etc/sysconfig/sendmail
센드메일 데몬 스크립트 파일일 센드메일 데몬을 활성화 시킬때 사용하게 되는 파일
----------sendmail 동작확인하기 ------------------
telnet localhost 25
MAIL FROM: test1@server14.co.kr
RCPT TO: test1@server14.co.kr
DATA
메일 내용 작성하기
**순서가 리눅스 마스터 시험에 잘 나옴
[root@server14 ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 server14.co.kr ESMTP Sendmail 8.13.8/8.13.8; Wed, 30 Jul 2008 23:55:53 +0900
MAIL FROM: test1@server14.co.kr -> MAIL FROM: 이메일 주소
250 2.1.0 test1@server14.co.kr... Sender ok
RCPT TO: test1@server14.co.kr ->RCPT TO: 이메일 주소
250 2.1.5 test1@server14.co.kr... Recipient ok
DATA ->DATA
354 Enter mail, end with "." on a line by itself
hi test1 test mail!!!. ->보낼 내용 입력해줌 마칠때는 .을 마지막에 넣어준다.
.
250 2.0.0 m6UEtrP4004388 Message accepted for delivery
--------------------------------------------------
vi /etc/dovecot.conf
-----------------------------------------------------
#protocols = imap imaps pop3 pop3s
protocols = imap pop3
#listen = [::] -> ipv6 체계로 서비스
listen = * -> ipv4 체계로 서비스
#login_user = dovecot
login_user = dovecot
#mail_extra_groups =
mail_extra_groups = mail
# default_mail_env = mbox:~/mail/:INBOX=/var/mail/%u
default_mail_env = mbox:~/mail/:INBOX=/var/mail/%u
#login_executable = /usr/libexec/dovecot/imap-login
login_executable = /usr/libexec/dovecot/imap-login
#mail_executable = /usr/libexec/dovecot/imap
mail_executable = /usr/libexec/dovecot/imap
#login_executable = /usr/libexec/dovecot/pop3-login
login_executable = /usr/libexec/dovecot/pop3-login
#mail_executable = /usr/libexec/dovecot/pop3
mail_executable = /usr/libexec/dovecot/pop3
#auth_executable = /usr/libexec/dovecot/dovecot-auth
auth_executable = /usr/libexec/dovecot/dovecot-auth
-----------------------------------------------------
webmail 구축하기
webmail이란 ?
브라우저를 통해 메일을 송수신하는 서비스
Squirrelmail
오픈소스용 웹메일 프로그램
IMAP 서버기반 php4로 개발 -> php가 설치되어 있어야 한다.
Squirrelmail 구축에 필요한 패키지
-squirrelmail-version.rpm : squirrelmail rpm 패키지
-apache, php, imap 서버가 미리 구동되어 있어야 한다.
rpm -qa | grep squirrel 로 해당 패키지가 있는지 확인
rpm -Uvh php-mbstring-5.1.2-5.i386.rpm
rpm -Uvh squirrelmail-1.4.6-3.fc5.noarch.rpm
해주거나 혹은 yum 으로 설치해준다.
yum search squirrelmail -> 해당 패키지가 있는지 검색
yum install squirrelmail -> 패키지 설치
squirrelmail 환경설정파일
/usr/share/squirrelmail/config/conf.pl
squirrelmail의 환경을 설정
[root@server14 Desktop]# /usr/share/squirrelmail/config/conf.pl
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color off
S Save data
Q Quit
Command >>
-> 2번 메뉴선택
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Server Settings
General
-------
1. Domain : localhost
2. Invert Time : false
3. Sendmail or SMTP : Sendmail
A. Update IMAP Settings : localhost:143 (uw)
B. Change Sendmail Config : /usr/sbin/sendmail
R Return to Main Menu
C Turn color off
S Save data
Q Quit
-> 1번 메뉴선택
server14.co.kr
-> A를 선택
server14.co.kr
->나와서 8번을 선택
other
http://www.server14.co.kr/webmail 에서 확인한다.
아파치 웹서버 환경설정
squirrelmail 프로그램은 웹서버를 통해서 클라이언트에게 서비스를 해주도록 되어 있으므로, 아파치 웹서버에 설정을 해주어야 하는데,RPM패키지로 설치한 경우에는 따로 설정해 줄 필요가 없다. 그 이유는 /etc/httpd/conf.d/squirrelmail.conf 파일이 생성되었기 때문이다.
Alias 지시자로 http://IP주소/webmail 페이지를 열면 /usr/share/squirrelmail 페이지가 열리도록 설정되어 있다.
vi /etc/httpd/conf.d/squirrelmail.conf
Alias /webmail /usr/share/squirrelmail
메일 통계보기
sendmail 패키지에 있는 mailstats 명령어는 /var/log/mail/statistics를 참고하여 현재 메일 서버의 통계를 확인할 수 있는 명령어 입니다.
명령어 위치 : /usr/sbin/mailstats RPM 패키지 : sendmail
사용법
mailstats
[root@server14 conf]# mailstats
Statistics from Tue Jul 29 21:28:32 2008
M msgsfr bytes_from msgsto bytes_to msgsrej msgsdis msgsqur Mailer
4 15 18K 9 10K 0 0 0 esmtp
9 10 17K 22 36K 0 0 0 local
=====================================================================
T 25 35K 31 46K 0 0 0
C 23 9 0
각 필드의 의미
M: Mail 프로그램의 번호
msgstr : 해당 메일러에서 수신한 메시지의 수
bytes_from : 해당 메일러가 처리해야할 메시지의 용량(Kbytes)
msgsto : 해당 메일러가 처리하고 있는 메시지수
bytes_to : 해당 메일러가 처리하고 있는 메시지의 용량(Kbytes)
msgsrej : 거부된 메시지의 수
msgsdis : 삭제된 메시지의 수
Mailer : Mail 프로그램의 이름
.forward는 기본적으로 644로 생성이 되는데 이를 600으로 바꿔줘야 한다. 왜냐하면 .forward 파일엔 그룹과 other 권한에 w 권한이 있으면 안되기 때문이다.
