Tải bản đầy đủ (.pdf) (70 trang)

Xây dựng hệ thống webhosting trên linux

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.29 MB, 70 trang )

BÁO CÁO WEB-HOSTING

1

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN









Đề tài:
Xây dựng hệ thống
web-hosting trên linux


Hồ chí minh 5/2014



Mục lục
Trích yếu I
Mục Lục II
Lời cảm ơn III
Nhận xét của người hướng dẫn IV
Nhập đề V
Giới thiệu cơ quan thực tập VI


1. Domain name system
1.1 Cài đặt 7
1.2 Cấu hình 7
2. File Transfer Protocol
2.1 Cài đặt 11
2.2 Cấm user login 13
2.4 Thay đổi thư mục mặc định 13
2.5 Cho user anonymous uploap 14
2.6 Cho user truy cập vào bên trong /Home 14
3. Apache
3.1 Cài đặt httpd cơ bản 15
3.2 Cài đặt phần hỗ trợ Perl Script 18
3.3 Cài đặt PHP 20
3.4 Cài đặt Mysql 22
3.5 Cấu hình alias cho website 24
3.6 Enable Userdir 25
3.7 Name based virtual hosting 28
3.8 Chứng thực 30
3.9 Config SSL 32

4. Giám sát hệ thống
4.1 log analyzer với Vistors 36
4.2 log analyzer với Awstats 37
5. WHM/cpanel
5.1 Giới thiệu 39
5.2 Cài đặt WHM/cpanel 39
5.2.1 Chuẩn bị 39
5.2.2 Cài đặt 40
5.2.3 Cách truy cập vào WHM 40
5.2.4 Thiết lập thông số cho WHM 40

5.3 Cpanel cho user
5.3.1 Hướng dẫn đăng nhập 46
5.3.2 Quản lý domain 47
5.3.2.1 Sub domain 47
5.3.2.2 parked domain 48
5.3.2.3 Addon domain 48
5.3.3 Quản lý file 49
5.3.3.1 File Manager 50
5.3.3.2 Disk space Usage 51
5.3.3.3 FTP account 52
5.3.4 Quản lý CSDL 53
5.3.4.1 Khởi tạo Mysql 53
5.3.4.2 Phpmyadmin 55
5.3.5 Email 56
5.3.5.1 Quản lý account mail 55
5.3.5.2 Webmail 57
5.4 WHM Cho người quản trị 57
5.4.1 Xem thông tin server 57
5.4.2 Change Root Password 58
5.4.3 Cấu hình thông số cho server 58
5.4.4 Change hostname 58
5.4.5 Change DNS 59
5.4.6 Tạo các gói Package 59
5.4.7 Tạo User cho khách hàng 60
5.4.8 Xem danh sách các tài khoản 61
5.4.9 Xem băng thông sử dụng 61
5.4.10 Bắt buộc tài khoản thay đổi mật khẩu 62
5.4.11 Giới hạn băng thông sử dụng 62
5.4.12 Mange plugins 63
5.4.13 Thêm xoá sửa bản ghi DNS 64

6.Hỗ trợ
6.1 Cấu hình và cài đặt CSF 65
6.2 Cấu hình mod_security 67
6.3 Cấu hình Nginx làm reverse proxy 70

Tài liệu tham khảo VII
Kết quả đạt được tại trung tâm VIII






Lời Cảm Ơn

Em xin chân thành cám ơn trường Đại Học Công Nghệ thông tin đã tạo điều kiện cho em hoàn
thành tốt đợt thực tập tốt nghiệp này. Em xin chân thành cảm ơn Ban giám đốc Trung Tâm Đào Tạo Quản
Trị Mạng & An Ninh, thầy Võ Đỗ Thắng và toàn thể các anh chị trong công ty đã tận tình giúp đỡ em
trong thời gian thực tập vừa qua. Trong đợt thực tập này đã cho em những kinh nghiệm quý báo. Những
kinh nghiệm đó sẽ giúp em hoàn thiện hơn trong công việc và môi trường làm việc sau này.
Em củng xin cảm ơn quý thầy cô trong khoa đã tận tình giảng dạy và trang bị cho em những kiến
thức cần thiết và hỗ trợ cho em rất nhiều để hoàn thành đề tài này,
Mặc dù em đã có gắn hoàn thành báo cáo thực tập tốt nghiệp với tất cả nỗ lực của bản thân,
nhung do trình độ hiểu biết và kinh nghiệm thực tế chắc chắn không tranh khỏi những thiếu sót nhất định,
rất mong nhận được sự thông cảm , chia sẻ và tận tình để em hoàn thành bản báo cáo thực tập tốt nghiệp
tốt hơn.
Một lần nữa em xin chân thành cảm ơn.
Hồ Chí Minh, Ngày …. Tháng… Năm 2015
Sinh viên thực tập
Trần Lê Nguyên






