Rocky Linux 네임서버 설치 > 리눅스

본문 바로가기

사이트 내 전체검색

뒤로가기 리눅스

Rocky Linux 네임서버 설치

페이지 정보

작성자 아름다운 작성일 24-03-10 15:49 조회 668 댓글 0

본문

네임서버 구축하기

참조: https://gam1532.tistory.com/49
    https://blog.naver.com/host365/222983239445
    https://docs.rockylinux.org/ko/guides/dns/private_dns_server_using_bind/

1. Bind 설치 하기
dnf install bind bind-chroot bind-utils

2. BIND 설정하기
/etc/named.conf

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory      "/var/named";
        dump-file      "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file  "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query    { any; };
        allow-query-cache { any; };
--------------------------------------------------------------------------------
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

2-1. 확인
named-checkconf /etc/named.conf
만약 문법에 문제가 없다면 아무런 메시지가 없이 끝나지만 문제가 있으면 아래와 같이 문제가 있는 메시지가 뜹니다.


3-1. rfc1921.zone 수정

zone "example.com" IN {            => 정방향 조회, 도메인 주소는 임의로 정했습니다.
        type master;
        file "example.com.zone";  => example.com. 영역의 DNS 정보를 입력 할 파일입니다.
        allow-update { none; };      파일이름은 임의로 정할 수 있지만 보통 저렇게 만듭니다.
};

zone "34.23.12.in-addr.arpa" IN {  => 역방향 조회, 설명은 아래에 하겠습니다.
        type master;
        file "example.com.rev";    => 역방향 조회에 대한 DNS 정보를 입력 할 파일 입니다.
        allow-update { none; };      파일 이름은 임의로 정했습니다.
};


3-2. example.com.zone 과 example.com.rev 파일만들고 권한 소유자 변경
# cp named.localhost example.com.zone
# cd /var/named
# chmod 644 example.com.zone
# chown root.named example.com.zone

# cp named.localhost example.com.rev
# chmod 644 example.com.rev
# chown root.named example.com.rev

3-3. example.com.zone  =>  정방향 조회 설정파일
# vi /var/named/example.com.zone  =>  정방향 조회 설정파일
--------------------------------------------------------------
$TTL 1D
@      IN SOA example.com. root(
                                        0      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A      12.23.34.45    =>  루트 IP
       
ns      A      12.23.34.45    =>  네임서버 IP
www    A      12.23.34.46    =>  웹서버 IP
--------------------------------------------------------------


3-4. example.com.rev  =>  역방향 조회 설정파일
# vi /var/named/example.com.rev  =>  역방향 조회 설정파일
--------------------------------------------------------------
$TTL 1D
@      IN SOA example.com. root(
                                        0      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A      12.23.34.45      =>  루트 IP
       
45      PTR    ns.example.com.  =>  12.23.34.45 의 도메인 주소
46      PTR    www.example.com. =>  12.23.34.46 의 도메인 주소


4. 확인
# named-checkzone example.com /var/named/example.com.zone
zone example.com/IN: loaded serial 0
OK
# named-checkzone example.com /var/named/example.com.rev
zone example.com/IN: loaded serial 0
OK

# named-checkconf /etc/named.conf
# named-checkconf /etc/named.rfc1912.zones

zone 파일과 영역관리 파일의 문법 오류가 있는지 체크해주는 명령어 입니다.



"named-checkzone  {도메인영역} {zone 설정파일 위치}" 형태로 사용 가능하며 OK 가 뜨면 문제 없음
"named-checkconf {도메인 영역 관리 파일 위치}" 형태로 사용 가능하며 아무것도 뜨지 않으면 문제 없음



5. named 실행 및 등록
# systemctl start named
# systemctl enable named

6. 테스트
# systemctl status named

7. 기동로그 체크
# 쉘에서 실행
journalctl -u named

# nslookup [조회할 도메인] [도메인서버]

# 로컬호스트로 조회
nslookup ns.jmlim 127.0.0.1

# NIC 주소로 조회
nslookup ns.jmlim 192.168.100.1

# 쉘에서 실행
nslookup 192.168.100.1 127.0.0.1

8.  방화벽 규칙 - firewalld
첫 번째 단계는 LAN 네트워크를 "신뢰할 수 있는" 영역에 추가하는 것입니다.
firewall-cmd --zone=trusted --add-source=192.168.1.0/24 --permanent

두 가지 서비스를 "trusted" zone에 추가해야 합니다.
firewall-cmd --zone=trusted --add-service=ssh --permanent
firewall-cmd --zone=trusted --add-service=dns --permanent

기본적으로 활성화된 "public" zone에서 SSH 서비스를 제거해야 합니다.
firewall-cmd --zone=public --remove-service=ssh --permanent

다음으로 방화벽을 다시 로드하고 변경한 zone을 나열합니다.
firewall-cmd --reload
firewall-cmd --zone=trusted --list-all


서비스와 소스 네트워크를 올바르게 추가했다면 다음과 같이 나와야 합니다.
trusted (active)
    target: ACCEPT
    icmp-block-inversion: no
    interfaces:
    sources: 192.168.1.0/24
    services: dns ssh
    ports:
    protocols:
    forward: no
    masquerade: no
    forward-ports:
    source-ports:
    icmp-blocks:
    rich rules:


"public" zone을 나열하면 SSH 액세스가 허용되지 않은 것을 확인할 수 있습니다.
firewall-cmd --zone=public --list-all

다음과 같이 표시됩니다:
public
    target: default
    icmp-block-inversion: no
    interfaces:
    sources:
    services: cockpit dhcpv6-client
    ports:
    protocols:
    forward: no
    masquerade: no
    forward-ports:
    source-ports:
    icmp-blocks:
    rich rules:

이러한 규칙은 192.168.1.0/24 네트워크의 호스트로부터 로컬 DNS 서버의 DNS 해결을 가능하게 합니다. 또한 이러한 호스트에서 로컬 DNS 서버로 SSH를 할 수 있습니다.

결론
개별 워크스테이션에서 /etc/hosts를 사용하면 내부 네트워크의 시스템에 액세스할 수 있지만 해당 시스템에서만 사용할 수 있습니다. _bind_를 사용하여 개인 DNS 서버를 추가함으로써 DNS에 호스트를 추가하고, 워크스테이션이 이 개인 DNS 서버에 액세스할 수 있다면 이러한 로컬 서버에 액세스할 수 있습니다.

인터넷에서 기계를 해결해야 하는 필요가 없지만 여러 기기에서 로컬 서버로 로컬 액세스가 필요한 경우, 개인 DNS 서버를 사용하는 것을 고려해 보세요.

댓글목록 0

등록된 댓글이 없습니다.

회사소개 개인정보처리방침 서비스이용약관

TEL. [본점] 042-365-0123 [청주] 043-223-2114 H.P 010-5500-1456. 개인정보관리책임자 Email: kpcas@pcas.kr
대표:임재관 사업자등록번호:305-08-54668.

Copyright © www.PCAS.kr. All rights reserved.

PC 버전으로 보기