Thứ Sáu, 31 tháng 8, 2012

Note Fedora (2)

Hôm nay ghost lại WinXP cho cái máy bàn chạy chậm như rùa. Cứ tưởng sẽ gặp nhiều vấn đề hay ho xảy ra  như là ko vào đc GRUB vì bị trình boot của Win ghi đè (vì PC đang dùng dualboot với cả Fedora ) nhưng ai dè chả có lỗi gì cả. Tuy nhiên gặp 2 vấn đề sau :
- Fedora vẫn vào bt, nhưng khi vào Win thì gặp thông báo: "Device not found .... Press any key to continue" và boot cảm giác hơi chậm
- Trong Windows vẫn có thể truy cập vào phân vùng cài Linux và có thể ghi đè lên đc và phân vùng đó trống không , báo free 99%

Cách giải quyết cho vấn đề 1, còn cái thứ 2 thì vào trong Disk Management rồi remove label của phân vùng đó đi để tránh người khác táy máy copy linh tinh thì vui :D. Sau đây là cách làm:
Gõ các lệnh sau ( nhớ su sang root trước ):
- grub2-set-default "Microsoft Windows XP Professional (on /dev/sda1)"
- grub2-mkconfig -o /boot/grub2/grub.cfg ( bước này là chính, còn cái bước trên chỉ là phụ, có thể làm hoặc ko (?) )

Thứ Năm, 2 tháng 8, 2012

Cấu hình Dynamic DNS trên CentOS 5.x

Đây là bài viết tiếp theo sau 2 bài DNS và DHCP trước. Vấn đề đặt ra ở đây là khi cấp phát các địa chỉ IP cho client xong thì làm thế nào để DNS cập nhập các bản ghi đó để tiện cho việc quản lý.
Ở bài này không phải cài lại từ đầu mà chỉ cần thay đổi 1 số nhỏ trong các file cấu hình của BIND và DHCP là xong.
1, Tạo key dành cho việc chứng thực giữa DHCP và BIND , tên của nó là rndckey :
- [root@srv2 ~]# rndc-confgen > /var/named/chroot/etc/rndc.key
2, Chỉnh sửa trong file rndc.key trong đường dẫn /var/named/chroot/etc/ : đặt dấu # tại các dòng in đậm, sao cho giống như file mẫu sau
# Start of rndc.conf
key "rndckey" {
     algorithm hmac-md5;
     secret "4zxdQwfZxHkp4puLMnkWCg==";
};
#options {
# default-key "rndckey";
# default-server 127.0.0.1;
# default-port 953;
#}
;
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndckey" {
# algorithm hmac-md5;
# secret "4zxdQwfZxHkp4puLMnkWCg==";
# };
#
# controls {
# inet 127.0.0.1 port 953
3, Chỉnh sửa file named.conf trong /var/named/chroot/etc/ : chú ý các dòng in đậm phải thêm vào

include "/etc/rndc.key";
options {
directory "/etc";
forwarders {208.67.222.222;};
};
zone "." {
type hint;
file "/etc/root.db";
};
zone "example.com" {
type master;
file "/var/named/example.com.db";
allow-update { key rndckey; };
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/var/named/1.168.192.db";
allow-update { key rndckey; };
};
4, Chỉnh sửa file dhcpd.conf trong /etc/ : lưu ý sửa cho đúng theo những đoạn đã in đậm

include "/etc/rndc.key";
authoritative;
server-identifier srv2.example.com;
ddns-domainname "example.com";
ddns-rev-domainname "in-addr.arpa";
ddns-updates on;
allow client-updates;

ddns-update-style interim;
DHCPARGS=eth1;
zone example.com. {
primary 192.168.1.2;
key rndckey;
}
zone 1.168.192.in-addr.arpa. {
primary 192.168.1.2;
     key rndckey;
}