DNS (Domain Name System)

Mục đích của việc cài đặt DNS để phân giải từ dãy số IP sang một tên miền dễ nhớ và
ngược lại.
Step 0 : mount /dev/cdrom /media/
Step 1: Cài các gói
yum –y install bind bind-chroot
Step 2: Tạo Zone file named.conf vào thư mục /var/named/chroot/etc
File named.conf cấu hình như sau :
acl mynet {
192.168.1.0/24;
127.0.0.1;
};
options {
allow-transfer {none;};
directory "/var/named";
query-source port 53;
query-source-v6 port 53;
dump-file "var/named/data/cache_dump.db";
statistics-file "var/named/data/named_stats.txt";
memstatistics-file "var/named/data/named_mem_stats.txt";
notify yes;
};
zone "." IN {
type hint;

file "named.root";
};
zone "hoasen.com" IN {
type master;
file "hoasen.db";
};
zone "localhost" IN {
type master;
file "localhost.db";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "0.0.127.in-addr.arpa.db";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "1.168.192.in-addr.arpa.db";
};

Step 3: Tạo Forward Zone file hoasen.db , sau đó đưa vào thư mục
/var/named/chroot/var/named/
+ File cấu hình file hoasen.db

$TTL 86400
@ IN SOA web.hoasen.com. root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum

IN NS web.hoasen.com.
IN A 192.168.1.100
web IN A 192.168.1.100
www IN CNAME web
#mail IN CNAME server1
#ftp IN CNAME server1

Step 4 : Tạo Reverse Zone file 1.168.192.in-addr.arpa.db , sau đó chép vào thư
mục /var/named/chroot/var/named/
+ Cấu hình file 1.168.192.in-addr.arpa.db
$TTL 86400
@ IN SOA web.hoasen.com. root. (
3 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttk
)
@ IN NS web.hoasen.com.
100 IN PTR web.hoasen.com.
Step 5: chkconfig named on && service named restart
+ Nếu gặp vấn đề khi khởi động DNS thì đánh lệnh này khi gặp câu thông báo :
“Generating /etc/rndc.key:”
+ Ta sữa lỗi này bằng lệnh : “ rndc-confgen –a –r /dev/urandom “
Step 6: Cấu hình card mạng DNS trỏ về chính nó
vi /etc/resolv.conf
nameserver 192.168.1.100 #chỉnh dns trở về chính nó
Step 7: Kiểm tra
Ping hoasen.com -> trả về ip 192.168.1.100 -> Thành công









FTP (File Transfer Protocol)

FTP (viết tắt của File Transfer Protocol dịch ra là "Giao thức truyền tập tin") thường được dùng
để trao đổi tập tin qua mạng lưới truyền thông dùng giao thức TCP/IP (chẳng hạn như Internet -
mạng ngoại bộ - hoặc intranet - mạng nội bộ). Hoạt động của FTP cần có hai máy tính, một máy
chủ và một máy khách). Máy chủ FTP, dùng chạy phần mềm cung cấp dịch vụ FTP, gọi là trình
chủ, lắng nghe yêu cầu về dịch vụ của các máy tính khác trên mạng lưới. Máy khách chạy phần
mềm FTP dành cho người sử dụng dịch vụ, gọi là trình khách, thì khởi đầu một liên kết với máy
chủ.
2.1.Cấu hình và cài đặt FTP server
Step 1: Cài đặt vsftpd
Yum –y install vsftpd
Step 2: Cấu hình vsftpd
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO # không cho anonymous login
local_enable=YES # Cho phép người dùng cục bộ login
write_enable=YES # Cung cấp quyền ghi cho người dùng

