카테고리 없음

Mail Server 구축

딸기뚜왈기 2024. 4. 7. 18:17

[Mail Server 구축]

> 메일 송신 서버: SMTP(sendmail): 25번 포트 사용

> 메일 수신 서버: POP3:(110번 포트 사용),   IMAP(dovecot) :(143번 포트 사용) 

 

<Naver>메일서버 -50 번 서버에 구축

 

 

01. 관련 파일 설정

> 메일 도메인 추가(mail.naver.co.kr)

> /etc/hosts

192.168.10.50 mail.naver.co.kr

> /etc/hostnamed

mail.naver.co.kr

> /etc/sysconfig/network

hostname=mail.naver.co.kr

 

>etc/mail/local-host-names

mail.naver.co.kr

 

02. DNS 설정/도메인 등록

>naver.co.kr,daum.co.kr., google.co.kr, facebook.co.kr

 

03. 메일서버 /클라이언트 설치

#yum -y install sendmail* <---보내는 메일 서버

#yum -y install dovecot*<--받는 메일 서버

 

04. 메일 서버 설정

>환경 설정 파일: /etc/mail/sendmail.cf

 

[root@mail mail]# vi local-host-names

mail.naver.co.kr
[root@mail mail]# vi sendmail.cf

 85 Cwnaver.co.kr

268 O DaemonPortOptions=Port=smtp,Addr=0.0.0.0, Name=MTA 

268 O DaemonPortOptions=Port=smtp, Name=MTA  <---Addr = 127.0.0.1 삭제

 

> /etc/mail/access

[root@mail mail]# vi access

192.168.10                              RELAY
naver.co.kr                             RELAY
dauhttp://m.co.kr RELAY
google.co.kr                            RELAY
facebook.co.kr                          RELAY

 

해쉬변경 access를 access.db로 바꿔줌

# makemap hash access < access  

 

 

> /etc/dovecot/dovecot.

24, 30, 33 행 주석 해제

 

> vi /etc/dovecot/conf.d/10-mail.conf

25행 주석 해제

121 mail_access_groups = mail <-- 주석 해제 후 mail그룹 추가

166라인 주석 해제

 

> vi /etc/dovecot/conf.d/10-ssl.conf

 8 ssl = required --> 8 ssl = yes

 

--------------------------------------------

[메일 보내기/받기]

 

[메일 포워딩] - 재전송

> /etc/aliases

user1 :   user10,user11 <--.user1에게 보낸 메일이 user10,11으로 포워딩

 

 

 

>메일 삭제

#cat /dev/null > /var/spool/mail/user1

 

 

----실습---------

01. 관련 파일 설정

 

[root@localhost ~]# cd /etc
[root@localhost etc]# vi hosts

192.168.10.50    mail.naver.co.kr


[root@localhost etc]# vi hostname

mail.naver.co.kr

 

[root@localhost etc]# cd sysconfig/
[root@localhost sysconfig]# vi network

hostname =  mail.naver.co.kr

 


[root@localhost sysconfig]# reboot 

root -> mail 로 바뀌어있다

 

 

[방화벽 해제]

[root@mail ~]# systemctl stop firewalld
[root@mail ~]# setenforce 0
[root@mail ~]# grubby --update-kernel ALL --args --selinux=0

 

02. DNS 설정/도메인 등록

 

02_1[DNS등록]

 

vi /etc/name.conf

192.168.10.50

 

02_2[도메인등록]

zone "naver.co.kr" IN {
        type master;
        file "naver.co.kr.zone";
        allow-update { none; };
};

zone "dauhttp://m.co.kr" IN {
        type master;
        file "dauhttp://m.co.kr.zone";
        allow-update { none; };
};

zone "google.co.kr" IN {
        type master;
        file "google.co.kr.zone";
        allow-update { none; };
};

 

zone "facebook.co.kr" IN {
        type master;
        file "facebook.co.kr.zone";
        allow-update { none; };
};

 

 

[root@mail named]# cp owncloud.co.kr.zone naver.co.kr.zone
[root@mail named]# cp owncloud.co.kr.zone daum.co.kr.zone
[root@mail named]# cp owncloud.co.kr.zone google.co.kr.zone
[root@mail named]# cp owncloud.co.kr.zone facebook.co.kr.zone

 

[root@mail named]# vi naver.co.kr.zone
[root@mail named]# vi daum.co.kr.zone

[root@mail named]# vi dau m.co.kr.zone  

\

[root@mail named]# vi google.co.kr.zone

[root@mail named]# vi facebook.co.kr.zone

 

 

[root@mail etc]# host naver.co.kr
naver.co.kr has address 192.168.10.50
naver.co.kr mail is handled by 10 mail.naver.co.kr.
[root@mail etc]# host dauhttp://m.co.kr
dauhttp://m.co.kr has address 192.168.10.100
dauhttp://m.co.kr mail is handled by 10 mail.dauhttp://m.co.kr.
[root@mail etc]# host google.co.kr
google.co.kr has address 192.168.10.150
google.co.kr mail is handled by 10 mail.google.co.kr.
[root@mail etc]# host facebook.co.kr
facebook.co.kr has address 192.168.10.200
facebook.co.kr mail is handled by 10 mail.facebook.co.kr.

 

 

03. 메일서버 /클라이언트 설치

[root@mail etc]# yum -y install sendmail* <--보내는 메일 서버

[root@mail etc]# yum -y install dovecot* <-- 받는 메일 서버

 

04. 메일 서버 설정

>환경 설정 파일: /etc/mail/sendmail.cf

>환경 설정 파일: /etc/mail/access

 

[root@mail etc]# cd mail
[root@mail mail]# pwd 

etc/mail

[root@mail mail]# ll


