AdminTalk - Talk to Learn

Navigation
Go Back   AdminTalk - Talk to Learn > Server Operating System > Linux Server
Linux Server Cài đặt, bảo mật, kinh nghiệm quản trị máy chủ Linux: CentOS, OpenSuSe, RedHat, Debian ...

Đề mục chính

Cấu trúc diễn đàn
Thông tin tổng hợp
Thông báo và quy định chung
Đóng góp ý kiến
Những bài viết có giá trị
Tin tức công nghệ
•• Tin tức công nghệ thông tin
•• Doanh Nghiệp & Người Tiêu Dùng
Premium Server, Hosting Support
Web Hosting / Domain
•• Kiến thức cơ bản về Web Hosting/Domain
•• Plesk - CPanel
Server / VPS
•• Kiến thức cơ bản Server - VPS
•• Server Review/ Hardware
•• Mail Server - AntiSPAM
Virtuozzo - VMWare - HyperV
•• For Windows
•• For Linux
Security
•• Mạng Wan - Lan
•• Internet - Virus - Hacker
VoIP
•• Kiến Thức Cơ Bản VoIP
•• Phần Cứng VoIP
•• Phần Mềm VoIP
•• Nhà cung cấp VoIP
Server Operating System
Linux Server
Windows Server 200x
Computer Supports and Discussion
Operating System
•• Hệ điều hành Linux
•• Hệ điều hành Windows
•• Hệ điều hành Mac
•• Hệ điều hành Chrome
Laptop, Netbook
Hardware
•• Cpu Intel
•• Cpu AMD
•• PSU, Overclocking & Cooling
•• Mainboard & Memory
•• Đồ họa máy tính
•• Kinh nghiệm
Software
•• Linux Apps
•• Windows Apps
Webmaster Area
Webmaster talk
Programming Language
•• HTML & CSS
•• PHP
•• C++ / C#
•• .NET
•• Java
•• Other
Graphic & Mutimedia
SEO (Search Engine Optimization)
Browsers
•• Mozilla Firefox
•• Chrome
•• Internet Explorer
Thủ Thuật Internet
Thương mại điện tử
•• Hình thức thanh toán
•• Giải pháp
HiTech, Mobile, Movies, Music, eBooks, Relax
Tablet PC
•• iPad
Mobile
•• iPhone
•• BlackBerry
•• Others
Movies
•• Download phim HD
•• Download phim DVD
Music
•• Download nhạc Lossless Album
•• Download nhạc Lossless tuyển chọn
eBooks - Tài liệu
•• Tin học - Lập trình
•• Khoa học - Kỹ thuật
•• Ngoại Ngữ
•• Tutorials - Training
•• Kinh tế
•• Thể Loại Khác
Bài học trong cuộc sống
AdminTalk – Talk to You
Introduce Youself
Off topic/ Chatting
Mua bán - Rao vặt - Tuyển dụng
Quảng cáo
Tuyển dụng

Bầu chọn mới nhất
Bạn nghĩ sao về công nghệ USB 3.0 ?

Rất tuyệt! Sẽ sử dụng ngay nếu được bán trên thị trường: 47.37%

Tốt hơn USB 2.0 , nhưng giá có thể mắc hơn nhiều: 42.11%

Bình thường thôi, công nghệ luôn thay đổi mà: 10.53%

Không quan tâm lắm: 0%
Voters: 38. You may not vote on this poll

Thống kê
Đề tài: 10641
Bài gửi: 12205
Thành viên: 20,207
Thành viên tích cực: 81
Xin cùng nhau chào đón thành viên mới nhất: buixuantu
Kỷ lục: 624 người đã ghé thăm 17/11/2010 lúc 06:16 AM.
Thành viên mới:
Hôm qua
- buixuantu
Hôm qua
- baophuc0711
08/02/2012
- ddvtien
08/02/2012
- thanhtam1028
08/02/2012
- goodhealthvn1
08/02/2012
- honghobao286
07/02/2012
- condau
07/02/2012
- timlaibautroi7408
07/02/2012
- NguyenLien
07/02/2012
- quydona

Số người đang xem
View Who's Online Thành viên: 2
Khách: 97
Tổng: 99
Nhóm: 0
Nhóm:  
Thành viên:  aviomobile, aviovn8
Mở Sổ Bạn Bè

Trả lời
 
LinkBack Ðiều Chỉnh Kiếm Trong Bài Xếp Bài

  #1 (permalink)
