DNS 분석 및 간단한 보안 제어

8416 단어 binddns주종
1. 소프트웨어 설치
BIND의 설치 설정: BIND는 Berkeley 인터넷 Name Domain의 약칭으로 dns 프로토콜을 시작합니다.
nns: 프로토콜
bind:dns 프로토콜의 실현
named:bind 프로그램이 실행하는 프로세스 이름
패키지:
bind-libs: bind와 bind-utils 패키지의 프로그램이 공동으로 사용하는 라이브러리 파일;
bind-utils:bind 클라이언트 프로그램 집합, 예를 들어dig,host,nslookup 등;
bind: 제공된 dns 서버 프로그램과 몇 개의 자주 사용하는 테스트 프로그램;
bind-chroot:named를 jail 모드에서 실행하도록 선택하십시오.
bind 구성:
주 구성 파일:/etc/named.conf 
또는 다른 파일을 포함하기;
        /etc/named.iscdlv.key
        /etc/named.rfc1912.zones
        /etc/named.root.key
주 프로파일 형식
글로벌 구성 세그먼트:
        options { ... }
로그 구성 세그먼트:
        logging { ... }
구역 설정 구역: 본 기계가 해석하는 구역이나 전송하는 구역을 정의한다.
        zone { ... }
주의: 모든 설정 문장은 분호로 끝내야 합니다.
캐시 이름 서버 구성:
외부 호스트와 통신할 수 있는 주소 감청하기;
    listen-on port 53;
    listen-on port 53 { 172.16.100.67; };
학습 시 dnssec를 닫는 것을 권장합니다
    dnssec-enable no;
    dnssec-validation no;
    dnssec-lookaside no;
로컬 질의만 허용 해제:
    //allow-query  { localhost; };
구성 파일 구문 오류를 확인하려면 다음과 같이 하십시오.
    named-checkconf   [/etc/named.conf]
라이브러리 파일을 구문 분석하려면 다음과 같이 하십시오.
/var/named/디렉토리 아래;
일반 이름: ZONENAME.존, 사실 이름이 뭔지 상관없어.
참고: (1) 한 대의 DNS 서버는 여러 구역에 대해 동시에 해석을 제공할 수 있다.
(2) 루트 영역 해석 라이브러리 파일이 있어야 합니다:named.ca;
(3) 두 개의 영역 해석 라이브러리 파일이 있어야 한다. 그것이 바로localhost와 127.0.0.1의 정반향 해석 라이브러리이다.
정방향:named.localhost
대칭 이동:named.loopback
rndc:remote name domain contoller, 원격 도메인 이름 서버 컨트롤러
953/tcp이지만 기본적으로 127.0.0.1 주소로 감청되기 때문에 로컬로만 사용할 수 있습니다.
설명:bind 프로그램 설치가 완료되면 기본적으로 캐시 이름 서버에서 사용할 수 있습니다.해석을 전문적으로 담당하는 구역이 없으면 바로 서비스를 시작할 수 있다.
(이 경우 네트워크를 연결하고 DNS를 주소로 설정한 서버에 귀속 결과를 주고 캐시할 수 있습니다)
    CentOS 6: service  named  start
    CentOS 7: systemctl  start  named.service
테스트 도구:
dig, host, nslookup 등
dig 명령:
dig [-t RR TYPE] name [@SERVER] [query options]: dns 시스템을 테스트하는 데 사용되기 때문에hosts 파일을 조회하지 않습니다.
질의 옵션:
+[no]trace: 해석 과정 추적하기;
+[no]recurse: 귀속 해석하기;
참고: 역해결 테스트
    dig  -x  IP
전체 영역 라우팅 시뮬레이션:
    dig  -t  axfr  DOMAIN  [@server]
host 명령:
    host  [-t  RR_TYPE]  name  SERVER_IP
nslookup 명령:
    nslookup  [-options]  [name]  [server]
