320x100
320x100

메일 관련 프로토콜

SMTP : 메일을 보낼 때 사용. 메일 서버간 송수신

POP3 : 서버에 도착한 메일을 클라이언트에서 내려 받고 삭제

IMAP : 서버에 도착한 메일을 클라이언트에서 내려 받고 유지

 

메일 관련 프로그램

MTA : SMTP를 이용해 다른 메일 서버로 메일 전달

MUA : 사용자가 메일을 읽고 보낼 때 프로그램

MDA : 메일 박스에 도착한 메일을 대행해서 가져오거나 전달

 

sendmail 관련 파일

/etc/mail/sendmail.cf : sendmail 관련 주요 환경 설정 파일

Cwlocalhost                                                 (메일을 수신할 호스트 이름. Cwcomeve.org 이런 식)

Fw/etc/mail/loca-host-names                          (여러 도메인을 사용하는 경우 별도의 파일 지정)

Djcomee.com                                                (특정 도메인 명으로 지정하여 강제 적용)

Kvirtuser hash -o /etc/mail/virtusertable.db        (동일한 계정을 여러 가상 호스트들이 메일 주소로 동시 사용 위한)

 

/etc/mail/local-host-names : 메일 서버에 사용하는 도메인 설정 파일. 한 줄에 도메인 하나씩 기입

 

/etc/mail/sendmail.mc : senmail의 매크로 설정 파일. m4 /etc/mail/sendmail.mc > /etc/mail/sendail.cf로 복원

 

/etc/mail/access : 메일 서버로 접근하는 호스트나 도메인의 접근 제어 파일

From:~~~@~~.com            REJECT                 # 메일을 거절하고 거부 메일 발송

From:~~~.com                   DISCARD              # 메일을 거부 메시지 없이 거절

Connect:~~~.com               REJECT                

Connect:192.168.0.1             OK                      # DNS가 조회되지 않은 경우라도 수신 허가.

TO:~~~.org                        RELAY                  # 특정 호스트나 도메인의 접근 허용

 

/etc/aliases : 특정 계정으로 들어오는 메일을 다른 계정으로 전송 되도록 설정하는 파일

로컬시스템계정: 전달할 계정1, 전달할 계정2….

/etc/mail/virtusertable : 하나의 메일서버에 여러 도메인을 사용했을 때 각 도메인으로 메일을 포워딩 설정

받는계정@호스트   전달할_계정

~/.forward : 각 사용자 개인이 자신에게 들어오는 메일을 다른 메일 주소로 포워딩 할 때 사용

 

/etc/resolve.conf : sendmail 서버 설정 확인을 위해 확인하는 파일. 이후 nslookup 명령어로 조회

 

mail 관련 명령어

m4 /etc/mail/sendmail.mc > /etc/mail/sendail.cf : sendmail 설정 파일 복원

makemap hash /etc/mail/access < /etc/mail/access : 적용 명령

newaliases, sendmail -bi, sendmail -I : 센드메일이 참고하는 파일 변경 사항 적용

service sendmail start : sendmail 실행

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

sendmail : sendmail 관리

 

DNS 서버

※ DNS = 호스트의 도메인 이름과 IP 주소 간 변환을 위한 시스템

- DNS 서버의 종류

: Primary Name Server         (Master DNS. 도메인 관리를 위해 필수적으로 구성. 이 서버의 IP 주소를 등록)

: Secondary Name Server     (Master DNSzone 파일을 백업. 2 DNS 서버로 설정하면 Master DNS 다운 시 해당도메인에 대해 리졸빙 정보 제공)

: Caching Name Server         (관리하는 도메인 없이 리졸빙만 제공하기 위해 구성하는 서버. 도메인에 대한 리졸빙 결과를 저장하고 기록된 정보가 요청될 경우 대신 바로 전달)

 

BIND (Berkley Internet Name Domain)

※ BIND : named라는 데몬을 가지는 대표적인 DNS 서버 프로그램

- 관련 디렉터리

: /etc/named.conf                (DNS 서버의 전반적인 환경설정. 서버에서 사용하는 zone 파일 지정)

: /var/named                      (루트 도메인 서버에 대한 정보를 담고 있는 named.ca를 비롯하여 사용자가 선언한 zone 파일 등이 위치한 디렉터리)

: /etc/rc.d/init.d/named        (DNS 서버 가동을 위한 데몬 스크립트)

 

/etc/named.conf 파일

- 특징

1. 주석문과 구문으로 구분

2. 주석은 /* */, //, # 등 모두 사용 가능

3. 구문에는 options, logging, controls, zone, acl, view, key, masters, server 등 존재

4. 각 구문은 { } 으로 둘러싸고 ; 사용

5. include 지시자를 선언하여 별도의 파일 추가 정의 가능

 

- options 구문

directory               “zone 파일이 위치하는 디렉터리 경로”;

dump-file             “dump 파일이 생성될 위치 경로”;

statics-file             네임 서버의 통계 파일을 생성할 경로 및 파일명”;

memstatics-file      네임 서버의 메모리 통계 파일을 생성할 경로 및 파일명”;

forward (only | first);            forwarders와 함께 사용. only <자신에게 들어온 도메인 질의를 다른 서버로 넘김> / first <타 서버에서 응답이 없을 때 자신도 질의에 무응답>

