Search This Blog

Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts

Sunday, June 5, 2011

Giới thiệu NFS, Lab NFS trên CentOS Linux

http://ipmac.vn/forum/showthread.php?t=3370

Giới thiệu NFS, Lab NFS trên CentOS Linux


Giới thiệu NFS
NFS (Network File System) là hệ thống cung cấp dịch vụ chia sẻ file phổ biến hiện nay trong hệ thống mạng Linux và Unix.

NFS sử dụng hệ thống mô hình Client/Server. Trên Server có các ổ đĩa cứng vật lý chứa các file system được chia sẻ và 1 số dịch vụ chạy ngầm trên hệ thống (daemon) phục vụ cho việc chia sẻ với client (gọi là quá trình export). Ngoài ra các dịch vụ chạy trên Server cũng cung cấp chức năng bảo mật file và quản lý lưu lượng sử dụng file system quota.

Các Client muốn sử dụng các file system được chia sẻ trên Server chỉ đơn giản dùng giao thức NFS mount các file system đó lên hệ thống của mình.

Hệ thống chia sẻ file NFS được sử dụng với nhiều chức năng khác nhau.
Ví dụ thay vì mỗi hệ thống Client/Server của bạn phải có một phân vùng /home/username của từng người dùng thì chỉ cần lưu trữ thư mục /home/username của từng người dùng đó lên 1 máy chủ trung tâm (NFS Server) sau đó sử dụng giao thức NFS để mount thư mục /home/username tương ứng của từng người dùng khi họ đăng nhập vào hệ thống.

Danh sách các file cấu hình, các dịch vụ, các file script và câu lệnh của NFS Server
Các file cấu hình NFS Server
/etc/exports
/var/lib/nfs/rmtab
/var/lib/nfs/xtab
/etc/host.allow
/etc/host.deny

Các dịch vụ NFS Server
rpc.portmap
rpc.mountd
rpc.nfsd
rpc.statd
rpc.lockd
rpc.rquotad

Các file script và câu lệnh
/etc/rc.d/init.d/nfs
nfstat
showmount
rpcinfo
exportfs

Nội dung file cấu hình NFS Server
Các dòng text trong file cấu hình /etc/exports có cú pháp như sau :

dir host1(options) host2(options) hostN(options) …

Trong đó :
dir : thư mục hoặc file system muốn chia sẻ.
host :
1 hoặc nhiều host được cho phép mount dir.

có thể được định nghĩa là 1 tên, 1 nhóm sử dụng ký tự ?, * hoặc 1 nhóm sử dụng 1 dải địa chỉ mạng/subnetmask...
options : định nghĩa 1 hoặc nhiều options khi mount.

Ví dụ 1 file cấu hình mẫu /etc/exports :

/usr/local *.ipmac.vn(ro)
/home 192.168.1.0/255.255.255.0(rw)
/var/tmp 192.168.1.1(rw)

Dòng thứ nhất : cho phép tất cả các host với tên miền định dạng “somehost”.ipmac.vn được mount thư mục /usr/local với quyền chỉ đọc.

Dòng thứ hai : cho phép bất kỳ host nào có địa chỉ IP thuộc subnet 192.168.1.0/24 được mount thư mục /home với quyền đọc và ghi.

Dòng thứ ba : chỉ cho phép host có địa chỉ IP là 192.168.1.1 được mount thư mục /var/tmp với quyền đọc và ghi.


Bài thực hành cài đặt và cấu hình dịch vụ NFS

Nội dung bài thực hành
Xây dựng 2 máy ảo Linux chạy hệ điều hành CentOS-5. Trong đó 1 máy làm NFS Server và 1 máy làm NFS Client kết nối theo mô hình bên dưới.

Tạo 1 thư mục /sharing trên máy NFS Server để chia sẻ file cho máy NFS Client.

Địa chỉ IP sử dụng trong bài thực hành

Máy NFS Server : 192.168.1.1/24.
Máy NFS Client : 192.168.1.2/24.

Mô hình bài thực hành

 Bước 1 : Đặt địa chỉ IP trên 2 máy ảo Linux. Tắt firewall trên 2 máy ảo Linux. Đảm bảo máy NFS Server ping được đến máy NFS Client và ngược lại
[root@NFSServer]# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
[root@NFSServer]# service iptables stop
[root@NFSClient]# ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up
[root@NFSClient]# service iptables stop
[root@NFSServer]# ping 192.168.1.2
[root@NFSClient]# ping 192.168.1.1
 Bước 2 : Kiểm tra xem package portmap và nfs-utils đã được cài đặt trên NFS Server hay chưa. Nếu chưa tiến hành cài đặt 2 packages này qua yum hoặc rpm
[root@NFSServer]# rpm -qa | grep -e portmap -e nfs
[root@NFSServer]# yum install portmap nfs-utils
[root@NFSServer]# rpm -qa | grep -e portmap -e nfs
nfs-utils-1.0.9-47.el5_5
nfs-utils-lib-1.0.8-7.6.el5
portmap-4.0-65.2.2.1
 Bước 3 : Cấu hình quản lý truy cập thông qua TCP Wrapper để chi cho phép các client trong subnet 192.168.1.0/24 được sử dụng dịch vụ NFS trên NFS Server
[root@NFSServer]# vi /etc/hosts.deny
portmap: ALL
[root@NFSServer]# vi /etc/hosts.allow
portmap: 192.168.1.
Bước 4 : Tạo thư mục chia sẻ /sharing trên NFS Server và copy 1 số dữ liệu vào thư mục đó
[root@NFSServer]# mkdir /sharing
[root@NFSServer]# cp /var/log/*.log /sharing
Bước 5 : Cấu hình chia sẻ thư mực /sharing trên NFS Server
[root@NFSServer]# vi /etc/exports
/sharing 192.168.1.0/24(rw,sync)
 Bước 6 : Khởi động dịch vụ portmap và nfs trên NFS Server
[root@NFSServer]# service portmap start
[root@NFSServer]# service nfs start
 Bước 7 : Trên NFS Client kiểm tra thông tin dịch vụ NFS và danh sách các thư mục được export trên NFS Server
[root@NFSClient]# rpcinfo -p 192.168.1.1
[root@NFSClient]# showmount --exports 192.168.1.1
 Bước 8 : Trên NFS Client tạo mountpoint và thực hiện việc mount thư mục chia sẻ ( sử dụng account root ). Kiểm tra quá trình mount
[root@NFSClient]# mkdir /mnt/nfs
[root@NFSClient]# mount -t nfs 192.168.1.1:/sharing /mnt/nfs
[root@NFSClient]# mount
[root@NFSClient]# ls /mnt/nfs
 Bước 9 : Trên NFS Client thử tạo 1 thư mục mới trong thư mục chia sẻ
