Cách cài đặt Vanila Forum và bảo mật bằng Let's Encrypt trên CentOS 8

theanh

Administrator
Nhân viên
Vanilla là phần mềm diễn đàn cộng đồng miễn phí, mã nguồn mở và linh hoạt có thể được sử dụng để xây dựng trang diễn đàn của riêng bạn. Đây là giải pháp diễn đàn nhẹ và đa ngôn ngữ giúp bạn thiết lập cộng đồng trực tuyến trong vòng vài phút. Nó được viết bằng PHP và đi kèm với nhiều tiện ích bổ sung và chủ đề. Nó được tích hợp nhiều tính năng cao cấp và được các thương hiệu hàng đầu sử dụng để thu hút khách hàng, thúc đẩy lòng trung thành và giảm chi phí hỗ trợ.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt diễn đàn Vanilla trên CentOS 8 và bảo mật diễn đàn bằng Let's Encrypt SSL.

Điều kiện tiên quyết​

  • Máy chủ chạy CentOS 8.
  • Mật khẩu gốc được thiết lập trên máy chủ của bạn.

Cài đặt LEMP Server​

Trước tiên, bạn sẽ cần cài đặt máy chủ web Nginx, máy chủ cơ sở dữ liệu MariaDB, PHP và các tiện ích mở rộng PHP bắt buộc khác trong hệ thống của mình. Bạn có thể chạy lệnh sau để cài đặt tất cả các gói:
Mã:
dnf install nginx mariadb-server php php php-mysqlnd php-opcache php-xml php-xmlrpc php-gd php-mbstring php-json php-fpm php-curl php-pear php-openssl php-intl unzip -y
Sau khi cài đặt tất cả các gói, hãy khởi động dịch vụ Nginx, PHP-FPM và MariaDB và cho phép chúng khởi động sau khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl start nginx
 systemctl start php-fpm
 systemctl start mariadb
 systemctl enable nginx
 systemctl enable php-fpm
 systemctl enable mariadb

Cấu hình Cơ sở dữ liệu MariaDB​

Trước khi bắt đầu, bạn nên bảo mật MariaDB của mình. Bạn có thể bảo mật bằng tập lệnh sau:
Mã:
mysql_secure_installation
Trả lời tất cả các câu hỏi như hiển thị bên dưới:
Mã:
Nhập mật khẩu hiện tại cho root (nhập nếu không có):Đặt mật khẩu root? [Y/n] YMật khẩu mới:Nhập lại mật khẩu mới:Xóa người dùng ẩn danh? [Y/n] YKhông cho phép root đăng nhập từ xa? [Y/n] YXóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] YTải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Sau khi bảo mật MariaDB, hãy đăng nhập vào shell MariaDB bằng lệnh sau:
Mã:
mysql -u root -p
Cung cấp mật khẩu gốc MariaDB của bạn và tạo cơ sở dữ liệu và người dùng cho Vanilla bằng lệnh sau:
Mã:
MariaDB [(none)]> CREATE DATABASE vanilladb CHARACTER SET utf8 COLLATE utf8_general_ci;
 MariaDB [(none)]> CREATE USER 'vanilla'@'localhost' IDENTIFIED BY 'password';
Tiếp theo, cấp tất cả các quyền cho cơ sở dữ liệu Vanilla bằng lệnh sau:
Mã:
MariaDB [(none)]> CẤP TẤT CẢ CÁC QUYỀN TRÊN vanilladb.* CHO 'vanilla'@'localhost';
Tiếp theo, xóa các quyền và thoát khỏi shell MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> XÓA CÁC QUYỀN;
 MariaDB [(none)]> EXIT;

Tải xuống Diễn đàn Vanilla​

Bạn có thể tải xuống phiên bản ổn định mới nhất của diễn đàn Vanilla từ trang web chính thức bằng lệnh sau:
Mã:
wget https://open.vanillaforums.com/get/vanilla-core-3.3.zip
Sau khi tải xuống, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Mã:
unzip vanilla-core-3.3.zip
Tiếp theo, di chuyển thư mục đã giải nén đến thư mục gốc web Nginx bằng lệnh sau:
Mã:
mv package /var/www/html/vanilla
Tiếp theo, thay đổi quyền sở hữu thư mục vanilla thành Nginx:
Mã:
chown -R nginx:nginx /var/www/html/vanilla
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cấu hình PHP-FPM Pool​

Theo mặc định, PHP-FPM được cấu hình cho Apache. Ở đây, chúng ta sẽ sử dụng Nginx làm máy chủ web. Vì vậy, bạn sẽ cần cấu hình PHP-FPM cho Nginx. Bạn có thể thực hiện bằng cách chỉnh sửa tệp /etc/php-fpm.d/www.conf:
Mã:
nano /etc/php-fpm.d/www.conf
Thay đổi các dòng sau:
Mã:
user = nginxgroup = nginx
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, tạo một thư mục phiên cho PHP và thay đổi quyền sở hữu của nó:
Mã:
mkdir -p /var/lib/php/session
 chown -R nginx:nginx /var/lib/php/session
Tiếp theo, khởi động lại dịch vụ PHP-FPM để áp dụng các thay đổi:
Mã:
systemctl restart php-fpm

Cấu hình Nginx cho Vanilla​