Old 06/04/2010, 10:08 AM
Thiết lập DNS server với DJBDNS trên nền FreeBSD

IrimiNage
Admintalk's SMod
love talking
 
IrimiNage's Avatar
 
Tham gia ngày: Mar 2010
Bài gởi: 219
My Mood:
Thanks: 0
Thanked 25 Times in 24 Posts
VP: 0.00
Donate
Thiết lập DNS server với DJBDNS trên nền FreeBSD

1 Vì sao, khi nào dùng DJBDNS
Gói djbdns, gói phần mềm DNS server nổi tiếng của Daniel J. Bernstein, có nhiều ưu điểm:

* Nhanh: trong một benchmark [6], djbdns mất bình quân 327 ms để giải xong một tên miền, trong khi BIND mất 5179 ms.
* Gọn: djbdns chỉ có 7000 lệnh, BIND có 100000 [6, 8].
* Yêu cầu thấp: djbdns chỉ chiếm dụng khoảng 2 MB khi mới khởi động và khoảng 10 MB sau nửa triệu truy vấn, trong khi ở BIND con số tương ứng lần lượt là 30 MB và 57 MB [6].
* Bảo mật cao: trong suốt lịch sử 19 năm của mình (1991 – 2009) djbdns chỉ có 2 lỗi đã được phát hiện. Còn BIND chỉ trong 19 năm (1983 – 2002) đã có 672 lỗi [9].
* Thông dụng: theo một thống kê tháng 11/2008, Internet có 78,1 triệu tên miền .com, trong đó ít nhất 4,6 triệu được đặt trên các máy chủ sử dụng djbdns. Với số lượng đó, djbdns đứng thứ tư về độ thông dụng, chỉ sau BIND (20,6 triệu), MyDNS (17,8 triệu), và PowerDNS (6,6 triệu) [7].

Với các ưu điểm đó, djbdns có thể dùng được trong mọi trường hợp, và đặc biệt thích hợp trong trường hợp phần cứng thấp và tải lớn.


2 Cấu hình tổng thể
Gói phần mềm djbdns có vài chương trình, trong đó chúng ta sẽ cài đặt hai chương trình chính: tinydns và dnscache. Tinydns là chương trình chuyên dùng để làm DNS server có thẩm quyền (authoritative), nghĩa là có nhiệm vụ công bố các địa chỉ Internet của miền nào đó mà chúng ta sở hữu, ví dụ, mycompany.com.Dnscache là chương trình chuyên dùng để làm DNS cache, nghĩa là có nhiệm vụ tìm hộ địa chỉ Internet của mọi miền, kể cả mycompany.com.

Hai chương trình này sẽ được cài đặt lên cùng một máy tính có 1 NIC, mà chúng ta sẽ gọi là máy chủ DNS, và sẽ được cấu hình cùng lắng nghe trên cổng 53 nhưng phải là trên các interface khác nhau (nói chính xác hơn, trên các địa chỉ IP khác nhau). Chương trình dnscache sẽ được cấu hình lắng nghe trên interface chính (ví dụ, 192.168.12.10) và chỉ phục vụ các client cục bộ (ví dụ, 192.168.0.0/16 và 10.0.0.0/24). Chương trình tinydns sẽ được cấu hình lắng nghe trên loopback interface (ví dụ, 127.0.0.1).

Mọi DNS client cục bộ, kể cả resolver (DNS client của chính bản thân máy chủ DNS), sẽ được cấu hình để truy vấn địa chỉ Internet ở interface chính. Tại đó, dnscache sẽ tìm kiếm câu trả lời trong cache và nếu không tìm thấy, sẽ lần lượt truy vấn theo dây chuyền bắt đầu từ các DNS server có thẩm quyền giải tên miền gốc (root) lần đến tận DNS server có thẩm quyền giải tên miền cần hỏi để có câu trả lời cuối cùng.

