웹사이트 검색

RHEL 8에서 바인딩을 개인 DNS 서버로 설정


도메인 이름 시스템(DNS)은 사람이 읽을 수 있는 도메인 이름(또는 정규화된 도메인 이름(FQDN)을 번역하는 데 사용되는 방법입니다. )) 기계가 읽을 수 있는 IP 주소로 인터넷과 같은 네트워크에서 컴퓨터를 찾습니다.

컴퓨터 및 네트워크 시스템에서는 FQDN이 사람이 기억하고 사용하기 쉽지만 컴퓨터(클라이언트)가 IP 주소를 기반으로 다른 컴퓨터(서버)의 리소스나 서비스에 액세스하기 때문에 이것이 필요합니다.

이와 관련하여 DNS 서버(네임 서버라고도 함)는 FQDN 디렉터리를 유지 관리하고 이를 IP 주소로 변환합니다. 호스트 이름/FQDN이 제공되면 IP 주소를 반환할 수도 있습니다. 권한 있는 이름 서버, 캐싱 이름 서버 등 다양한 유형의 DNS 서버가 있습니다.

이 문서에서는 BIND 오픈 소스 소프트웨어를 사용하여 RHEL 8에 권한 있는 비공개/내부 DNS 서버를 설치하고 구성하는 단계를 안내합니다.

요구사항:

  1. 최소한의 설치로 RHEL 8
  2. RedHat 구독이 활성화된 RHEL 8
  3. 고정 IP 주소를 사용하는 RHEL 8

내 테스트 환경:

Domain: tecmint.lan
DNS Server IP and hostname: 192.168.56.100, dns-primary.tecmint.lan
DNS Client IP and hostname: 192.168.56.104, tecmint.tecmint.lan

1단계: RHEL 8에 바인딩 DNS 설치

1. bind 및 해당 유틸리티를 서버에 설치하려면 다음 cdnf 명령을 실행하세요.

dnf install bind bind-utils

2. 그런 다음 지금은 DNS 서비스를 시작한 다음 시스템 부팅 시 자동 시작되도록 활성화하고 systemctl 명령을 사용하여 서비스가 실행되고 있는지 확인합니다.

systemctl start named
systemctl enable named
systemctl status named

2단계: RHEL 8에서 BIND DNS 구성

3. Bind DNS 서버를 구성하려면 먼저 다음 cp를 사용하여 원본 구성 파일 /etc/named.conf를 백업해야 합니다. 명령.

cp /etc/named.conf /etc/named.conf.orig

4. 이제 다음과 같이 선호하는 명령줄 텍스트 편집기를 사용하여 편집할 /etc/named.conf 구성 파일을 엽니다.

vi /etc/named.conf 

options 구성 섹션에서 다음 줄을 주석 처리합니다.

options {
        #listen-on port 53 { 127.0.0.1; };
        #listen-on-v6 port 53 { ::1; };
        directory       "/var/named";

5. 그런 다음 allow-query 매개변수를 찾아 해당 값을 네트워크로 설정합니다. 즉, 로컬 네트워크의 호스트만 쿼리할 수 있습니다. DNS 서버에 쿼리합니다.

allow-query  {localhost; 192.168.56.0/24}

3단계: 정방향 및 역방향 DNS 영역 생성

전달 영역은 IP 주소 관계에 대한 호스트 이름(또는 FQDN)이 저장되는 곳입니다. 호스트 이름을 사용하여 IP 주소를 반환합니다. 일반적인 DNS 쿼리는 정방향 조회 쿼리입니다. 반면, 역방향 영역은 IP 주소를 기반으로 호스트의 FQDN을 반환합니다.

6. 정방향역방향 영역을 정의하려면 /etc/named.conf< 끝에 다음 줄을 추가하세요. 파일입니다.

//forward zone 
zone "tecmint.lan" IN { 
     type master; 
     file "tecmint.lan.db"; 
     allow-update { none; }; 
    allow-query {any; }
}; 
//backward zone 
zone "56.168.192.in-addr.arpa" IN { 
     type master; 
     file "tecmint.lan.rev"; 
     allow-update { none; }; 
    allow-query { any; }
};

위 영역 구성의 옵션을 간략하게 설명하겠습니다.

  • 유형: 영역에 대한 이 서버의 역할을 정의합니다. '마스터' 값은 영역 데이터의 마스터 복사본이 유지 관리되는 권한 있는 서버임을 의미합니다.
  • 파일: 영역의 데이터베이스 파일을 지정합니다.
  • allow-update: 마스터 영역에 대한 동적 DNS 업데이트 제출을 허용하는 호스트를 지정합니다. 이 경우에는 없습니다.

4단계: 정방향 DNS 영역 파일 생성

7. 먼저 /var/named 디렉토리 아래에 전달 영역 파일을 만듭니다.

vi /var/named/tecmint.lan.db

여기에 다음 구성을 추가합니다.

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)

;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;IP for Name Server
dns-primary IN A 192.168.56.100

;A Record for IP address to Hostname 
www IN A 192.168.56.5
mail IN A 192.168.56.10
docs  IN A 192.168.56.20

