Linux 17 . DNS 서비스

2024. 2. 15. 17:12Linux/CentOS7

DNS를 리눅스에서 설치해보자!

 

설치시에는

dns의 또다른 어플리케이션 이름 : bind로 세가지를 설치해줘야 한다!
bind, bind-utils, bind-libs

 

 

설정파일
 /etc/named.conf (전역설정)
/etc/named.rfc1912.zones (영역파일 설정)
/var/named/영역파일에서 설정한 동일한 레코드 영역 존재해야함

 

세번째 설정파일이 잘 이해 안갈 수도 있다.

이는 실습을 진행하면서 알아보자!

 

 

설치해주자!

 yum install -y bind bind-utils bind-libs

 

 

설치 후에는 vi 편집기로

 /etc/named.conf 

전역설정 파일을 열어주자!

지금 여기선 2가지 설정만 건드리면 된다!

첫번째는 

53번 포트를 어떤 네트워크에 서비스 할 것인지 

두번째는

Domain-name 질의 허용 범위를 설정하는 것이다.

우린 딱히 제한이 없기 때문에

모든 주소를 허용 하겠다! (all이 아닌 any다!)

 

 

 

이번엔 영역 설정을 해주자

vi 편집기로

/etc/named.rfc1912.zones

를 설정해주자

하지만 정방향 역방향 조회 영역이 무엇있지 

쓰여있질 않아서 도통 모르겠다.

아래로 내려가보면 신기한 것을 볼 수 있다.

1.0.0.127?? 루프백과 비슷한데 뒤집혀있다?

역으로 쓰여진 저 IP가 바로 역방향 조회영역이다!

정말 직관적이다

(그대로 쓰여진 윗부분이 정방향이다)

19~23 행을 제일 마지막줄에 복사했다!

(하나하나 입력하기엔 번거롭다...)

 

 

zone "(도메인명)" IN {
type ( {주,보조} 영역타입); <- master or slave
file (/var/named 에 존재하는 레코드파일 이름<존재해야함>);
allow-update { none; };  <- 영역전송 허용 여부 (none에 주소 입력하면 된다)

 

우리가 설정시에 레코드 파일 이름을 1 로 지정해줬기 때문에

/var/named/ 밑에 1이라는 이름의 레코드 파일을 만들어줘야한다

우리가 임의로 1이라 지정했기에

실제 경로에 그런 파일은 없다..

 

직접 만들기엔 오래걸리니

원래 파일인 named.localhost 파일을 복사해 1이란 파일로 만들자

cp /var/named/{named.localhost,1}

 

그런다음 1 파일을 vi 편집기로 살펴보자

조금 단촐하다

 

 

$TTL 1D    <1D 이 값은 업데이트가 이뤄지지 않으면 하루만 유효하다는 뜻 
@       IN SOA  @ rname.invalid. (     < 네임서버를 써준다.  그뒤에 관리자의 메일주소가 들어간다
                                        0       ; serial    <윈도우의 시리얼넘버와 같다, 보조영역이 업데이트시 참조하는 것
                                        1D      ; refresh  < 하루에 한번씩 데이터 업데이트
                                        1H      ; retry       < 업데이트 실패시 1시간씩 재시도
                                        1W      ; expire    < 1주 동안 업데이트 안되면 만료
                                        3H )    ; minimum

                                              5가지모두 보조영역과 관련있다
        NS      @   네임서버 이름

        A       127.0.0.1 < 원하는영역추가
        AAAA    ::1 <ipv6 영역 지워도 된다. 
~                               

설정을 해주면 위와 같이 된다

mx 메일서버는 만들예정이라 미리 설정해줬다!

설정은 완료 됐지만 문제가 아직 남아있다

1 파일의 이상한 점을 찾을 수 있어야한다...

바로 읽기 권한이 others 에는 부여되지 않은 것이다.

이렇게 되면

사용자들이 이곳에서 질의를 할 수 없다

chmod o+r /var/named/1

명령어로 읽기 권한을 주자!

 

 

 

 

만약 역방향 조회 영역도 설정하고 싶다면

역방향 조회 영역인 /var/named/named.loopback 파일을

정방향 과 똑같이 2 라는 파일로 복사해서 만들어주자

그 다음 위 형식처럼

네임서버 들을 등록 해주면 완성이다!

2 파일에도 읽기 권한을 줘야한다!!!

 

 

 

 

DNS서버를 시작해보자

systemctl start named 로 서비스를 시작했으나 에러가 발생했다..

확인해보자

zone 관련 문구가 떠있고 DNS 시작을 실패했다고 하니

영역설정에 문제가 있던 것 같다, 살펴보자

A 가 아니라 aA 를 입력해 버렸다

A로 수정해주자

 

이제 방화벽을 열어주자!

멋있어 보이게 한번에 열어줬다.

설정후 반드시 리로드 해주자!

 

이제 윈도우에서 dns 가 정상작동 하는지 살펴보자!

nslookup 으로 잘 조회되고

이젠 IP 주소가 아닌 도메인 명으로 FTP를 이용할 수 있게됐다!!

 

 

리눅스 DNS 주영역이 만들어 진 것이다!

 

 

 

 

이제 보조 영역도 만들어보자!!

다른 CentOS에서  bind, bind-utils, bind-libs를 설치해주고

전역설정 파일을 열어주자

 /etc/named.conf 파일은 주영역과 똑같이 해주자!

 

그 다음인

/etc/named.rfc1912.zones 파일 설정시에는 조금 달라진다.

 

 

19,23 번째 행을 문서 끝에 복사,

37,41번째 행을 문서 끝에 복사 해준다.

우리는 전처럼 43,52까지의 영역을 바꿔주면 되는데 

 

zone "(도메인명)" IN {
type ( {주,보조} 영역타입); <- master or slave
file (/var/named 에 존재하는 레코드파일 이름<존재해야함>);
allow-update { none; };  <- 영역전송 허용 여부 (none에 주소 입력하면 된다)

 

 

 

 

위의 규칙만 기억하면 된다!!

정방향 영역

zone "doghj.local" IN {
type (slave); <- master or slave
file "레코드 파일이름(주영역쪽)";
masters { 주영역의 IP; };  

 

역박향 영역

zone "0.0.1.in-addr.arpa" IN {
type slave;
file " 레코드 파일이름(주영역쪽) " ;
masters { 주영역의 IP; }

위의 설정처럼 변경 해보자!!!

.

.

 

방화벽은 열 필요가 없다! (53번포트tcp)

이유는 메인서버(주영역)의 53tcp 가 열려있으니

보조 영역은 그저 주영역에서 가져오기만 할 뿐이라 괜찮다!

53udp 포트만 열어주자!

그 다음

systemctl start named 로 DNS를 실행시켜주자

 

잘 실행 됐다면 보조영역의 OS에서 

ls -la /var/named로 해당 디렉토리를 살펴보면

만든 적이 없는 1,2 파일이 만들어져 있다!

 

 

이상으로 DNS 주,보조영역 설정에 대해서 알아보았다.

 

'Linux > CentOS7' 카테고리의 다른 글

Linux 19 . Mail 서비스  (0) 2024.02.19
Linux 18 . httpd 서비스  (0) 2024.02.19
Linux 16 . ftp 서비스  (0) 2024.02.14
Linux 15 . dhcp 서비스  (1) 2024.02.13
Linux 14 . process 관리  (0) 2024.02.13