DNS 분석 및 간단한 보안 제어
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
이 주소 서버에서만 배달됩니다.본문은 "심해어"블로그에서 나왔습니다. 전재 사절!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Class형 React터미널에 위와 같은 명령어를 작성하여 기본적으로 사용할 수 있는 환경을 가져왔다. 이 명령어 하나로 모든 세팅은 끝이난다. componentWillMount 란? render()가 실행되기 전에 호출된다. 요즘은 잘...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.