4/25/12

cài đặt, cấu hình dịch vụ mạng DNS trên Linux

Dịch vụ mạng trên linux tiếp theo itviet360 giới thiệu là dịch vụ DNS trên Linux. Giới thiệu sơ qua về lí thuyết. Các bạn có thể tìm trên mạng rất nhiều lý thuyết về DNS.
cai dat cau hinh dich vu dns tren linux
Mô hình sử dụng
  1. Giới thiệu DNS
DNS (Domain Name System): là hệ thống phân giải tên miền.
Mỗi máy tính, thiết bị mạng tham gia vào mạng Internet đều giao tiếp với nhau bằng địa chỉ IP (Internet Protocol) .Để thuận tiện cho việc sử dụng và dễ nhớ ta dùng tên miền (domain name) để xác định thiết bị đó.Hệ thống tên miền (Domain Name System) được sử dụng để ánh xạ tên miền thành địa chỉ IP. Vì vậy, khi muốn liên hệ tới các máy, chúng chỉ cần sử dụng chuỗi ký tự dễ nhớ (domain name) như: www.hcmutrans.edu.vn , www.cn08a.com.., thay vì sử dụng địa chỉ IP là một dãy số dài khó nhớ.
Cấu trúc hệ thống tên miền
Domain root: Nó là đỉnh của nhánh cây của tên miền. Nó có thể biểu diễn đơn giản chỉ là dấu chấm “.”.
Top-level-domain: gồm vài kí tự xác định một nước, khu vưc hoặc tổ chức. Nó đươc thể hiện là “.us” , “.vn” , “.com” , “.edu” ….
Second-level-domain: Nó rất đa dạng rất đa dạng có thể là tên một công ty, một tổ chức hay một cá nhân.
Subdomain: Chia thêm ra của tên miền cấp hai trở xuống thường được sử dụng như chi nhánh, phòng ban của một cơ quan hay chủ đề nào đó.
......................
Phần cơ chế phân giải, phân loại DNS Server ... các bạn tham khảo internet.
2. Cài đặt và cấu hình DNS trên linux
2.1 Cài đặt
  • Các gói cài đặt cần:
- bind-*.rpm
- bind-chroot-*.rpm
- bind-libs-*.rpm
- bind-utils-*.rpm
Gói bind-chroot-*.rpm cung cấp cho người quản trị thư mục làm việc với các tập tin cấu hình DNS an toàn hơn chỉ cho phép các user có quyền root mới được phép truy cập: /var/named/chroot/etc/ và /var/named/chroot/var/named/ thay cho hai thư mục mặc định /etc/ và /var/named/.
Ngoài ra, cần cài đặt thêm gói thư viện caching-nameserver -*.rpm để cung cấp những file cấu hình mẫu phục vụ cho việc cấu hình dịch vụ DNS.
Các file cấu hình cần thiết:
• Tập tin cấu hình chính:
/var/named/chroot/etc/named.conf
• Tập tin phân giải thuận:
/var/named/chroot/var/named/cn08a.zone
/var/named/chroot/var/named/localhost.zone
• Tập tin phân giải nghịch:
/var/named/chroot/var/named/1.16.172.broadcast
/var/named/chroot/var/named/0.0.127.local
2.2 Cấu hình DNS
Đầu tiên ta sẽ định nghĩa Primary zone trong named.conf

