용어 설명
MTA(Mail Transfer Agent) : mail 서버간의 전달을 담당하는 프로그램들
* Sendmail, Postfix, Exchange 등
MDA(Mail Delivery Agent) : 편지함을 담당하는 프로그램, 같은 로컬 내에서는 MTA을 거치지않고 MDA만 거친다
* Procmail, mail 등
MUA(Mail User Agent) : 메시지를 보내고, 받을 수 있게 하는 프로그램,
* Mozilla Mail(GUI), mutt(TUI)
Protocol
메일전송을 위한 protocol : SMTP, E-SMTP 등
메일수신을 위한 protocol : POP3, IMAP4 등
[참고] Mail server 는 DNS server에 의존적이다.
mail 형식 내 root@naver.com 중 naver.com 은 HOSTname 이다, 즉 DNS 내 맵핑되어있는 HOSTname 과 mail IP을 참조해야만 메일을 발송할 수 있다.
Client DNS
# mail root@example.com ----> example.com. IN MX mail.example.com.
mail IN A 192.168.10.20
Mail server 실습
Mail(sandmail) Server
패키지: sendmail
데몬 & 포트 & 프로토콜: /usr/sbin/sendmail, 25/TCP, 465/TCP(smtps)
주 설정 파일: /etc/mail/sendmail.cf
하위 설정 파일: /etc/mail/*, /etc/aliases
스크립트: sendmail.service
POP3/IMAP4(dovecot) Server
패키지: dovecot
데몬 & 포트 & 프로토콜: /usr/sbin/dovecot, 110/tcp(POP3), 143/tcp(IMAP4), 995/TCP(pop3s), 993/TCP(imaps)
주 설정 파일: /etc/docecot/dovecot.conf
스크립트: dovecot.service
프로토콜 & 포트번호
* 방화벽 등록
1) sendmail 설정 파일
/etc/aliases : 메일 엘리어스 설정파일
/etc/mail/sendmail.cf : 메일 주 설정파일 (sendmail 주 설정파일)
* mail relay-domans : mail을 전송하기 전에 보안장비 등에 거처서 보낼 수 있도록 하는 기능
* mail aliases : A -> B 에게 보낼 시 A가 아닌 A-1이 전송할 수 있게 하는 기능.
* mail 용량제한 : 한번 보낼 수 있는 mail의 용량을 지정.
* mail forward : 수신된 mail을 선언된 사용자 홈 디렉토리로 보내주는 기능.
* SMTP 접속 메시지 지정 기능. ( sendmail의 버전정보를 가릴수 있음 )
/etc/mail/access : 메일 중계 기능/스팸 메일 차단 설정파일
* access.db 파일이 현제 적용되는 설정의 파일 access 를 수정 시 makemap hashCMD 를 통해 access.db 로 지정해줘야한다
* 스팸 관련 동작 키워드 : OK=무조건 허용 / REJECT =허용거부, 상대에게 거부메시지 발송 / DISCARD=허용거부, 상대에게 거부메시지 미발송 / RELAY=중계기능 허용
/etc/mail/local-host-names : 메일 서버 도메인 기록파일
/var/spool/mqueue : 메일 송신측의 사용자 메일 임시 저장 디렉토리
/var/mail/<사용자이름> : 메일 수신측 사용자 메일 저장 파일 (/var/spool/mail/<사용자이름>)
[참고] return mail
메일이 정상적으로 발송되지 않을시 해당메일은 오류내용을 포함하여 돌아오게 된다. 주요 에러 메시지는 하단첨부
▶ 421 Server too busy.
=> 수신측 서버의 응답지연. 수신서버의 트래픽등으로 메일을 수신 받지 못하는 상황에서 발송자에게 리턴 메일을 보냄.
▶ 421 4.3.2 Your IP(211.xxx.xxx.xxx) is filtered and this connection will be closed. You must register your IP to spammaster at domain.com By SpaceLee, the Lord of mail server.
=> 서버로 메일을 발송시 필터링 조건에 위배되어 스패머로 인식되고 필터링 되어 발신자에게 리턴되는 메시지.
▶ 441 4.4.1 No answer from host
=> 수신측 서버의 응답이 없어서 리턴된 메시지.
▶ 451 4.4.0 DNS resolving error
=> 수신측 서버의 도메인을 못찾아 리턴된 메시지.
▶ SERVER REPLY: 501 Denied domain name
=> 도메인주소를 잘못 입력 or 수신측에서 도메인을 수신거부한 경우
▶ 451 4.3.0 Other or undefined mail system status
=> 수신측 메일 시스템의 프로토콜이 틀리거나 수신 smtp 서버가 아닐경우 리턴되는 메시지.
▶ 451 4.3.0 Temporary system failure. Please try again later.
=> 수신 서버에 일시적인 장애등으로 인하여 메일을 수신받지 못해 리턴된 메시지.
▶ 451 Relay Server Not Ready.
=> 수신측 서버에서 릴레이 기능이 안돼어 리턴된 메시지.
▶ 452 4.4.5 Insufficient disk space; try again later
=> 수신서버의 디스크용량이 부족하여 메일을 수신받지 못해 리턴된 메시지.
▶ 500 Syntax Error, Command Unrecognized EHLO mail01.domain.com
=> 메일발송시 수신측 메일 서버에서 SMTP 명령어를 인식하지 못해 리턴된 메시지.
▶ 550 5.1.2 <user01 at domain.com>... Unsupported mail destination
=> 수신 서버가 응답이 지연되어 리턴된 메시지.
▶ 550 5.7.1 <sylee at domain.com>... Relaying denied. IP name lookup failed [211.xxx.xxx.xx]
=> 수신 서버에서 발신자의 IP에 대해 릴레이 거부를 하여 메일을 보내지 못해 리턴된 메시지.
▶ 550 5.1.1 <sylee at domain.com>... User unknown
=> 수신자 (sylee at domain.com)계정을 찾지 못해 리턴된 메시지.
▶ 550 RCPT <sylee at domain.com> ERROR. Mailbox doesn't exist
=> 수신자 메일함이 존재 하지 않아서 리턴된 메시지.
▶ 553 5.3.0 <user01 at domain.com>... spam
▶ 553 sorry, your envelope sender is enlisted as spammer.
=> 발송자의 계정이 수신서버 상에서 스패머로 등록이 되어 메일 수신 거부를 해서 리턴된 메시지
▶ 553 sorry, that domain isn't in my list of allowed rcpt hosts
=> 발신자의 메일 도메인주소 자체가 수신 서버에서 차단되어 리턴된 메시지.
▶ 554 5.3.2 Rejected by mailbox host. REPLY:(250 <user01 at domain.com>... Sender ok)
=> 수신자가 발송자의 메일 계정에 대해 수신 거부를 하여 리턴된 메시지
[실습] Mail server 구축
* 패키지 설치 ( yum install sendmail dovecot mailx )
* 서버설정 ( /etc/mail/sendmail.cf /etc/mail/* /etc/aliases )
( /etc/dovecot/dovecot.conf /det/dovecot/conf.d/*.conf)
* 서비스 기동 ( systemctl enable --now sendmail dovecot )
* 방화벽 등록 ( firewall-cmd --permanent --add-service=smtp --add-service=smtps --add-service=pop3 --add-service=pop3s --add-service=imap --add-service=imaps )
[실습] Mail server 간 mail 송수신 테스트
[실습] Mail forwarding (/etc/aliases)
[실습] Mailing list (/etc/aliases)
[실습] Mail Client program (evolution)
[실습] SquirrelMail (webmail) 설치 및 설정.
[참고] AV (anti-virus) (Clam AV) -> 차후에 볼 예정.
'모의해킹 침해대응 과정 > Liunx 관리' 카테고리의 다른 글
SAMBA server / day 21 (0) | 2021.04.23 |
---|---|
NFS server / day 20 (0) | 2021.04.22 |
FTP server / day18 (0) | 2021.04.20 |
Apache web server / day 17 (0) | 2021.04.20 |
리눅스 DNS(domain name system) /day 16 (0) | 2021.04.16 |