1. 이전버전 체크 + 실행파일 생성
우선 sendmail 이 설치되어있는지 확인해보고 있으면 지워주자
[root@server103 ~]# rpm -qa | grep sendmail
sendmail-8.13.4-2
[root@server103 ~]# rpm -e --nodeps sendmail-8.13.4-2 (--nodeps: 의존성 무시하고 지우라는 옵션 추가)
지웠으면 이제 sendmail 소스를 다운
[root@server103 ~]# mkdir -p /usr/local/sendmail
[root@server103 ~]# cd /usr/local/sendmail
[root@server103 sendmail]# wgethttp://pkgs.fedoraproject.org/repo/pkgs/sendmail/sendmail.8.14.0.tar.gz/bc0dee396b8090b3f696e748a9caf83d/sendmail.8.14.0.tar.gz
[root@server103 sendmail]# tar zxvf sendmail.8.14.0.tar.gz
[root@server103 sendmail]# cd sendmail-8.14.0/
[root@server103 sendmail]# make
[root@server103 sendmail]# make install
make install 할때 에러가 뜨는 걸 확인 할 수 있다.
install: cannot create regular file `/usr/man/man5/aliases.5': No such file or directory
install: cannot create regular file `/usr/man/man8/editmap.8': No such file or directory
install: cannot create regular file `/usr/man/man1/vacation.1': No such file or directory
그래서 필요한 디렉토리를 만들고 다시 make install 하기
[root@server103 sendmail-8.14.0]# mkdir -p /usr/man/man{1,5,8}
[root@server103 sendmail-8.14.0]# make install
에러 없이 설치되었으면 다음스텝으로 넘어가기
2. Sendmail 설정파일 생성
압축푼 폴더에서 INSTALL를 읽어보면
cf/cf 디렉토리에 가서 내 환경에 맞는 .mc파일을 sendmail.mc로 바꾼 후, sh Build sendmail.cf 명령어를 실행하라고 한다.
또한 압축 푼 폴더에서의 README랑 cf 디렉토리안의 README를 읽어보면,
Sendmail소스의 configuration files 는 cf고, cf 디렉토리 안에 있으며 .mc로 끝나는 파일이라고.
.mc 파일들이 여러종류가 있는데 지금 사용하고 있는 OS에 맞는 generic-*.mc를 사용하면 된다
나는 OS=Linux 이니까 generic-linux.mc를 사용 하면 될듯.
그다음 cf/cf디렉토리에서 sh Build install-cf 명령어를 이용해서 sendmail.cf를 인스톨,
이때 sendmail.cf가 /etc/mail로 이동한다.
그럼 따라해봅시다.
[root@server103 sendmail-8.14.0]# cd cf/cf
[root@server103 cf]# ll --> 하면 .mc 파일들이 촤라락 보일거임. 거기서 우리는 generic-linux.mc
[root@server103 cf]# mv generic-linux.mc sendmail.mc
[root@server103 cf]# sh Build sendmail.cf
[root@server103 cf]# cd /etc/mail
[root@server103 mail]# ll
total 60
-r--r--r-- 1 bin bin 5594 Dec 4 15:59 helpfile
drwxr-xr-x 2 root root 4096 Dec 2 12:55 spamassassin
-rw------- 1 root bin 0 Dec 4 15:59 statistics
-r--r--r-- 1 root bin 41354 Dec 4 15:56 submit.cf
(아직 install 하기 전이라서 /etc/mail 에서 sendmail.cf가 보이지 않는걸 알 수 있다.)
[root@server103 mail]# cd /usr/local/sendmail/sendmail-8.14.0/cf/cf
[root@server103 cf]# sh Build install-cf
Using M4=/usr/bin/m4
../../devtools/bin/install.sh -c -o root -g bin -m 0444 sendmail.cf /etc/mail/sendmail.cf
../../devtools/bin/install.sh -c -o root -g bin -m 0444 submit.cf /etc/mail/submit.cf
[root@server103 cf]# cd /etc/mail
[root@server103 mail]# ll
total 104
-r--r--r-- 1 bin bin 5594 Dec 4 15:59 helpfile
-r--r--r-- 1 root bin 41509 Dec 4 16:17 sendmail.cf
drwxr-xr-x 2 root root 4096 Dec 2 12:55 spamassassin
-rw------- 1 root bin 0 Dec 4 15:59 statistics
-r--r--r-- 1 root bin 41354 Dec 4 16:17 submit.cf
(install 후 /etc/mail 에서 sendmail.cf가 생긴걸 확인할 수 있음)
3. Sendmail 기타 설정파일 설정하기
1. access - sendmail의 접근을 제어하는 파일, 호스트나 도메인, 아이피, 이메일주소를 쓰고 이것을 허용하겠다면 RELAY,
허용하지 않겠다고 하면 REJECT를 쓰면 된다. 특정 도메인의 스팸메일 차단하는데 쓰면 좋겠네.
[root@server103 mail]# vi access
자기ip주소 RELAY
127.0.0.1 RELAY
localhost RELAY
localhost.localdomain RELAY
적어주고 저장 (근데 이것들 안써도 되긴 하더이다.)
(적는 방법 더 자세히 알고 싶으면 cf/cf/ 에서 line 2509부터 읽어보쇼)
이것은 databse 즉 db파일이어야 하기 때문에 이렇게 텍스트로 적어논 파일을 db파일로 바꿔줘야한다.
makemap hash /etc/mail/access < /etc/mail/access 이런식으로 바꿔줄수 있다.
[root@server103 mail]# makemap hash access < access
[root@server103 mail]# ls access.db
access.db << 이렇게 생성이 되어야 함!!
2. aliases - 특정 계정으로 메일을 보냈을 경우 그 계정으로 메일이 도착하지 않고, 이 파일에 지정된 다른 계정으로
메일이 전송될 수 있게 함. 즉, 특정 사용자에게 온 메일을 다른사람에게 보내준다거나, 메일링리스트를 작성해야 하는 경우에 사용되는 파일이라고 함
[root@server103 mail]# vi aliases
webmaster: root 적어주고 저장
역시 aliases.db 파일을 생성해줘야하니까.
(이때 makamap hash aliases < aliases 하면 db파일 생성 되긴 하던데,,,, 왜 newaliases로 하는지는 모르겠다 ㅠㅠ)
[root@server103 mail]# newaliases
/etc/mail/sendmail.cf: line 73: fileclass: cannot open '/etc/mail/local-host-names': No such file or directory
can not chdir(/var/spool/mqueue/): No such file or directory
이런 에러가 뜨니까 없으면 만들어줘야지
[root@server103 mail]# touch local-host-names
[root@server103 mail]# mkdir /var/spool/mqueue
[root@server103 mail]# chmod 755 /var/spool/mqueue/ <<권한설정 해줘야함.
4. Sendmail 실행
[root@server103 mail]# /usr/sbin/sendmail -Ac -q1h -->중계용 데몬
[root@server103 mail]# /usr/sbin/sendmail -bd -q1h --> 제출용 데몬
(중계용, 제출용 이거 잘 모르겠지만, 제출용 데몬은 백그라운드로 실행되어 다른 호스트로부터 메일을 받을 준비를 취하고 있는 상태, 여기서 -bd는 데몬모드로 실행하라는 옵션이고 뒤의 -q1h는 큐에 있는 내용을 한시간 간격으로 비우라 는 의미...)
[root@server103 mail]# ps -ef | grep sendmail
smmsp 8195 1 0 17:03 ? 00:00:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
root 8198 1 0 17:03 ? 00:00:00 sendmail: accepting connections
이렇게 확인 한번 해주고
테스트를 해봅시다.
[root@server103 mail]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 server103.localdomain ESMTP Sendmail 8.14.0/8.14.0; Tue, 4 Dec 2012 17:41:55 +0900
mail from:*****@gmail.com << mail from:보내는사람메일주소
250 2.1.0 *****@gmail.com... Sender ok
rcpt to:*****@gmail.com << rcpt to:받는사람메일주소
250 2.1.5 *****@gmail.com... Recipient ok
data << data
354 Enter mail, end with "." on a line by itself
dfadfa
. << . 을 찍어야 끝남
250 2.0.0 qB48ftiU008759 Message accepted for delivery
quit << 나오기
221 2.0.0 server103.localdomain closing connection
Connection closed by foreign host.
'os > Linux' 카테고리의 다른 글
[실습] 웹서버구축 (0) | 2014.10.28 |
---|---|
[실습] 자동, 수동 ip 설정 (0) | 2014.10.28 |
[실습] * 별출력 (0) | 2014.10.28 |
[실습] 구구단 (0) | 2014.10.28 |
[실습] shell script (0) | 2014.10.28 |
댓글