Có một ngoại lệ mà chúng ta sẽ thực hiện là nếu tên miền cần tìm thuộc mycompany.com hoặc nếu địa chỉ IP cần giải (ngược) là địa chỉ IP mạng cục bộ (ví dụ, 192.168.18.10), dnscache sẽ không lần theo dây chuyền các DNS server có thẩm quyền mà sẽ lập tức chuyển truy vấn sang loopback interface (127.0.0.1) cho tinydns giải đáp ngay. Ngoại lệ như thế là không cần thiết nếu như tinydns của chúng ta đã được uỷ quyền (delegated) của nhà đăng ký DNS cho phép quản lý miền mycompany.com. Nhưng thực tế do hợp đồng với nhà đăng ký, chúng ta không được uỷ quyền quản lý miền mycompany.com. Tinydns của chúng ta không tồn tại trong cơ sở dữ liệu của nhà đăng ký và do đó, chính thức mà nói thì nó không phải là DNS server có thẩm quyền giải tên mycompany.com cho bất kỳ DNS client nào. Muốn tinydns có thể phục vụ được thì phải làm ra ngoại lệ. Cũng vì lý do đó, tinydns chỉ phục vụ riêng cho những client trong mạng cục bộ chứ không thể phục vụ công chúng được. Ngoại lệ trên đây là duy nhất. Ta sẽ không cấu hình dnscache dùng bất cứ DNS forwarder nào khác, dù là server của ISP hay là server có uy tín như OpenDNS,...

Do tính năng đã được lập trình sẵn, dnscache sẽ lưu lại mọi câu trả lời trong cache để phục vụ cho những truy vấn về sau và để bảo mật, cache này chỉ nằm trong RAM và sẽ bị xoá khi khởi động. Tuy vậy, trong trường hợp (hết sức đặc biệt) nào đó ta vẫn có thể cho dnscache lưu cache ra đĩa cứng bằng miếng vá tính năng PERSISTENT CACHE.

Bài này ghi chép quy trình cài đặt và cấu hình djbdns v.1.05 trên hệ điều hành FreeBSD v.8. Các lý giải sâu về cấu hình tổng thể, các giải thích chi tiết từng bước của quá trình cài đặt, hay các phương pháp kiểm tra và giải quyết trục trặc có thể tìm thấy ở trong những nguồn trực tuyến, rất đầy đủ và phong phú, kể cả bằng tiếng Việt (xem danh mục tài liệu tham khảo).


3 Cài đặt và cấu hình chi tiết
3.1. Cài đặt, tạo môi trường
1. Cập nhật port collection.
Code:
portsnap fetch install
2. Biên dịch và cài đặt gói hỗ trợ ucspi-tcp.
Code:
cd /usr/ports/sysutils/ucspi-tcp/; make install clean
3. Biên dịch và cài đặt gói hỗ trợ daemontools.
Code:
cd /usr/ports/sysutils/daemontools/; make install clean
4. Biên dịch và cài đặt djbdns.
Code:
cd /usr/ports/dns/djbdns
 make install clean
Chú ý, khi make config, có thể chọn một số miếng vá bổ sung tính năng cần thiết. Chẳng hạn như PERSISTENT NMAP, SRV RECORD (hỗ trợ SRV record), PERSISTENT CACHE (hỗ trợ DNS cache trên ổ cứng), IPV6 (hỗ trợ giao thức IP v.6), v.v... mà chúng ta có thể chọn thêm, nếu cần. Bài này hướng dẫn này thực hiện với cấu hình mặc định, không có miếng vá thêm nào.

5. Cấu hình svscan – bộ quản lý service trong gói phụ trợ daemontools.
Code:
mkdir /var/service 
 fetch -o /usr/local/etc/rc.d/services.sh \
 http://www.tnpi.biz/internet/mail/toaster/start/services.txt 
 chmod 755 /usr/local/etc/rc.d/services.sh 
 ln -s /usr/local/etc/rc.d/services.sh /usr/local/sbin/services 
 rehash
6. Khởi động các dịch vụ. Chú ý hiện thời ta chưa cài đặt dịch vụ nào. Lệnh “khởi động” này thuần túy chỉ để kiểm tra rằng svscan đã thực sự hoạt động được. Sau khi kiểm tra ta lại tắt các dịch vụ. Nếu gặp trục trặc với svscan thì giải quyết trục trặc trước khi đi tiếp.
Code:
services start 
 ps -aux | grep sv
 services stop
7. Các service sẽ sử dụng ba account khác nhau, mà ta sẽ đặt tên là dnscache, tinydns, dnslog. (Không nhất thiết phải đặt tên account như thế này mà có thể chọn những tên khác bất kỳ.) Mỗi account thuộc nhóm riêng của nó, với tên nhóm cùng tên với account. Hãy tạo ba nhóm này trước, bằng cách viết thêm trong file /etc/group ba dòng
Code:
dnscache:*:54: 
 tinydns:*:55: 
 dnslog:*:56:
rồi tạo ba account tương ứng bằng lệnh adduser.

Trong đó, 54, 55, 56 là các số hiệu GID và UID mà chúng ta chọn đặt cho các account và nhóm mới. Nếu các số này đã bị chiếm dụng thì chúng ta có thể dùng số khác bất kỳ.

