QuanTriMang.com - Trong bài viết sau, Quản Trị Mạng sẽ giới thiệu với các bạn những bước cơ bản để cài đặt 1 nhóm các ứng dụng Web, Email, Database và DNS server để dự phòng, có tính linh hoạt cao và tự động cân bằng tải trên Debian 5 với hệ thống điều khiển ISPConfig 3. GlusterFS sẽ được sử dụng để nhân bản dữ liệu giữa các hệ thống máy chủ và ISPConfig. Tại đây, chúng ta sẽ sử dụng đồng thời 2 máy chủ để trình diễn và mô phỏng, còn khi muốn áp dụng với số lượng máy nhiều hơn thì chỉ cần thay đổi trong file cấu hình GlusterFS.
Hiện tại có 1 hạn chế nho nhỏ trong quá trình thiết lập MySQL cluster, và các MySQL daemon sẽ tự động khóa các vấn đề trong quá trình cài đặt ban đầu, ngay khi server thứ 2 khởi động. Các thành phần workaround được sử dụng tại đây để kích hoạt MySQL với myisam, và hệ thống cũng đã chỉ ra 1 vài báo cáo rằng MySQL server đã hoạt động thành công cùng với innodb trên GlusterFS.
Thiết lập 2 hệ thống cơ bản
Tại đây chúng ta sẽ sử dụng 1 server master (với giao diện điều khiển ISPConfig) và 1 server slave dùng để ánh xạ các dịch vụ web (apache), email (postfix và dovecot) và database (MySQL) của server master.
Trong bài viết này, chúng ta sẽ sử dụng hostnames và địa chỉ IP đối với 2 server:
Master Server
Hostname: server1.example.tld
IP address: 192.168.0.105
Slave server
Hostname: server2.example.tld
IP address: 192.168.0.106
Thiết lập và cài đặt 2 server
Những bước sau đây được thực hiện lần lượt trên server master và slave.
vi /etc/hosts
127.0.0.1 localhost
192.168.0.105 server1.example.tld
192.168.0.106 server2.example.tld
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Khởi tạo giá trị hostname của server:
echo server1.example.tld > /etc/hostname
/etc/init.d/hostname.sh start
Tại đây chúng ta sẽ sử dụng các tài khoản server1.example.tld trên server đầu tiên và server2.example.tld trên server thứ 2.
Chỉnh sửa file danh sách sources.list:
vi /etc/apt/sources.list
và hãy chắc chắn rằng nó có chứa 2 dòng sau:
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
deb http://www.backports.org/debian/ lenny-backports main contrib non-free
Dòng thứ nhất dành cho các repository của debian để nhận các gói cập nhật đối với ứng dụng antivirus ClamAV và SpamAssassin, dòng thứ 2 để cho các backports repository chứa các gói GlusterFS hiện thời.
Tiếp theo, chạy lệnh sau:
apt-get install debian-backports-keyring
apt-get update
để cài đặt các khóa key của backports repository và cập nhật cơ sở dữ liệu apt package. Gõ lệnh sau:
apt-get upgrade
để cài đặt những bản cập nhật mới nhất (nếu có).
Nếu muốn đồng bộ hóa thời gian trên hệ thống với server NTP (network time protocol) qua Internet thì gõ lệnh sau:
apt-get -y install ntp ntpdate
Muốn cài đặt postfix, dovecot và mysql thì các bạn chỉ cần 1 dòng lệnh duy nhất:
apt-get -y install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d sudo
Điền mật khẩu mới cho mysql khi trình cài đặt yêu cầu và trả lời những câu hỏi tiếp theo:
Create directories for web-based administration ? <-- No
General type of configuration? <-- Internet site
Mail name? <-- server1.mydomain.tld
SSL certificate required <-- Ok
Trong bài thử nghiệm này, chúng ta muốn MySQL “lắng nghe” tất cả các tín hiệu, không chỉ từ localhost, do đó chúng ta điều chỉnh /etc/mysql/my.cnf và chú thích bên ngoài dòng bind-address = 127.0.0.1:
vi /etc/mysql/my.cnf
[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
[...]
Sau đó khởi động lại MySQL:
/etc/init.d/mysql restart
Tiếp theo, để cài đặt amavisd-new, SpamAssassin, và ClamAV, chúng ta sử dụng lệnh sau:
apt-get -y install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
Sau đó tiếp tục với việc cài đặt Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear, và mcrypt:
apt-get -y install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby sudo
Bạn sẽ nhìn thấy câu hỏi sau:
Web server to reconfigure automatically: <-- apache2
Hãy gõ lệnh sau để kích hoạt các module của Apache như suexec, rewrite, ssl, actions:
a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest
Tiếp tục với việc cài đặt PureFTPd và quota:
apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool
Chỉnh sửa file /etc/fstab sao cho giống như sau:
vi /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda1 / ext3 errors=remount-ro,usrquota,grpquota 0 1
/dev/sda5 none swap sw 0 0 /dev/hda
/media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Để kích hoạt chế độ quota, sử dụng những lệnh sau:
touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /
quotacheck -avugm
quotaon -avug
Cài đặt BIND DNS Server:
apt-get -y install bind9 dnsutils
Với vlogger, webalizer và awstats:
apt-get -y install vlogger webalizer awstats
Tiếp theo với ứng dụng Jailkit, chỉ thực sự cần thiết nếu muốn chroot các tài khoản user của SSH (chú ý rằng Jailkit phải được cài đặt trước ISPConfig – nếu cài sau thì sẽ không hoạt động):
apt-get -y install build-essential autoconf automake1.9 libtool flex bison
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.11.tar.gz
tar xvfz jailkit-2.11.tar.gz
cd jailkit-2.11
./configure
make
make install
cd ..
rm -rf jailkit-2.11*
Cài đặt fail2ban:
apt-get install fail2ban
GlusterFS và Fuse:
apt-get -y --force-yes -t lenny-backports install fuse-utils
apt-get -y --force-yes install glusterfs-server glusterfs-client
Xóa bỏ file cấu hình tạm thời của GlusterFS:
rm -f /etc/glusterfs/*.vol