Đề tài xây dựng hệ thống web hosting trên linux
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HOA SEN KHOA KHOA HỌC VÀ CÔNG NGHỆ
Đề tài:
Xây dựng hệ thống web-hosting trên linux
Tên cơ quan thực tập : TRUNG TÂM ĐÀO TẠO QUẢN TRỊ MẠNG &
AN NINH MẠNG QUỐC TẾ ATHENA
Thời gian thực tập : Từ 17/03/2014 – 29/06/2014
Người hướng dẫn : Ông Võ Đỗ Thắng
Sinh viên thực hiện : Nguyễn Hữu Hoàng
Hồ chí minh 6/2014
Trang 2Trích Y u
Với công nghệ phát triển như hiên nay thì nhu cầu phát triển web rất phát triển đồng thờikéo theo rất nhiều dịch vụ được cung cấp , trong đó có dịch vụ cung cấp hosting hiện tại đang rấtphát triển tại việt nam Vì công nghệ không ngừng phát triển và cơ sở dữ liệu càng ngày càng lớncho thấy mức phát triển là cực kỳ lớn, để đáp ứng được nhu cầu của người dùng cần có một bộphận nhà cung cấp làm cầu nói hỗ trợ đưa thông tin đến tất cả mọi người
Trong thời gian thực tập 12 tuần từ ngày 17/04/2014 đến ngày 30/6/2014 tôi đã làm việctại bộ phận kỹ thuật ,để hoàn thanh đồ án xây dựng và quản trị hệ thống web hosting trên nềnlinux, đây quả là một công viech hoàn toàn thú vị và mang tính thực tiển rất cao, có áp dụng vàothực tế nhiều nên tôi được tiếp xúc các kiên thưc mà hoàn toàn mới như các phần mềm ứng dụng
và quản trị whm, whmcs… Quá trình làm việc tài đấy giúp tôi có điều kiện cọ sát thực tế ,cónhiều kinh nghiêm và thấy được những thiếu sót của chính tôi để tự hoàn thiện mình hơn Hơnthế nữa, tôi có cơ hội phát triển thêm kỹ năng của mình đối với chuyên nghành mà tôi đang theođuổi
Trang 3Mụ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
Trang 44 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
Trang 55.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
Trang 6Lời Cảm Ơn
Em xin chân thành cám ơn trường Đại Học Hoa Sen và khoa Khoa Học Công Nghệ đã 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 Mạng Quốc Tế Athena, 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 2014
Sinh viên thực tập Nguyễn Hữu Hoàng
Giới thiệu cơ quan thực tập
Trang 7
Trung Tâm Đào Tạo Quản Trị Mạng & An Ninh Mạng Quốc Tế ATHENA được thànhlập từ năm 2004, là một tổ chức qui tụ nhiều trí thức trẻ Việt Nam đầy năng động, nhiệt huyết vàkinh nghiệm trong lãnh vực CNTT, với tâm huyết góp phần vào công cuộc thúc đẩy tiến trìnhđưa công nghệ thông tin là ngành kinh tế mũi nhọn, góp phần phát triển nước nhà
Lĩnh vực hoạt động chính:
Trung tâm ATHENA đã và đang tập trung chủ yếu vào đào tạo chuyên sâu quản trịmạng, an ninh mạng, thương mại điện tử theo các tiêu chuẩn quốc tế của các hãng nổitiếng như Microsoft, Cisco, Oracle, Linux LPI , CEH, Song song đó, trung tâmATHENA còn có những chương trình đào tạo cao cấp dành riêng theo đơn đặt hàng củacác đơn vị như Bộ Quốc Phòng, Bộ Công An , ngân hàng, doanh nghiệp, các cơ quanchính phủ, tổ chức tài chính
Sau gần 10 năm hoạt động,nhiều học viên tốt nghiệp trung tâm ATHENA đã là chuyêngia đảm nhận công tác quản lý hệ thống mạng, an ninh mạng cho nhiều bộ ngành nhưCục Công Nghệ Thông Tin - Bộ Quốc Phòng , Bộ Công An, Sở Thông Tin TruyềnThông các tỉnh, bưu điện các tỉnh,.,
Ngoài chương trình đào tạo, Trung tâm ATHENA còn có nhiều chương trình hợp tác vàtrao đổi công nghệ với nhiều đại học lớn như đại học Bách Khoa Thành Phố Hồ CHínhMinh, Học Viện An Ninh Nhân Dân( Thủ Đức), Học Viện Bưu Chính Viễn Thông, Hiệphội an toàn thông tin (VNISA), Viện Kỹ Thuật Quân Sự ,
Đội ngũ giảng viên :
Trang 8 Tất cả các giảng viên trung tâm ATHENA có đều tốt nghiệp từ các trường đại học hàngđầu trong nước Tất cả giảng viên ATHENA đều phải có các chứng chỉ quốc tế nhưMCSA, MCSE, CCNA, CCNP, Security+, CEH,có bằng sư phạm Quốc tế (MicrosoftCertified Trainer).Đây là các chứng chỉ chuyên môn bắt buộc để đủ điều kiện tham giagiảng dạy tại trung tâm ATHENA
Bên cạnh đó,Các giảng viên ATHENA thường đi tu nghiệp và cập nhật kiến thức côngnghệ mới từ các nước tiên tiến như Mỹ , Pháp, Hà Lan, Singapore, và truyền đạt cáccông nghệ mới này trong các chương trình đào tạo tại trung tâm ATHENA
Cơ sở vật chất:
Thiết bị đầy đủ và hiện đại
Chương trình cập nhật liên tục, bảo đảm học viên luôn tiếp cận với những công nghệ mớinhất
Phòng máy rộng rãi, thoáng mát
Dịch vụ hỗ trợ:
Đảm bảo việc làm cho học viên tốt nghiệp khoá dài hạn
Giới thiệu việc làm cho mọi học viên
Thực tập có lương cho học viên khá giỏi
Ngoài giờ học chính thức, học viên được thực hành thêm miễn phí, không giới hạn thờigian
Hỗ trợ kỹ thuật không thời hạn trong tất cả các lĩnh vực liên quan đến máy tính, mạngmáy tính, bảo mật mạng
Hỗ trợ thi Chứng chỉ Quốc tế
Trụ sở và các chi nhánh:
Cơ sở 1: 92 Nguyễn Đình Chiểu, phường Đa Kao, Q1 Điện thoại: 090 78 79 477-094
323 00 99-(08)38244041(Gần ngã tư Đinh Tiên Hoàng - Nguyễn Đình Chiểu)
Cơ sở 2: 2 Bis Đinh Tiên Hoàng, phường Đa Kao, Q1 Điện thoại: 094 320 00 88 (08)22103801(Cạnh sân vận động Hoa Lư - Cách đài truyền hình Tp HTV 50 mét)
-Liên hệ:
Website: http://athena.edu.vn - http://athena.com.vn
E-mail : support@athena.edu.vn - tuvan@athena.edu.vn
Nhập Đề
Trong quá trình thực tập tại Trung Tâm Quản trị mạng Athena tôi đã làm việc như mộtnhân viên của công ty , và quan sát cách mọi người làm việc và làm việc để học hỏi và rút
Trang 9kinh nghiệm, đồng thời trong thời gian 12 tuần thực tập tại công ty tôi còn hoàn thành cácmục tiêu của nhà trường trong đợt thực tập tốt nghiệp đó là :
Mục tiêu 1: Vận dụng các kiến thức đã học vào các công việc thực tế tại công ty
Mục tiêu 2: Nâng cao khả năng giao tiếp ứng xử trong các môi quan hệ tại công ty
Mục tiêu 3: Hội nhập vào môi trường làm việc thực tế và tiếp xúc các vấn đề của côngviệc
Mục tiêu 1: Rèn luyện kỹ năng giao tiếp, ứng xử, tiếp xúc với đồng nghiệp
Mục tiêu 2: Nâng cao kỹ năng làm việc nhóm của bản thân
Mục tiêu 3: Rèn luyện kiến thức và kỹ năng trong môi trường làm việc quốc tế
Mục tiêu 4: Hoàn thành tốt công việc của mình được giao
Mục tiêu 5: Áp dụng những kiển thức đã học vào quá trình làm việc tại công ty
Trang 10DNS (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-chrootStep 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 {
Trang 12@ IN SOA web.hoasen.com root (
Trang 13100 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.confnameserver 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)
Trang 14FTP (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 vsftpdStep 2: Cấu hình vsftpd
vi /etc/vsftpd/vsftpd.confanonymous_enable=NO # không cho anonymous loginlocal_enable=YES # Cho phép người dùng cục bộ loginwrite_enable=YES # Cung cấp quyền ghi cho người dùng
xferlog_enable=YES # Cho phép ghi logxferlog_file=/var/log/vsftpd.log # Nơi chứa file logchroot_list_file=/etc/vsftpd/chroot_list # list danh sách được kết nốiconnect_from_port_20=YES # sử dụng port 20 truyền datauserlist_enable=YES # Những người dùng trong user_list bị cấmascii_upload_enable=YES # bỏ dấu #
ascii_download_enable=YES # bỏ dấu #
local_root=public_html # Chèn vào cuối dònguse_localtime=YES # Chèn vào cuối dòng
Trang 15Step 3: Cấu hình cho phép user được phép move data
vi /etc/vsftpd/chroot_list
huuhoanguser2Step 4: chkconfig vsftpd on && service vsftpd restart
+ setsebool -P ftp_home_dir onStep 5: Gán quyền
chmod 0711 /home/huuhoangmkdir /home/huuhoang/public_htmlchown huuhoang /home/huuhoang/public_htmlchmod 755 /home/huuhoang/public_htmlStep 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
Trang 162.2 Cấm User login
Step 1: mở file cấu hình các user bị cấm ftp
Vi /etc/vsftpd/user_listNhập user cần cấm vào ví dụ : user huuhoangStep 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
Trang 17non_root=/nhanvien # thêm vào cuối fileStep 2: Tạo các thư mục kiểm tra
mkdir /nhanvienmkdir –p /nhanvien/{upload,download}Step 3: Gán quyền
chown ftp /nhanvien/uploadchmod 777 –R /nhanvien/uploadStep 4: service vsftpd restart
2.4 Cho user anonymous upload
Step 1: Cấu hình file vsftpd.conf
vi /etc/vsftpd/vsftpd.confanon_upload_enable=YESanon_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 restart2.5 Chỉ cho User truy cập bên trong /Home
Step 1: Cấu hình file vsftpd.conf
vi /etc/vsftpd/vsftpd.confchroot_local_user=YES
Step 2: service vsftpd restart
Trang 18Apache hay là chương trình máy chủ HTTP là một chương trình dành cho máy chủ đốithoại qua giao thức HTTP Apache chạy trên các hệ điều hành tương tự như Unix, MicrosoftWindows, Novell Netware và các hệ điều hành khác Apache đóng một vai trò quan trọng trongquá 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.rpmrpm -hiv /media/Packages/httpd-tools-2.2.15-15.el6.centos.i686.rpm+ Sử dụng lệnh YUM
Yum –y instal httpd mod_perlStep 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.confSữa các dòng lại thành như sau:
ServerTokens ProdKeepAlive OnServerName www.hoasen.com:80
Options FollowSymLinks ExecCGIAllowOverride All
Directory Index index.html index.htm index.cgi index.phpCustomLog logs/access_log common
Trang 19CustomLog logs/referer_log refererCustomLog logs/agent_log agentServerSignature Off
AddHandler cgi-script cgi plStep 4: Khởi động dịch vụ
Chkconfig httpd on && Service httpd restartStep 5: Test dịch vụ
Service httpd statusDùng một máy khác vào brower đánh địa chỉ IP máy web server
fi
# xoa trang welcome page
Trang 20rm -f /etc/httpd/conf.d/welcome.confecho " $? da xa welcome page"
# xoa trang default error page
rm -f /var/www/error/noindex.htmlecho " $? 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 httpdcat /etc/httpd/conf/httpd.conf | sed 's/ServerTokens OS/ServerTokens Prod/ ; s/KeepAlive Off/KeepAlive On/ ; s/ServerAdmin root@localhost/ServerAdmin root@hoasen.com/ ; 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
Trang 213.2 Cài đặt phần hỗ trợ Perl Script
Step 1 : Cài cơ bản
Yum –y install perl perl-CGIStep 2: Cấu hình httpd
Vi /etc/httpd/conf/httpd.confOptions FollowSymLinks ExecCGIDirectoryIndex index.html index.php index.htm index.cgiAddHandler cgi-script cgi pl
Step 3: Khởi động lại service
Service httpd restartStep 4: Tạo một file test kiểm tra
Vi /var/www/html/index.cgi
#!/usr/bin/perlprint "Content-type: text/html\n\n";
Trang 22print "</body>\n</html>\n";
chmod 705 /var/www/html/index.cgiStep 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 filechmod 705 /var/www/html/index.cgi
# configure httpdcat /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
Trang 23Step 3 : Chỉnh sửa file httpd
Vi /etc/httpd/conf/httpd.confDirectoryIndex index.html index.htm index.cgi index.phpStep 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 restartStep 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
Trang 24# 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
Trang 25Step 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
Trang 26- IMport database (bên ngoài SQL)
mysql -u root -p wordpress < /root/*.dbStep 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 */
3.5 Cấu hình alias cho website
Trang 27+ Tạo alias cho trang www.hoasen.com/admin
Step 1: Tạo thư mục và trang web test
Mkdir /var/www/html/adminEcho “admin test- Nguyen huu hoang”> /var/www/html/admin/index.htmlStep 2: Cấu hình file httpd.conf
Vi /etc/httpd/conf/httpd.confXuố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
Trang 28Step 1: Tạo user
Useradd hoasenStep 2: Gán quyền cho file
chmod 711 /home/hoasen/
mkdir /home/hoasen/public_htmlchown hoasen /home/hoasen/public_html/chmod 755 /home/huuhoang/public_html/hoặc:
Su hoasenMkdir public_htmlChmod 711 /home/hoasenChmod 755 /home/hoasen/public_html
Vi /home/hoasen/public_html/index.htmlEcho “web site cua hoasen”
Step 3: Cấu hình file httpd.conf
Vi /etc/httpd/conf/httpd.conf
#UserDir disableUserDir public_html
Trang 29<LimitExcept GET POST OPTIONS>
Order deny,allow Deny from all </LimitExcept>
</Directory>
# xuống cuối file cấu hình redirect Redirect /hoasen http://www.hoasen.com/~hoasenStep 4: Chỉnh sữa file Selinux
setsebool -P httpd_enable_homedirs truechcon -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
Trang 30Note: 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
echo "$B" >> test10
echo "$C" >> test10
cat test10 | sed 's/UserDir disable/\#&/;s/^\#UserDir public_html/UserDir public/' > 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 &&
Trang 31setsebool -P httpd_enable_homedirs true
chcon -R -t httpd_sys_content_t /home/user11/public_html
3.7 Name based virtual hosting
Step 1: vi /etc/httpd/conf/httpd.confNameVitualHost *:80
#Xuống cuối file thêm vào đoạn code :
<VirtualHost *:80>
DocumentRoot /var/www/html/hoasen2/
ServerName www.hoasen2.com
ServerAlias www.hoasen2.com ServerAdmin webmaster@hoasen2.com
ErrorLog logs/virtual.host-error_log CustomLog logs/virtual.host-access_log combined
</VirtualHost>
Step 2: Cấu hình DNS tạo thêm zone hoasen2 + vi /var/named/chroot/etc/named.conf
zone "hoasen2.com" IN {type master;
file "hoasen.db";
};
Step 3: Kiểm tra địa chỉ ip đã trỏ về chưa
Trang 32Step 4: Tạo một khachhang và một trang web cho khachhang public
+ Tạo file test thửEcho “hoasen2 test – Nguyen huu hoang” > /var/www/html/hoasen2/index.htmlStep 5: Reload và kiểm tra
3.8 Chứng thực
3.8.1 Base authentication
Step 1: tạo user truy cập
+ Htpasswd –c /etc/httpd/conf/password admin1+ kiểm tra : cat /etc/httpd/conf/password
Step 2 : cấu hình file httpd.conf trong alias của admin
+ vi /etc/httpd/conf/httpd.confAlias /admin "/var/www/html/admin"
<Directory "/var/www/html/admin">
AuthType Basic AuthName “admin”
AuthUserFile “/etc/httpd/conf/password”
Trang 33Require user admin1AllowOverride AllOptions Indexes MultiViews FollowSymLinksDirectoryIndex index.html
Order allow,denyAllow from all
</Directory>
Step 3: restart và kiểm tra truy cập trang www.hoasen.com/admin
3.8.2 Digest Authentication
Step 1: Tạo user truy cập
+ htdigest –c /etc/httpd/conf/password private admin1+ tạo group
Vi /etc/httpd/conf/groups
Admin: admin1 Step 2: Cấu hình file httpd.conf trong alias của admin
Trang 34+ vi /etc/httpd/conf/httpd.confAlias /admin "/var/www/html/admin"
<Directory "/var/www/html/admin">
AuthType DigestAuthName “private”
AuthUserFile “/etc/httpd/conf/password”
AuthGroupFile “/etc/httpd/conf/groups”
Require group admin AllowOverride AllOptions Indexes MultiViews FollowSymLinksDirectoryIndex index.html
Order allow,denyAllow from all
</Directory>
Step 3: Restart httpd và kiểm tra www.hoasen.com/admin
Trang 353.9 Config SSL
Step 1: Cài đặt openssl và mod_ssl
Yum –y install mod_sslStep 2: Tạo nơi chứa certificates và tạo certificates
Mkdir /etc/httpd/sslopenssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
Country Name (2 letter code) [XX]:VNState or Province Name (full name) []:hcmLocality Name (eg, city) [Default City]:hcmOrganization Name (eg, company) [Default Company Ltd]:HoasenOrganizational Unit Name (eg, section) []:hoasen
Common Name (eg, your name or your server's hostname) []:www.hoasen.com
Email Address []:
Step 3: cấu hình apache SSL
Vi /etc/httpd/conf.d/ssl.confDocumentRoot "/var/www/html"
ServerName www.hoasen.com:443
SSLEngine onSSLCertificateFile /etc/httpd/ssl/apache.crtSSLCertificateKeyFile /etc/httpd/ssl/apache.keyStep 4: Gán quyền cho các file và restart lại service httpd
Chmod 400 apache.* && Service httpd restartStep 5: Kiểm tra
https://www.hoasen.com
Trang 36Note: Làm tương tự cho các trang nếu muốn public web ra ngoài.
Vd: Nếu Có nhiều site cần public
www.hoasen1.com – Tạo hoasen1.cert và hoasen1.csr
www.hoasen2.com - Tạo hoasen2.cert và hoasen2.csr
- Sau đó cấu hình trong file /etc/httpd/conf/httpd.conf
vd : Cấu hình cho hoasen1.com
<VirtualHost *:80>
DocumentRoot /home/user2/public_html/DirectoryIndex index.html index.php index.cgi ServerName hoasen1.com
Trang 37ServerAdmin webmaster@hoasen1.com
ServerAlias www.hoasen1.com ErrorLog /home/user2/log/error.log CustomLog /home/user2/log/access.log combinedSSLEngine on
SSLCertificateFile /etc/httpd/ssl/hoasen1.certSSLCertificateKeyFile /etc/httpd/ssl/hoasen1.key
SSLCertificateFile /etc/httpd/ssl/hoasen2.certSSLCertificateKeyFile /etc/httpd/ssl/hoasen2.key
</VirtualHost>
Giám sát hệ thống