대화형 모드:
nslookup>
서버 IP: 지정한 IP로 DNS 서버를 조회합니다.
    set  q=RR_TYPE: 조회할 자원 기록 유형;
name: 검색할 이름;
rndc 명령:named 서비스 제어 명령
    rndc  status
rndc flush # 서버 캐시 비우기
2. 정방향, 방향 영역 설정 해석(magedu.com역을 예로 들면)
정방향 영역 설정
(1) 영역 정의
주 프로필 또는 주 프로필 보조 프로필에서 실현;
zone  "ZONE_NAME"  IN  {               # ZONE_NAME    ;
    type  {master|slave|hint|forward};
    file  "ZONE_NAME.zone";               #    /var/named   
};

예를 들면 다음과 같습니다.
tail /etc/named.rfc1912.zones
zone "magedu.com" IN {
	type master;
	file "magedu.com.zone";
};

(2) 지역 데이터 파일 만들기(주로 A 또는 AAA 기록)
/var/named 디렉토리에 영역 데이터 파일 만들기;
파일은/var/named/magedu.com.zone
$TTL 3600$ORIGIN magedu.com.@       IN      SOA     ns1.magedu.com.(
 DNS   @ magedu.com.
)   
dnsadmin.magedu.com. (
    2017010801
        1H    
        10M    
        3D    
        1D 
)
       IN      NS       ns1
       IN      MX   10    mx1
       IN      MX   20    mx2
ns1     IN      A       172.16.100.67
mx1     IN      A       172.16.100.68
mx2     IN      A       172.16.100.69
www     IN      A       172.16.100.67
web     IN      CNAME       www
bbs     IN      A       172.16.100.70
bbs     IN      A       172.16.100.71

권한 및 그룹 수정:
# chgrp  named  /var/named/magedu.com.zone# chmod  o=  /var/named/magedu.com.zone

구문 오류를 확인하려면 다음과 같이 하십시오.
# named-checkzone  ZONE_NAME   ZONE_FILE
# named-checkzone  magedu.com /etc/named/magedu.com.zone
# named-checkconf

(3) 서버에 프로필과 지역 데이터 파일을 다시 불러오기
# rndc  reload  # systemctl  reload  named.service

역방향 영역 분석 구성하기
(1) 영역 정의
주 프로필 또는 주 프로필 보조 프로필에서 실현;
zone  "ZONE_NAME"  IN  {
    type  {master|slave|hint|forward};
    file  "ZONE_NAME.zone"; 
};
      :
zone "100.16.172.in-addr.arpa" IN {
}

주의: 역방향 영역의 이름: 역쓰기 세그먼트 주소입니다.in-addr.arpa, 예: 100.16.172.in-addr.arpa
(2) 영역 분석 라이브러리 파일 정의(주로 PTR로 기록되며 MX, CNAME 형식의 기록을 쓰지 않음)
예: 영역 이름은 100.16.172.입니다.in-addr.arpa;
$TTL 3600
$ORIGIN 100.16.172.in-addr.arpa.
@       IN      SOA     ns1.magedu.com.  nsadmin.magedu.com. (
    2017010801
    1H    
    10M    
    3D    
    12H 
)
        IN      NS      ns1.magedu.com.
67      IN      PTR     ns1.magedu.com.
68      IN      PTR     mx1.magedu.com.
69      IN      PTR     mx2.magedu.com.
70      IN      PTR     bbs.magedu.com.
71      IN      PTR     bbs.magedu.com.
67      IN      PTR     www.magedu.com.

권한 및 그룹 수정:
# chgrp  named  /var/named/172.16.100.zone# chmod  o=  /var/named/172.16.100.zone

구문 오류를 확인하려면 다음과 같이 하십시오.
# named-checkzone  ZONE_NAME   ZONE_FILE# named-checkzone  100.16.172.in-addr.arpa 172.16.100.zone # named-checkconf 

(3) 서버에 프로필과 지역 데이터 파일을 다시 불러오기
# rndc  reload  # systemctl  reload  named.service

