개요
Mail Server : Mail System 설치
Mail Server 구축 / 메일 송신 서비스 설치 (sendmail)
Centos 7 운영체제를 설치해준다.
최소모드로 설치 후 네트워크 설정을 해준다.
#yum list sendmail* // 설치 가능한지 확인
#yum -y install sendmail sendmail-cf // sendmail 과 설정 샘플 파일 설치
#file /etc/mail/sendmail.mc // text 파일이긴 한데 macro script 프로그램 파일이다. vi로 수정이 가능한데 바로 적용할 수 없다. m4라는 유틸리티를 사용해야 한다.
#vi /etc/mail/sendmail.mc
118행을 보면 Addr에 loopback IP 로 되어있다. 즉, 자기 자신만 메일을 보낼 수 있게 되어있다.
메일보내려면 웹 브라우저에서 보내야 하기 때문에 이 loopback IP 를 누구나 접속할 수 있게 0.0.0.0 을 넣어준다.
#m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf // mc 파일을 리다이렉션을 통해 configuration 파일로 적용(바로 저파일에 서 수정해도 상관없음)
#vi /etc/mail/sendmail.cf
89행을 보면 Cwlocalhost 를 Cwkhsec.edu으로 바꿔준다. Cw는 이 도메인에서 이 메일서버를 쓰겠다는 의미이다.
#vi /etc/mail/access // 메일 서버끼리 통신을 하려면 이 설정을 해줘야 한다. 메일 주고 받기가 가능한 목록을 지정해주고 메 일을 주고받게 되어있다. 메일 보안에서는 중요하다
이런식으로 추가해 준다.
- 네이버를 여기에 넣어도 네이버에서 우리를 막아놨기 때문에 메일이 안 간다. (네이버 정책)
#makemap hash /etc/mail/access < /etc/mail/access // access 파일을 바꿀 때 마다 해줘야 한다.
access 파일은 중요하기 때문에 변조되면 안된다. 그래서 text 파일을 그대로 쓰지 않고, text 파일을 DB화 한다.
makemap 명령어로 sendmail 의 설정파일을 database 파일인 것처럼 파일을 만들어준다.
무결성 체크도 중요하기 때문에 hash format maps로 변환을 해준다.
#systemctl start sendmail
#systemctl enable sendmail
#firewall-cmd --permanent --zone=public --add-port=25/tcp
#firewall-cmd --reload
#netstat -lnt
25번 포트가 저렇게 되어있어야 한다.
메일 수신 서비스 설치 (dovecot)
#yum -y install dovecot
#vi /etc/dovecot/dovecot.conf
24행 protocols = imap pop3 // 메일을 받을 때 어떤 프로토콜을 사용하는지 imap 하고 pop3 사용을 해준다. 포트는 각각 하나는 암호화 된 통신 나머지 하나는 암호화 안된 통신 총 4개가 열린다.
30행 listen = *, :: // 모든 IP를 열어준다.
33행 base_dir = /var/run/dovecot/ // 메일이 도착하면 메일파일 저장 경로
우리는 암호화 키가 없기 때문에 설정 파일을 건드려준다. (실제 서버에서는 암호화 통신을 해야한다)
#vi /etc/dovecot/conf.d/10-auth.conf
10행 disable_plaintext_auth = no
#vi /etc/dovecot/conf.d/10-ssl.conf
9행 ssl = yes // 암호화 통신하고 일반 통신도 할 수 있다.
#vi /etc/dovecot/conf.d/10-mail.conf
25행 mail_location = mbox:~/mail:INBOX=/var/mail/%u // 리눅스의 계정을 메일 계정으로 사용한다
121행 mail_access_groups = mail // 메일 서비스가 사용하는 그룹 권한으로 사용한다.
166행 lock_method = fcntl // fcntl 리눅스 파일 제어 함수, /var/mail/사용자 파일을 보호
#systemctl start dovecot
#systemctl enable dovecot
#firewall-cmd --permanent --zone=public --add-port=110/tcp
#firewall-cmd --permanent --zone=public --add-port=143/tcp
#firewall-cmd --permanent --zone=public --add-port=993/tcp
#firewall-cmd --permanent --zone=public --add-port=995/tcp
#firewall-cmd --reload
메일 서버 이름 설정
#vi /etc/mail/local-host-names
mail.khsec.edu
#vi /etc/sysconfig/network
HOSTNAME=mail.khsec.edu
#vi /etc/resolv.conf
nameserver 192.168.XXX.XXX // 설정한 DNS 껐다키면 사라지기 때문에 네트워크 설정에서 DNS1=설정한ip, DNS2=8.8.8.8 로 설정해 준다.
nameserver 8.8.8.8
원래 서버는 재부팅을 안하기 때문에 이렇게 해도 상관없는데 우리는 서버를 끄기 때문에 네트워크 설정에서 바꿔주는 것이 좋다.
메일 보내기 테스트 (cmd 사용)
- 메일 서버에 사용자 2명 추가
#useradd khsec
#passwd 비밀번호
#useradd test5
#passwd 비밀번호
- 메일 주소
khsec@mail.khsec.edu
test5@mail.khsec.edu
#cd /var/spool/mail/
#tail -f khsec // 메일 내용이 실시간으로 보임
cmd
telnet mail.khsec.edu 25 // 메일 송신(smtp) 접속
mail from:"test5@mail.khsec.edu" // 보내는 사람 주소
rcpt to:"khsec@mail.khsec.edu" // 받는 사람 주소
data // 메일 내용 작성 시작
hi test5 // 메일 내용
test mail // 메일 내용
bye // 메일 내용
. // 메일 작성 종료
quit // 메일(smtp) 접속 종료
메일 받기 테스트 (cmd 사용)
telnet mail.khsec.edu 110 // 메일 수신(pop3) 접속
user khsec // 메일 계정 ID 입력
pass 비밀번호 // 메일 계정 pw 입력
list // 메일 목록 확인
+OK 1 messages:
1 543 // 1개의 메일이 있음
retr1 // 메일 목록 중 1번 메일을 보여달라고 요청
'<Linux>' 카테고리의 다른 글
이메일 서버 구축 후 이메일 보내기 #4 (0) | 2020.07.23 |
---|---|
이메일 서버 구축 후 이메일 보내기 #3 (0) | 2020.07.22 |
이메일 서버 구축 후 이메일 보내기 #2 (0) | 2020.07.21 |
이메일 서버 구축 후 이메일 보내기 #1 (0) | 2020.07.20 |