<< Mail Server >>
- SMTP 방식
Protocol : TCP 25
Sendmail
- POP 방식
Protocol : TCP 110
Client가 메일을 읽으면 해당 메일이 Client 측으로 다운로드 됨.
전용 단말이 없으면 추후에 메일 통합 작업이 필요하다.
dovcot
- IMAP 방식
Protocol : TCP 143
Client가 메일을 읽어도 서버에 남게 된다.
대신 사서함의 용량 관리를 해야한다.
현재는 개인 계정마다 약 5G 정도 할당해 준다.
<< Mail 전송 순서 >>
1. MUA : Mail User Agent (사용자 메일 프로그램)
2. MDA : Mail Delivery Agent (메일 전달 프로그램)
3. MTA : Mail Transfer Agent ( 메일 전송 프로그램)
MUA -> MDA -> MTA -> MDA -> MUA
mail server를 구성한다는 것은 웹 페이지를 선행으로 요구하니 WEB를 만드는 것 까지 해놓는다.
실습에 보내는 방식은 Sendmail을 쓸 것이고, 받는 방식은 dovecot을 이용할 것이다.
dovecot은 웹 메일을 지원하지 않는다.
웹메일은 가격이 비싸서 썬더버드라는 웹 클라이언트 프로그램을 써서
내부 네트워크 안의 메일을 주고 받는 것으로 한다.
# yum install -y sendmail-cf dovecot
<< sendmail 설정 >>
# /etc/mail/sendmail.mc
21 dnl 주석을 지워주고 레벨을 14로 바꾼다.
나중에 문제가 될 경우 확인하기 편하기 위해 로그 뜨는 것의 레벨을 높여놓는 것이다.
52,53 주석인 dnl을 지워 준다.
118. address 부분을 지우거나 0.0.0.0 설정한다.
모든 IP로 처리하기 위해서다.
간혹 0.0.0.0으로 설정할 경우 잘 인식이 안돼서 재부팅이 되는 이슈가 있을 수 있다고 한다.
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
/etc/mail/sendmail.cf 를 열기 전에 길이가 너무 길어 첨부작업해주는 것이다.
반드시 m4라는 툴로 만들어야 한다. 안그러면 오류난다.
인증서에 관련된 내용들을 전송하는 행위다.
# vi /etc/mail/sendmail.cf
39줄의 공백은 오류를 일으킨다는 이슈가 있으니 dd 를 눌러서 지워준다.
91줄 local host 부분에 우리가 사용할 도메인을 넣어주는 곳 위치이다.
# vi /etc/mail/local-host-names
alias 기능이랑 같다.
기왕이면 메일에서 사용할 호스트 네임도 하나 등록해 준다.
shrshr.shop
# vi /etc/mail/access
아무나 접근할 수 있게 허용하면 스팸메일이 오거나 좋지 않다.
특정 국가에선 국가단위로 막는 경우도 있다.
풀어달라고 사유를 갖고 요청하면 3주 이상 걸린다고 한다.
여기에 IP를 적는다 (혹시 몰라서 아래 두개를 열어줘봤다)
# makemap hash /etc/mail/access < /etc/mail/access
입력을 해준다. 이거 하기 전까지 입력 했던건 사람이 알아볼 수 있는 파일인 것이고,
이제 기계어로 변환하는 작업을 해주는 것이다.
< /etc/mail/access을 원본파일로 만든다는 뜻
# useradd a
useradd b
# vi /etc/group
아래와 같이 mail 그룹에 추가시켜줄 필요가 있다.
# systemctl start sendmail
(보내는 메일 서버 설정 끝!)
<< dovecot 설정 >>
# vi /etc/dovecot/dovecot.conf
24,30 주석 제거
29줄에 보면 콘프.d 에서 마스터 콘프를 설정할 수 있다고 돼있다.
# vi /etc/dovecot/conf.d/10-auth.conf
주석 제거 후 NO
# vi /etc/dovecot/conf.d/10-mail.conf
25줄 주석 제거. 메일 저장 위치를 표시하는 곳 설정.
나중에 cat으로 이 위치를 열어보면 주고 받은 메일들이 다 보인다.
# vi /etc/dovecot/conf.d/10-master.conf
아이맵 port = 143, 팝3 port =110 주석 제거#
특정 포트를 막는 것도 가능한 곳이다.
# vi /etc/dovecot/conf.d/10-ssl.conf
firewall-cmd --permanent --add-port=25/tcp
firewall-cmd --permanent --add-port=110/tcp
firewall-cmd --permanent --add-port=143/tcp
firewall-cmd --reload
# service dovecot start
로 도브콧 데몬을 시작한다.
# systemctl restart dovecot
netstat -nat로 25번 포트를 보면 아래와 같이 모든 IP로 개방돼있어야 한다.
만약 127.0.0.1이나 다른 주소만으로 돼있다면 재부팅시 해결 된다.
재부팅을 하게 되면 다시 시작해줘야 할 데몬은 chkconfig --level 35 '데몬명' on 명령어로 부팅할때 오토스타트 한다.
참고로 var/mail 은
아래와 같이 사용자 계정 생성 시 메일 사서함이 자동 생성되게 되는 위치로 심볼릭 링크가 걸려 있다.
PC 밖으로 나가서 옆이랑 통신하려면 VMware 포트포워딩 작업 필요하다.
25,110,143
<< Thunderbird 메일 프로그램 >>
메일 서버가 잘 작동하는 지 알아보기 위해 아래 메일 플렛폼 프로그램을 다운 받는다
https://www.thunderbird.net/ko/
호스트 네임에 하드코딩으로는 그냥 IP주소를 넣으면 되지만 지양한다. (url을 넣는다)
만약 잘 안되면 메일 서버 IP를 넣어주면 작동한다.
포트는 프로토콜에 맞게 넣고,
인증절차는 자동으로 설정한다.
<< 트러블 슈팅 >>
제일 말도 많고 탈도 많았던 메일 서버 구성이다.
썬더버드 메일을 loops back 문제로 못 발송한다고 에러메세지가 오면 둘중 하나만 하면 된다.
받는 메일 서버는 보통 문제될 게 잘 없는데 보내는게 문제가 잘 일어난다.
1. /etc/hostname 파일을 보면 호스트의 이름을 우리가 멋대로 centOS로 바꿨다.
vi /etc/mail/sendmail.cf
sendmail 설정 보면 호스트의 호칭이 디폴트 localhost라고 되어있어 인식을 못하고 있다.
hostnamectl set-hostname localhost
systemctl restart sendmail
이 명령어를 써도 된다.
2. vi /etc/hosts 에 127.0.0.1 mx1.shrshr.shop 을 등록한다
127.0.0.1은 loops back 주소다.
/etc/hosts 파일의 한 아이피의 명칭은 다 그 아이피를 지칭하는것.
명령어를 쓸 때 그렇게 텍스트로 치면 대입된다.
3. 호스트 피시의 다른 서비스들 중에 25,110,143번 포트를 쓰고 있는 다른 것이 없는지 확인한다.
4. restart sendmail이 오래 걸리는 문제는 로컬호스트 네임이 달라서다.
/etc/hostname 를 수정해서 shrshr.shop으로 수정하자
5. 시스인터널의 TCP 뷰어로 포트 죽이기
tail -F /var/log/maillog
6. 방해가 되는 포스트 픽스 제거
아래와 같이 Postfix가 미리 점유중이라서 문제가 생겼던 것이었다.
yum remove postfix
>> 필자의 해결법 당첨!!
<< 옆 PC랑 통신하는 법 >>
메일을 받는 실제 호스트 피시는 25,110,143 포트 방화벽 다 열고
vmware 윈도우 머신도 똑같이 방화벽 다 열어주고
보내는 사람은 상대방의 실제 호스트 피시의 IP를 자기 DNS 에 등록해 주어야 찾아간다.
rfc 존 파일 설정은 정방향만 주DNS, 보조DNS 다 옆PC 등록해 주고, 존 파일도 만들어 줘야 한다.
<< 초기화 >>
yum remove sendmail-cf dovecot
rm -rf /etc/mail /etc/dovecot
vi /etc/group
===============번외편=========================
<< 리눅스에서 실제 주소로 메일 쓰는 법 naver>>
# yum install telnet
# telnet localhost 25
mail from:ceo@shrshr.shop
rcpt to:hariniok@naver.com
data
subject: 행복하세요
.
(.으로 보내기)
'Linux' 카테고리의 다른 글
yum 중간에 트렌젝션 문제 생긴것 해결 (0) | 2022.11.17 |
---|---|
NFS (0) | 2022.11.17 |
history에 시간정보 표시하는 명령어 (0) | 2022.11.16 |
Proxy server 만들기 (0) | 2022.11.15 |
WEB (0) | 2022.11.14 |