xferlog_enable=YES # Cho phép ghi log
xferlog_file=/var/log/vsftpd.log # Nơi chứa file log
chroot_list_file=/etc/vsftpd/chroot_list # list danh sách được kết nối
connect_from_port_20=YES # sử dụng port 20 truyền data
userlist_enable=YES # Những người dùng trong user_list bị cấm

ascii_upload_enable=YES # bỏ dấu #
ascii_download_enable=YES # bỏ dấu #
ls_recurse_enable=YES # bỏ dấu #
local_root=public_html # Chèn vào cuối dòng
use_localtime=YES # Chèn vào cuối dòng


Step 3: Cấu hình cho phép user được phép move data
vi /etc/vsftpd/chroot_list
huuhoang
user2
Step 4: chkconfig vsftpd on && service vsftpd restart
+ setsebool -P ftp_home_dir on
Step 5: Gán quyền
chmod 0711 /home/huuhoang
mkdir /home/huuhoang/public_html
chown huuhoang /home/huuhoang/public_html
chmod 755 /home/huuhoang/public_html
Step 6: kiểm tra :
+ Thử dùng phần mềm và upload lên ftp server FileZilla
+ User: huuhoang /123456
+ upload file : onthinguphap.txt


2.2 Cấm User login
Step 1: mở file cấu hình các user bị cấm ftp
Vi /etc/vsftpd/user_list
Nhập user cần cấm vào ví dụ : user huuhoang
Step 2: kiểm tra



2.3 Thay đổi thư mục mặc định pub
Step 1: Mở file vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
non_root=/nhanvien # thêm vào cuối file
Step 2: Tạo các thư mục kiểm tra
mkdir /nhanvien
mkdir –p /nhanvien/{upload,download}
Step 3: Gán quyền
chown ftp /nhanvien/upload
chmod 777 –R /nhanvien/upload
Step 4: service vsftpd restart

2.4 Cho user anonymous upload
Step 1: Cấu hình file vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
anon_mkdir_write_enable=YES
# thêm vào 2 dòng dưới
anon_other_write_enable=YES
anon_umask=022

Step 2: service vsftpd restart
2.5 Chỉ cho User truy cập bên trong /Home
Step 1: Cấu hình file vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
chroot_local_user=YES
Step 2: service vsftpd restart

Apache

Apache hay là chương trình máy chủ HTTP là một chương trình dành cho máy chủ đối
thoại qua giao thức HTTP. Apache chạy trên các hệ điều hành tương tự như Unix, Microsoft
Windows, Novell Netware và các hệ điều hành khác. Apache đóng một vai trò quan trọng trong
quá trình phát triển của mạng web thế giới (tiếng Anh: World Wide Web).
3.1 Cài đặt httpd cơ bản
Step 1: Kiểm tra có cài apache
rpm -qa | grep httpd
+ Nếu chưa thì cài hai gói sau :
rpm -hiv /media/Packages/httpd-2.2.15-15.el6.centos.i686.rpm
rpm -hiv /media/Packages/httpd-tools-2.2.15-15.el6.centos.i686.rpm
+ Sử dụng lệnh YUM
Yum –y instal httpd mod_perl
Step 2: Tạo một trang web tĩnh và khởi động apache
echo “Truong đại học ww.hoasen.com xin chào” >
/var/www/html/index.html
Step 3 : Cấu hình dich vụ httpd cải thiện hiệu suất làm việc ,security,và một vài
đặc trưng khác
Vi /etc/httpd/conf/httpd.conf
Sữa các dòng lại thành như sau:
ServerTokens Prod
KeepAlive On
ServerName www.hoasen.com:80
Options FollowSymLinks ExecCGI
AllowOverride All
Directory Index index.html index.htm index.cgi index.php
CustomLog logs/access_log common
CustomLog logs/referer_log referer
CustomLog logs/agent_log agent
ServerSignature Off
AddHandler cgi-script .cgi .pl

Step 4: Khởi động dịch vụ
Chkconfig httpd on && Service httpd restart
Step 5: Test dịch vụ
Service httpd status
Dùng một máy khác vào brower đánh địa chỉ IP máy web server

