메일 관련 프로토콜
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 DNS의 zone 파일을 백업. 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 파일의 문법적 오류 검사
'Certification > 리눅스마스터' 카테고리의 다른 글
리눅스마스터 1급 2차 요약정리 - 9 (DHCP / VNC / NTP / iptables) (0) | 2021.11.14 |
---|---|
리눅스마스터 1급 2차 요약정리 - 8 (TCPwrapper / xinetd / Proxy) (0) | 2021.11.14 |
리눅스마스터 1급 2차 요약정리 - 6 (HTTP / NIS / LDAP / SAMBA / NFS / FTP) (0) | 2021.11.14 |
리눅스마스터 1급 2차 요약정리 - 5 (SSH / PAM / ACL / 백업) (0) | 2021.11.14 |
리눅스마스터 1급 2차 요약정리 - 4 (시스템 로그 / sysctl) (0) | 2021.11.14 |