Thứ Hai, 6 tháng 6, 2011

Cài đặt Và Cấu Hình Dns Trong Centos 5

Về cách thức hoạt động của DNS trên linux cũng tương tự như trên windows. Trong bài này chúng ta sẽ tìm hiểu các bước cấu hình DNS Server trên linux như thế nào.


Bài gồm có các phần:

  • Cài đặt cơ bản
  • Cấu hình Master DNS
  • Các lệnh kiểm tra DNS
  • Cấu hình Slave DNS
  • Bảo mật thông tin transfer

1. Cài đặt DNS server với Bind
Thông thường chúng ta có 2 cách cài đặt là cài từ source và từ gói compile sẵn (RPM - Redhat Package Manager).

- Cách 1: Cài từ gói rpm
#rpm –ivh bind-9.3.3-10.el5.rpm
#rpm –ivh bind-chroot-9.3.3-10.el5.rpmHoặc nếu có internet thì cài bằng lệnh yum như sau:
#yum install bind*- Cách 2: Cài từ source
- Bứơc 1: Lên trang web sau www.isc.org down về gói có đuôi tar.gz và lưu vào /var/tmp

- Bứơc 2: chuyển đến thư mục chứa file mới down về và giải nén
#cd /var/tmp/
#tar –xvzf bind-version.tar.gzThay thế bind-version với tên file down về tại thời điểm hiện tại
- Bứơc 3: Chuyển đến thư mục vừa giải nén và biên dịch nó như sau:
#cd bind-version
#./configure
#make
#make test
#make install


2. Cấu hình Master DNS
Domain: tinit.net
IP: 192.168.1.200
Vì cài gói bind-chroot, cho nên thư mục chứa file cấu hình sẽ nằm ở /var/named/chroot/..

Đầu tiên cấu hình file named.conf như sau
[root@TinIT etc]# vi /var/named/chroot/etc/named.conf
acl mysubnet { <-- tạo ACL
192.168.1.0/24;
127.0.0.1;
};

options {
directory "/var/named";
notify no;
auth-nxdomain yes;
listen-on { <-- chỉ cho phép lắng nghe trên mysubnet
mysubnet;
};
allow-query { mysubnet; };
allow-notify {mysubnet;};
version ""; <-- Không hiển thị thông tin version của bind
};

controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};

zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};

zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "0.0.127.in-addr.arpa.zone";
allow-update { none; };
};

include "/etc/rndc.key";

zone "tinit.net" {
type master; <-- kiểu dns là master
file "tinit.net.zone"; <-- file zone thuận
allow-query{mysubnet;};
allow-update{mysubnet;};
};

zone "1.168.192.in-addr.arpa" {
type master;
file "1.168.192.in-addr.arpa.zone"; <-- file zone nghịch
allow-query{mysubnet;};
allow-update{mysubnet;};
};-Thông tin file cấu hình zone
Name: tên gốc của zone. Ký tự @ tham chiếu đến zone gốc hiện tại trong /etc/named.conf

Class: IN hoặc Internet - định nghĩa địa chỉ IP khi map thông tin trong BIND. Các classes khác dành cho các giao thức non-internel và hiếm khi được sử dụng

Type: loại bản ghi DNS

Name-server: tên đầy đủ của name server chính của bạn.

Email-address: Địa chỉ email của người quản trị name server.

Serial-no: một số serial cho cấu hình hiện tại. bạn có thể dùng định dạng ngày tháng YYYYMMDD, theo sau là 1 chữ số.

Refresh: Khoảng thời gian mà slave DNS server sẽ check master DNS Server.

Retry: Khoảng thời gian Slave sẽ thử kết nối lại đến master sau khi bị lỗi

Expiry: Tổng khoảng thời gian slave nên thử lại để contact đến master trước khi data bị expired.

Minimum-TTL: Khi client tạo một query khôgn tồn tại trong sub domain, DNS server của bạn sẽ response là NXDOMAIN. Giá trị này định nghĩa thời lượng caching DNS của bạn bao gồm reponse đó.

Các bản ghi này có định dạng tương tự như SOA

NS: địa chỉ IP hoặc CNAME của name server

MX: tên mail server DNS

A: IP address của server

CNAME: tên bí danh của server

PTR: tên server đầy đủ khi phân giải ngược từ 1 địa chỉ IP

+ Nếu một key là trống, nó sẽ dùng lại key của bản ghi liền trước

-Cấu hình file zone thuận tinit.net.zone như sau:
[root@TinIT etc]# vi /var/named/chroot/var/named/tinit.net.zone
$TTL 86400
@ IN SOA tinit.net. root.tinit.net. (
2009063001 ; Serial
5H ; Refresh
3H ; Retry
1D ; Expire
1W ; TTL
);

@ IN NS dns.tinit.net.
@ IN MX 10 mail.tinit.net.

$ORIGIN tinit.net.

@ IN A 192.168.1.200
dns IN A 192.168.1.200
mail IN A 192.168.1.200
www IN A 192.168.1.200-Cấu hình file zone nghịch 1.168.192.in-addr.arpa.zone như sau:
$TTL 86400
@ IN SOA tinit.net. root.tinit.net. (
2009063001 ; Serial
5H ; Refresh
3H ; Retry
1D ; Expire
1W ; TTL
);

@ IN NS dns.tinit.net.