NOTE : Script_install_apache (hỗ trợ)
#!/bin/bash
# Kiem tra apache da duoc cai dat hay chua
rpm -qa | grep httpd
if [ $? -eq 0 ];then
echo "apache da duoc cai dat"
else
yum -y install httpd
echo "chuong trinh da duoc cai dat xong"
fi
# xoa trang welcome page
rm -f /etc/httpd/conf.d/welcome.conf
echo " $? da xa welcome page"
# xoa trang default error page
rm -f /var/www/error/noindex.html
echo " $? da xoa error page"
# tao mot lien ket cho perl
ln -s /usr/bin/perl /usr/local/bin/perl
#tao file test [trang web chinh]
echo "test httpd - nguyen huu hoang" > /var/www/html/index.html

# configure httpd
cat /etc/httpd/conf/httpd.conf | sed 's/ServerTokens OS/ServerTokens Prod/ ;
s/KeepAlive Off/KeepAlive On/ ; s/ServerAdmin root@localhost/ServerAdmin

/ ; s/\#ServerName www.example.com:80$/ServerName
www.hoasen.com:80/ ; s/AllowOverride None/AllowOverride All/ ;
s/^DirectoryIndex index.html index.html.var/DirectoryIndex index.html
index.htm index.cgi / ; s/ServerSignature On/ServerSignature Off/;
s/AddDefaultCharset UTF-8/\#&/; s/\#AddHandler cgi-script .cgi/AddHandler
cgi-script .cgi .pl/ ' > test1
# copy thu muc vao thu muc can chinh
cp -n test1 /etc/httpd/conf/ && cd /etc/httpd/conf/ && chmod -x test1 && rm -rf
httpd.conf && mv test1 httpd.conf
cd ~ && rm test1
# bat che do tu dong khoi dong khi restart may
chkconfig httpd on
# bat dich vu len
service httpd restart
service httpd status | grep "running"
if [ $? -eq 0 ];then
echo "chuong trinh dang chay"
else
echo "chuong trinh co su co khong khoi dong duoc"
fi

3.2 Cài đặt phần hỗ trợ Perl Script
Step 1 : Cài cơ bản
Yum –y install perl perl-CGI
Step 2: Cấu hình httpd
Vi /etc/httpd/conf/httpd.conf
Options FollowSymLinks ExecCGI
DirectoryIndex index.html index.php index.htm index.cgi
AddHandler cgi-script .cgi .pl
Step 3: Khởi động lại service

Service httpd restart
Step 4: Tạo một file test kiểm tra
Vi /var/www/html/index.cgi
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html>\n<body>\n";
print "<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align:
center;\">\n";
print " Test CGI – Nguyen Huu Hoang ";
print "\n</div>\n";
print "</body>\n</html>\n";
chmod 705 /var/www/html/index.cgi
Step 5: Vào trang web kiểm tra
+ Service httpd status
+ Dùng một máy khác vào brower đánh địa chỉ IP máy web server


Note: Script_install_perl_script
#!/bin/bash
rm -rf /var/www/html/index.html
# cài đặt
yum –y install perl perl-CGI
#gan quyen cho file
chmod 705 /var/www/html/index.cgi
# configure httpd
cat /etc/httpd/conf/httpd.conf | sed 's/^Options FollowSymLinks$/& ExecCGI/' >
test1
# copy thu muc vao thu muc can chinh
cp -n test1 /etc/httpd/conf/ && cd /etc/httpd/conf/ && chmod -x test1 && rm -rf
httpd.conf && mv test1 httpd.conf

# khoi dong lai dich vu
service httpd restart

3.3 Cài đặt PHP
Step 1: Cài đặt
Yum –y install php php-mbstring php-pear
Step 2: Chỉnh sữa thời gian
Vi /etc/php.ini
Data.timezone= “Asia/Ho_Chi_Minh”
Step 3 : Chỉnh sửa file httpd
Vi /etc/httpd/conf/httpd.conf
DirectoryIndex index.html index.htm index.cgi index.php
Step 3: Tạo một file test php
Vi /var/www/html/index.php
<?php phpinfo(); ?>
Step 4: Khởi động dịch vụ
Services httpd restart
Step 5: Kiểm tra
+ Service httpd status
+ Dùng một máy khác vào brower đánh địa chỉ IP máy web server


Note: script_install_php
#!/bin/bash
rm -rf /var/www/html/index.*
# cai dat php
yum –y install php php-mbstring php-pear
#tao file
echo "<?php phpinfo(); ?>" > /var/www/html/index.php
# configure httpd