subnet 192.168.1.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.1.2;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.1.2;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.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 192.168.1.20 192.168.1.100;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
host ns {
hardware ethernet 00:0C:29:FA:41:88;
fixed-address 192.168.1.50;
}
}
5, Trong thư mục /var/named/chroot/var/named , tạo sẵn 2 file có dạng sau và chmod cho chúng để có thể ghi vào các file :
- [root@srv2 named]# touch 1.168.192.db.jnl       ( bỏ )
- [root@srv2 named]# touch example.com.db.jnl     ( bỏ )
- [root@srv2 named]# chmod 776 example.com.db.jnl 1.168.192.db.jnl   ( bỏ )
- [root@srv2 named]# chmod 666 example.com.db 1.168.192.db
- [root@srv2 named]# chmod 770 /var/named/chroot/var/named/

6, Cấu hình selinux cho phép thực hiện update các bản ghi :
- [root@srv2 /]# setsebool -P named_write_master_zone=1

7, Khởi động lại các dịch vụ :
- [root@srv2 /]# /etc/init.d/named restart
- [root@srv2 /]# /etc/init.d/dhcpd restart

8, Test bằng cách để 1 client nhận địa chỉ IP động từ DHCP, sau đó nslookup chính địa chỉ IP mà máy đó nhận được , nếu có kết quả trả về tức là thành công. Lúc này trong đường dẫn /var/named/chroot/var/named/ sẽ tạo ra 2 file example.com.db.jnl1.168.192.db.jnl ( bắt đầu có client nhận IP từ DHCP thì lúc đó mới tạo ra 2 file trên )


P/S :
- Đã sửa dòng ddns-rev-domainname "1.168.192.in-addr.arpa"; trong file dhcpd.conf thành ddns-rev-domainname "in-addr.arpa"; vì nếu có 1.168.192 ở đầu thì nó sẽ cập nhập vào trong 1.168.192.db thành dòng có dạng
100.1.168.192    PTR   client.example.com.
 làm cho máy client không thể phân giải được địa chỉ. Nếu đúng thì phải là
100                     PTR   client.example.com.
- File 1.168.192.db sẽ trở thành có dạng như sau, file example.com.db cũng tương tự :
$ORIGIN .
$TTL 86400      ; 1 day
1.168.192.in-addr.arpa  IN SOA  example.com. root.example.com. (
                                2007121802 ; serial
                                14400      ; refresh (4 hours)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      srv2.example.com.
$ORIGIN 1.168.192.in-addr.arpa.
1                       PTR     srv1.example.com.
$TTL 10800      ; 3 hours
100                     PTR     client.example.com.
$TTL 86400      ; 1 day
2                       PTR     srv2.example.com.
3                       PTR     srv3.example.com.

- Gạch bỏ 1 số bước ở trên.
- Làm trên CentOS 5.7 nhanh hơn 5.5 ( ? )


Thứ Tư, 1 tháng 8, 2012

Cấu hình DHCP trên CentOS 5.x

Bài này sẽ là bài kế tiếp trong bộ bài viết xây dựng 1 hệ thống dịch vụ mạng chạy trên Linux 1 cách hoàn chỉnh.
Ở bài này, chúng ta sẽ đi xây dựng dịch vụ DHCP dạng step-by-step, còn DHCP là gì thì mọi người tìm hiểu thêm :D. Ở đây chúng ta cài DHCP lên máy chủ srv2 đã cài đặt DNS ( nếu muốn rõ hơn hãy xem lại bài DNS )

1, Cài đặt các gói cần thiết :
- Cho đĩa cài đặt CentOS
- [root@srv2 ~]# mkdir /media/cdrom
- [root@srv2 ~]# mount /dev/cdrom /media/cdrom
- [root@srv2 CentOS]# cd /media/cdrom/CentOS
- [root@srv2 CentOS]# rpm -Uvh dhcp-3.0.5-23.el5_5.2.i386.rpm
- [root@srv2 CentOS]# cd /  ( quay trở lại đường dẫn "/" để chuẩn bị umount )
- [root@srv2 /]# umount /dev/cdrom

2, Cấu hình file dhcpd.conf trong đường dẫn /etc/ :
- [root@srv2 /]# less /etc/dhcpd.conf
- Ở đây ta thấy có dòng ghi 1 file sample của dhcpd.conf, chúng ta copy file đó và ghi đè lên /etc/dhcpd.conf
- [root@srv2 /]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf  ( chú ý /dhcp-3.0.5 là phụ thuộc vào gói ta cài đặt, tốt nhất là dùng TAB di chuyển vào , nếu không có thể copy file cấu hình ở dưới )
- [root@srv2 /]# vi /etc/dhcpd.conf
- Chú ý thay đổi tại 1 số chỗ sau
ddns-update-style interim;
ignore client-updates;
DHCPARGS=eth1;        # cấu hình dịch vụ DHCP lắng nghe trên card mạng eth1
subnet 192.168.1.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.1.2;   # cấu hình gateway cho các máy client
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.1.2;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.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 192.168.1.20 192.168.1.100;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
# Cấu hình đặt chỗ địa chỉ IP cho 1 số client cụ thể , DHCP reservation
host ns {
hardware ethernet 00:0C:29:FA:41:88;   #địa chỉ MAC của client đó
fixed-address 192.168.1.50;         #địa chỉ IP đặt trước
}
}
3, Khởi động dịch vụ :
- [root@srv2 /]# /etc/init.d/dhcpd start
4, Thiết lập dịch vụ chạy khi Server khởi động :
- [root@srv2 /]# chkconfig --level 2345 dhcpd on
5, Trên máy client chạy XP, chọn chế độ thiết lập nhận IP từ DHCP và chờ. Sau vài giây sẽ nhận được
6, Muốn test DHCP reservation thì thêm 1 dòng tương đương như trên nhưng với địa chỉ MAC của client đó và địa chỉ IP muốn đặt trước
7, Kiểm tra việc cấp địa chỉ IP cho client :
- [root@srv2 /]# tail -f /var/lib/dhcpd/dhcpd.leases


