hoon's bLog

네트워크 및 서비스의 활용 | 네트워크 서비스 3 본문

IT/Linux Master 1급

네트워크 및 서비스의 활용 | 네트워크 서비스 3

개발한기발자 2023. 3. 11. 09:12
반응형

메일 관련 서비스

메일 관련 서비스의 이해

메일 서버의 개요

메일 관련 프로토콜

  • SMTP(Simple Mail Transger Protocol) : 인터넷에서 이메일을 보낼 때, 메일 클라이언트에서 메일 서버로 메일을 보낼 때 사용되는 프로토콜. TCP 25번 포트 사용.
  • POP3(Post Office Protocol Version 3) : 서버에 도착한 메일을 클라이언트에서 직접 내려 받아 읽도록 해주는 프로토콜. 110번 포트 사용. 메일을 확인하면 서버로부터 메일을 클라이언트로 가지고 온 후 서버에서 해당 메일을 삭제함.
  • IMAP(Internet Mail Access Protocol) : POP3와 마찬가지로 클라이언트 사용자가 메일 서버에 도착한 메일을 확인 할 때 사용하는 프로토콜로 143번 포트를 사용. POP3와 차이점은 메일을 확인한 후에도 서버에 해당 메일이 계속적으로 존재하여 다른곳에서 메일 확인이 가능.

메일 관련 프로그램의 분류

  • MTA(Mail Transfer Agent) : 이메일을 SMTP 프로토콜을 이용해 다른 메일 서버로 전달하는 프로그램. 보통의 메일 서버 프로그램. sendmail, qmail, postfix, MS Exchange Server 등.
  • MUA(Mail User Agent) : 사용자가 메일을 읽고 보낼 때 사용하는 프로그램. Kmail, evolution, mutt, thunderbird, MS의 Outlook 등
  • MDA(Mail Delivery Agent) : 메일박스에 도착한 메일을 대행해서 가져오거나 전달하는 역할을 수행. procmail(스팸 메일을 필터링, 메일 정렬)

리눅스와 메일 관련 프로그램

  • sendmail, qmail, postfix 등이 사용
  • POP3 및 imap 서버로 devecot이 많이 사용.

메일 서버 설치 및 활용

Sendmail의 개요

  • 주요 환경은 /etc/mail/sendmail.cf 파일에서 설정
  • 추가적인 설정은 /etc/mail/local-host-names, /etc/mail/access 등 별도의 파일을 이용해서 관리

Sendmail 관련 주요 파일

/etc/mail/local-host-names

메일 서버에 사용하는 도메인을 설정하는 파일로 한 줄에 도메인 하나씩 기입함.

/etc/mail/sendmail.mc

sendmail의 매크로 설정 파일로 sendmail.cf 파일이 삭제되었거나 복원할 경우에 m4라는 매크로 프로세서를 이용하여 새롭게 생성.

/etc/mail/access

  • 메일 서버로 접근하는 호스트나 도메인의 접근을 제어하는 파일로 허가할 호스트나 도메인은 통과시키고, 허용하지 않으려면 거부할 수 있음.
  • 실제 Sendmail 데몬이 참고하는 파일은 /etc/mail/access.db이므로 변경 시에는 makemap hash 명령을 이용한 업데이트가 필요.
  • Connect는 접속하는 클라이언트의 주소나 이름을 기반으로 제어하는 것이고, From은 보낸 사람, To는 받는 사람 기반으로 제어.

/etc/aliases

  • 특정 계정으로 들어오는 메일을 다른 계정으로 전송되도록 설정하는 파일.
  • 센드메일이 참고하는 파일은 /etc/aliases.db이므로 변경 시에는 'newaliases'나 'sendmail -bi' 명령을 실행시켜야 함.

/etc/mail/virtusertable

  • 하나의 메일 서버에서 여러 도메인을 사용하는 환경에서 동일한 메일 계정을 요구할 때 각각의 도메인으로 도착하는 메일을 포워딩할 때 사용하는 파일
  • windows.com, linux.com이라는 도메인을 사용 중이고 각 회사에서 ceo라는 동일한 이메일 계정을 요구하는 경우임.
  • 센드메일이 참고하는 파일은 /etc/mail/virtusetable.db이므로 변경 시에는 'makemap hash' 명령을 사용

~./forward

  • 각 사용자 개인이 자신에게 들어오는 메일을 다른 메일 주소로 포워딩할 때 사용하는 파일
  • 홈 디렉터리 안에 직접 파일을 생성 후 한 줄에 메일 주소 하나씩 입력

Sendmail 관련 주요 명령어

mailq

보내는 메일이 대기하는 디렉터리의 큐 상태를 출력

[사용법]
$ mailq [option]

옵션

  • -Ac : /etc/mail/submit.cf 파일에 명시된 큐의 상태를 출력

sendmail

sendmail 관리 명령

[사용법]
sendmail 관리 명령

