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

본문 바로가기
사이트 내 전체검색

리눅스

Rocky Linux 네임서버 설치

페이지 정보

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

본문

네임서버 구축하기

참조: 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 서버를 사용하는 것을 고려해 보세요.

댓글목록

등록된 댓글이 없습니다.


회사소개 개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

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.