9. Tạo thư mục làm việc cho djbdns.
Code:
mkdir /var/dns
3.2. Cấu hình dnscache
1. Cấu hình dnscache để nó dùng hai trong số ba account vừa tạo (dnscache và dnslog), làm việc trong thư mục con /var/dns/dnscache (mà nó sẽ tự tạo ra), và lắng nghe trên interface chính (192.168.12.10).
Code:
dnscache-conf dnscache dnslog /var/dns/dnscache 192.168.12.10
Chú ý. dnscache-conf là lệnh ngoại trú nằm trong /usr/local/bin. Nếu thư mục đó không nằm trong PATH thì hãy gõ lệnh trên đầy đủ đường dẫn.

2. Đưa dnscache vào danh mục service quản lý bởi svscan bằng cách tạo trong /var/service một soft link đến /var/dns/dnscache.
Code:
ln -s /var/dns/dnscache /var/service
3. Trong thư mục /var/dns/dnscache/root/ip đã có một file rỗng tên là 127.0.0.1. Ý nghĩa của file này là dnscache đã (mặc định) được phép phục vụ localhost (127.0.0.1). Để cho phép nó phục vụ các client thuộc mạng cục bộ, ví dụ, 192.168.0.0/16 và 10.0.0.0/24, ta cũng tạo ra các file rỗng tương tự như thế.
Code:
touch /var/dns/dnscache/root/ip/192.168 
 touch /var/dns/dnscache/root/ip/10.0.0
4. Cấu hình resolver (tức DNS client trên chính bản thân máy chủ DNS) để nó sử dụng dịch vụ của dnscache bằng cách viết lại file /etc/resolv.conf với nội dung mới như sau.
Code:
nameserver 192.168.12.10
5. Khởi động dịch vụ bằng lệnh services start hoặc services restart. Kiểm tra khẳng định rằng dnscache đã hoạt động đúng, nghĩa là đã giải được các tên Internet ngoại trừ các tên mycompany.com và giải ngược được các địa chỉ IP Internet ngoại trừ các địa chỉ IP cục bộ bằng các lệnh như ping, host, dig,... hay các client chuyên dùng khác trong bộ djbdns như dnsip, dnsname,... chạy trên máy chủ DNS và trên mọi máy khác trong mạng cục bộ.

3.3. Cấu hình tinydns
1. Cấu hình tinydns để nó dùng hai trong ba account dịch vụ vừa tạo (tinydns và dnslog), làm việc trong thư mục con /var/dns/tinydns (mà nó sẽ tự tạo ra), và lắng nghe trên loopback interface (127.0.0.1).
Code:
tinydns-conf tinydns dnslog /var/dns/tinydns 127.0.0.1
Chú ý. Tương tự như ở đoạn trên, tinydns-conf là lệnh ngoại trú trong /usr/local/bin. Nếu thư mục ấy không nằm trong PATH thì hãy gõ lệnh trên có đường dẫn.

2. Đưa tinydns vào danh mục dịch vụ quản lý bởi svscan bằng cách tạo trong /var/service một softlink đến /var/dns/tinydns.
Code:
ln -s /var/dns/tinydns /var/service
3. Soạn thảo file dữ liệu chứa các địa chỉ DNS, có tên là /var/dns/tinydns/root/data. Ví dụ một file dữ liệu sẽ được trình bày trong đoạn tiếp theo.
Code:
cd /var/dns/tinydns/root 
 le data
Chú ý. FreeBSD v.8 được cài đặt mặc định với các trình biên tập vi và ee. Còn le là một trong số hàng trăm trình biên tập khác mà muốn dùng thì phải cài riêng.

4. Dịch file dữ liệu dạng văn bản nói trên thành một file cơ sở dữ liệu dạng nhị phân có tên là data.cdb cất trong cùng thư mục.
Code:
make
5. Khởi động dịch vụ bằng lệnh services restart. Kiểm tra khẳng định rằng tinydns đã hoạt động đúng, nghĩa là đã giải được các tên của mycompany.com và giải ngược được các địa chỉ IP tương ứng của miền này bằng một client chạy ngay trên máy chủ DNS.

3.4. Một file dữ liệu cho tinydns

Đây là file /var/dns/tinydns/root/data soạn thảo ở bước 3 trong thủ tục 3.3 nói trên. Thay vì viết ra các luật cú pháp dài dòng, ta đưa ra một ví dụ so sánh một BIND zone file với một file dữ liệu tương đương cho tinydns.

