본문 바로가기

해봐야 안다.OTL/Linux

[리눅스] DNS의 용도에 따른 분리(View기능) : internal / external

DNS서버의 용도에 따른 분리

View기능 이용

1.    분리할 네트워크 대역을 정의 예) internal / external

2.    /etc/named.conf 내용 수정 acl 등록

Internal에 대한 zone 내용 정의

External에 대한 zone 내용 정의

3.    /var/named 에 internal 용 zone file 생성 external용 zone file 생성

4.    체크 및 named 리스타트

 

[BIND 서버 설정]

이렇게 세팅할꺼다.

Internal 192.168.100.0/24

www

mail

mailx

ns

ftp

--> 내부 recursion yes

External 192.168.10.0/24

Mailx

www

ns

--> 외부 recursion no

[root@jo:/var/named]#cp /etc/named.conf /etc/named.conf.TSIG

[root@jo:/var/named]#vi /etc/named.conf

19 recursion no; --> "yes" 에서 "no"로 변경

위에 zone transfer 작업때 했던 거 지운다.

10 key host1-host2. {

11 algorithm hmac-md5;

12 secret "ECo0RqbH9nq5aRmGGtudO0zBYue3iIPI83QIRI6UyH8=";

13 };

14

15 server 192.168.100.100 {

16 keys {host1-host2.;};

17 };

--> 이 부분 삭제

 

 

<다 추가삽입햇다.>

29 acl "internal-zone" {192.168.100.0/24;};

30

31 view "internal" {

32 match-clients { "internal-zone"; };

33 recursion yes;

--> 추가 삽입 괄호는 밑에서 막을 것이다.

42 zone "cho.iss" IN {

43 type master;

44 file "cho.internal";

45 allow-update { none;};

46 allow-transfer { none;};

47 };

48

49 zone "100.168.192.in-addr.arpa" IN {

50 type master;

51 file "cho.internal.rev";

52 allow-update { none;};

53 allow-transfer { none;};

54 };

55 };

57 view "external" {

58 match-clients { any;};

59 recursion no;

60

61 zone "cho.iss" IN {

62 type master;

63 file "cho.external";

64 allow-update { none;};

65 allow-transfer { none;};

66 };

67

68 zone "10.168.192.in-addr.arpa" IN {

69 type master;

70 file "cho.external.rev";

71 allow-update { none;};

72 allow-transfer { none;};

73 };

74 };

Internal zone에 해당하는 애들만 보게 acl로 제한했다.

  • [메일서버]는 내부DNS [BIND 서버]는 외부DNS

[root@jo:/var/named]#named-checkconf /etc/named.conf

--> 작성한 "named.conf"에 에러 체크를 해보자.

--

<zone 파일 생성: "cho.internal">:::::::: 내부 DNS설정

[root@jo:/var/named]#vi cho.internal

$TTL 1D

@ IN SOA ns.cho.iss. jo.cho.iss.(

1

21600

1800

1209600

86400 )

IN NS ns.cho.iss.

IN MX 10 mail

ns IN A 192.168.100.1

mail IN A 192.168.100.100

mailx IN A 192.168.100.1

www IN A 192.168.100.100

ftp IN A 192.168.100.100

 

 

 

[root@jo:/var/named]#named-checkzone master cho.internal

zone master/IN: loaded serial 1

OK

--

<rev 파일 생성: "cho.internal.rev">

[root@jo:/var/named]#vi cho.internal.rev

$TTL 1D

@ IN SOA ns.cho.iss. jo.cho.iss.(

1

21600

1800

1209600

86400 )

IN NS ns.cho.iss.

1 IN PTR ns.cho.iss.

1 IN PTR mailx.cho.iss.

100 IN PTR mail.cho.iss.

100 IN PTR www.cho.iss.

100 IN PTR ftp.cho.iss.

[root@jo:/var/named]#named-checkzone master cho.internal.rev

zone master/IN: loaded serial 1

OK

--

<zone 파일 생성: "cho.external">:::::::: 외부 DNS설정

[root@jo:/var/named]#vi cho.external

나중에 NAT로 웹서버 서비스를 할 때 쓸 IP를 미리 삽입하자.

$TTL 1D