Tiếp theo, tạo một tệp máy chủ ảo Nginx mới để phục vụ diễn đàn Vanilla.
Mã:
nano /etc/nginx/conf.d/vanilla.conf
Thêm các dòng sau:
Mã:
server { listen 80; server_name vanilla.linuxbuz.com; root /var/www/html/vanilla; index index.php; location ~* /\.git { từ chối tất cả; trả về 403; } location /build/ { từ chối tất cả; trả về 403; } location /cache/ { từ chối tất cả; trả về 403; } location /cgi-bin/ { từ chối tất cả; trả về 403; } location /uploads/import/ { từ chối tất cả; trả về 403; } location /conf/ { từ chối tất cả; trả về 403; } location /tests/ { từ chối tất cả; trả về 403; } location /vendor/ { từ chối tất cả; trả về 403; } location ~* ^/index\.php(/|$) { fastcgi_split_path_info ^(.+\.php)(/.+)$; try_files $fastcgi_script_name =404; set $path_info $fastcgi_path_info; fastcgi_param PATH_INFO $path_info; fastcgi_index index.php; include fastcgi.conf; fastcgi_param SCRIPT_NAME /index.php; fastcgi_param SCRIPT_FILENAME $realpath_root/index.php; fastcgi_param X_REWRITE 1; fastcgi_pass unix:/var/run/php-fpm/www.sock; } location ~* \.php(/|$) { rewrite ^ /index.php$uri last; } location / { try_files $uri $uri/ @vanilla; } location @vanilla { rewrite ^ /index.php$uri last; }}
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ Nginx để áp dụng các thay đổi:
Mã:
systemctl restart nginx

Bảo mật Vanilla với Let's Encrypt SSL​

Tiếp theo, bạn sẽ cần cài đặt tiện ích Certbot trong hệ thống của mình để tải xuống và cài đặt Let's Encrypt SSL cho trang web Vanilla của bạn.

Bạn có thể cài đặt ứng dụng khách Certbot bằng lệnh sau:
Mã:
wget https://dl.eff.org/certbot-auto
 mv certbot-auto /usr/local/bin/certbot-auto
 chown root /usr/local/bin/certbot-auto
 chmod 0755 /usr/local/bin/certbot-auto
Tiếp theo, lấy và cài đặt chứng chỉ SSL cho trang web Vanilla của bạn bằng lệnh sau:
Mã:
certbot-auto --nginx -d vanilla.linuxbuz.com
Lệnh trên sẽ cài đặt tất cả các phụ thuộc cần thiết trên máy chủ của bạn trước. Sau khi cài đặt, bạn sẽ được yêu cầu cung cấp địa chỉ email và chấp nhận điều khoản dịch vụ như hiển thị bên dưới:
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator nginx, Installer nginxNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME tạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có sẵn lòng chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuận phát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và các cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)o: CNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho vanilla.linuxbuz.comĐang chờ xác minh...Đang dọn dẹp các thử tháchTriển khai chứng chỉ cho VirtualHost /etc/nginx/conf.d/vanilla.conf
Chọn xem bạn có muốn chuyển hướng lưu lượng HTTP sang HTTPS hay không như hiển thị bên dưới:
Mã:
Vui lòng chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không, xóa quyền truy cập HTTP.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: Không chuyển hướng - Không thực hiện thêm bất kỳ thay đổi nào đối với cấu hình máy chủ web.2: Chuyển hướng - Chuyển hướng tất cả các yêu cầu đến quyền truy cập HTTPS an toàn. Chọn tùy chọn này chocác trang web mới hoặc nếu bạn tin tưởng rằng trang web của mình hoạt động trên HTTPS. Bạn có thể hoàn tácthay đổi này bằng cách chỉnh sửa cấu hình máy chủ web của mình.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Chọn số thích hợp [1-2] rồi [enter] (nhấn 'c' để hủy): 2
Nhập 2 và nhấn Enter để tiếp tục. Sau khi quá trình cài đặt hoàn tất thành công, bạn sẽ nhận được kết quả sau:
Mã:
Chuyển hướng tất cả lưu lượng truy cập trên cổng 80 sang ssl trong /etc/nginx/conf.d/vanilla.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://vanilla.linuxbuz.comBạn nên kiểm tra cấu hình của mình tại:https://www.ssllabs.com/ssltest/analyze.html?d=vanilla.linuxbuz.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/vanilla.linuxbuz.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/vanilla.linuxbuz.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 2020-06-11. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot-auto với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* chứng chỉ của bạn, hãy chạy "certbot-auto renew" - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le

Cấu hình SELinux và Tường lửa​

Theo mặc định, SELinux được bật trong CentOS 8. Vì vậy, bạn sẽ cần cấu hình nó cho trang web diễn đàn Vanilla của mình.

Bạn có thể cấu hình SELinux bằng lệnh sau:
Mã:
setsebool httpd_can_network_connect on -P
 chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/vanilla
Tiếp theo, cho phép cổng 80 và 443 đi qua tường lửa bằng lệnh sau:
Mã:
firewall-cmd --permanent --add-service=http
Mã:
firewall-cmd --permanent --add-service=https
 firewall-cmd --reload
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Access Vanilla Forum​

Mở trình duyệt web của bạn và truy cập URL https://vanilla.linuxbuz.com. Bạn sẽ được chuyển hướng đến trang sau:





Cung cấp thông tin chi tiết về Cơ sở dữ liệu, Tiêu đề ứng dụng, Email, Tên người dùng quản trị, Mật khẩu và nhấp vào nút Tiếp tục. Sau khi quá trình cài đặt hoàn tất, bạn sẽ thấy bảng điều khiển Vanilla ở trang sau:


Kết luận​

Xin chúc mừng! Bạn đã cài đặt thành công Vanilla forum trên CentOS 8 với Let's Encrypt SSL. Bây giờ bạn có thể dễ dàng lưu trữ trang web diễn đàn cộng đồng của riêng mình. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên