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ứ Sáu, 31 tháng 8, 2012
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
- [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.jnl và 1.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
- Gạch bỏ 1 số bước ở trên.
- Làm trên CentOS 5.7 nhanh hơn 5.5 ( ? )
Ở 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.conf3, 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
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
include "/etc/rndc.key";4, Chỉnh sửa file dhcpd.conf trong /etc/ : lưu ý sửa cho đúng theo những đoạn đã in đậm
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; };
};
include "/etc/rndc.key";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 :
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;
}
}
- [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.jnl và 1.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.
- 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
- [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
Ở 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 {3, Khởi động dịch vụ :
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
}
}
- [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 )
( 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.db và 1.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 ; serial3H ; refresh, seconds15M ; retry, seconds1W ; expire, seconds1D ; minimum, seconds)IN NS srv2.example.comIN MX 10 srv31D IN A 192.168.1.2srv3 1D IN A 192.168.1.3srv2 1D IN A 192.168.1.2srv1 1D IN A 192.168.1.1www 1D IN CNAME srv3mail 1D IN CNAME srv3ftp 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
7, Tạo file root.db :$TTL 86400@ IN SOA example.com. root.example.com. (2007121801 ; serial4H ; refresh1H ; retry1W ; expire1D ; minimum)@ IN NS srv2.example.com.1 IN PTR srv1.example.com.2 IN PTR srv2.example.com.3 IN PTR srv3.example.com.
; 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
- [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-utils và bind-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
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-utils và bind-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
Đăng ký:
Bài đăng (Atom)