반응형

개요

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번 메일을 보여달라고 요청

반응형

+ Recent posts