Hướng dẫn khắc phục lỗ hổng bảo mật CVE-2019-11477 trên Cloud365
Hướng dẫn khắc phục lỗ hổng bảo mật CVE-2019-11477 trên Cloud365
Nơi chứa các tài liệu tham khảo của dịch vụ Cloud365.
Vhost viết tắt của virtual host là kỹ thuật cho phép nhiều website có thể chia sẻ chung một IP.Trong phần này, chúng ta sẽ tập trung viết về cấu hình vhost cho nginx và cấu hình php-fpm để vhost xử lý được file php Để xem cách cài đặt nginx bạn có thể xem lại bài trước tại đây
Webserver: Chuẩn bị một máy chủ cài đặt OS Centos 7.6.1810 có địa chỉ IP public 10.10.11.165
Máy Client: Chuẩn bị một máy client cài đặt OS Win 10 để kiểm tra truy cập website với IP client 10.10.11.160
Để Vhost có thể xử lý được file php chúng ta cần cài đặt php, php-fpm và các extention liên quan.Chúng ta truy cập ssh vào máy chủ webserver và chạy lệnh cài đặt bên dưới
yum install -y php-common php-bcmath php-cli php-devel php-mcrypt php-mysql php-password-compat php-pclzip php-pdo php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-dba php-embedded php-enchant php-mbstring php-intl libssh2 php-pecl-ssh2 php-pecl-memcached php-pecl-memcache php-fpm
Sửa file cấu hình của php-fpm
sed -i 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf
service php-fpm restart
Truy cập vào đường dẫn chứa file config của nginx
cd /etc/nginx/
Backup lại file nginx.conf
mv nginx.conf nginx.conf.bak
Sửa file cấu hình Nginx
cat >> nginx.conf << "EOF"
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
EOF
Truy cập vào đường dẫn chung chứa code của các website và tạo thư mục riêng chứa code của site quyenbx.name.vn
cd /var/www/html
mkdir quyenbx.name.vn
Truy cập đường dẫn chứa các file cấu hình của virtualhost
cd /etc/nginx/conf.d/
Backup file cấu hình default
mv default.conf default.conf.bak
Tạo virtualhost trong Nginx
cat >> quyenbx.name.vn.conf << "EOF"
server {
listen 80;
server_name quyenbx.name.vn;
access_log /var/logs/nginx/quyenbx.name.vn-access_log;
error_log /var/logs/nginx/quyenbx.name.vn-error_log;
location / {
root /var/www/html/quyenbx.name.vn;
index index.html index.php index.htm;
}
location ~ \.php$ {
root /var/www/html/quyenbx.name.vn;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
EOF
Tạo thư mục chứa log cho Vhost
mkdir /var/logs/nginx
Restart lại service nginx
service nginx restart
Trong bài viết này sử dụng domain quyenbx.name.vn để cấu hình virtualhost, người dùng cần thay đổi tên domain cũng như đường dẫn chứa code phù hợp
Truy cập đường dẫn chứa code của site quyenbx.name.vn
cd /var/www/html/quyenbx.name.vn
Chúng ta tiến hành tạo 1 file info.php trong thư mục /var/www/html/quyenbx.name.vn để kiểm tra website
cat >> info.php << "EOF"
<?php
phpinfo();
?>
EOF
Sau đó chúng ta truy cập đường dẫn http://quyenbx.name.vn/info.php trả về kết quả như hình bên dưới
LƯU Ý: Thực thế người dùng có domain đăng ký ở các nhà cung cấp ví dụ Nhân Hòa thì cần trỏ bản ghi cho tên miền về IP của server website để có thể truy cập trên trình duyệt web.Trong bài viết này mình sử dụng add file hosts trong windows để truy cập
Để thêm một Vhost khác trên server Website chúng ta thao tác lại các bước bên dưới.Ví dụ mình muốn thêm một website khác trên server này với tên thangth.name.vn
Truy cập vào đường dẫn chung chứa code của các website và tạo thư mục riêng chứa code của site thangth.name.vn
cd /var/www/html
mkdir thangth.name.vn
Truy cập đường dẫn chứa các file cấu hình của virtualhost
cd /etc/nginx/conf.d/
Tạo virtualhost trong Nginx
cat >> thangth.name.vn.conf << "EOF"
server {
listen 80;
server_name thangth.name.vn;
access_log /var/logs/nginx/thangth.name.vn-access_log;
error_log /var/logs/nginx/thangth.name.vn-error_log;
location / {
root /var/www/html/thangth.name.vn;
index index.html index.php index.htm;
}
location ~ \.php$ {
root /var/www/html/thangth.name.vn;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
EOF
Restart lại service nginx
service nginx restart
Truy cập đường dẫn chứa code của site thangth.name.vn
cd /var/www/html/thangth.name.vn
Chúng ta tiến hành tạo 1 file test.php trong thư mục /var/www/html/thangth.name.vn để kiểm tra website
cat >> test.php << "EOF"
<?php
echo "WebSite ThangTh";
?>
EOF
Sau đó chúng ta truy cập đường dẫn http://thangth.name.vn/test.php trả về kết quả như hình bên dưới
Thực hiện bởi cloud365.vn