P/S: ở đây tạm thời để gw mặc định là 192.168.1.2 ( địa chỉ của DNS-DHCP server ), sẽ thay đổi khi đến bài cấu hình Router/Firewall bằng iptables trên srv1



Cài đặt BIND đơn giản trên CentOS 5.x

DNS là gì thì có lẽ khỏi nói nữa , hơn nữa đây chỉ là bài viết step-by-step nên ko giải thích cặn kẽ các file phân giải ngược và xuôi. Nếu ai đó đọc thì xin hãy tìm hiểu thêm. Sẽ có bài viết về DNS master-slave


1, Cài đặt các gói cần thiết :
- Cho đĩa cài đặt CentOS
- [root@srv2 ~]# mkdir /media/cdrom
- [root@srv2 ~]# mount /dev/cdrom /media/cdrom
- [root@srv2 CentOS]# cd /media/cdrom/CentOS
- [root@srv2 CentOS]# rpm -Uvh bind-libs-* bind-chroot-* bind-utils-* bind-9.3*
 ( lưu ý có dấu "-" , ở đây dùng -Uvh vì rất có thể trong máy đã có bản cài bind nhưng không đi cùng các gói phụ thuộc dẫn tới không cài đặt được , nên tốt nhất là để Upgrade)
- [root@srv2 CentOS]# cd /  ( quay trở lại đường dẫn "/" để chuẩn bị umount )
- [root@srv2 /]# umount /dev/cdrom

2, Đổi hostname :
- [root@srv2 /]# vi /etc/sysconfig/network
- Thay đổi dòng HOSTNAME=localhost.localdomain thành HOSTNAME=srv2.example.com

3, Lưu ý :
- File cấu hình BIND là named.conf đặt trong đường dẫn /var/named/chroot/etc/
- Các file phân giải địa chỉ như : example.com.db1.168.192.db đặt trong đường dẫn /var/named/chroot/var/named/
 - File chứa địa chỉ 13 root DNS trên thế giới : root.db đặt trong /var/named/chroot/etc/
4, Cấu hình file named.conf :
options {
            directory "/etc";
            forwarders {208.67.222.222;};
            };
zone "." {
            type hint;
            file "/etc/root.db";
            };
zone "example.com" {
            type master;
            file "/var/named/example.com.db";
            };