위의 Zone 정의와 매개변수에 대해 간략하게 설명하겠습니다.

  • TTL: RR$TTL 지시문의 수명을 지정하며 모든 항목에 대해 기본 TTL을 제공합니다. 특정 TTL 세트가 없는 RR.
  • @: 기본 구성 파일에 정의된 도메인 이름(예: tecmint.lan)에 대한 별칭입니다.
  • IN: 인터넷을 의미합니다.
  • SOA: 권한 시작을 지정합니다. 권한 있는 이름 서버가 누구인지(dns-primary.tecmint.lan), 관리자의 연락처 정보( admin.tecmint.lan, @ 기호는 마침표로 대체됨) 및 기타 관련 정보.
  • NS: 네임서버를 의미합니다.
  • 직렬: 이 값은 DNS 서버에서 특정 영역 파일의 콘텐츠가 최신인지 확인하는 데 사용됩니다.
  • 새로 고침: 슬레이브 DNS 서버가 마스터에서 영역 전송을 수행해야 하는 빈도를 지정합니다.
  • 재시도: 슬레이브가 실패한 영역 전송을 재시도해야 하는 빈도를 지정합니다.
  • 만료: 마스터에 연결할 수 없을 때 클라이언트 쿼리에 응답하기 전에 슬레이브 서버가 기다려야 하는 시간을 결정합니다.
  • 최소: 영역의 최소 TTL을 설정합니다.
  • A: 호스트 주소입니다.

5단계: 역방향 DNS 영역 파일 생성

8. 마찬가지로 /var/named 디렉토리 아래에 Reverse zone 파일을 만듭니다.

vi /var/named/tecmint.lan.rev

그런 다음 다음 줄을 추가하십시오. 여기서 PTR은 IP 주소를 호스트 이름에 매핑하는 데 사용되는 A 레코드와 반대입니다.

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)
;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;Reverse lookup for Name Server
100 IN PTR dns-primary.tecmint.lan.

;PTR Record IP address to HostName
5 IN PTR www.tecmint.lan.
10 IN PTR mail.tecmint.lan.
20 IN PTR docs.tecmint.lan.

9. 다음과 같이 영역 파일에 대한 올바른 소유권 권한을 설정합니다.

chown :named /var/named/tecmint.lan.db
chown :named /var/named/tecmint.lan.rev

10. 마지막으로 named-checkconf 유틸리티를 사용하여 위의 변경을 수행한 후 DNS 구성과 영역 파일의 구문이 올바른지 확인합니다(out이 없으면 오류가 없음을 의미함).

named-checkconf
named-checkzone tecmint.lan /var/named/tecmint.lan.db
named-checkzone 192.168.56.100 /var/named/tecmint.lan.rev

11. 필요한 모든 구성을 수행한 후 최근 변경 사항을 적용하려면 DNS 서비스를 다시 시작해야 합니다.

systemctl restart named

12. 다음으로 클라이언트가 서버의 DNS 서비스 구성에 액세스할 수 있으려면 시스템 방화벽 구성에 DNS 서비스를 추가하고 다음과 같이 Firewall-cmd 유틸리티를 사용하여 방화벽 설정을 다시 로드해야 합니다. :

firewall-cmd --permanent --zone=public --add-service=dns 
firewall-cmd --reload

6단계: 클라이언트에서 DNS 서비스 테스트

13. 이 섹션에서는 클라이언트 측에서 DNS 서비스를 테스트하는 방법을 보여줍니다. 클라이언트 시스템에 로그인하고 위의 DNS 서버를 사용하도록 구성하십시오. Linux 시스템에서는 원하는 텍스트 편집기를 사용하여 /etc/resolve.conf 파일을 엽니다.

vi /etc/resolve.conf 

확인자에게 지정된 이름 서버를 사용하도록 지시하는 다음 항목을 추가합니다.

nameserver  192.168.56.100

파일을 저장하고 닫습니다. 네트워크 인터페이스 구성 파일에서도 DNS 서버를 지정해야 합니다.

14. 클라이언트 시스템 네트워크 인터페이스 구성 파일 /etc/sysconfig/network-scripts/ifcfg-enp0s3<에 확인자로 DNS 서버 IP 192.168.56.100을 추가합니다.은 다음 그림과 같습니다.

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=aba298ca-fa65-48cd-add9-6c3f1f28cee2
DEVICE=enp0s3
ONBOOT=no
DNS=192.168.56.100

15. 그런 다음 nslookup 유틸리티를 사용하여 호스트 이름을 사용하여 www, maildocs<의 IP를 쿼리하고 그 반대의 경우도 마찬가지입니다. 그림과 같이 네트워크에 있는 서버입니다.

nslookup 192.168.56.5
nslookup www.tecmint.lan
nslookup 192.168.56.10
nslookup mail.tecmint.lan
nslookup 192.168.56.20
nslookup docs.tecmint.lan
nslookup 192.168.56.100
nslookup dns-primary.tecmint.lan

요약

이 문서에서는 BIND 소프트웨어를 사용하여 RHEL 8에 권한 있는 비공개 DNS 서버를 설치하고 구성하는 방법을 보여주었습니다. 모든 일이 원활하게 진행되기를 바랍니다. 그렇지 않은 경우 아래 피드백 양식을 통해 문의사항이나 기타 의견을 보내주세요.