200 IN PTR tinit.net.
200 IN PTR dns.tinit.net.
200 IN PTR mail.tinit.net.
200 IN PTR www.tinit.net.Khai báo Prefer DNS Server
[root@TinIT etc]# vi /etc/resolv.conf
nameserver 192.168.1.200Khởi động lại dịch vụ named.
[root@TinIT ~]# service named restart
hoặc
[root@TinIT ~]# service named reload <-- chỉ cập nhật lại file cấu hình.


3. Kiểm tra dịch vụ named
-Xem file log
[root@TinIT ~]# tail /var/log/messages
Jun 30 22:37:02 TinIT named[2518]: listening on IPv4 interface eth0, 192.168.1.200#53
Jun 30 22:37:02 TinIT named[2518]: zone 'tinit.net' allows updates by IP address, which is insecure
Jun 30 22:37:02 TinIT named[2518]: zone '1.168.192.in-addr.arpa' allows updates by IP address, which is insecure
Jun 30 22:37:02 TinIT named[2518]: command channel listening on 127.0.0.1#953
Jun 30 22:37:02 TinIT named[2518]: zone 0.0.127.in-addr.arpa/IN: loaded serial 1997022700
Jun 30 22:37:02 TinIT named[2518]: zone 1.168.192.in-addr.arpa/IN: loaded serial 2009063001
Jun 30 22:37:02 TinIT named[2518]: zone localdomain/IN: loaded serial 42
Jun 30 22:37:02 TinIT named[2518]: zone localhost/IN: loaded serial 42
Jun 30 22:37:02 TinIT named[2518]: zone tinit.net/IN: loaded serial 2009063001
Jun 30 22:37:02 TinIT named[2518]: running
-Kiểm tra file cấu hình
[root@TinIT ~]# named-checkconf tinit.net /var/named/chroot/etc/named.conf
[root@TinIT ~]# named-checkzone tinit.net /var/named/chroot/var/named/tinit.net.zone
[root@TinIT ~]# named-checkzone tinit.net /var/named/chroot/var/named/1.168.192.in-addr.arpa.zone-Truy vấn domain tinit.net

[root@TinIT ~]# nslookup
> set type=any
> tinit.net
Server: 192.168.1.200
Address: 192.168.1.200#53

tinit.net
origin = tinit.net
mail addr = root.tinit.net
serial = 2009063001
refresh = 18000
retry = 10800
expire = 86400
minimum = 604800
tinit.net nameserver = dns.tinit.net.
tinit.net mail exchanger = 10 mail.tinit.net.
Name: tinit.net
Address: 192.168.1.200
>[root@TinIT ~]# host -t any tinit.net
tinit.net has SOA record tinit.net. root.tinit.net. 2009063001 18000 10800 86400 604800
tinit.net name server dns.tinit.net.
tinit.net mail is handled by 10 mail.tinit.net.
tinit.net has address 192.168.1.200

[root@TinIT ~]# dig tinit.net


4. Cấu hình Slave DNS
Tại Master DNS: thêm option allow-transfer, để cho phép Slave dns được update.
zone "tinit.net" {
type master;
file "tinit.net.zone";
allow-query{mysubnet;};
allow-update{mysubnet;};
allow-transfer {192.168.1.210;}; <-- chỉ ra IP của Slave DNS
};

zone "1.168.192.in-addr.arpa" {
type master;
file "1.168.192.in-addr.arpa.zone";
allow-query{mysubnet;};
allow-update{mysubnet;};
allow-transfer {192.168.1.210;}; <-- chỉ ra IP của Slave DNS
};Trong file zone thuận chỉ ra thêm 1 nameserver
@ IN NS dns.tinit.net. <-- Master
@ IN NS dns2.tinit.net. <-- Slave
dns IN A 192.168.1.200
dns2 IN A 192.168.1.210Tại Slave DNS: cài đặt cũng tương tự và cấu hình chỉnh 2 option vào zone.
zone "tinit.net" {
type slave; <-- kiểu dns là slave
file "slaves/tinit.net.zone"; <-- file zone thuận
masters {192.168.1.200;}; <-- chỉ IP Master dns
allow-query {mysubnet;};
allow-update {mysubnet;};
};

zone "1.168.192.in-addr.arpa" {
type slave;
file "slaves/1.168.192.in-addr.arpa.zone"; <-- file zone nghịch
masters {192.168.1.200;}; <-- chỉ IP Master dns
allow-query {mysubnet;};
allow-update {mysubnet;};
};Chú ý: 2 file zone sẽ được tự động phát sinh để lưu thông tin của Master DNS. Và được lưu lại thư mục /var/named/chroot/var/named/slaves/..

Khai báo Prefer DNS Server
[root@TinIT etc]# vi /etc/resolv.conf
nameserver 192.168.1.210 <-- Slave DNS
nameserver 192.168.1.200 <-- Master DNS


4. Bảo mật thông tin transfer
Đầu tiên dùng lệnh sau để tạo cặp key.
[root@TinIT ~]# dnssec-keygen -a hmac-md5 -b 256 -n HOST rndckey
Krndckey.+157+06920

[root@TinIT ~]# cat Krndckey.+157+06920.private
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: 3SZP+nUWTz/PzguR3DkOCEQM3ogZeV+datx7+wTH1wc=Copy chuỗi key vừa tạo. Mở file rndc.key và sửa lại như sau:
key "rndckey" {
algorithm hmac-md5;
secret "3SZP+nUWTz/PzguR3DkOCEQM3ogZeV+datx7+wTH1wc=";
};Mở file named.conf và thêm dòng.
include "/etc/rndc.key";

0 nhận xét:

Đăng nhận xét

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by netdohoa | Support for this Theme dohoavietnam