[root@NFSClient]# cd /mnt/nfs
[root@NFSClient]# mkdir test
mkdir: cannot create directory `test': Permission denied
 Bước 10 : Trên NFS Server thay đổi thông tin về thư mục chia sẻ để cho phép user root có toàn quyền truy cập. Sau khi thay đổi, reload lại cấu hình cho nfs
[root@NFSServer]# vi /etc/exports
/sharing 192.168.1.0/24(no_root_squash,rw,sync)
[root@NFSServer]# exportfs -r
 Bước 11 : Trên NFS Client thử tạo lại thư mục mới trong thư mục chia sẻ
[root@NFSClient]# cd /mnt/nfs
[root@NFSClient]# mkdir test
[root@NFSClient]# ls
test
 Bước 12 : Trên NFS Server kiểm tra trạng thái của dịch vụ NFS
[root@NFSServer]# nfsstat
[root@NFSServer]# showmount - -all localhost
 Bước 13 ( Tùy chọn ) : Trên NFS client cấu hình file /etc/fstab để tự động mount thư mục chia sẻ mỗi khi khởi động hệ thống
[root@NFSClient]# vi /etc/fstab
…
192.168.1.1:/sharing /mnt/nfs nfs defaults 0 0

Friday, May 20, 2011

Reinstall Grub boot loader After installing windows

http://www.howtogeek.com/howto/ubuntu/reinstall-ubuntu-grub-bootloader-after-windows-wipes-it-out/

1) Boot off the LiveCD
2) Open a Terminal and type in the following commands
    sudo grub
   root (hd0,0)
   setup (hd0)
   exit

Reboot (removing the livecd), and your boot menu should be back.

Thursday, May 19, 2011

Clonezilla -- Giải pháp thay thế cho Nortron Ghost

Clonezilla -- Giải pháp thay thế cho Nortron Ghost

 A-Giới thiệu

Clonezilla là gì?
Bạn thường quen thuộc với chương trình Norton Ghost -- được phân phối độc quyền bởi Symantec!
Tuy nhiên, nếu bạn sử dụng đa hệ điều hành hoặc bạn đang tìm kiếm một giải pháp thay thế cho Norton Ghost bởi vấn đề thương mại, bản quyền hay đơn giản là không thể sử dụng Nortron Ghost vì lí do nào đó thì Clonezilla có thể sẽ là một chương trình mã nguồn mở mà bạn cần.
Clonezilla được phát triển bởi NCHC Free Software Labs, Taiwan dựa trên DRBL, Partclone và udpcast, phát hành dưới hai bản thể Clonezilla Live và Clonezilla SE(server edition).
Clonezilla Live được sử dụng cho máy đơn (máy tính cá nhân), còn Clonezilla SE được sử dụng cho những triển khai với quy mô lớn, có thể sao phục hồi(clone) cho rất nhiều mày tính cùng lúc (trên 40). Thực tế, người ta đã sử dụng Clonezilla để phục hồi 41 máy tính cùng lúc chỉ mất khoảng 10 phút để clone 5.6 GBytes file ảnh hệ thống đến tất cả 41 máy tính thông qua cơ chế multicasting.


Các đặc điểm:

  • Phần mềm miễn phí (GPL)
  • Các định dạng hỗ trợ: (1) ext2, ext3, ext4, reiserfs, reiser4, xfs, jfs đối với hệ điều hành GNU/Linux, (2) FAT, NTFS đối với hệ điều hành MS Windows, (3) HFS+trong MAC OS, (4) UFS của FreeBSD, NetBSD, and OpenBSD, and (5) VMFS đối với VMWare ESX, bất kể đó là nền tảng 32-bit (x86) hay 64-bit (x86-64)
  • Hỗ trợ LVM2 - GNU/Linux(không phải phiên bản 1)
  • Hỗ trợ GRUB (phiên bản 1 và phiên bản 2)
  • Hỗ trợ chế độ Unattended: Hầu hết các bước thực hiện đều có được thực thi bằng lệnh với các tùy chọn. Bạn có thể sử dụng nhiều tham số(tùy chọn) cho việc tùy biến hiển thị khi khởi động
  • Chế độ Multicast được hỗ trợ trong bản Clonezilla SE, điều này thích hợp cho việc clone hàng loạt. Bạn cũng có thể sử dụng nó từ xa để sao lưu hay phục hồi một nhóm máy tính nếu như PXE và Wake-on-Lan được hỗ trợ trong máy khách(clients) của bạn.
  • Dựa trên Partclone (mặc định), Partimage (tùy chọn), ntfsclone (tùy chọn), hoặc chương trình dd để tạo ảnh hay phục hồi một phân vùng (partition). Tuy nhiên, với những chương trình khác của Clonezilla, có thể lưu và phục hồi không chỉ một phân vùng mà là toàn bộ ổ đĩa (disk).
  • Với việc sử dụng chương trình miễn phí drbl-winroll (cũng được phát triển bởi chúng tôi), hostname, group, và SID của máy MS Windows được phục hồi có thể được tự động thay đổi.


Các hạn chế:
  • Phân vùng đích (phân vùng được chọn để phục hồi) phải lớn hơn hoặc bằng phân vùng nguồn (phân vùng sao lưu)
  • " Differential/incremental backup is not implemented yet ".
  • Việc tạo file ảnh (backup) và phục hồi trực tuyến chưa được hỗ trợ.
  • Phân vùng sao được lưu hay phục hồi phải trong tình trạng tháo gắn kết (unmount). Mặc định là không hỗ trợ chương trình RAID/fake RAID. Nó chỉ được thực hiện bằng tay.
  • Bởi sự giới định dạng ảnh nên có thể file ảnh không thể được khảo sát(tìm kiếm) hoặc gắn kết(mount). Nghĩa là bạn không thể phục hồi ảnh, bạn có giải quyết theo hướng khác, xem tại đây.
  • " Recovery Clonezilla live with multiple CDs or DVDs is not implemented yet. Now all the files have to be in one CD or DVD if you choose to create the recovery iso file ''.
(Xin lỗi, vài điều mình không hiểu rõ nên không dám dịch bừa ở đây)

Trang chủ: www.clonezilla.org

---------- Post added at 01:23 PM ---------- Previous post was at 01:20 PM ----------

B. Hướng dẫn sử dụng.

Tải về bản Clonezilla Live tại đây.
Phiên bản được sử dụng trong bài viết này là clonezilla-live-1.2.6-59-i686
Lưu ý:
1. Bài viết này giới hạn trong việc sao lưu và phục hồi một phân vùng trên máy tính cá nhân, các phần khác sẽ không đề cập trong bài viết này.
2. Tác giả bài viết này đã thư nghiệm sao lưu phân vùng sda1 (NTFS-hệ điều hành Windows 7) với dung lượng (sử dụng) là 18,1 GB thành một file ảnh với dung lượng xuống còn 7,1 GB (mình không xóa file pagefile.sys), định dạng nén là lzip (z6) (tỉ lệ nén cao) trong thời gian 3 giờ 0 phút 24 giây và bung lại file ảnh này trong thời gian là 18 phút 40 giây. Về mặt này có lẽ Clonezilla còn kém so với Norton Ghost. Tuy nhiên đến giờ phút này mọi thứ sau khi phục hồi đều hoàn hảo, giống như trước, đặc biệt là các tinh chỉnh cá nhân đều còn nguyên vẹn.
I-Chạy Clonezilla từ USB hoặc ổ cứng.

1.Sử dụng trên USB:
Có thể dùng Unetbootin, hoặc MultibootISOs hay XBoot.
2. Sử dụng từ ổ cứng.
(Bài viết này được thực hiện thử nghiệm trên ổ cứng)
Xem cách tạo bộ khởi động Grub4dos trên ổ cứng tại bài viết này.
i-Tạo một thư mục với tên Clonezilla tại thư mục gốc (ngoài cùng) của một phân vùng nào đó (Không được đặt trong phân vùng muốn sao lưu hay phục hồi ảnh), giải nén toàn bộ iso của Clonezilla vào thư mục đó.
ii- Thêm đoạn này vào menu.lst:
title Clonezilla

find --set-root /Clonezilla/live/initrd.img
kernel /Clonezilla/live/vmlinuz vga=788 boot=live hostname=maverick config quiet noswap nolocales edd=on nomodeset ip=frommedia nosplash live-media-path=/Clonezilla/live
initrd /Clonezilla/live/initrd.img
Chương trình này chạy được trên EXT4, FAT32, NTFS.



II-Một số khái niệm liên quan

Chương trình Clonezilla chạy trên một bản Linux cỡ nhỏ, được nạp vào bộ nhớ khi khởi chạy.

Vì vậy, bạn sẽ gặp phải một số thuật ngữ (hơi khác đi_không giống như 
Norton Ghost chạy trên MS-DOS), bạn không cần đi sâu vào vấn đề này 
nhưng để đảm bảo sử dụng Clonezilla một cách an toàn bạn nên xem phần 
này nếu chưa biết.

  • Phân vùng(Partition): Để dễ sử dụng chúng ta thường phải chia ổ cứng vật lý thành nhiều ổ logic, mỗi ổ logic gọi là một phân vùng ổ đĩa cứng - partition. Số lượng và dung lượng của các phân vùng tùy vào dung lượng và nhu cầu sử dụng. Trong hệ điều hành Windows, quy ước mỗi ỗ đĩa, và phân vùng ổ đĩa trên máy được gắn với một tên ổ từ A: đến Z:. Trong đó A: dành cho ổ mềm, B: dành cho loại ổ mềm lớn - hiện nay không còn sử dụng nên B: thường không dùng trong My Computer. Còn lại C:, D: thường dùng để đặt các phân vùng ổ cứng, các ký tự tiếp theo để đặt tên cho các phân vùng ổ cứng, ổ CD, ổ cứng USB tùy vào số phân vùng của cứng, số các loại ổ đĩa gắn thêm vào máy.
    Trong hệ thống Linux, phân vùng được xác lập bởi điểm gắn kết (mount points) thông qua việc gắn kết(mount).
  • FAT: Thông thường dữ liệu trên ổ cứng được lưu không tập trung ở những nơi khác nhau, vì vậy mỗi phân vùng ổ đĩa phải có một bảng phân hoạch lưu trữ vị trí của các dữ liệu đã được lưu trên phân vùng đó, bảng này gọi là FAT. Định dạng này thường được sử dụng với USB.
  • NTFS(New Technology File System): Như FAT, đây cũng là một định dạng hệ thống tập tin của Windows. Được Windows chọn làm định dạng tiêu chuẩn từ phiên bản Window 2000 cho tới Window 7 hiện nay.
  • EXT4: Đây là một định dạng hệ thống tệp tin trong Linux (không bị phân mảnh như NTFS). Được chọn làm mặc định cho hầu hết các bản Linux hiện nay.
  • Về các kí hiệu sda1, sdb, hda,...: Tùy thuộc vào loại, số lượng ổ cứng mà các ổ cứng được kí hiệu lần lượt là sda, sdb, sdc,...(nếu là ổ cứng thuộc loại SATA, PATA, SCSI) hoặc hda,..(nếu là PATA). Như đã nói trên, mỗi ổ cứng lại được chia thành nhiều phân vùng, ví dụ trong ổ sda các phân vùng lần lượt được xác định là sda1,...., sda5,...(các kí hiệu sda1, sda2, sda3, sda4 được sử dụng cho phân vùng Primary, từ sda5 trở đi là dành cho phân vùng Logical)

III- Sao lưu hoặc phục hồi (Ghost)

(sử dụng các phím Enter, Space, Tab, lên,xuống...)

Những bước thực hiện chung:

1. Chọn mục khởi động.
Mình chọn mặc định dòng 1 (Nếu chạy trên USB hoặc ổ cứng thì sẽ chạy thẳng vào dòng này_bạn có thể đổi khác đi), chọn các chế độ hiển thị khác tại dòng thứ 2.


 2. Chọn ngôn ngữ, ở đây mình chọn English.
3. Chọn kiểu bàn phím (giữ hoặc thay đổi), mình chọn dòng 2.
4.Chọn khởi động Clonezilla với giao diện đồ họa (vào chế dòng lệnh dòng lệnh ở dòng 2).
5. Chọn chế độ làm việc, như đã nói trên ở đây mình chọn dòng thứ nhất để làm việc trên phân vùng (hoặc cả ổ đĩa) bởi ảnh đĩa.
6. Chọn local_dev để làm việc với ổ cứng hoặc USB của bạn.
7.Sau khi chương trình thu thập đầy đủ thông tin về ổ đĩa của bạn, nhận được:
Trước hết bạn cần phải nắm rõ các phân vùng của mình (cần nhớ dung lượng là được rồi).
TH1: Trường hợp cần sao lưu một phân vùng:

7.1-Ở hình trên, bạn chọn phân vùng để lưu file ảnh. Lưu ý: Phải chọn phân vùng có đủ dung lượng trống để lưu file ảnh.
Ví dụ mình cần lưu phân vùng sda1 (31.5 GB), mình chọn phân vùng lưu file ảnh là sda5 (như hình).
(Phân vùng được chọn để chứa file ảnh sẽ được gắn kết (mount) vào /home/partimag)
8.Chọn thư mục lưu file ảnh, ở đây mình chọn thư mục gốc (ngoài cùng) (/ Top_...). Nghĩa là file ảnh sẽ được lưu tại thư mục gốc (file anh không thuộc thư mục nào) này. Lưu ý là chỉ chọn lưu được trên nhưng thư mục đầu tiên.



Nhấn thêm một lần Enter để tiếp tục.

9.Chọn chế độ người dùng: Người mới dùng(Beginner) hoặc người dùng chuyên sâu(Expert).
Đối với trường hợp sao lưu tác giả bài viết này khuyên bạn đừng ngần ngại chọn dòng thứ 2 - người dùng chuyên sâu, nó không quá phức tạp.

10. Chọn dòng thứ hai_saveparts (lưu phân vùng).

11. Xác lập tên cho file ảnh.
12. Chọn phân vùng cần lưu, dùng phím Space để đánh dấu chọn.Có thể chọn nhiều phân vùng cùng lúc, ở đây mình chọn sda1:
13. Chọn chương trình, thứ tự ưu tiên làm việc giữa các chương trình (bao gồm partclone, partimage, dd, ntfsclone). Mặc định của Clonezilla là q2_nghĩa là partclone được chọn để làm việc trước, nếu nó không làm việc được thì sẽ đến partimage, cuối cùng là dd.
14. Xác lập các tùy chọn. Mặc định của chương trình là hai tùy chọn đầu. Nếu không có gì đặc biệt bạn sử dụng hai tùy chọn này là đủ.
15. Chọn định dạng, phương thức nén. Chương trình đưa ra 6 sự lựa chọn, dòng cuối cùng z0 là không nén, không nên chọn. Cũng tương tự như Norton Ghost nếu bạn chọn mức độ nén càng cao thì thời gian nén càng lâu, nhưng bù lại file ảnh sẽ có dung lương càng nhỏ. Về phần mình (chưa thử hết), vẫn thích z6_lzip(tốc độ nén khoảng từ 90 MB/phút - 110 MB/phút). Lưu ý, nếu ở trên bạn chọn chế độ dành cho người mới dùng thìz1_gzip (mức nén trên 1GB/phút) sẽ được chọn mặc định bởi chương, đây là điều mình không thích (bởi dung lượng file ảnh lớn).

16. Xác lập dung lượng một file mà file ảnh sẽ bị chia (giống như chia thành từng part ở Winrar). Điều này để tạo sự thuận lợi cho việc quản lí, lưu giữ file ảnh sau khi backup (như ghi vào CD/DVD)
Mặc định là 2000 MB, mình không thay đổi điều này.

17. Chọn true : chương trình sẽ không làm gì khi hoàn thành việc backup, bạn sẽ thiết lập sau khi hoàn thành.
Chọn reboot (hoặc poweroff): chương trình sẽ tự động khởi động lại (hoặc tắt) máy tính.
18. Phần còn lại bạn tự làm_đơn giản (chương trình sẽ yêu cầu bạn xác nhận lại , gõ y và nhấn Enter,...đợi).
TH2: Phục hồi từ một file ảnh:

Bắt đầu lại từ hình tại bước thứ 7.
Trong ví dụ này, mình cần phục hồi phân vùng sda1 từ file ảnh (được sao lưu từ trước) đặt trong phân vùng sda5.
7.2 Chọn phân vùng chứa file ảnh của bạn. Ở đây là sda5.
8. Chọn thư mục chứa file ảnh, vì mình để nó ở ngoài nên chọn dòng đầu (/ Top_...).
Lưu ý là các file ảnh sẽ được ẩn đi nên bạn đừng lo lắng khi không thấy chúng đâu.
(Hình ảnh: Như bước 8_TH1)
9. Chọn chế độ người dùng. Đối với trường hợp này mình thường chọn chế độ người mới dùng (nó thõa mãn yêu cầu cần có). Tuy nhiên ở đây mình trình bày dưới dạng người dùng chuyên sâu (chế độ người mới dùng khá đơn giản, chỉ cần chỉ ra phân vùng cần được phục hồi).
(Hình ảnh: Như bước 9_TH1)
10. Chọn dòng thứ 4_restoreparts
(Hình ảnh: Như bước 10_TH1)
11. Chọn file ảnh cần bung.


 
 
12. Chọn phân vùng chuẩn bị bung file ảnh-phục hồi, ở đây là sda1.




13. Xác lập các tùy chọn cho việc bung file ảnh. Mặc định nó như hình sau:




14. Xác lâp bảng chia phân vùng (partition table): Cẩn trọng. Nên chọn -k nếu không biết chắc về các tùy chọn kia.

15. Như bước 17_TH1
16. Phần còn lại, bạn tự làm_nó đơn giản.

Chú ý:
1.Cũng như Norton Ghost, mọi dữ liệu trên phân vùng được bung file ảnh sẽ bị xóa_ghi đè. Cho nên hãy cẩn trọng xem xét phân vùng mình chọn có đúng không và cũng đừng khó chịu khi Clonezilla yêu cầu bạn xác nhận tới 2 lần để thực hiện việc phục hồi ảnh đĩa.
2. Nếu như Clonezilla không thể bung file ảnh (restore) vào phân vùng phân vùng mà bạn đã chọn (báo lỗi) thì cũng đừng lo lắng vì sẽ không có sự thiệt hại nào và bạn có thể bắt đầu lại tiến trình
(gõ 3_Start Over)
3. Trong chế độ người dùng chuyên sâu nếu bạn không thay đổi điều gì (để mặc định) thì cũng cho một kết qủa khi chọn dạng cho người mới dùng.
















Tuesday, April 26, 2011

Khong the su dung dc bat cu lenh nao tren linux

Solution: copy lai nhung folder sbin hoac bin  (dung de chua all lenh he thong).



Thursday, April 14, 2011

Using OpenVPN With FreeRADIUS

 http://doc.pfsense.org/index.php/Using_OpenVPN_With_FreeRADIUS


WARNING: This community-contributed article describes risky changes that could easily break your firewall. This is for advanced users only, and is not recommended by the pfSense development team.

Contents

[hide]

OpenVPN setup on pfSense 1.2.2 /w 2-way authentication (Certificates & Freeradius user/pw)


Purpose

This document will show you how to setup OpenVPN on a pfSense 1.2.2 system while allowing for two-way authentication. This is so that you can use certificates as well as a username/password combination. You are also given centralized management over the Username/Password system. This will allow you to easily add or remove a user before creating the certificate/vpn installer. This is a plus because you can also set "login times" and access limits on users using free-radius.

What you need

List of items that you should have already or is assumed.
  • Computer or Virtual Machine with pfSense 1.2.2 installed (may work with earlier versions but only tested with 1.2.2).
  • Connection to the internet (fetching and installing files/packages/etc)
  • Computer configured with OpenVPN client (for testing, can be windows/linux/mac).
  • OpenVPN already configured on your pfSense system ( i used this document: http://www.pfsense.org/mirror.php?section=tutorials/openvpn/pfsense-ovpn.pdf )

Getting Started: Installing FreeRadius and getting it ready for OpenVPN

The first thing you need to do is install FreeRadius onto the pfSense system that you are using.
  • Navigate to "System->Packages"
  • Click the + sign on the right of "Freeradius"
  • Your pf-sense box will now install Freeradius from the pf-repositories. This might take a few minutes depending on how fast your system/network connection is.
  • From the PF-Sense web GUI navigate to "Services->FreeRADIUS".
  • Select the "Clients" tab.
  • We are setting OpenVPN up as a "Client" of the FreeRadius server. Click the + sign to get started.
  • In the "Client" field put in the LAN ip address of your pfsense box. Mine is: 192.168.1.1
  • In the "Shortname" field put something descriptive. ex. OpenVPN Server (Remote Client auth).
  • In the "Shared Secrete" field put in a password which is not easy to guess.
  • In the "Description" field put in something that will help you identify this connection.
  • Click "Save"

Setting up your Users

  • Now navigate to the "Users" tab. This is where you setup EVERY user you want to authenticate with FreeRadius/OpenVPN.
  • Click the + Sign to get started.
  • Make sure that you also fill out "Number of Multiple Connection" I suggest setting this to 1. It is the only other required field other than username/password. The rest is optional.
  • [optional] Set the "Session time" I have mine set at 21600. When this expires the user will be kicked off and will have to re-login. This would be close to a normal workday. This keeps users from staying logged in all the time. Even if they are not at the computer.
  • Click on the "Save" button.

Gain shell access on your pfSense system

  • We will be working in command line. You should either temperately enable SSH on your PF-Sense system or have access to the main console directly connected to your PF-Sense box.
  • Enable SSH: Navigate to "System->Advanced". Check "Enable Secure Shell" then Click "Save" at the bottom of the "Secure Shell" section.
  • You should now be able to ssh into your PF-Sense system.
  • If you are directly connected to your PF-Sense system with a console/monitor you can select option "8" to get a command prompt.

Connecting OpenVPN and FreeRadius

  • Now that you are at a Shell prompt on your pfSense system we can configure the PAM system to work with OpenVPN and FreeRadius.
  • Create the file /etc/pam.d/openvpn with the following commands
vi /etc/pam.d/openvpn
  • Insert the following into the file (Exactly! Or it may not work!)
#%PAM-1.0
auth required pam_radius.so debug=10
account sufficient pam_permit.so
session sufficient pam_permit.so
  • Save and exit the file. (Press "Esc" then type ":wq" without the quotes.
  • Create the file /etc/radius.conf with the following commands.
vi /etc/radius.conf
  • Insert the following into the file (Change the IP address to the IP of your PF-Sense LAN interface. The *****PassHere should be replaced with the password you set in the "Client" section of the FreeRadius configuration screen).
acct 192.168.1.1:1813 *****PassHere
auth 192.168.1.1:1812 *****PassHere
  • Save and exit the file. (Press "Esc" then type ":wq" without the quotes.
  • We are finished with this section. Go back to your PF-Sense Web GUI.

Load the Pam plugin for OpenVPN

  • Navigate to your OpenVPN Server configuration screen. "VPN->OpenVPN". Make sure you are on the "Server" tab.
  • Click the "Edit" button next to the OpenVPN server you have setup.
  • When the new screen loads, scroll down to the bottom where you see the section marked "Custom Options". Insert the following into the textbox.
plugin /usr/local/lib/openvpn-auth-pam.so openvpn
  • Click "Save" at the bottom of the screen and navigate to the OpenVPN log screen "Status->System Logs" Click on the "OpenVPN" tab.
  • You should see something similar to what is listed below. (Borrowed from j0emv on pf-sense forums –Thanks! --)
Mar 20 13:16:26    openvpn[6837]: Need IPv6 code in mroute_extract_addr_from_packet
Mar 20 13:16:21    openvpn[6837]: Initialization Sequence Completed
Mar 20 13:16:21    openvpn[6837]: TCPv4_SERVER link remote: [undef]
Mar 20 13:16:21    openvpn[6837]: TCPv4_SERVER link local (bound): [undef]:1194
Mar 20 13:16:21    openvpn[6837]: Listening for incoming TCP connection on [undef]:1194
Mar 20 13:16:20    openvpn[6817]: /etc/rc.filter_configure tun0 1500 1543 192.168.3.1 192.168.3.2 init
Mar 20 13:16:20    openvpn[6817]: /sbin/ifconfig tun0 192.168.3.1 192.168.3.2 mtu 1500 netmask 255.255.255.255 up
Mar 20 13:16:20    openvpn[6817]: TUN/TAP device /dev/tun0 opened
Mar 20 13:16:20    openvpn[6817]: gw xx.xx.xx.xx
Mar 20 13:16:20    openvpn[6817]: WARNING: file '/var/etc/openvpn_server0.key' is group or others accessible
Mar 20 13:16:20    openvpn[6817]: OpenVPN 2.0.6 i386-portbld-freebsd6.2 [SSL] [LZO] built on Mar 3 2007
  • If your text looks more like the following output continue on. Otherwise your done. (Borrowed from j0emv on pf-sense forums –Thanks! --)
Mar 20 12:41:16    openvpn[341]: Exiting
Mar 20 12:41:16    openvpn[341]: PLUGIN_INIT: could not load plugin shared object /usr/local/lib/openvpn-auth-pam.so: Service unavailable: Too many links (errno=31)
Mar 20 12:41:16    openvpn[341]: OpenVPN 2.0.6 i386-portbld-freebsd6.1 [SSL] [LZO] built on Apr 6 2006
  • If you have the above text output it means something broke with OpenVPN. The easy way to fix this is to use the pkg_add utility on your PF-Sense systems command line. So from your PF-Sense systems command line issue the following.
pkg_add -r openvpn
  • This will reinstall OpenVPN and should fix your problems. If not, you can post in the pf-sense forms: http://forum.pfsense.org/index.php/topic,4105.0.html or PM me (username: eureka on pf-sense forms).
  • You should now be able to connect to your OpenVPN system using Two-Way authentication. If you have problems i have listed an option that you can add to your OpenVPN system to help in your debugging.

Debugging your system

Sometimes things don't work how we think they should. The following options can be helpful in your debugging. It assumes that your are running these commands on the pfSense system either via directly connected monitor/keyboard or via SSH unless otherwise specified.
  • Make OpenVPN more Verbose and force it to log to a non-standard location so you can read it easier.
  • From the pfSense web GUI Navigate to "VPN->OpenVPN" and select the server you created earlier.
  • Go to the bottom of the screen and modify the "Custom Options" text box to have the following.
plugin/usr/local/lib/openvpn-auth-pam.so openvpn;
log /var/log/opvn.log;
log-append /var/log/opvn.log;
verb 7
  • This will log everything from OpenVPN to the /var/log/opvn.log file. You can watch it with the following command (while trying to connect/etc).
tail -f /var/log/opvn.log
  • You can also watch FreeRadius for attempted connections/authorizations (Failed or successful).
tail -f /var/log/radius.log
  • With this information in hand google and the pfSense forms can be a very good resource.
Reprinted with permission from Sky

Sunday, April 10, 2011

Error when install NRPE

- Error message when compile NRPE:
    + SSL header  ---> Centos: yum install openssl-devel                     
                           ---> Ubuntu:   apt-get install libssl-dev
                           ---> OpenSuse:    zypper in libopenssl-devel
                           ---> Sles 11:  Add repository from SDK DVD sles 11
                                                yast2 -i openssl-devel 

Saturday, April 9, 2011

Link download gd llibrabry

https://bitbucket.org/pierrejoye/gd-libgd/overview

Error when check service on Nagios

- Invalid password
  + Check file password:  /usr/local/nagios/etc/objects/command.cfg 
  + Check password of user NSclient when installing NSclient.exe tren windows


Friday, April 8, 2011

Block https traffic on zentyal

- Click Firewall ---> Package Filter ---> Click configure rules in "Filtering rules for internal networks"




Monday, March 28, 2011

Fix error when installing Qmail


No. Error message Solution
1 If that looks correct, I will now generate qmail-scanner-queue.pl
for your system...
Continue? ([Y]/N)
Y
Testing suid nature of /usr/bin/suidperl...
Whoa - broken perl install found.
Cannot even run a simple script setuid

Installation of Qmail-Scanner FAILED

Error was:
Can't do setuid

See FAQ for further details
chmod 4711 /usr/bin/suidperl
2 freshclam: error while loading shared libraries: libclamav.so.6: cannot open shared object file: No such file or directory export LD_LIBRARY_PATH=/usr/local/lib
3 QMAILQUEUE was not set, defaulting to /var/qmail/bin/qmail-scanner-queue.pl for this test...

Sending standard test message - no viruses...
done!

Sending eicar test virus - should be caught by perlscanner module...
qmail-inject: fatal: qq temporary problem (#4.3.0)
Bad error. qmail-inject died
chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl
4 /usr/local/sbin/clamd: error while loading shared libraries: libclamav.so.6: cannot open shared object file: No such file or directory export LD_LIBRARY_PATH=/usr/local/lib
5 451 qq temporary problem (#4.3.0) when try to send mail from qmail Restart service clamd
6 Starting Clam AV daemon: ERROR: Problem with internal logger. Please check the permissions on the /var/log/clamav/clamd.log file.
ERROR: Can\'t open /var/log/clamav/clamd.log in append mode (check permissions!).
chmod 777 /var/log/clamav/clamd.log
7 The SMTP server returned an error. Subject 'tet ', Account: '172.16.5.26', Server: '172.16.5.26',
Protocol: SMTP, Server Response: 'Can't do seteuid!', Port: 25, Secure(SSL): No, Error Number: 0x800CCC60
vi /var/qmail/bin/qmail-scanner-queue.pl ---> add “T” under the first line #!/usr/bin/perl -T

Friday, March 25, 2011

Perl does not allow for setuid functionality

If your Perl installation does NOT allow for setuid functionality
cd /downloads/qmailrocks/qmail-scanner-1.25/contrib
make install
Now we will customize the qmail-scanner configuration script...
cd /downloads/qmailrocks/qmail-scanner-1.25
vi qms-config-cwrapper
You will notice several fields that need to be customized to fit your needs. Let's have a look. I've highlighted the fields you should customize in RED
#!/bin/sh
if [ "$1" != "install" ]; then
INSTALL=
else
INSTALL="--install"
fi

./configure --domain yourdomain.com \
--admin postmaster \
--local-domains "yourdomain.com,yourotherdomain.com" \
--add-dscr-hdrs yes \
--dscr-hdrs-text "X-Antivirus-MYDOMAIN" \
--ignore-eol-check yes \
--sa-quarantine 0 \
--sa-delete 0 \
--sa-reject no \
--sa-subject ":SPAM:" \
--sa-delta 0 \
--sa-alt yes \
--sa-debug no \
--notify admin \

--skip-setuid-test \
"$INSTALL"

Now save and exit out of the config file. That was easy, wasn't it.
And now we will run a test config for qmail-scanner...
chmod 755 qms-config-cwrapper
./qms-config-cwrapper
Answer YES to all questions. If you get no errors, you can then run the script in "install" mode and this will install qmail-scanner on your server. If you do get errors, check out these troubleshooting tips.
./qms-config-cwrapper install
Again, answer YES to all questions. If you get no errors, you can then run the script in "install" mode and this will install qmail-scanner on your server. If you do get errors, check out these troubleshooting tips.
vi /var/qmail/bin/qmail-scanner-queue.pl
Then change the first line of /var/qmail/bin/qmail-scanner-queue.pl
to "#!/usr/bin/perl (in other words, remove the "-T" from the perl call.)

chmod 0755 /var/qmail/bin/qmail-scanner-queue.pl
And now all that's left for qmail-scanner is to initiate the version file and the perlscanner database...
First, we'll initialize the version file. This command also helps to keep your server's /var/spool/qmailscan folder clear of rogue files that can develop when SMTP sessions are dropped. You may want to stick this command into your server's crontab and run it once a day. You'll see more on this in the "maintaining your qmail server" step near the end of this tutorial.. So let's run it...
/var/qmail/bin/qmail-scanner-queue -z
And now we will generate a new perlscanner database for qmailp-scanner. For future reference, it's a good idea to run this next command whenever you upgrade qmail-scanner. You'll see more on this in the "maintaining your qmail server" step near the end of this tutorial. So let's do i t...
/var/qmail/bin/qmail-scanner-queue -g
A successful database build should produce the following output:
perlscanner: generate new DB file from /var/spool/qmailscan/quarantine-attachments.txt
perlscanner: total of 9 entries.

And now one final ownership check...
chown -R qscand:qscand /var/spool/qmailscan
Woohoo, qmail-scanner is installed! Now it's time to tie qmail-scanner into qmail itself.
vi /var/qmail/supervise/qmail-smtpd/run
To instruct Qmail to use Qmail-Scanner as the alternative queuing mechanism, we add the following line to the SMTP "run" script right under the first line (#!/bin/sh):
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue" ; export QMAILQUEUE
..and we change the "softlimit" in that same script...
change softlimit to 40000000
Note: It is absolutely vital that you change the "Softlimit" setting in this script. If you don't, qmail may fail to deliver mail!!!
So now the qmail-smtp/run file should look like this:
#!/bin/sh
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue" ; export QMAILQUEUE
QMAILDUID=`id -u vpopmail`
NOFILESGID=`id -g vpopmail`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
LOCAL=`head -1 /var/qmail/control/me`
if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then
echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
echo /var/qmail/supervise/qmail-smtpd/run
exit 1
fi
if [ ! -f /var/qmail/control/rcpthosts ]; then
echo "No /var/qmail/control/rcpthosts!"
echo "Refusing to start SMTP listener because it'll create an open relay"
exit 1
fi
exec /usr/local/bin/softlimit -m 40000000 \
/usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \
/var/qmail/bin/qmail-smtpd your_domain.com \
/home/vpopmail/bin/vchkpw /usr/bin/true 2>&1

Once you've got the qmail-smtpd file modified, save the changes and exit from the file. Now we will finalize the qmail-scanner installation by going over some post-install configuration options. After that, we'll fire everything up and take qmail-scanner for a test drive!
Click Here to continue


To activate all the changes we just made, we're going to have to completely stop and restart qmail.
Stop it...
qmailctl stop
and start it...
qmailctl start
And a quick check of the qmail processes, just to be safe..
qmailctl stat
Now it's time to test the whole damn thing to see if Qmail-Scanner, Spamassassin and Clam AV are all working correctly. Fortunately, Qmail-Scanner comes with it's own testing script that does a fantastic job. So let's test it!
cd /downloads/qmailrocks/qmail-scanner-1.25/contrib
chmod 755 test_installation.sh
./test_installation.sh -doit
A successful test should produce the following output. 2 messages should be quarantined by Clam Antivirus in /var/spool/quarantine/new and 2 messages should be set to whatever mailbox you specified in the Qmail-scanner configuration script. Don't worry if you don't get virus notification emails. The normal notification emails that get sent out upon virus detection usually don't work during the test.
setting QMAILQUEUE to /var/qmail/bin/qmail-scanner-queue.pl for this test...
Sending standard test message - no viruses...
done!

Sending eicar test virus - should be caught by perlscanner module...
done!

Sending eicar test virus with altered filename - should only be caught by commercial anti-virus modules (if you have any)...
Sending bad spam message for anti-spam testing - In case you are using SpamAssassin...
Done!

Finished test. Now go and check Email for postmaster@mydomain.com
If you get 2 messages in your inbox and you see 2 messages in the quarantine folder, it's time to crack open a cold one! You've successfully installed all 3 packages! Woohoo!

Tuesday, March 22, 2011

Mount encrypt hardisk

First of all
su root
EX: cryptsetup luksOpen /dev/sdb1 Crypto (sdb1 view and see in Partioner)
Type password hardisk encrypt. You open /dev/mapper/ and see Crypto
mount /dev/mapper/Crypto /media
umount
cryptsetup luksClose Crypto

Wednesday, March 16, 2011

Migrate password in qmail by mysql

- step 1: login to http://172.16.5.26/cgi-bin/vqadmin/vqadmin.cgi ---> Remove domain abc.com.vn

- step 2: Create new domain abc.com.vn

- step 3: Create new email accounts one by one

- step 4: Copy "Maildir" from old one to new one

- step 5: Login to mysql ---> copy & paste encrypt password to new server one by one

- step 6: retart qmail ---> qmailctrl restart

- Finish.

Tuesday, March 15, 2011

Triển khai ứng dụng thư điện tử sử dụng qmail, courier mail và squirrel mail

http://2mit.org/forum/showthread.php/11374-Trien-khai-ung-dung-thu-dien-tu-su-dung-qmail-courier-mail-va-squirrel-mail


Đầu tiên, Chào mừng các bạn đã đến với diễn đàn sinh viên Việt-Hàn 2MIT.ORG .Sau đây là chuyên đề về Qmail, SUN sẽ giới thiệu từ lý thuyết đến thực hành cấu hình một hệ thống mail server hoàn chỉnh sử dụng MTA Qmail. Tài liệu này được tác giả lấy từ nhiều nguồn khác nhau chủ yếu dịch từ trang qmailrocks.org và tham khảo trên HVA, tổng hợp, triển khai trên distro CentOS 5.
Một lời khuyên cho các bạn. Trước khi tham khảo và làm theo tài liệu này, các bạn nên ghé thăm trang chủ http://qmail.org, http://qmailrocks.org và bài hướng dẫn triển khai mail gateway sử dụng MTA Qmail của các bật tiền bối HVA.
Tài liệu tham khảo:
Sách:
[1]. The qmail Handbook - Dave Sill
Địa chỉ tham khảo thêm:
[1]. http://hvaonline.net
[2]. http://qmailrocks.org
[3]. http://qmail.org
[4]. http://www.courier-mta.org/
[5]. http://squirrelmail.org/


Phần 1: Giới thiệu về Qmail
1.1.Giới thiệu về Qmail

1.1.1. Sơ lược về Qmail

Qmail được viết bởi Tiến sĩ toán của trường đại học Illinois - Chicago ông Dan Bernstein. Qmail ra đời vào tháng Giêng năm 1996 với một phiên bản Beta 0.70 và sau đó phiên bản Gamma 0.90 được cập nhật vào tháng 8 năm 1996. Phiên bản ổn định 1.0 được ra mắt vào tháng 2 năm 1997. Phiên bản được lưu hành hiện nay là 1.03 được phát hành vào tháng 6 năm 1997.
Qmail là một MTA đầy đủ tính năng. Nó xử lý tất cả các tính năng cơ bản của một MTA bao gồm dịch vụ SMTP, POP3, SMTP delivery, xếp hàng và quản lý hàng đợi… hỗ trợ cho aliases , mailing, virtual users, virtual domains, và forwarding.
1.1.2. Tại sao dùng Qmail?

Có rất nhiều MTA trên môi trường Unix hiện nay và mỗi khi nhắc đến MTA chúng ta phải nhắc đến Sendmail. Sendmail được viết khi Internet là một môi trường rất thân thiện, không cần phải thiết kế đảm bảo vấn đề bảo mật cao. Ngày nay, Internet là một môi trường đầy nguy cơ với vấn đề bảo mật cho máy chủ mạng. Hơn nữa, Dan Bernstein viết Qmail vì ông ta thấy rằng Sendmail thừa hưởng nhiều lỗi bảo mật từ các phiên bản trước đây và phần mềm này rất cồng kềnh, cho dù những năm gần đây, nhóm Sendmail không ngừng điều chỉnh và cải tiến phần mềm này để giảm thiểu những yếu điểm.
Bernstein, người tạo nên Qmail tự tin rằng qmail là an toàn và ông đảm bảo nó trong tuyên báo bảo lãnh của mình (http://cr.yp.to/qmail/guarantee.html), ông còn cung cấp 1000 đôla trong một năm cho những ai tìm thấy lỗi bảo mật trong Qmail và giải thưởng này vẫn chưa có ai có thể đạt được.
Khi viết Qmail, ngoài ưu tiên cho vấn đề bảo mật, Dan Bernstein chú trọng rất nhiều đến khả năng hoạt động và tính dễ dùng của nó. Qmail mang tính truyền thống của các hoạt trình Unix: mỗi tiểu ứng trình có khả năng đảm đương trọn vẹn một chức năng chuyên biệt và các tiểu ứng trình này có thể chuyền (pipe) sang các tiểu ứng trình khác để đáp ứng các quy trình phức tạp. Bởi thế, Qmail bao gồm nhiều binaries tạo thành một dây chuyền hoạt động. Ðây là một điển hình nặng tính bảo mật và tính hiệu năng trong cơ chế điều hành của một MTA.
Qmail rất ổn định và hiệu năng: qmail thích hợp cho các mail server lớn với khả năng chuyển nhận hàng triệu thông điệp một ngày (dựa vào tài liệu trên web site của http://qmail.org).
Một số Mail server lớn trên internet sử dụng Qmail như Yahoo!, Network solutions, Verio, MessageLabs, listserv.acsu.buffalo.edu (một server mail lớn, sử dụng Qmail vào 1996), Ohio State (trường đại học lớn ở Mỹ), Listbot, USWest.net (Western US ISP), Telenordia, gmx.de (German ISP), NetZero (free ISP), Critical…
Qmail thích hợp cho các server có kết nối tốt, tốc độ, băng thông cao và luôn kết nối trên mạng. Với các doanh nghiệp, tổ chức vừa và nhỏ, chưa đáp ứng được các yêu cầu trên thì nên sử dụng các MTA khác phù hợp hơn như Posfix..
Sau đây là bản so sánh một số MTA trên hoạt động trên linux.

1.2.Cấu trúc Qmail

1.2.1.Cấu trúc hệ thống mô-đun



MTA trên Internet thực hiện nhiều nhiệm vụ. Thiết kế như Sendmail và Smail là thiết kế nguyên khối, nhưng đối với Qmail thì khác, Qmail được thiết kế theo dạng mô-đun. Các chương trình riêng biệt thực hiện các chức năng khác nhau. Các mô-đun của Qmail làm việc độc lập với nhau trên các quyền hệ thống khác nhau. Kết quả là chương trình được chia ra thành các chương trình nhỏ hơn, đơn giản hơn và ít bị các lỗi về chức năng, bảo mật… Hình mô tả cấu trúc mô-đun của Qmail.

1.2.2. Cấu trúc File

Thư mục /var/qmail mặc định là thư mục gốc của qmail khi được cài đặt. Chúng ta có thể thay đường dẫn này trong quá trình cài đặ qmail, đây cũng là ý tưởng tốt để tăng độ bảo mật, vì người khác sẽ khó khăn trong quá trình tìm kiếm thưc mục cài đặt của qmail.


Qmail - Phần 2: Cài đặt qmail từ mã nguồn.

Qmail - Phần 2: Cài đặt qmail từ mã nguồn.
Qmail - Phần 3: Cài đặt Ezmlm, Autoresponder, Vpopmail tích hợp MySQL
Qmail - Phần 4: Cài đặt Vqadmin, Maildrop và Qmailadmin
Qmail - Phần 5: Cấu hình khởi động Qmail - Gỡ bỏ Sendmail và Khởi động Qmail

Ở phần 1, SUN đã giới thiệu cho các bạn phần lý thuyết về MTA Qmail. Với phần 2 này, SUN sẽ giới thiệu cài đặt và cấu hình MTA Qmail bao gồm cài đặt gói qmail chính, cài đặtucspi-tcp và daemontools. Sau khi thực hành thành công phần 2 này, cơ bản bạn sẽ có một mail server với Qmail, nhưng thế vẫn chưa đủ. Còn rất nhiều thành phần cần thiết để đảm bảo một mail server hoạt động và cung cấp dịch vụ chuyên nghiệp. Các thành phần mở rộng cho qmail sẽ được giới thiệu ở phần 3 trở đi.

Trước tiên chúng ta sẽ đi vào các điều kiện cần thiết để biên dịch và cài đặt, vận hành mail server với qmail.

Phần 2.Cài đặt Qmail từ mã nguồn

2.1. Chuẩn bị trước khi cài đặt:

2.1.1. Thông tin Server

- Distro: Red Hat CentOS
- Hostname: mail.viet-cntt.com
- IP 192.168.137.20
- Dung lượng ổ đĩa.
+ Phân vùng / Khoảng 70Mb dung lượng ổ cứng
+ Phân vùng /var khoảng 10Mb
+ Phân vùng /home ít nhất 3Mb để chứa vpopmail
2.1.2. Các gói phần mềm cần cài đặt trước trên server

- Apache web server: Phiên bản 2.x trở lên
PHP: Phiên bản 4.0.6 trở lên. Trong /etc/php.ini . Chắc chắn rằng tham số file_uploads = On
- Perl: Phiên bản 4.8..0 trở lên.
- GCC: Bao gồm đầy đủ bộ thư viện biên dịch
- MySQL 4.x trở lên.
- OpenSSL và OpenSSL-devel : Phiên bản 0.9.5a trở lên hoặc cao hơn
- wget: Gói phần mền giúp download.
- patch & patchutils
- Máy Server DNS
+ Địa chỉ 192.168.137.12
+ Đã khai báo record MX trỏ tới server mail.viet-cntt.com
- Các port trên firewall cần được mở.

2.2.Cài đặt qmail từ mã nguồn.

2.2.1.Download và giải nén các gói cần thiết.

Lưu ý: trong quá trình cài đặt luôn luôn ở quyền root.
Code:

[root@mail ~]# mkdir /downloads
[root@mail ~]# cd /downloads
[root@mail downloads]# wget http://www.qmailrocks.org/downloads/qmailrocks.tar.gz
[root@mail downloads]# tar zxvf qmailrocks.tar.gz

Tạo các thư mục cần thiết:
Code:

[root@mail downloads]# cd /downloads/qmailrocks
Tạo thư mục khởi đầu cho qmail
[root@mail downloads]# mkdir -p /var/qmail
[root@mail downloads]# mkdir /usr/src/qmail

Giải nén các gói qmail, ucspi-tcp và daemontools.

Code:

[root@mail downloads]# cd /usr/src/qmail
[root@mail qmail]# tar zxvf /downloads/qmailrocks/qmail-1.03.tar.gz
[root@mail qmail]# tar zxvf /downloads/qmailrocks/ucspi-tcp-0.88.tar.gz
[root@mail qmail]# mkdir -p /package
[root@mail qmail]# chmod 1755 /package
[root@mail qmail]# cd /package
[root@mail package]# tar zxvf /downloads/qmailrocks/daemontools-0.76.tar.gz

Tạo tài khoản dân dụng và các nhóm dân dụng
Code:

[root@mail ~]# groupadd nofiles
[root@mail ~]# useradd -g nofiles -d /var/qmail/alias -s /sbin/nologin -p'*' alias
[root@mail ~]# useradd -g nofiles -d /var/qmail -s /sbin/nologin -p'*' qmaild
[root@mail ~]# useradd -g nofiles -d /var/qmail -s /sbin/nologin -p'*' qmaill
[root@mail ~]# useradd -g nofiles -d /var/qmail -s /sbin/nologin -p'*' qmailp
[root@mail ~]# groupadd qmail
[root@mail ~]# useradd -g qmail -d /var/qmail -s /sbin/nologin -p'*' qmailq
[root@mail ~]# useradd -g qmail -d /var/qmail -s /sbin/nologin -p'*' qmailr
[root@mail ~]# useradd -g qmail -d /var/qmail -s /sbin/nologin -p'*' qmails
[root@mail ~]# groupadd vchkpw
[root@mail ~]# useradd -g vchkpw -d /home/vpopmail -s /sbin/nologin -p'*' vpopmail

Tạo và phân quyền các thư mục chứa log
Code:

[root@mail package]# mkdir /var/log/qmail
[root@mail package]# cd /var/log/qmail
[root@mail qmail]# mkdir qmail-send qmail-smtpd qmail-pop3d
[root@mail qmail]# chown -R qmaill:root /var/log/qmail
[root@mail qmail]# chmod -R 750 /var/log/qmail

Tạo và phân quyền các thư mục chứa các scripts giám sát.
Code:

[root@mail qmail]# mkdir /var/qmail/supervise
[root@mail qmail]# cd /var/qmail/supervise
[root@mail supervise]# mkdir -p qmail-smtpd/log qmail-send/log qmail-pop3d/log
[root@mail supervise]# chmod +t qmail-smtpd qmail-send qmail-pop3d
[root@mail supervise]# echo 211 > /usr/src/qmail/qmail-1.03/conf-split
[root@mail supervise]# echo 255 > /usr/src/qmail/qmail-1.03/conf-spawn

2.2.2.Cài đặt Qmail

Thực hiện các miếng vá cần thiết trước khi đi vào cài đặt
Code:

[root@mail ~]# PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/sbin
[root@mail ~]# cd /usr/src/qmail/qmail-1.03
[root@mail ~]# patch < /downloads/qmailrocks/patches/qmail-1.03-jms1.5.patch [root@mail ~]# patch < /downloads/qmailrocks/patches/qmail-1.03-forcetls-20040703.patch Bắt đầu thực hiện compile và build qmail. [root@mail ~]# cd /usr/src/qmail/qmail-1.03 [root@mail qmail-1.03]# make man && make setup check Lệnh make buộc compiler biên dịch mã nguồn của qmail dựa trên chỉnh định của hồ sơ Makefile. Lệnh make setup check. Ðây là 2 lệnh gom lại thành một.. Lệnh thứ nhất make setup chuyển các binaries đã được build ở trên vào đúng nơi của nó. Lệnh thứ nhì make check là lệnh dùng để kiểm tra lại thực tính của các hồ sơ và binaries được build. Ðánh lệnh ./config-fast với thông số là domain name Code: [root@mail qmail-1.03]# ./config-fast mail.viet-cntt.com Lệnh trên dùng để khai báo thống số tên miền. Đã xong quá trình cài đặt gói qmail chính, tiếp theo thực hiện cài đặt chứng nhận an toàn sử dụng để mã hóa TLS trong các phiên làm việc của SMTP Code: [root@mail qmail-1.03]# make cert Điền các thông số cần thiết. Code: Country Name (2 letter code) [GB]:VN State or Province Name (full name) [Berkshire]:VietNam Locality Name (eg, city) [Newbury]:DaNang Organization Name (eg, company) [My Company Ltd]:VietHanIT Organizational Unit Name (eg, section) []:mail Common Name (eg, your name or your server's hostname) []:mail.viet- cntt.com Email Address []:postmaster@viet-cntt.com Nếu quá trình thực hiện thành công sẽ tự động cài đặt ở /var/qmail/control/servercert.pem và các liên kết mềm ở /var/qmail/control/clientcert.pem 2.2.3.Cài đặt ucspi-tcp Ucspi-tcp là phần mềm Dr. Dan Bernstein viết với mục đích thay thế cho inet daemon của Unix. Inet daemon được dùng rộng rãi trên các ứng trình Unix và gần đây, xinet ra đời để nâng cao tính năng của inet. Theo Dr Bernstein, phần mềm ucspi-tcp gọn nhẹ, hiệu quả và an toàn hơn inet rất nhiều. Ucspi-tcp được tạo ra với quan tâm bảo mật nên cách xử lý socket giữa client và server rất hiệu quả. Thực tế cho thấy ucspi-tcp hoạt động rất phù hợp với qmail. Di chuyển con trỏ vào thư mục uscpi-tcp để compile và build uscpi-tcp Code: [root@mail qmail-1.03]# cd /usr/src/qmail/ucspi-tcp-0.88/ Thực hiện compile và build Code: [root@mail qmail-1.03]# patch < /downloads/qmailrocks/patches/ucspi-tcp-0.88.errno.patch [root@mail qmail-1.03]# make && make setup check 2.2.4. Cài đặt daemontools Daemontools là một phần mềm giúp bạn rất nhiều trong quy trình quản lý và điều hành qmail server. Thực hiện các miếng vá cần thiết Code: [root@mail ucspi-tcp-0.88]# cd /package/admin/daemontools-0.76/src [root@mail src]# patch < /downloads/qmailrocks/patches/daemontools-0.76.errno.patch [root@mail src]#cd /package/admin/daemontools-0.76 [root@mail daemontools-0.76]# package/install Để kiểm tra xem daemontools có cài đặt thành công hay không, ta thực hiện lệnh xem tiến trình ps –aux . Nếu xuất hiện tiến trình svcanboot nghĩa là đã cài đặt thành công.


Nếu không có lõi gì xảy ra, cơ bản chúng ta đã có một mail server với MTA là qmail, phần tiếp theo SUN sẽ trình bày cho các bạn các thành phần khác kết hợp với Qmail như Ezmlm, Vqadmin....

Qmail - Phần 3: Cài đặt Ezmlm, Autoresponder, Vpopmail tích hợp MySQL
Tiếp theo phần này. SUN sẽ hướng dẫn các bạn cài đặt các tiện ích cho Qmail như Ezmlm, Autoresponder và Vpopmail
3.1.Cài đặt Ezmlm

Ezmlm là tiện ích cộng thêm cho Qmail, giúp quản lý danh sách email rất tốt. Đặt biệt là tích hợp với Qmailadmin (Qmail admin sẽ được giới thiệu ở các phần sau).
Chúng ta đi vào biên dịch và cài đặt

Code:

[root@mail src]# cd /downloads/qmailrocks/
[root@mail qmailrocks]# tar zxvf ezmlm-0.53-idx-0.41.tar.gz
[root@mail qmailrocks]# cd ezmlm-0.53-idx-0.41
[root@mail ezmlm-0.53-idx-0.41]# make && make setup

3.2.Cài đặt Autoresponder

Autoresponder là tiện ích giúp trả lời thư tự động. Chúng ta có thể không cấu hình tiện ích này nhưng nếu một hệ thống mail hoàn chỉnh thì tính năng này được khuyên dùng.

Code:

[root@mail ezmlm-0.53-idx-0.41]# cd /downloads/qmailrocks
[root@mail qmailrocks]# tar zxvf autorespond-2.0.5.tar.gz
[root@mail qmailrocks]# cd autorespond-2.0.5
[root@mail autorespond-2.0.5]# make && make install

3.3.Cài đặt Vpopmail tích hợp MySQL

Vpopmail là một trong những thành phần chính trong quá trình cài đặt qmail. Vpopmail giúp chúng ta làm ảo miền mail hosting, bao gồm rất nhiều tính năng để việc quản lý mail đơn giản và thuận tiện.
Có hai cách cài đặt Vpopmail là cách không tích hợp MySQL và cách có tích hợp MySQL. Quá trình cài đặt không tích hợp MySQL sẽ đơn giản hơn nhiều vì không liên quan đến cấu hình tích hợp MySQL. Đối với các mail server với quy mô lớn, lời khuyên đến từ các chuyên gia qmail là nên cài đặt tích hợp MySQL để tăng hiệu xuất hoạt động.
Khi cấu hình và cài đặt vpopmail tích hợp MySQL. Tất cả thông tin về các domain (tên miền, người dùng email, mật khẩu..) đều được lưu trữ trong cơ sở dữ liệu mysql. Các nội dung các email gởi tới không được lưu giữ trong cơ sở dữ liệu và vẫn lưu giữ trong các khu vực riêng tùy chọn vào người quản trị cấu hình Vpopmail.

Code:

[root@mail ~]# mkdir ~vpopmail/etc
[root@mail ~]# chown vpopmail:vchkpw ~vpopmail/etc
[root@mail ~]# echo "localhost|0|admin|121212|vpopmail" > ~vpopmail/etc/vpopmail.mysql

Câu lệnh trên dùng để khai báo người sử dụng vpopmail với tài khoản là admin và mật khẩu là 121212
Code:

[root@mail ~]# chown vpopmail:vchkpw ~vpopmail/etc/vpopmail.mysql
[root@mail ~]# chmod 640 ~vpopmail/etc/vpopmail.mysql

Khởi động dịch vụ MySQL bằng lệnh service mysql start, nếu mật khẩu root chưa khai báo, ta tiến hành khai báo mật khẩu tài khoản root của MySQL là 121212 bằng lệnh.

Code:

[root@mail ~]# service mysqld start
[root@mail ~]# mysqladmin -u root password 121212

Đăng nhập vào MySQL với tài khoảng root và mật khẩu vừa tạo để tạo database có tên vpopmail

Code:

[root@mail ~]# mysql -u root -p
mysql> CREATE DATABASE vpopmail;
Query OK, 1 row affected (0.00 sec)

Chèn các thông tin đăng nhập của người dùng Vpopadmin vào MySQL. Cụ thể tên đăng nhập là admin, mật khẩu là 121212
Code:

mysql> GRANT select,insert,update,delete,create,drop ON vpopmail.* TO admin@localhost IDENTIFIED BY '121212';
mysql>quit

Code:

[root@mail ~]# cd /downloads/qmailrocks
[root@mail qmailrocks]# tar zxvf vpopmail-5.4.13.tar.gz
[root@mail qmailrocks]# cd vpopmail-5.4.13
[root@mail vpopmail-5.4.13]# ./configure --enable-logging=p --enable-auth-module=mysql --disable-passwd --enable-clear-passwd --disable-many-domains --enable-auth-logging --enable-sql-logging --enable-valias --disable-mysql-limit
[root@mail vpopmail-5.4.13]# make && make install-strip

Đã xong phần 3. Phần 4 mình sẽ trình bày về vqadmin, maildrop, qmailadmin...
-SUN-

Qmail - Phần 4: Cài đặt Vqadmin, Maildrop và Qmailadmin.

Bây giờ khi đã thực hiện xong phần 1, 2, 3. Chúng ta sẽ tiếp tục với phần 4 để cài đặt các tiện ích không thể thiếu cho Qmail như Vqadmin, Maildrop, Qmailadmin.

4.1.Cài đặt Vqadmin

Vqadmin đơn giản là một giao diện web, qua đó cho phép chúng ta quản lý Vpopmail. Thông qua giao diện có thể tạo ra các miền mới, người dùng mới, áp đặt các hạng ngạch, cho phép các dịch vụ và nhiều hơn nữa.

Vậy Vqadmin dành cho ai ? Câu trả lời là vqadmin dành cho người quản trị có quyền cao nhất sử dụng.

Một ví dụ cụ thể, quản trị viên đang sở hữu trong tay một Qmail server với miền mail hiện tại là 2mit.org . Và quản trị viên muốn triển khai dịch vụ mail server cho trường CĐ CNTT Hữu Nghị Việt Hàn với miền mail là viethanit.edu.vn thì rất đơn giản khi server đã tích hợp vpopmail, giúp ảo hoá các miền mail hosting. Và nhờ công vụ vqadmin có thể thao tác để tạo thêm miền mail viethanit.edu.vn một cách dễ dàng…

Tiến hành cài đặt.

Code:

[root@mail vpopmail-5.4.13]# cd /downloads/qmailrocks
[root@mail qmailrocks]# tar zxvf vqadmin-2.3.6.tar.gz
[root@mail qmailrocks]# cd vqadmin-2.3.6
[root@mail vqadmin-2.3.6]# ./configure --enable-cgibindir=/var/www/cgi-bin --enable-htmldir=/var/www/html
[root@mail vqadmin-2.3.6]# make && make install-strip

Chú ý. Để thực hiện được phần cài đặt này, Server đã cài đặt webserver httpd. Và thư mục chức website là /var/www/html .

Vì Vqadmin chạy trên giao diện web nên chúng ta phải cấu hình Apache

Code:

[root@mail vqadmin-2.3.6]# vi /etc/httpd/conf/httpd.conf

Thêm vào

Code:


deny from all
Options ExecCGI
AllowOverride AuthConfig
Order deny,allow


Chú ý: đoạn màu đỏ là đường dẫn đến thư mục chứa vqadmin mà chúng ta cài đặt

Cấu hình bảo mật cho Vqadmin
Code:

[root@mail vqadmin-2.3.6]# cd /var/www/cgi-bin/vqadmin
[root@mail vqadmin]#vi .htaccess

Sửa thành

Code:

AuthType Basic
AuthUserFile /etc/.htpasswd
AuthName vQadmin
require valid-user
satisfy any

Code:

Phân quyền.
[root@mail vqadmin]# chown apache .htaccess
[root@mail vqadmin]# chmod 644 .htaccess

Tạo file lưu thông tin đăng nhập cho vqadmin. File này chúng ta cho lưu ở /etc/.htpasswd

Code:

[root@mail vqadmin]# htpasswd -bc /etc/.htpasswd admin 121212
[root@mail vqadmin]# chmod 644 /etc/.htpasswd

Khởi động lại dịch vụ httpd
Code:

[root@mail vqadmin]# service httpd restart

Truy cập vào http://viet-cntt.com/cgi-bin/vqadmin/vqadmin.cgi , đăng nhập vào tài khoản và mật khẩu đã tạo để xem kết quả.


4.2.Cài đặt Maildrop

Maildrop được sử dụng để lọc khi thư được chuyển đến trên mail server. Khi cài đặt hoàn chỉnh, chúng ta không thấy được sự hoạt động của maildrop. Tuy nhiên, đó là một công cụ rất tốt và có giá trị có định để có được điên với bộ lọc thư imcoming vào mail server.

Code:

[root@mail vqadmin-2.3.6]# cd /downloads/qmailrocks
[root@mail maildrop-1.6.3]# tar zxvf maildrop-1.6.3.tar.gz
[root@mail maildrop-1.6.3]# cd maildrop-1.6.3
[root@mail maildrop-1.6.3]# ./configure --prefix=/usr/local --exec-prefix=/usr/local --enable-maildrop-uid=root --enable-maildrop-gid=vchkpw --enable-maildirquota
[root@mail maildrop-1.6.3]# make && make install-strip && make install-man

4.3.Cài đặt Qmailadmin

Qmailadmin cung cấp giao diện để quản lý cho người quản trị từng miền mail. Nhờ vào Qmailadmin, các postmaster của từng miền có thể tạo hộp thư, bí danh, fowards, robot mail, danh sách thư, quản lý email của miền mình…

Vd. Sau khi Quản trị viên của mail server 2mit.org đã tạo miền mail cho trường CĐ CNTT Hữu Nghị Việt Hàn. Nhu cầu đặt ra là phải có một công cụ quản trị cho các quản trị của trường Việt Hàn để họ quản lý, thêm, bớt, sửa... email cho các user của trường. Vì vậy Qmailadmin sinh ra để làm việc này. Nói tóm lại, công cụ này dành riêng cho từng miền mail.

Tiến hành cài đặt.

Code:

[root@mail maildrop-1.6.3]# cd /downloads/qmailrocks
[root@mail qmailrocks]# tar zxvf qmailadmin-1.2.9.tar.gz
[root@mail qmailrocks]# cd qmailadmin-1.2.9
[root@mail qmailadmin-1.2.9]# ./configure --enable-cgibindir=/var/www/cgi-bin --enable-htmldir=/var/www/html
[root@mail qmailadmin-1.2.9]# make && make install-strip

Truy cập vào địa chỉ http://www.viet-cntt.com/cgi-bin/qmailadmin để xem kết quả


Hình 4‑8 Giao diện quản lý các tài khoản email của miền viet-cntt.com

Hết phần 4.
Tiếp theo sẽ là Gỡ bỏ Sendmail, giây phút mong chờ... khởi động Qmail, cài đặt Courier IMAP/IMAPS....

Qmail - Phần 5: Cấu hình khởi động Qmail - Gỡ bỏ Sendmail và Khởi động Qmail
5.1.Cấu hình khởi động Qmail

Các phần trước SUNBOY đã hướng đẫn cấu hình các thành phần cần thiết cho qmail. Bây giờ là bước hoàn thành các cấu hình cho qmail hoạt động thống nhất. Sau đó sẽ gỡ bỏ Sendmail(nếu có) và khởi động qmail.

Đầu tiên, Chúng ta cần copy các script giám sát, các script qmail rc và qmailctl vào các thư mục thích hợp , sau đó thiết lập các quyền cần thiết để các script có thể hoạt động.

Sao chép tất cả các script giám sát đến các vị trí thích hợp.
Code:

[root@mail ~]# cp /downloads/qmailrocks/scripts/finalize/freebsd/pop3d_run /var/qmail/supervise/qmail-pop3d/run

[root@mail ~]# cp /downloads/qmailrocks/scripts/finalize/freebsd/pop3d_log /var/qmail/supervise/qmail-pop3d/log/run

[root@mail ~]# cp /downloads/qmailrocks/scripts/finalize/freebsd/smtpd_run /var/qmail/supervise/qmail-smtpd/run

[root@mail ~]# cp /downloads/qmailrocks/scripts/finalize/freebsd/smtpd_log /var/qmail/supervise/qmail-smtpd/log/run

[root@mail ~]# cp /downloads/qmailrocks/scripts/finalize/freebsd/send_run /var/qmail/supervise/qmail-send/run

[root@mail ~]# cp /downloads/qmailrocks/scripts/finalize/freebsd/send_log /var/qmail/supervise/qmail-send/log/run

Sao chép các script rc và qmailctl đến các vị trí thích hợp

Code:

[root@mail ~]# cp /downloads/qmailrocks/scripts/finalize/rc /var/qmail/
[root@mail ~]# cp /downloads/qmailrocks/scripts/finalize/qmailctl /var/qmail/bin/

Cấu hình các quyền và link cần thiết cho các script

Code:

[root@mail ~]# chmod 755 /var/qmail/rc /var/qmail/bin/qmailctl
[root@mail ~]# chmod 751 /var/qmail/supervise/qmail-pop3d/run
[root@mail ~]# chmod 751 /var/qmail/supervise/qmail-pop3d/log/run
[root@mail ~]# chmod 751 /var/qmail/supervise/qmail-smtpd/run
[root@mail ~]# chmod 751 /var/qmail/supervise/qmail-smtpd/log/run
[root@mail ~]# chmod 751 /var/qmail/supervise/qmail-smtpdssl/run
[root@mail ~]# chmod 751 /var/qmail/supervise/qmail-smtpdssl/log/run
[root@mail ~]# chmod 751 /var/qmail/supervise/qmail-send/run
[root@mail ~]# chmod 751 /var/qmail/supervise/qmail-send/log/run
[root@mail ~]# echo ./Maildir > /var/qmail/control/defaultdelivery
[root@mail ~]# echo 255 > /var/qmail/control/concurrencyremote
[root@mail ~]# chmod 644 /var/qmail/control/concurrencyremote
[root@mail ~]# echo 30 > /var/qmail/control/concurrencyincoming
[root@mail ~]# chmod 644 /var/qmail/control/concurrencyincoming
[root@mail ~]# ln -s /var/qmail/bin/qmailctl /usr/bin
[root@mail ~]# ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /var/qmail/supervise/qmail-smtpdssl /var/qmail/supervise/qmail-pop3d /service

Chỉnh sửa cho các script phù hợp với server hiện tại.
Code:

[root@mail ~]# vi /var/qmail/supervise/qmail-pop3d/run

Sửa mail.example.com thành viet-cntt.com

Tiếp tục sửa
Code:

[root@mail ~]# vi /var/qmail/supervise/qmail-smtpd/run

Sửa mail.example.com thành viet-cntt.com

Dừng Qmail (nếu qmail đang chạy) để thực hiện các cấu hình cuối cùng

Code:

[root@mail ~]# qmailctl stop
Stopping qmail...
qmail-smtpd
qmail-send
qmail-pop3d

Code:

[root@mail ~]# echo '127.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp

Code:

[root@mail ~]# qmailctl cdb

Tạo alias cho Qmail

Alias đóng vai trò quan trọng trong vấn đề quản lý mail server, điều này có nghĩa mỗi alias là một “ảo nhân” chịu trách nhiệm cho một số trường hợp điển hình của các hoạt động trên một mail server. Sau đây là 3 alias cần thiết nhất :

- postmaster (theo đúng RFC 2821) chỉ cho Administrator của mail server
- mailer-daemon một loại người dùng bán tiêu chuẩn để nhận các mail (bounce)
- root dùng để chuyển các loại mail mang tính chủ quyền đến system administrator

Ở đây giả sử mailbox của admin đảm nhận luôn cả ba alias trên. Thực hiện

Code:

[root@mail ~]# echo admin > /var/qmail/alias/.qmail-root
[root@mail ~]# echo admin > /var/qmail/alias/.qmail-postmaster
[root@mail ~]# echo admin > /var/qmail/alias/.qmail-mailer-daemon
[root@mail ~]# ln -s /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-anonymous
[root@mail ~]# chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-anonymous
[root@mail ~]# chmod 644 /var/qmail/alias/.qmail*



5.2.Gỡ bỏ Sendmail

Bước này nhằm gỡ bỏ MTA Sendmail (nếu đang tồn tại trên mail server, thông thường. Khi cài đặt CentOS thường đi kèm sendmail) và thay thế vào đó là Qmail

Kiểm tra các gói Sendmail có được cài đặt trên hệ thống hay không
Code:

[root@mail ~]# rpm -qa | grep sendmail

Nếu có, ngưng hoạt động Sendmail

Code:

[root@mail ~]# service sendmail stop

Gõ bỏ các gói sendmail

Code:

[root@mail ~]# rpm -e --nodeps sendmail-cf-8.13.8-8.el5
[root@mail ~]# rpm -e --nodeps sendmail-8.13.8-8.el5

Tuỳ chọn --nodeps để không bị lỗi phụ thuộc các gói khác

Sử dụng các liên kết mềm để thay thế Sendmail thành Qmail

Code:

[root@mail ~]# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
[root@mail ~]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail



5.3.Khởi động Qmail

Trước khi khở động Qmail, tiến hành kiểm tra xem các bước cấu hình Qmail đã đầy đủ hay không bằng cách chạy script đã có sẵn. script này bao gồm hàng loạt các công đoạn kiểm tra. Nín thở xem kết quả nhé

Code:

[root@mail ~]# /downloads/qmailrocks/scripts/util/qmr_inst_check
Congratulations, your Qmailrocks.org Qmail installation looks good!

Nếu xuất hiện thông báo như trên nghĩa là các bước cấu hình đã đầy đủ.

Bắt đầu khởi động lại Qmail thôi!
Code:

[root@mail ~]# qmailctl stop
Stopping qmail...
qmail-smtpd
qmail-send
qmail-pop3d

Code:

[root@mail ~]# qmailctl start
Starting qmail...
Starting qmail-send
Starting qmail-smtpd
Starting qmail-pop3d

Cụ thể hơn, có thể xem bằng lệnh

Code:

[root@mail ~]# qmailctl stat
/service/qmail-send: up (pid 31999) 72 seconds
/service/qmail-send/log: up (pid 32000) 72 seconds
/service/qmail-smtpd: up (pid 32009) 72 seconds
/service/qmail-smtpd/log: up (pid 32003) 72 seconds
/service/qmail-pop3d: up (pid 32006) 72 seconds
/service/qmail-pop3d/log: up (pid 32007) 72 seconds
messages in queue: 0
messages in queue but not yet preprocessed: 0

Tiến hành telnet đến server với port 110 để kiểm tra hoạt động của POP3

Code:

[root@mail ~]# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK <14274.1290289849@viet-cntt.com>
user postmaster@viet-cntt.com
+OK
pass 121212
+OK
list
+OK
1 281
.
quit
+OK
Connection closed by foreign host.

Tiến hành telnet đến server với port 25 để kiểm tra hoạt động của SMTP
Kiểm tra chức năng TLS của SMTP

Code:

[root@mail ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 mail.viet-cntt.com ESMTP
ehlo
250-mail.viet-cntt.com
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-STARTTLS
250-PIPELINING
250 8BITMIME
starttls
220 ready for tls
quit
quit
Connection closed by foreign host.

Nếu kết quả không có gì khác thường thì chúc mừng bạn. Qmail đã khởi động thành công và có vẻ hoạt động suôn sẻ.
Tới đây, bạn đã đi được 2/3 chặng đường. Đã có trong tay qmail nhưng chưa được đầy đủ các tiện ích. Đặt biệt là mới có POP3, mà chưa có IMAP/IMAPS. Phần sau sunboy sẽ hướng dẫn cài đặt tích hợp Courier IMAP/IMAPS, cổng webmail squierrel mail, tích hợp trình quét virus, chống spam cho Qmail....