3. 주종 서버:
종속 영역을 구성하려면:
서버에서 구성:
(1) 영역 정의
종속 영역 정의하기; 
zone "ZONE_NAME"  IN {    type  slave;    file  "slaves/ZONE_NAME.zone";    masters  { MASTER_IP; };};

구성 파일 구문 검사:named-checkconf
(2) 구성 다시 로드
rndc  reloadsystemctl  reload  named.service

On Master는 주 서버에서 다음과 같이 구성됩니다.
(1) 지역 데이터 파일에서 모든 종속 서비스에 대한 NS 기록을 설정하고 정방향 지역 파일에는 각 종속 서버의 NS 기록과 호스트 이름에 설정된 A 기록이 필요하며 이 A 뒤의 주소가 진정한 종속 서버의 IP 주소가 되어야 한다.
주의: 시간은 동기화해야 합니다.
ntpdate 명령; #시간 기반 동기화 마스터 서버는 시간 동기화가 필요합니다.
수동 영역 전송:dig -t axfr magedu.com @ 마스터 서버 # 은(는) 영역에서 전송되는 모든 컨텐트를 가져옵니다. #이러면 위험한데?다른 사람들은 이 명령만 알면 너의 모든 해석 항목을 얻을 수 있다.
4. 하위 도메인 권한 부여:
정방향 분석 영역에서 하위 도메인을 승인하는 방법:
ops.magedu.com. 		IN 	NS  	ns1.ops.magedu.com. (   A  )ops.magedu.com.
IN NS   ns2.ops.magedu.com.
ns1.ops.magedu.com. IN A IP.AD.DR.ESS
ns2.ops.magedu.com. IN A IP.AD.DR.ESS

자역은 부역의 해석 항목을 찾습니다. 부역을 담당하는 항목이 없고 루트만 찾을 수 있습니다. 그러면 어떻게 부역으로 전송하는 것을 정의합니까?영역 전달을 정의합니다.
6. bind의 보안 제어와 관련된 구성:
acl: 액세스 제어 목록;하나 이상의 주소를 하나의 이름의 집합에 합치면 이 이름을 통해 이 집합의 모든 호스트를 통일적으로 호출할 수 있다.
먼저 정의한 후 사용하기;
    acl  ACL_NAME  {
    ip; # ip 또는 네트워크 세그먼트:net/prelen;
     ... ...;
    };
예:
acl  mynet {    172.16.0.0/16;    127.0.0.0/8;};

bind에 4개의 내장된 acl이 있어요.
none: 호스트가 없습니다.
any: 임의의 호스트;
local: 기본,
localnet: 기기가 있는 IP가 속하는 네트워크;
액세스 제어 명령:
    allow-query  {}; 조회를 허용하는 호스트;화이트 리스트
    allow-transfer {}; 어떤 호스트에 지역 전송을 허용합니까?기본값은 모든 호스트에 대한 것입니다.서버에서만 허용되도록 설정해야 합니다.
    allow-recursion {}; 이 호스트가 현재 DNS 서버에 귀속 조회 요청을 할 수 있도록 허용합니까? 
    allow-update {}; DDNS를 사용하면 영역 데이터베이스 파일의 컨텐트를 동적으로 업데이트할 수 있습니다.일반적으로 none으로 정의되며 동적 업데이트는 허용되지 않습니다.vim /etc/named.conf
zone 또는 전역에서 전송 설정 및 acl 설정
acl slaves{
172.16.100.68;
127.0.0.1;
 };

이렇게 해야만 이 주소에서만 해석 정보를 전송할 수 있다.
vim /etc/named.conf
acl mynet{
172.18.0.0/24;
127.0.0.1;
};
allow-recurse{ mynet; };

4 이 주소 서버에서만 배달됩니다.
본문은 "심해어"블로그에서 나왔습니다. 전재 사절!

좋은 웹페이지 즐겨찾기