정보보안공부

Linux_리눅스 SMTP 본문

Linux

Linux_리눅스 SMTP

Steady_sp 2018. 8. 8. 00:20

리눅스 SMTP

- 오라클 가상 머신 사용

- CentOS7    

 

<리눅스 SMTP>

 

#1 SMTP ( Simple Mail Transfer Protocol )

-> 인터넷에서 MTA 클라이언트와 서버를 규정하는 공식적인 프로토콜은 SMTP 이다.

-> SMTP는 송신자와 송신자의 메일 서버 사이 그리고 두 메일 서버들 사이에서 총 두번 사용된다.

-> SMTP는 명령과 응답을 사용하여 MTA 클라이언트와 MTA 서버 사이의 메시지를 전송한다.

 

#2 SMTP 서버 구축

-> 서버에 있는 메일함은 사용자 별로 존재한다.

-> 메일 서버에 있는 내용을 가지고 와서 보려면 IMAP과 POP3를 이용해야한다.

-> 일반적으로 우리가 윈도우에서 사용하는 네이버메일, 다음메일은 메일 서버에 있는 내용을 가지고 와서 보는 형태라고 생각해야한다.

-> 일단 SMTP 서버를 구축해서 보낸 메일 또는 수신한 메일이 메일서버에 잘 저장되는지 확인해본다.

 

*** 설치

#> yum -y install sendmail.x86_64

 

 

*** 설정파일

#> vi /etc/hostname

 

 

-> 호스트의 이름을 지정한다. 호스트 네임이 naver.com 이라는 것은 메일을 보낼때 <user_name>@naver.com 이렇게 보내면된다.

 

 

-> echo $HOSTNAME으로 확인가능하다.

 

#> vi /etc/mail.sendmail.cf

-> SMTP 데몬 옵션 설정 변경

 

 

O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA 설정을 O DaemonPortOptions=Port=smtp, Name=MTA 으로 변경

-> 127.0.0.1로 설정된것은 외부접근이 안되므로 설정을 바꿔야한다.

 

#> vi /etc/mail/local-host-names

-> naver.com 으로 작성한다.

 

 

->naver.com 이라는 것은 메일을 보낼때 <user_name>@naver.com 이렇게 보내면된다.

 

#> vi /etc/mail/access

-> 접근 제어파일

-> naver.com 추가

 

 

Connect:localhost.localdomain      RELAY
Connect:localhost                       RELAY 

Connect:127.0.0.1                       RELAY
=> 3개다 나 자신임을 의미

 

#> makemap hash /etc/mail/access.db < /etc/mail/access

-> 실제파일은 vi /etc/mail/access.db 파일이기 때문에 db파일에 저장해줘야한다. ( db파일은 0과1로 되어있는 바이너리 파일이다. )

 

 

-> 해쉬로 바꿔서 확인한다.

 

#> strings /etc/mail/access.db

-> 실제파일 /etc/mail/access.db파일 확인

 

 

-> 잘 지정됬는지 확인한다.

 

*** DNS 설정

#> /var/named/naver.com.zone

메일의 경우 레코드는 : mx이다

 

 

-> dns 설정파일에 메일서버 도메인과 IP 추가

 

*** 서비스 시작

 

 

*** 방화벽 설정

-> 방화벽에 SMTP 서비스 허용

 

 

 

#3 SMTP 구축한 서버에서 다른사용자로 메일보내보기

-> SMTP를 구축한 서버에서 같은 서버에 있는 다른사용자 ( user1 )로 메일을 보낸다.

 

*** mail 설치

#> yum -y install mailx.x86_64

-> 메일을 보내기위해 mail커맨드를 설치한다.

 

 

*** 메일의 홈디렉터리

#> /var/spool/mail/

-> 해당디렉토리안에 사용자별로 메일항목이 저장된다.

 

 

*** 구축해놓은 DNS서버로 설정

#> vi /etc/resolv.conf

-> 구축해놓은 DNS서버 1.0.0.100으로 설정

 

 

*** root사용자가 user1사용자로 메일작성

-> mail 커맨드를 이용해 user1사용자로 메일작성

 

 

-> 본문내용작성후 .<Enter>로 전송한다.

 

*** user1사용자가 메일 확인

-> su - user1을 이용해 user1사용자로 접속한뒤 mail커맨드를 이용해 받은 메일확인한다.

-> /var/spool/mail/user1 디렉토리안으로 직접 확인할 수 도있다.

-> &숫자 <Enter>를 이용해 받은 번호의 메일내용을 확인한다.

 

 

#4 SMTP 구축한 서버로 클라이언트가 다른사용자로 메일보내보기 - nc사용

- 클라이언트 : 1.0.0.151

- 서버 : 1.0.0.100

 

*** 설치

#> yum -y install nmap-ncat.x86_64

 

 

-> 설치를 하기위해서는 네임서버 DNS를 168.126.63.1로 지정해야한다.

-> vi /etc/sysconfig/network-script/ifcfg-ens33 에서 DNS1의값을 변경후 systemctl restart network를 해야한다.

-> 아니면 vi /etc/resolv.conf 에서 nameserver 168.126.63.1 으로 설정해야한다.

 

*** 클라이언트에서 DNS 설정 확인

#> vi /etc/resolv.conf

 

 

-> nameserver 1.0.0.100으로 설정한다.

 

 

-> nslookup을 이용해 mail.naver.com 도메인의 IP가 메일서버로 설정한 1.0.0.100 인지 확인한다.

 

*** nc를 이용해 Client에서 메일 서버의 user1사용자로 메일 보내기

#> nc mail.naver.com 25

-> nc 프로그램을 이용해 mail.naver.com에 25번 포트로 연결

 

 

-> mail from:root@naver.com  : 메일을 보내는 사람 Client의 root

-> rcpt to:user1@naver.com    : 메일을 받는 사람 mail Server의 user1

-> data                               : 보내려는 데이터 작성 마지막은 .<Enter>

-> Ctrl + D                          : nc 프로그램 종료

-> nc를 이용해 클라이언트의 1.0.0.151 에서 root사용자가 메일서버의 user1사용자로 메일을 보낸다.

 

*** mail Server의 user1사용자에서 Client에서 보낸 메일 확인

 

 

-> su - user1을 이용해 user1사용자로 변경한뒤 mail 커멘드를 실행해보면 /var/spool/mail/user1 파일안에 있는 내용을 확인할 수 있다.

-> 2개의 메일중 두번째 메일이 nc를 이용해 보낸 메일이므로 확인해보면 클라이언트가 보낸 데이터 내용이 있는 것을 확인할 수 있다.

-> 클라이언트가 보낸 메일을 확인하려면 POP3와 IMAP을 사용해 메일서버의 내용을 확인할 수 있다.

 

==> 우리가 일반적으로 사용하는 메일서버는 클라이언트가 메일서버를 이용해 메일을 보내고 받는데 웹페이지를 이용해 해당 웹페이지로 메일서버의 있는 내용을 가져와서 볼수 있게 해야한다. 그역할을 하는것이 POP3 , IMAP4 이다.

'Linux' 카테고리의 다른 글

Linux_ 리눅스 SMTP ( POP3 / IMAP )  (0) 2018.08.25
Linux_리눅스 DHCP  (0) 2018.08.07
Linux_리눅스 DNS - 마스터 / 슬레이브  (2) 2018.08.07
Linux_리눅스 DNS 위임  (0) 2018.08.04
Linux_리눅스 DNS  (0) 2018.08.03
Comments