- SMTP
- Simple Mail Transfer Protocol
- 인터넷 상에서 이메일 발송을 위한 통신에 사용되는 프로토콜. (Email Server간 통신 및 Client->Server 통신)
- 상대서버 지정을 위해서, DNS의 MX레코드가 사용됨.
- 텍스트 기반이라서, 7bit ASCII 으로 제약됨. 그래서~ 8bit 이상의 문자or파일 등등은 MIME 방식이 적용 되는것.
- POP
- Post Office Protocol
- 인터넷 응용계층 상에서 이메일을 수신하는데 사용되는 프로토콜. (POP3가 마지막 표준버젼)
- TCP/IP 통신으로 원격서버에서 이메일을 가져온 후... 해당서버에서 이메일을 삭제한다.
- IMAP
- Internet Message Access Protocol
- 인터넷 응용계층 상에서 이메일을 수신하는데 사용되는 프로토콜. (POP3보다 복잡하고 많은기능 제공!!!)
- TCP/IP 통신으로 원격서버에서 이메일을 가져온 후... 해당서버에서 이메일을 남겨두거나 삭제하거나 할 수 있다.
- "IMAP 대신 POP3을 써야 하는 2가지 이유" (http://www.itworld.co.kr/news/90201) (-_-;) 개솔?
- SMTP 테스트
- (보통 telnet으로 SMTP포트(25) 접속)
- HELO localhost
- EHLO localhost
- MAIL FROM:re-reply@company.com
- RCPT TO:aaa@naver.com
- RCPT TO:bbb@gmail.com
- RCPT TO:ccc@nate.com
- DATA
- From: re-reply@company.com
- To: aaa@naver.com,bbb@gmail.com
- Cc: ccc@nate.com
- SUBJECT:제목123
- 가나다라마바사~
- .
- (보통 telnet으로 SMTP포트(25) 접속)
- SMTP 클라이언트 프로그램
- MTA(Mail Transfer Agent) : sendmail, postfix 같은 프로그램.
- MUA(Mail User Agent) : Out-Look 같은 프로그램.
- sendmail
- .m4 같은 메크로언어 설정이라... 구리다.
- (그... 메모장에 "sendmail 설정" 자세히 있...)
- 1) sendmail 설치 및 방화벽 인바운드(25) 와 아웃바운드(25,465,587) 오픈.
- 2) Relay IP 설정
- 'access파일'에 Relay IP 대역 설정.
- 예) vi access파일 및 Connect:172.xxx.yyy.zzz RELAY
- access.db 갱신.
- 예) makemap hash /etc/mail/access < /etc/mail/access
- local-host-names (hostname 과 local-host-names 동일하게 입력)
- 3) IP 및 Domain 설정
- sendmail.mc에 IP 및 Domain 설정.
- 예) vi sendmail.mc
- DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')
- LOCAL_DOMAIN(`compony.com')dnl
- sendmaial.cf 재생성.
- 예) m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
- 4) mqueue 및 DomainName 설정
- sendmail.cf에 mqueue 및 DomainName 설정
- 예) O QueueDirectory=/app/sendmail/mqueue 및 Djcompony.com
- 5) sendmail 컴파일 및 재시작
- 예) make -C /etc/mail
- 예) sudo /app/sendmail/sbin/startSendmail.sh restart
- postfix
- /etc/postfix/mail.cf 설정
- myhostname = mail.도메인.com
- mydomain = 도메인.com
- myorigin = $mydomain (발송시, FROM 부분)
- inet_interfaces = localhost (수신시, 사용 Network-Interface 지정) (all:외부망 허용 , localhost:외부망 차단)
- mydestination =
- relay_domains =
- mynetworks_style = subnet (신뢰할 Network) (host:자신만 신뢰 , subnet:같은대역 신뢰)
- (mynetworks = 192.168.1.0/24, 172.0.0.0/8, 10.40.145.119) (mynetworks_style 대안)
- smtpd_recipient_restrictions = (permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination)
- service postfix restart
- 테스트
- chkconfig sendmail off
- chkconfig --list sendmail
- chkconfig postfix on
- chkconfig --list postfix
- sudo systemctl start|stop|restart postfix
- netstat -an | grep LISTEN
- mail -r "테스트<test@test.com>" -s "제목123" aaa@naver.com
- 가나다라마바사~
- postfix content EOT(Ctrl-D)
- /etc/postfix/mail.cf 설정
- 이후, 사내 DNS에 "SPF레코드" 등록!
- 이후, 국내 "White Domain" 신청!
- SPF 란?
- Sender Policy Framework
- 국내외 모든 "이메일 서비스들"은 SPF를 번역하여 등록제 기반으로 운영되고 있음.
- (http://yoonperl.tistory.com/36)
- "SPF 레코드"는...
- "https://www.kisarbl.or.kr" -> "White Domain 등록" -> "SPF 작성도우미" 에서 쉽게 작성.
- (이메일 서버의 NAT IP으로 작성하면 됨)
- 예) compony.com. IN TXT "v=spf1 ip4:211.188.111.222 ip4:211.188.111.333 -all"
- (의미: 위 IP 및 Domain 이 틀리면... 해당 이메일을 메일서버에서 drop시켜라.
- 예) compony.com. IN TXT ""v=spf1 ip4:211.188.111.222 ip4:211.188.111.333 ~all""
- (의미: 위 IP 및 Domain 이 틀리면... 해당 이메일을 메일서버의 정책에 따라 판단하라.
- White Domain 이란?
- 각각에 "이메일 서비스들"은 저마다 자신들의 '화이트 도메인'을 운영하고 있음.
- (http://internet-nayana.tistory.com/24)
- 국내의 대표적인 사이트 으로는 "www.kisarbl.or.kr" 가 있음.
- https://www.kisarbl.or.kr
- 기술지원 : 02-405-4787
- 신청하면, 2주간의 심사기간.
- KISA-RBL 운영자 : rblwhite@rbl.or.kr
- 국내 "이메일 서비스들"은 대부분 "kisarbl 화이트 도메인"을 참고하는 편. (절대적인 기준은 아님)
- Black Domain
- RBL(Real-time Black List) 조회 및 삭제
- www.rbls.org , multirbl.valli.org , www.spamhaus.org
- 예) https://www.spamhaus.org/query/ip/211.188.111.222
- 예) https://www.spamhaus.org/query/ip/211.188.111.333
- (@nate.com : @nate.com 서버가 아닌 곳에서, @nate.com 인 것처럼 보내면 거부)
- (@gmail.com : http://support.google.com/mail/bin/request.py?contact_type=bulk_send&&hl=en)
- (@hotmail.com : senderid@microsoft.com 로 '제목' 및 '본문'에 '@도메인명'을 적어서 보내)
- 운영
- Port 확인
- ll /etc/sysconfig/iptables
- netstat -anp | grep LISTEN | grep 25
- netstat -tnlp
- DNS 확인
- nslookup componycom
- nslookup 211.188.111.222
- SPF 확인
- nslookup
- server 1.2.3.4 (DNS 서버명 또는 DNS IP 입력)
- set type=txt (DNS record type 지정)
- kisarbl.or.kr (조회하려는 도메인 입력)
- White Domain 확인
- nslookup
- set type=txt
- compony.com
- exit
- MX(mail exchanger) 확인
- nslookup
- set type=mx
- compony.com
- exit
- Reverse DNS 확인
- nslookup
- set type=ptr
- 211.188.111.222
- exit
- (nslookup –type=ptr 211.188.111.222)
- 발신자 의 정보조회
- dig txt compony.com
- 수신자 의 정보조회
- dig mx naver.com
- Port 확인
- "이메일 네트워크구조, 데이터형식, 프로세스순서, DNS의MX, ..."
- 장SMTP.pdf
- 구글 과 gmail ...
- 이메일 헤더 분석 : https://toolbox.googleapps.com/apps/messageheader
- gmail 도메인 관리 : https://postmaster.google.com
- DKIM 및 DMARC 을 적용해야... : // TODO
- ...
-끝-
'통신과 프로토콜 그리고 보안' 카테고리의 다른 글
JWT (JSON Web Token) (0) | 2020.10.19 |
---|---|
OAuth (0) | 2019.11.10 |
HTTP 와 SSL 및 보안 (0) | 2019.11.10 |
SSH (TELNET) , (scp), (rsync) (0) | 2019.11.10 |
인터넷(Internet) 과 웹(Web) (0) | 2019.10.27 |