@ IN SOA ns.cho.iss. jo.cho.iss.(

1

6H

30M

14D

1D )

IN NS ns.cho.iss.

IN MX 10 mailx

 

ns IN A 192.168.10.181

mailx IN A 192.168.10.181

www IN A 192.168.10.183

ftp IN A 192.168.10.181

--

rev 파일 생성: "cho.external.rev"

[root@jo:/var/named]#vi cho.external.rev

$TTL 1D

@ IN SOA ns.cho.iss. jo.cho.iss. (

1

6H

30M

14D

1D )

IN NS ns.cho.iss.

183 IN PTR www.cho.iss.

181 IN PTR ns.cho.iss.

181 IN PTR mailx.cho.iss.

--

<네임 리스타트 및 확인>

[root@jo:/var/named]#service named restart

Stopping named: . [ OK ]

Starting named: [ OK ]

[root@jo:/var/named]#netstat -nlp |grep :53

tcp 0 0 192.168.100.1:53 0.0.0.0:* LISTEN 5634/named

tcp 0 0 192.168.10.181:53 0.0.0.0:* LISTEN 5634/named

tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 5634/named

tcp 0 0 ::1:53 :::* LISTEN 5634/named

udp 0 0 192.168.100.1:53 0.0.0.0:* 5634/named

udp 0 0 192.168.10.181:53 0.0.0.0:* 5634/named

udp 0 0 127.0.0.1:53 0.0.0.0:* 5634/named

udp 0 0 0.0.0.0:5353 0.0.0.0:* 3281/avahi-daemon:

udp 0 0 ::1:53 :::* 5634/named

udp 0 0 :::5353 :::* 3281/avahi-daemon:

--

<nslookup으로 DNS질의 테스트>

[root@jo:/var/named]#nslookup

> server

Default server: 192.168.10.181

Address: 192.168.10.181#53

> mailx.cho.iss

Server:        192.168.10.181

Address:    192.168.10.181#53

Name:    mailx.cho.iss

Address: 192.168.100.181

> 192.168.10.181

Server:        192.168.10.181

Address:    192.168.10.181#53

181.10.168.192.in-addr.arpa    name = ns.cho.iss.

181.10.168.192.in-addr.arpa    name = mailx.cho.iss.

> server 192.168.100.1

Default server: 192.168.100.1

Address: 192.168.100.1#53

> 192.168.100.1

Server:        192.168.100.1

Address:    192.168.100.1#53

1.100.168.192.in-addr.arpa    name = ns.cho.iss.

1.100.168.192.in-addr.arpa    name = mailx.cho.iss.

> mailx.cho.iss

Server:        192.168.100.1

Address:    192.168.100.1#53

Name:    mailx.cho.iss

Address: 192.168.100.1

> www.cho.iss

Server:        192.168.100.1

Address:    192.168.100.1#53

Name:    www.cho.iss

Address: 192.168.100.100

> ftp.cho.iss

Server:        192.168.100.1

Address:    192.168.100.1#53

Name:    ftp.cho.iss

Address: 192.168.100.100

> mail.cho.iss

Server:        192.168.100.1

Address:    192.168.100.1#53

Name:    mail.cho.iss

Address: 192.168.100.100

> exit

[root@jo:/var/named]#nslookup

> server 192.168.10.181

Default server: 192.168.10.181

Address: 192.168.10.181#53

> mail.cho.iss

Server:        192.168.10.181

Address:    192.168.10.181#53

** server can't find mail.cho.iss: NXDOMAIN

>

--

--> 이제 윈도우xp 에서 dns를 192.168.10.181로 설정하고 nslookup을 테스트해본다.

외부에서는 절대로 쿼리를 날릴 수 없다.

"acl"에 등록되어 있기 때문에

#vi /etc/named.conf

29 acl "internal-zone" {192.168.100.0/24;};

 

-->

Windows xp에서 외부DNS에 dns 질의가 되게 하려면

"/etc/named.conf"에서 "acl" 부분을 수정해준다.

 

#vi /etc/named.conf

29 acl "internal-zone" {192.168.100.0/24; 192.168.10.26/24; localhost;};

 

이제는 acl에 넣어주니깐 서버도 되고 질의도 된다.