cat /etc/httpd/conf/httpd.conf | sed 's/^DirectoryIndex index.html index.htm index.cgi/&
index.php/' > test1
# copy thu muc vao thu muc can chinh
cp -n test1 /etc/httpd/conf/ && cd /etc/httpd/conf/ && chmod -x test1 && rm -rf httpd.conf &&
mv test1 httpd.conf
# khoi dong lai dich vu
service httpd restart


3.4 Cài đặt Mysql
Step 1: Cài đặt
Yum –y install php-mysql mysql mysql-server
Step 2: Khởi động mysql
Chkconfig mysqld on && service mysqld restart
Step 3: Cấu hình secure cho mysql
Mysql_secure_installation
Chọn “y” toàn bộ
Step 4: Tạo một trang web Wordpress (php và mysql)
- duy chuyển toàn bộ file wordpress -> /var/www/html
- vi /etc/httpd/conf/httpd.conf chỉnh file index chạy php
DirectoryIndex index.html index.html.var index.php
service httpd restart
- khởi động mysql
service mysqld restart
- Đặt pass cho user root của mysql
mysqladmin -u root password [nhap pass]
Step 5: Kết nối SQL
mysql -p -> pass:
- Xem database:
show databases;

- Tạo database mới:
create database wordpress;
- Thoát
exit # xong bên trong SQL
# Nếu đã có source sẳn thì ta sẽ import database .
- IMport database (bên ngoài SQL)
mysql -u root -p wordpress < /root/*.db
Step 6: Cấu hình file config để souce code kết nối với sql.
- Xem file cấu hình vi /var/www/html/wordpress/ wp-config.php
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'root')
/** MySQL database password */
define('DB_PASSWORD', '123456');
/** MySQL hostname */
define('DB_HOST', 'localhost');
Step 7: Kiểm tra
+ Service httpd status
+ Dùng một máy khác vào brower đánh địa chỉ IP máy web server


3.5 Cấu hình alias cho website
+ Tạo alias cho trang www.hoasen.com/admin
Step 1: Tạo thư mục và trang web test
Mkdir /var/www/html/admin
Echo “admin test- Nguyen huu hoang”> /var/www/html/admin/index.html
Step 2: Cấu hình file httpd.conf
Vi /etc/httpd/conf/httpd.conf
Xuống cuối file đánh vào code sau:
Alias /admin "/var/www/html/admin"

<Directory "/var/www/html/admin">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
DirectoryIndex index.html
Order allow,deny
Allow from all
</Directory>
Step 3: restart dịch vụ httpd và kiểm tra


3.6 Enable Userdir
+ Mỏi user có quyền tạo một trang web riêng cho mình
Step 1: Tạo user
Useradd hoasen
Step 2: Gán quyền cho file
chmod 711 /home/hoasen/
mkdir /home/hoasen/public_html
chown hoasen /home/hoasen/public_html/
chmod 755 /home/huuhoang/public_html/
hoặc:
Su hoasen
Mkdir public_html
Chmod 711 /home/hoasen
Chmod 755 /home/hoasen/public_html
Vi /home/hoasen/public_html/index.html
Echo “web site cua hoasen”
Step 3: Cấu hình file httpd.conf
Vi /etc/httpd/conf/httpd.conf
#UserDir disable
UserDir public_html

<Directory /home/*/public_html>
AllowOverride All# change
Options ExecCGI# enable CGI
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
# xuống cuối file cấu hình redirect
Redirect /hoasen
Step 4: Chỉnh sữa file Selinux
setsebool -P httpd_enable_homedirs true
chcon -R -t httpd_sys_content_t /home/hoasen/public_html/
Step 5: Upload file bằng phần mềm FileZilla
+ File: Index.html -> /home/hoasen/public_html


Step 6: Kiểm tra trang web


Note: script_enable_userdir
#!/bin/bash
# bat chuc nang userdir
A=`cat /etc/httpd/conf/httpd.conf | sed -n '1,380p'`
B=`cat /etc/httpd/conf/httpd.conf | sed -n '381,392p' | sed 's/^\#//g'`
C=`cat /etc/httpd/conf/httpd.conf | sed -n '393,$p'`

echo "$A" > test10

×