zone "1.168.192.in-addr.arpa" {
            type master;
            file "/var/named/1.168.192.db";
            };

5, Tạo file phân giải xuôi : example.com.db
$TTL 86400
@        IN      SOA     example.com.  root.example.com. (
                        2007121802         ; serial
                        3H                        ; refresh, seconds
                        15M                     ; retry, seconds
                        1W                       ; expire, seconds
                        1D                        ; minimum, seconds
                        )
                        IN         NS       srv2.example.com
                        IN         MX      10 srv3
            1D       IN         A          192.168.1.2
srv3     1D       IN         A          192.168.1.3
srv2     1D       IN         A          192.168.1.2
srv1     1D       IN         A          192.168.1.1
www   1D       IN         CNAME           srv3
mail     1D       IN         CNAME           srv3
ftp       1D       IN         CNAME           srv3
 Cái dòng này :                         IN         NS       srv2.example.com  để không phải gõ www.example.com
6, Tạo file phân giải ngược : 1.168.192.db
$TTL 86400
@        IN      SOA     example.com.   root.example.com. (
                        2007121801        ; serial
                        4H                       ; refresh
                        1H                       ; retry
                        1W                      ; expire
                        1D                       ; minimum
                        )
@       IN      NS      srv2.example.com.
1         IN      PTR     srv1.example.com.
2         IN      PTR     srv2.example.com.
3         IN      PTR     srv3.example.com.
7, Tạo file root.db :
;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  <file>"
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC
;       under anonymous FTP as
;           file                /domain/named.cache
;           on server           FTP.INTERNIC.NET
;       -OR-                    RS.INTERNIC.NET
;
;       last update:    Jun 17, 2010
;       related version of root zone:   2010061700
;
; formerly NS.INTERNIC.NET
;
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:BA3E::2:30
;
; FORMERLY NS1.ISI.EDU
;
.                        3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     192.228.79.201
;
; FORMERLY C.PSI.NET
;
.                        3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
;
; FORMERLY TERP.UMD.EDU
;
.                        3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
;
; FORMERLY NS.NASA.GOV
;
.                        3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
;
; FORMERLY NS.ISC.ORG
;
.                        3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
F.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2F::F
;
; FORMERLY NS.NIC.DDN.MIL
;
.                        3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
;
; FORMERLY AOS.ARL.ARMY.MIL
;
.                        3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
H.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:1::803F:235
;
; FORMERLY NIC.NORDU.NET
;
.                        3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
I.ROOT-SERVERS.NET.      3600000      AAAA  2001:7FE::53
;
; OPERATED BY VERISIGN, INC.
;
.                        3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     192.58.128.30
J.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:C27::2:30
;
; OPERATED BY RIPE NCC
;
.                        3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129
K.ROOT-SERVERS.NET.      3600000      AAAA  2001:7FD::1
;
; OPERATED BY ICANN
;
.                        3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     199.7.83.42
L.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:3::42
;
; OPERATED BY WIDE
;
.                        3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
M.ROOT-SERVERS.NET.      3600000      AAAA  2001:DC3::35
; End of File

8, Khởi động dịch vụ :
- [root@srv2 /]# /etc/init.d/named start
 hoặc
- [root@srv2 /]# service named start
9, Kiểm tra hoạt động trên 1 client chạy XP đã cấu hình địa chỉ DNS server ( ở đây là 192.168.1.2) : gõ lệnh nslookup trong cmd và test
10, Thiết lập dịch vụ chạy khi Server khởi động :
- [root@srv2 /]# chkconfig --level 2345 named on

P/S:
- bổ xung thêm bước số 10
- Chỉnh lại bước cài đặt gói, chỉ ra cụ thể 4 gói cần thiết ( tránh install thừa )
- Trong Centos 5.9 ( mới ra tháng 1/2013 này ), thì 2 gói bind-utilsbind-libs đã cài đặt, khi rpm -Uvh thì nó báo đã cài đặt --> rpm bị stop lại. Cách giải quyết tạm là rpm -e 2 gói đó rồi cài lại