Nếu giả sử dùng BIND để thiết lập DNS server cho một vùng mycompany.com mà file dữ liệu /etc/namedb/mycompany.com.hosts có nội dung
Code:
$ttl 38400
 mycompany.com.     IN    SOA    ns1.mycompany.com. itdept.mycompany.com. (
 	1245253211
 	10800
 	3600
 	604800
 	38400 )
 mycompany.com.     IN    NS     ns1.mycompany.com.
 mycompany.com.     IN    MX  10 mx1.mycompany.com.
 ns1.mycompany.com. IN    A      127.0.0.1
 mx1.mycompany.com. IN    A      192.168.12.16
 dc1.mycompany.com. IN    A      192.168.10.11
 dc2.mycompany.com. IN    A      192.168.10.12
 ...
 web.mycompany.com. IN    A      192.168.18.10
 www.mycompany.com. IN    CNAME  web.mycompany.com
 ntp.mycompany.com. IN    CNAME  mx1.mycompany.com
thì khi dùng tinydns để thiết lập DNS server có thẩm quyền cho miền này, file dữ liệu /var/dns/tinydns/root/data tương đương sẽ có nội dung sau đây.
Code:
.mycompany.com::ns1.mycompany.com:604800
 .0.168.192.in-addr.arpa::ns1.mycompany.com:604800
 .1.168.192.in-addr.arpa::ns1.mycompany.com:604800
 ...
 .18.168.192.in-addr.arpa::ns1.mycompany.com:604800
 
 @mycompany.com::mx1.mycompany.com:86400
 =ns1.mycompany.com:127.0.0.1
 =mx1.mycompany.com:192.168.12.16
 =dc1.mycompany.com:192.168.10.11
 =dc2.mycompany.com:192.168.10.12
 ...
 =web.mycompany.com:192.168.18.10
 +www.mycompany.com:192.168.18.10
 +ntp.mycompany.com:192.168.12.16
Trong ví dụ trên, file dữ liệu của djbdns đã chứa cả danh sách các mạng mà tinydns có thẩm quyền giải ngược địa chỉ IP.

3.5. Cấu hình dnscache để chuyển truy vấn mycompany.com sang tinydns

1. Ta sẽ cấu hình dnscache để forward sang tinydns mọi truy vấn liên quan đến các miền mà tinydns phụ trách. Hãy xác định thư mục làm việc.
Code:
cd /var/dns/dnscache/root/servers
2. Để forward các truy vấn về tên, ta tạo ra trong thư mục này một file có tên là tên miền cần giải (mycompany.com) và có nội dung là địa chỉ IP của tinydns (127.0.0.1).
Code:
echo 127.0.0.1 > mycompany.com
3. Để forward các truy vấn về địa chỉ IP, ta tạo ra trong thư mục này các file có tên là tên miền cần giải ngược và có cùng nội dung như trên. Chú ý rằng mỗi tên file như thế tận cùng bằng dấu chấm.
Code:
echo 127.0.0.1 > 0.168.192.in-addr.arpa.
 echo 127.0.0.1 > 1.168.192.in-addr.arpa.
 ... 
 echo 127.0.0.1 > 18.168.192.in-addr.arpa.
4. Khởi động các dịch vụ bằng lệnh services restart. Kiểm tra rằng cơ chế forward dnscache → tinydns đã hoạt động đúng, tức là đã giải được các tên của miền mycompany.com và giải ngược được các địa chỉ IP tương ứng của miền này cho tất cả các client trong mạng cục bộ.

(Nguồn: HVA)


Bài viết cùng chủ đề:
IrimiNage vẫn chưa có mặt trong diễn đàn  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Trả Lời Với Trích Dẫn
Trả lời

Bookmarks

Tags
admin server, admintalk, bao mat, bảo mật, kinh nghiệm, kinh nghiem, linux, linux server, may chu, máy chủ, server, server admin, support, unix


Ðang đọc: 1 (0 thành viên và 1 khách)
 
Ðiều Chỉnh Kiếm Trong Bài
Kiếm Trong Bài:

Kiếm Chi Tiết
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Trackbacks are Mở
Pingbacks are Mở
Refbacks are Mở

Chuyển đến



Múi giờ GMT. Hiện tại là 05:54 AM.
Powered by: vBulletin - Copyright © 2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
www.AdminTalk.vn
Powered by vBCMS® 1.2.5 ©2002 - 2012 VinaCIS® Corporation