옵션

  • -bp : mailq와 같은 명령으로 메일 큐의 상태를 출력
  • -bi : newaliases와 같은 명령으로 /etc/aliases 파일 수정 시에 관련 DB 정보 파일을 업데이트
  • -oQ : -bp와 같이 사용되는 옵션으로 특정 큐의 상태를 확인하기 위해 사용.

DNS 관리

DNS(Domain Name System)의 이해

DNS의 개요

  • 호스트의 도메인 이름을 IP 주소로 바꾸거나 그 반대의 변환을 위해 개발
  • 보유한 도메인을 관리해 주는 역할을 수행하지만, 클라이언트에서 도메인명에 대한 IP 주소의 조회를 요청했을 경우에 반환해 주는 역할도 수행

DNS 서버의 종류

  • Primary Name Server : 사용하는 도메인을 관리하기 위해 필수적으로 구성하는 서버
  • Secondary Name Server : Primary Name Server의 zone 파일을 백업하는 역할. Slave DNS라고 부름.
  • Caching Name Server : 관리하는 도메인 없이 리졸빙만을 제공하기 위해 구성하는 서버

DNS 서버 프로그램 : BIND(Berkeley Interent Name Domain)

  • 가장 널리 쓰이는 DNS 서버 프로그램
  • named라는 이름의 데몬 사용

bind 관련 파일 및 디렉터리

  • /etc/named.conf : DNS 서버의 전반적인 환경 설정을 담당하는 파일로 서버에서 사용하는 zone 파일을 저장
  • /var/named : 루트 도메인 서버에 대한 정보를 담고 있는 named.ca를 비롯하여 사용자가 선언하는 zone 파일 등이 위치하는 디렉터리
  • /etc/rc.d/init.d/named : DNS 서버 가동을 위한 데몬 스크립트

DNS 관련 파일 및 활용

/etc/named.conf 파일

파일의 구성과 특징

  • 주석문 구문으로 구성
  • 주석은 모든 언어의 주석 거의 다 사용가능
  • 구문에는 options, loggindg, controls, zone, acl, view, key, masters, server 등이 존재

options 구문

DNS 서버의 동작 및 제어와 관련된 여러 가지 설정을 하는 영역으로 존 파일이 위치하는 디렉터리 명은 반드시 명기해야 함.

acl 구문

  • ACL(Access Control List)의 약자로 여러 호스트를 하나의 명칭으로 지정할 때 사용.
  • 지정한 이름은 options 구문의 allow-query, allow-transfer 등에 사용 가능
  • acl 구문의 선언은 options 구문 이전에 해야 함.

zone 구문

  • 도메인을 관리하는 데이터베이스 파일인 zone 파일을 지정
  • 루트 도메인 서버에 대한 정보 파일은 named.ca에 대한 선언이 되어 있고 추가적으로 localhost, localhost.domain 등에 대한 존 파일이 선언되어 있음.
  • 존 파일은 일반적인 존 파일과 리버스 존 파일로 나눌 수 있음. 일반적인 존 파일은 도메인에 대한 질의 시 IP 주소로 알려주는 역할을 수행하고, 리버스 존 파일은 IP 주소에 대한 질의 시에 도메인을 알려주는 역할을 수행

zone 파일

zone 파일의 개요

존 파일은 메인 도메인뿐만 아니라, 2차 도메인을 관리하는 역할도 수행

zone 파일의 구조

zone 파일은 크게 SOA(Start Of Authority) 레코드와 자원 레코드(Resource Record)로 나눌 수 있음

zone 파일의 항목 설명

$TTL

  • Time To Live의 약자로 zone 파일의 첫 줄에 설정해야 함.
  • 다른 서버에서 도메인 관련 정보를 조회해서 가져갔을 경우에 그 쪽 서버의 캐시에 해당 정보가 얼마나 머물지를 결정

SOA record
존 파일을 시작하는 레코드로 시작은 도메인명 또는 도메인명을 나타내는 기호인 '@'를 사용.

도메인
도메인명, 호스트명, 공백, @, * 등이 올 수 있음.

TTL
해당 레코드에 대한 TTL 값을 설정하는 항목

class
레코드의 클래스를 지정하는 부분. IN(internet), CH, HS 등을 사용.

type
해당 레코드의 타입을 지정

  • A : IPv4
  • AAAA : IPv6
  • NS : 네임 서버
  • MX : 메일 서버
  • CNAME : Canonical Name 레코드로 일종의 별칭을 지정
  • PTR : 리버스 존에서만 사용하는 레코드로 IP 주소를 도메인으로 변환하기 위해 지정

DNS 관련 유틸리티

named-checkconf

DNS 서버의 환경 설정 파일인 /etc/named.conf 파일에 대한 문법적 오류를 찾아주는 명령

[사용법]
$named-checkconf [파일명]

named-checkzone

zone 파일에 대한 문법적 오류를 찾아주는 명령

[사용법]
$ named-checkzone 도메인명 zone_파일 경로

 
728x90
반응형