정보보안공부
Linux_리눅스 SMTP 본문
리눅스 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 |