• 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
      • 가나다라마바사~
      • .
  • 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)
    • 이후, 사내 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
  • "이메일 네트워크구조, 데이터형식, 프로세스순서, 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

+ Recent posts