// named.conf for Red Hat caching-nameserver
options {
listen-on port 53 { any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
// query-source address * port 53;
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "cn08a.info" IN {
type master;
file "cn08a.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.local";
allow-update { none; };
};
zone "1.16.172.in-addr.arpa" IN {
type master;
file "1.16.172.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
include "/etc/rndc.key";

Name Server demo trong bài này sử dụng domain “cn08a.info”, các tập tin cơ sở dữ liệu named.ca, cn08a.zone, localhost.zone, 1.16.172.broadcast, 0.0.127.local được lưu trữ trong thư mục /var/named/chroot/var/named/
Các options trên cùng cho phép máy chủ chấp nhận mọi request từ client gửi đến port 53
• Zone “.” Khi cần sẽ truy vấn đến tập tin named.ca – đây là tập tin chứa các root server chịu trách nhiệm quản lý toàn bộ request trên toàn thế giới.
• Zone “cn08a.info”: đây là domain chính mà DNS server của chúng ta sẽ quản lý. Khi cần nó sẽ truy vấn đến tập tin cn08a.zone – chứa các tên phân giải thuận cho domaincn08a.info.
• Zone “localhost” : Khai báo việc phân giải thuận cho localhost.
• Zone “1.16.172.in-addr.arpa” : truy vấn đến tập tin 1.16.172.broadcast – chứa tên phân giải nghịch của domain cn08a.info .
• Zone “0.0.127.in-addr.arpa” : Khai báo việc phân giải nghịch cho localhost
Type của các zone trong trường hợp này là master vì đây là master server, trên secondary server thì type sẽ là slave.
Cấu hình tập tin phân giải thuận “cn08a.zone”:

$TTL 86400
@ IN SOA dnsserver.cn08a.info. root (
2012030701 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS dnsserver.cn08a.info.
IN MX 1 mail.cn08a.info.
IN A 172.16.1.1
dnsserver IN A 172.16.1.1
www IN A 172.16.1.2
mail IN CNAME www.cn08a.info.
ftp IN CNAME dnsserver.cn08a.info.

forum IN A 172.16.1.1
IN MX 1 mail.forum.cn08a.info.
mail.forum IN A 172.16.1.2
www.forum IN CNAME mail.forum.cn08a.info.
ftp.forum IN CNAME forum.cn08a.info.

Cấu hình tập tin phân giải thuận “1.16.172.broadcast”:

$TTL 86400
@ IN SOA dnsserver.cn08a.info. root (
2012250201 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS dnsserver.cn08a.info.
1 IN PTR cn08a.info.
IN PTR dnsserver.cn08a.info.
2 IN PTR www.cn08a.info.

1 IN PTR forum.cn08a.info.
2 IN PTR mail.forum.cn08a.info.

...............
Ý nghĩa của các Resource Record DNS 
Time-to-live number: thời gian dữ liệu được lưu trên Caching Server - giá trị này được dùng cho tất cả các Resource Record trong cơ sở dữ liệu. Giá trị này cho những server khác Cache lại dữ liệu trong 1 khoảng thời gian nhất định TTL.
Ví dụ: 86400; TTL là 1 ngày
@: chính là domain được khai báo trong named.conf. Như thông tin cấu hình ở trên, domain là cn08a.info, do vậy mọi hostname được khai báo sau này không cần ghi đầy đủ tên theo dạng FQDN.
IN: cho name server biết đây chính là record Internet.
SOA (Start Of Authority): Trong mỗi zone chỉ có duy nhất một record SOA. SOA chỉ ra rằng máy chủ Name Server là nơi cung cấp thông tin tin cậy từ dữ liệu có trong Zone.
Dnsserver.cn08a.info. là FQDN của name server cho domain.
Root.cn08a.info.: địa chỉ e-mail cho người quản trị domain, địa chỉ e-mail như vậy thiếu dấu @, nhưng thực ra nó được thay bởi dấu chấm. Và địa chỉ thật sự là root@cn08a.info.
• Các thông số được khai báo sau chỉ có tác dụng khi trong domain có secondary server:
Serial number: Khi một Slave Nameserver kết nối với Master Server để lấy dữ liệu, trước tiên nó sẽ kiểm tra số Serial, nếu số Serial của master lớn hơn tức là dữ liệu đã hết hạn sử dụng và nó sẽ load lại dữ liệu mới. Vì vậy khi ta cập nhật dữ liệu trên name server ta tăng số serial. Thông thường định dạng theo thời gian YYYYMMDDNN
Ví dụ: 2012080701
Refresh number: khoảng thời gian mà Slave biết phải kiểm tra lại dữ liệu có còn sử dụng được không.
Ví dụ: 3H; Refresh sau 3 giờ
Retry number: Nếu Slave không thể kết nối với Master Nameserver sau một khoảng thời gian Refresh thì nó sẽ cố gắng kết nối lại sau khoảng thời gian retry. Giá trị này nhỏ hơn giá trị Refresh.
Ví dụ: 15M; Retry sau 15 phút
Expiry number: nếu Slave không thể kết nối với Master server sau khoảng thời gian Expiry này, thì slave sẽ không trả lời cho vùng dữ liệu đó khi được truy vấn, vì nó cho rằng dữ liệu này đã quá cũ. Giá trị này phải lớn hơn giá trị Refresh và Retry.
Ví dụ: 1W; Expiry sau 1 tuần
NS (Name Server): Mỗi Name Server cho zone sẽ có 1 NS record. Record này xác định tên các server chịu trách nhiệm quản lý các record trong domain.
A: Ánh xạ tên sang địa chỉ IPv4.
CNAME (Canonical Name): Record này tạo tên Alias trỏ vào một tên Canonical. Tên Canonical là tên host trong Record A hoặc lại trỏ vào 1 tên Canonical khác.
MX (Mail Exchanger): DNS dùng record MX để thông báo cho các site khác mail server của mình.
PTR (Pointer): dùng để ánh xạ địa chỉ sang tên.
..................

Đến đây, việc cấu hình hoàn tất, chúng ta cần tiến hành khởi tạo lại dịch vụ named:

[root@centos_server ~]# service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
[root@centos_server ~]# chkconfig named on

Kiểm tra phân giải tên miền:
Đầu tiên, cần cấu hình Prefer DNS của server thông qua file /etc/resolv.conf:

Nameserver 127.0.0.1
Domain cn08a.info

Kiểm tra xem dịch vụ named đã hoạt động hay chưa:

[root@centos_server ~]# pgrep named
8758 =========== Dịch vụ hoạt động tốt


Truy vấn tên miền và địa chỉ IP thông qua lệnh host:

[root@centos_server ~]# host -t a www.cn08a.info
[root@centos_server ~]# host -t mx mail.cn08a.info

Truy vấn tên miền và địa chỉ IP thông qua lệnh nslookup trên nhiều nền hệ điều hành:

[root@centos_server ~]# nslookup

hu thập các thông tin về DNS server trong domain thông qua lệnh dig:

[root@centos_server ~]# dig @dnsserver cn08a.info A

Kiểm tra phân giải trên Client:
Để có thể tiến hành phân giải tên miền trên Client, chúng ta cần phải đảm bảo các yếu tố sau:
• Port 53 trên Server đã được mở
Để mở port 53, chúng ta cấu hình trong file /etc/sysconfig/iptables:
||
• Prefer DNS trên máy Client được trỏ về máy Server DNS.
- Đối với máy linux:
Cấu hình DNS trên file /etc/resolv.conf

search cn08a.info
nameserver 172.16.1.1

Kiểm tra phân giải bằng lệnh nslookup:

[root@www ~]# nslookup

- Đối với máy Windows:
Trỏ Prefer DNS về máy Server 172.16.1.1
Trỏ DNS
 Sau đó ta kiểm tra = lệnh ping:
---------------------------------------------
Mình gửi Video Demo chi tiết cho các bạn comment yêu cầu !
---------------------------------------------
PS: Video demo dịch vụ DNS Linux mình nén lại thấy dung lượng nhỏ nên Upload nên MF rồi. Các bạn cần thì Download tại http://www.mediafire.com/?117zkz9dcs6ebf7
Chúc các bạn thành công !

4/24/12

Dịch vụ mạng DHCP trên Linux - cài đặt - cấu hình

Bài viết này mình triển khai dịch vụ DHCP trên Linux. Cách cấu hình và theo dõi, kiểm thử, sử dụng dịch vụ DHCP trên Linux.
Mô hình chung các bạn xem ở Dịch vụ mạng trên linux
1. Giới thiệu DHCP
DHCP (DYNAMIC HOST CONFIGURATION PROTOCOL): Cấp phát địa chỉ IP động, có khả năng cấp phát một cách tự động tất cả các thông số về địa chỉ IP cho những máy tham gia vào hệ thống mạng.
Cơ chế hoạt động DHCP

2. Cài đặt và cấu hình DHCP trên Linux
2.1 Cài đặt
  • Gói cần cài đặt:
     dhcp-*
Kiểm tra xem gói dịch vụ DHCP đã được cài đặt hay chưa:

[root@centos_server ~]# rpm -qa dhcp
dhcp-3.0.1-68.el4             # Gói dhcp-3.0.1-68.el4 đã được cài đặt


Nếu gói dhcp chưa được cài đặt thì chúng ta tiến hành cài đặt. Trên file iso của centOS có tất cả các gói cài đặt. Hoặc các bạn có thể install online
Sau khi gói dhcp được cài đặt nó sẽ tạo ra một file nhưng file này chỉ là file rỗng.Ta có thể tìm thấy file cấu hình mẫu của nó ở đây:
/usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample
2.2 Cấu hình DHCP Server
Để tiến hành cấu hình chúng ta cần copy file cấu hình mẫu dhcpd.conf.sample và đổi tên thành /etc/dhcp.conf

[root@centos_server ~]# cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcpd.conf

Nội dung file cấu hình dhcpd.conf như sau:

ddns-update-style interim;
ignore client-updates;

subnet172.16.1.0 netmask 255.255.255.0 {

# --- default gateway
option routers 172.16.1.1;
option subnet-mask 255.255.255.0;

option nis-domain "cn08a.info";
option domain-name "cn08a.info";
option domain-name-servers 172.16.1.1;

option time-offset -18000; # Eastern Standard Time
# option ntp-servers 172.16.1.1;
# option netbios-name-servers 172.16.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;

range dynamic-bootp 172.16.1.2 172.16.1.100;
default-lease-time 21600;
max-lease-time 43200;

# we want the nameserver to appear at a fixed address
# **** Phan danh cho cau hinh cap phat IP tinh cho mot so may nhat dinh. ***
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}


Mô hình sử dụng subnet 172.16.1.0/255.255.255.0 :
Trong đó :
option routers : Khai báo default gateway.
option subnet-mask : Khai báo subnet mask.
option nis-domain : Tùy chọn tên miền chứng thực.
option domain-name : Khai báo Domain.
option domain-name-servers : Khai báo Dns server.
range dynamic-bootp : Khai báo dãy IP cấp phát.
default-lease-time 21600 : Thời gian sống của mỗi IP được cấp.
max-lease-time 43200 : Thời gian sống tối đa của mỗi IP được cấp
Sau khi cấu hình hoàn tất, để những thay đổi có hiệu lực ta cần khởi động lại dịch vụ deamon DHCP thông qua lệnh sau:

[root@centos_server ~]# service dhcpd restart
Shutting down dhcpd: [ OK ]
Starting dhcpd: [ OK ]
Tiến hành kiểm tra dịch vụ đã được cấu hình thành công hay không.

[root@centos_server /]# pgrep dhcpd
8010 #> Chỉ số ID này chứng tỏ dịch vụ đã hoạt động

Để đảm bảo dịch vụ DHCP khởi động cùng hệ thống ta chạy lệnh sau:

[root@centos_server /]# chkconfig dhcpd on

2.3 Theo dõi và sử dụng dịch vụ DHCP
Khởi động máy Client trong mạng để xin IP từ máy DHCP. Quá trình khởi động hoàn tất , dùng lệnh ipconfig /all đối với máy Windows và ifconfig trên máy linux để kiểm tra xem máy này có xin được IP từ máy DHCP không.
Kết quả trả về
Trên client Windows
  • Trên Linux
Để nhận được địa chỉ IP cấp phát từ server cần chỉnh lại thông số BOOTPROTO=dhcp trên card mạng nội bộ qua đường dẫn /etc/sysconfig/network-scripts/ifcfg-eth0.

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
HWADDR=00:0d:14:l1:12:90

Sử dụng lệnh ifconfig để xem các thông số cấu hình:

Eth0 Link encap:Ethernet HWaddr 00:0C:29:54:88:BA
inet addr:172.16.1.100 Bcast:172.16.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe54:88ba/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:299 errors:0 dropped:0 overruns:0 frame:0
TX packets:119 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:32827 (32.0 KiB) TX bytes:18034 (17.6 KiB)
Interrupt:169 Base address:0x2080

Hoạt động cấp phát địa chỉ ip và thông tin cấu hình mạng của dhcp server sẽ được ghi vào file log theo đường dẫn /var/lib/dhcp/dhcpd.leases

lease172.16.1.100 {
starts 2 2012/02/28 20:14:44;
ends 3 2012/02/29 02:14:44;
tstp 3 2012/02/29 02:14:44;
binding state active;
next binding state free;
hardware ethernet 00:0d:14:l1:12:90;
}
lease172.16.1.99 {
starts 2 2012/02/28 21:59:09;
ends 3 2012/02/29 03:59:09;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:75:8a:b5;
uid "\001\000\014)u\212\265";
client-hostname "black-fe4062c4f";
}
lease 10.10.10.98 {
starts 2 2012/02/28 23:16:59;
ends 3 2012/02/29 05:16:59;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:95:7a:a4;
}

DHCP server không thể làm làm việc nếu thiếu file dhcpd.leases. Nó được dùng trong những trường hợp service restart hay system reboot nó sẽ vẫn biết được những thông tin cấu hình mà nó đã cấp phát cho client, đảm bảo hệ thống vẫn làm việc bình thường.
Vì thế nếu chưa có file này, chúng ta cần tạo ra một file dhcpd.leases rỗng bằng lệnh:

touch /var/lib/dhcp/dhcpd.lease
Video demo mình sẽ gửi cho các bạn có yêu cầu comment để lại email bên dưới.
Update video Demo


Cảm ơn các bạn đã theo dõi
Chúc các bạn vui

4/21/12

Triển khai dịch vụ mạng trên linux

Đề tài: Triển khai các dịch vụ mạng trên Linux là một đề tài khá hay trong ngành quản trị mạng. Hầu hết chúng ta quen với các thao tác quản trị của Windows. Đề tài này do mình và 1 bạn của mình làm chung 1 nhóm, thời gian làm cũng không nhiều nên nhóm mình chỉ triển khai được các dịch vụ cơ bản của mạng sau:
Dịch vụ mạng Linux

  1. Dịch vụ DHCP
  2. Dịch vụ DNS
  3. Dịch vụ FTP
  4. Dịch vụ Web Server
  5. Dịch Mail Server
  6. Dịch vụ Proxy
  7. Dịch vụ Samba
MÔ HÌNH SỬ DỤNG CHUNG CHO CÁC DỊCH VỤ MẠNG LINUX TRÊN
dịch vụ mạng trên linux

    Các bạn có thể tham khảo mục lục Tại đây

    Mình sẽ triển khai chi tiết từng dịch vụ trong những bài tới để tiện các bạn theo dõi !

    _ Chúc các bạn vui _