forwarders {네임서버주소1; 네임서버주소2; .. };                도메인에 대한 질의를 넘길 서버 지정

allow-query {192.168.0.2/24; };                                       네임 서버에 질의할 수 있는 호스트 지정

allow-transfer {192.168.0.2/24; };                                    zone 파일의 내용을 복사할 대상 지정. 없을 경우 무제한

datasize 512M;                                                            DNS 관련 정보를 캐싱하는데 사용하는 메모리 제한

recursion yes;                                                              하위 도메인에 대한 검색 가능 여부 지정

 

- acl 구문

: 여러 호스트를 하나의 명칭으로 지정할 때 사용

: options 구문 선언 이전에 선언

: 이름을 지정하여 options 구문의 allow-query, allow-transfer 등에 사용 가능

acl “명칭” { 210.193.73.100; 231.153.18.0; 92.48.128.2; };

=> options { allow-query     { 명칭; 192.17.93.3; }; };

 

- zone 구문

: zone 파일을 지정

: 기본적으로 root 도메인 서버에 대한 정보 파일인 named.ca에 대한 선언 수록

: localhost, localhost domain 등에 대한 존 파일 선언 수록

 

※ zone 파일 : 도메인을 관리하는 데이터베이스 파일 / 도메인에 대한 질의 시 IP 주소를 반환

zone “도메인명” IN {                                       # 도메인 이름 기재.

             type (master | slave | hint);                 # DNS 서버의 종류. hint=root zone 서버

             file “존파일명”;                                 # 도메인명.zone으로 설정

};

리버스 zone 파일 : IP 주소에 대한 질의 시 도메인을 반환

zone “8.168.192.in-addr.arpa” IN {

             type (master | slave | hint);                 # DNS 서버의 종류. hint=root zone 서버

             file “존파일명”;                                 # 도메인명.rev로 설정

};

 

zone 파일

: /var/named/ 디렉터리에 생성

: 존 파일은 .zone 형식. 리버스 존 파일은 .rev형식

 

 

zone 파일 구조

$TTL       1D                                                               # TTL 1Day

@ IN SOA nameserver contact_email_address (

             serial_number                     ; serial

             refresh_number                   ; refresh

             retry_number                      ; retry

             expire_number                    ; expire

             minimum_number ) ; minimum

도메인 TTL class type Rdata

 

zone 파일 항목

$TTL : 다른 서버에서 도메인 관련 정보를 조회했을 경우 해당 서버의 캐시에 머무는 시간

SOA : 존 파일을 시작하는 레코드. nameserver 등으로 구성

- SOA 파일 구성

: nameserver ; 네임 서버의 호스트명과 도메인명 기입. / ns.comeve.co.kr

: contact_email_address ; 관리자 이메일 주소. 계정. 도메인 형식 / master.comeve.co.kr

: serial_number ; zone 파일 갱신에 따른 일련번호. YYYYMMDDNN 형식. N은 수정횟수 / 2021111019

: refresh_number ; 보조 네임서버의 정보 업데이트 주기. / 86400, 1D, 1d

: retry_number ; 보조 네임서버의 주 네임서버로의 접속 재시도 주기 / 3600, 1H

: expire_number ; 보조 네임서버의 접속 재시도 만기 시간 / 1W

: minimum_number ; SOA 영역의 TTL. 가져간 정보의 최소 보관 시간 / 3H

도메인 : 도메인명, 호스트명, 공백, @<현재 도메인>, *<모든 호스트> .

TTL : 해당 레코드에 대한 TTL 설정. / 생략가능

class : 레코드의 클래스 지정. IN, CH, HS . / 생략가능. 보통 Internet을 뜻하는 IN 사용

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

- type 종류

A (IPv4) / AAAA (IPv6) / NS (도메인의 네임서버 지정) / MX (메일서버 지정) / CNAME (별칭) / PTR (리버스 존에서 IP 주소를 도메인으로 변환하기 위해 지정)

Rdata : IP 주소, 도메인명, 호스트명 지정.

 

named.conf 예시

acl member { 210.96.52.100; 203.247.40/24; 211.58.96.100;};

options {

             directory               /var/named;

             allow-trnasfer        { 203.247.50/24 203.247.51.30;};

             dump-file             /var/named/data/dache_dump.db;

             staticstics-file        /var/named/data/named_stats.txt;

             memstatistics-file   /var/named/data/named_mem_stats.txt;

             forward only;

             forwarders            { 203.247.32.31; };

             allow-query           { 203.247.50/24; 203.247.51.33; member; };

             datasize 512M;

};

zone . IN {

             type hint;

             file named.ca;

};

include /etc/named.rfc1912.zones;

 

 

 

zone 파일 예시 (SOA (serial refresh retry expire minimum) > 한줄에 작성 가능)

$TTL 1D

@   IN   SOA ns.itwiki.kr. admin.itwiki.kr. (

                 2014051301 ; serial

                 1D ; refresh

                 1H ; retry

                 1W ; expire

                 3H ) ; minimum

       IN NS     ns.itwiki.kr.

       IN A      192.168.12.22

       IN MX 0   mail.itwiki.kr

www    IN A      192.168.12.22

www1   IN CNAME  www

www2   IN CNAME  www

 

DNS 관련 명령어

named-checkconf : /etc/named.conf 파일의 문법적 오류 검사

named-checkzone : zone 파일의 문법적 오류 검사

300x250
728x90