-rw-r--r--. 1 root root   576  4월  7 16:48 access
-rw-r-----. 1 root root 12288  4월  7 16:49 access.db
-rw-r--r--. 1 root root    64 11월  5 11:57 local-host-names

-rw-r--r--. 1 root root 59964 11월  5 11:59 sendmail.cf

[root@mail mail]# vi local-host-names

mail.naver.co.kr


[root@mail mail]# vi sendmail.cf

 85 Cwnaver.co.kr

외부 접근 가능하도록 해주는 두가지 방법

268 O DaemonPortOptions=Port=smtp,Addr=0.0.0.0, Name=MTA  

268 O DaemonPortOptions=Port=smtp, Name=MTA <---Addr = 127.0.0.1 삭제

 

 

[root@mail mail]# vi /etc/resolv.conf

192.168.10.50 으로 되어있는지 확인

 

두번째 환경 설정 파일 access 파일

[root@mail mail]# vi access

192.168.10                              RELAY
naver.co.kr                             RELAY
dauhttp://m.co.kr RELAY
google.co.kr                            RELAY
facebook.co.kr                          RELAY

 

[해쉬변경 access를 access.db로 바꿔줌] <-- 서버가 읽기 쉽게.

[root@mail mail]# makemap hash access < access

-rw-r--r--. 1 root root   576  4월  7 16:48 access
-rw-r-----. 1 root root 12288  4월  7 16:49 access.db

 

 

vi access 파일과 vi access.db를 비교해보자

해쉬변경 -> vi access :인간이 편집하기 좋은 vs vi access.db서버가 읽기 좋은

 

 

받는 

 

> /etc/dovecot/dovecot.conf

 

 

 

 

[root@mail conf.d]# vi 10-mail.conf 
[root@mail conf.d]# vi 10-ssl.conf 

 

 

 

[root@mail conf.d]# cd 
[root@mail ~]# systemctl restart sendmail
[root@mail ~]# systemctl restart dovecot
[root@mail ~]# 

 

[user 생성]

[root@mail ~]# useradd naver
[root@mail ~]# passwd naver

 

 

 

[메일보내기]

[root@mail ~]# mail naver@naver.co.kr

내용 입력하고 ctrl D 하면 보내진다.

 

[메일 도착 확인하기]

[root@mail named]# cd /var/mail/
[root@mail mail]# ll

 

메일 도착했음을 확인할 수 있다.


[root@mail mail]# 
[root@mail mail]# ll
합계 4
-rw-rw----. 1 naver mail 1389  4월  7 17:15 naver
-rw-rw----. 1 test  mail    0  3월 16 16:40 test

 

[메일 내용 확인하기] _cat
[root@mail mail]# cat naver

 

 

[메일 포워딩] 

 

[메일 포워딩]  _[.forward 파일에 계정 추가하여 메일 포워딩]

받은 메일 전송

root --> user 1 --> user2

 

 

user 1, 2, 3 생성하기

root --> user1 

 

user1 --> user2

 

 

[root@mail home]# cd user1
[root@mail user1]# pwd
/home/user1
[root@mail user1]# ll
합계 0
[root@mail user1]# vi .forward <--.forward 폴더 생성
[root@mail user1]# systemctl restart sendmail
[root@mail user1]# systemctl restart dovecot

[root@mail user1]# 
[root@mail user1]# mail user1@naver.co.kr

 

 

 

cat user2를 하면

user 1에게 전송한것이 user2에게 도착

 

 

[user1에게 전송한 것이 user3에게 도착하도록 하기]

 

 

 

 

[user1에게 전송한 것이 user3에게 도착하도록 하기] -실습

[root@mail user1]# vi .forward

[root@mail user2]# vi .forward

 

[root@mail user2]# mail user1@naver.co.kr

 

[root@mail mail]# pwd
/var/mail

[user1에게 보낸 메일이 user3에게 도착]

[내용확인] cat

 

[메일  삭제]

[root@mail mail]# pwd
/var/mail
[root@mail mail]# cat /dev/null > /var/spool/mail/user3
[root@mail mail]# cat /dev/null > /var/spool/mail/user1
[root@mail mail]# cat /dev/null > /var/spool/mail/user2
[root@mail mail]# ll
합계 4
-rw-rw----. 1 naver mail 2088  4월  7 17:21 naver
-rw-rw----. 1 test  mail    0  3월 16 16:40 test
-rw-rw----. 1 user1 mail    0  4월  7 17:47 user1
-rw-rw----. 1 user2 mail    0  4월  7 17:47 user2
-rw-rw----. 1 user3 mail    0  4월  7 17:47 user3

 

 

[여러명에게 보내기]

[root@mail user2]# vi .forward

 

[test에게 보내면 test에게만 간다]

 

 

 

 

 

[user1에게 보낸것이 test에게 전달되도록]

[root@mail user1]# vi .forward

[root@mail user2]# vi .forward

[root@mail user3]# vi .forward

 

 

 

[root@mail mail]# cat test

 

[저장해둔 포워드 파일 삭제] - 헷갈리지 않으려교 삭제한것임

[root@mail mail]# cd ..
[root@mail var]# cd /home
[root@mail home]# cd user1
[root@mail user1]# rm -rf .forward
[root@mail user1]# cd ..
[root@mail home]# cd user2
[root@mail user2]# rm -rf .forward
[root@mail user2]# cd ..
[root@mail home]# cd user3
[root@mail user3]# rm -rf .forward

 

 

[메일 포워딩]  _[시스템 내부적으로 메일 포워딩 <-- 계정 추가 없이!!]

 

 

[root@mail etc]# vi aliases

 

user1으로 보내면 user10, user11에게 가도록 해주기

 

[root@mail etc]# systemctl restart sendmail
[root@mail etc]# systemctl restart dovecot