Cài đặt và bảo mật phpMyAdmin trên CentOS 8

theanh

Administrator
Nhân viên
phpMyAdmin là một công cụ mã nguồn mở và miễn phí để quản lý máy chủ MySQL và MariaDB qua giao diện dựa trên web. Với phpMyAdmin, bạn có thể tạo và quản lý cơ sở dữ liệu và người dùng, thực thi các câu lệnh SQL, nhập và xuất dữ liệu, và thực hiện các hoạt động cơ sở dữ liệu như tạo, xóa, bảng, cột, chỉ mục, quyền và nhiều hơn nữa. phpMyAdmin là một trong những công cụ quản trị phổ biến và được sử dụng rộng rãi nhất, đặc biệt là đối với các dịch vụ lưu trữ web.

Tính năng
  • Cung cấp giao diện web đơn giản và thân thiện với người dùng.
  • Nhập dữ liệu từ CSV và SQL.
  • Hỗ trợ hầu hết các tính năng của MySQL bao gồm tạo, sao chép, xóa, đổi tên, xóa và thay đổi cơ sở dữ liệu, bảng, trường và chỉ mục.
  • Cho phép bạn xuất dữ liệu sang nhiều định dạng khác nhau như PDF, CSV, SQL, XML và nhiều định dạng khác.
  • Quản lý nhiều máy chủ.
  • Tạo các truy vấn phức tạp bằng Truy vấn theo ví dụ (QBE).
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và bảo mật phpMyAdmin trên máy chủ CentOS 8.

Yêu cầu​

  • Máy chủ chạy CentOS 8.
  • Mật khẩu gốc được cấu hình trên máy chủ.

Cài đặt LAMP Server​

Trước tiên, bạn sẽ cần cài đặt Apache, MariaDB, PHP và các thư viện PHP khác vào máy chủ của mình. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
Mã:
dnf install httpd mariadb-server php php-pdo php-pecl-zip php-json php-common php-fpm php-mbstring php-cli php-mysqlnd php-json php-mbstring wget unzip
Sau khi tất cả các gói được cài đặt, hãy khởi động dịch vụ Apache 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 httpd
 systemctl start mariadb
 systemctl enable httpd
 systemctl enable mariadb
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cấu hình MariaDB​

Theo mặc định, MariaDB không được bảo mật. Vì vậy, trước tiên bạn sẽ cần bảo mật cho nó. Bạn có thể thực hiện bằng cách chạy tập lệnh mysql_secure_installation:
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ã:
Đặt mật khẩu root? [Y/n] YMật khẩu mới:Xóa người dùng ẩn danh? [Y/n] YKhông cho phép đăng nhập root 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 hoàn tất, bạn sẽ thấy đầu ra sau:
Mã:
... Thành công!Đang dọn dẹp...Xong! Nếu bạn đã hoàn tất tất cả các bước trên, thìcài đặt MariaDB của bạn hiện đã an toàn.Cảm ơn bạn đã sử dụng MariaDB!
Tại thời điểm này, cài đặt MariaDB của bạn đã được bảo mật.

Cài đặt phpMyAdmin​

Theo mặc định, phpMyAdmin không có trong kho lưu trữ mặc định của CentOS 8. Vì vậy, bạn sẽ cần tải xuống phiên bản mới nhất của phpMyAdmin từ trang web chính thức của họ. Bạn có thể tải xuống bằng lệnh sau:
Mã:
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.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 phpMyAdmin-4.9.2-all-languages.zip
Tiếp theo, di chuyển nội dung đã giải nén vào thư mục /usr/share như hiển thị bên dưới:
Mã:
mv phpMyAdmin-4.9.2-all-languages /usr/share/phpmyadmin
Tiếp theo, hãy đổi thư mục thành /usr/share/phpmyadmin và đổi tên tệp config.sample.inc.php:
Mã:
cd /usr/share/phpmyadmin
 mv config.sample.inc.php config.inc.php
Tiếp theo, mở tệp bằng trình soạn thảo văn bản yêu thích của bạn như được hiển thị bên dưới:
Mã:
nano config.inc.php
Thay đổi dòng sau:
Mã:
$cfg['blowfish_secret'] = 'your-secret-password';
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, nhập create_tables.sql bằng lệnh sau:
Mã:
mysql < /usr/share/phpmyadmin/sql/create_tables.sql -u root -p
Cung cấp mật khẩu root của bạn khi được nhắc nhập bảng.

Tiếp theo, tạo thư mục tmp cho phpmyadmin và cấp quyền thích hợp:
Mã:
mkdir /usr/share/phpmyadmin/tmp
 chown -R apache:apache /usr/share/phpmyadmin
 chmod 777 /usr/share/phpmyadmin/tmp

Cấu hình Apache cho phpMyAdmin​

Tiếp theo, bạn sẽ cần tạo tệp cấu hình máy chủ ảo Apache cho phpMyAdmin. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/httpd/conf.d/phpmyadmin.conf
Thêm các dòng sau:
Mã:
Bí danh /phpmyadmin /usr/share/phpmyadmin AddDefaultCharset UTF-8  # Apache 2.4  Yêu cầu tất cả được cấp    # Apache 2.2 Thứ tự Từ chối, Cho phép Từ chối tất cả Cho phép từ 127.0.0.1 Cho phép từ ::1   # Apache 2.4  Yêu cầu tất cả được cấp    # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ Apache bằng lệnh sau:
Mã:
systemctl restart httpd
Bạn có thể kiểm tra trạng thái của Apache bằng lệnh sau:
Mã:
systemctl status httpd
Bạn sẽ thấy đầu ra sau:
Mã:
? httpd.service - Máy chủ HTTP Apache Đã tải: đã tải (/usr/lib/systemd/system/httpd.service; đã bật; cài đặt trước của nhà cung cấp: đã tắt) Drop-In: /usr/lib/systemd/system/httpd.service.d ??php-fpm.conf Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ 4, ngày 18 tháng 12 năm 2019 lúc 01:07:52 EST; 6 giây trước Tài liệu: man:httpd.service(8) PID chính: 5636 (httpd) Trạng thái: "Đã bắt đầu, đang lắng nghe trên: cổng 80" Nhiệm vụ: 213 (giới hạn: 25044) Bộ nhớ: 28,7M CGroup: /system.slice/httpd.service ??5636 /usr/sbin/httpd -DFOREGROUND ??5639 /usr/sbin/httpd -DFOREGROUND ??5640 /usr/sbin/httpd -DFOREGROUND ??5641 /usr/sbin/httpd -DFOREGROUND ??5642 /usr/sbin/httpd -DFOREGROUND18 tháng 12 01:07:52 centos8 systemd[1]: Đã dừng Máy chủ HTTP Apache.18/12 01:07:52 centos8 systemd[1]: Đang khởi động Máy chủ Apache HTTP...18/12 01:07:52 centos8 httpd[5636]: AH00558: httpd: Không thể xác định chính xác tên miền đủ điều kiện của máy chủ, sử dụng fe80::200:d0>18/12 01:07:52 centos8 httpd[5636]: Máy chủ được cấu hình, đang lắng nghe trên: cổng 8018/12 01:07:52 centos8 systemd[1]: Đã khởi động Máy chủ HTTP Apache.

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 SELinux để phpMyAdmin hoạt động chính xác.

Trước tiên, hãy cài đặt gói policycoreutils-python-utils để quản lý môi trường SELinux bằng lệnh sau:
Mã:
dnf install policycoreutils-python-utils
Tiếp theo, hãy bật quyền truy cập vào thư mục /usr/share/phpmyadmin bằng lệnh sau:
Mã:
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/phpmyadmin/'
 semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?"
Bây giờ hãy đệ quy qua tất cả các tệp trong thư mục phpmyadmin của bạn bằng cách chạy lệnh sau:
Mã:
restorecon -Rv '/usr/share/phpmyadmin/'
Tiếp theo, bạn sẽ cần tạo một quy tắc tường lửa để cho phép dịch vụ HTTP từ các mạng bên ngoài. Bạn có thể cho phép bằng lệnh sau:
Mã:
firewall-cmd --permanent --add-service=http
 firewall-cmd --reload
phpMyAdmin hiện đã được cài đặt và cấu hình. Bây giờ là lúc kiểm tra xem nó có hoạt động hay không.

Mở trình duyệt web của bạn và nhập URL http://your-server-ip/phpmyadmin. Bạn sẽ được chuyển hướng đến trang sau:


Bảo mật phpMyAdmin​

Lúc này, phiên bản phpMyAdmin đang hoạt động bình thường. Tuy nhiên, bảo mật phiên bản phpMyAdmin của bạn khỏi thế giới bên ngoài là một nhiệm vụ quan trọng đối với bạn. Trong phần này, chúng tôi sẽ chỉ cho bạn cách bảo mật phiên bản phpMyAdmin của mình.

Cho phép phpMyAdmin từ IP cụ thể​

Trước tiên, bạn sẽ cần định cấu hình phpMyAdmin của mình để chỉ có thể truy cập được từ địa chỉ IP của kết nối tại nhà.

Bạn có thể định cấu hình bằng cách chỉnh sửa tệp /etc/httpd/conf.d/phpmyadmin.conf:
Mã:
nano /etc/httpd/conf.d/phpmyadmin.conf
Tìm các dòng sau:
Mã:
 Yêu cầu tất cả các quyền được cấp
Và thay thế chúng bằng quyền sau:
Mã:
 Yêu cầu ip your-home--connection-ip-address Yêu cầu ip ::1
Lưu và đóng tệp khi bạn hoàn tất.

Cấu hình lớp xác thực bổ sung​

Bạn nên bảo vệ thư mục phpmyadmin bằng mật khẩu bằng cách thiết lập xác thực cơ bản.

Để thực hiện, hãy tạo tệp xác thực mới bằng công cụ htpasswd như hiển thị bên dưới:
Mã:
mkdir /etc/phpmyadmin
 htpasswd -c /etc/phpmyadmin/.htpasswd admin
Bạn sẽ được yêu cầu cung cấp mật khẩu quản trị viên như hiển thị bên dưới:
Mã:
Mật khẩu mới:Nhập lại mật khẩu mới:Đang thêm mật khẩu cho người dùng admin
Tiếp theo, bạn sẽ cần cấu hình Apache để sử dụng tệp .htpasswd. Bạn có thể thực hiện việc này bằng cách chỉnh sửa tệp /etc/httpd/conf.d/phpmyadmin.conf.
Mã:
nano /etc/httpd/conf.d/phpmyadmin.conf
Thêm các dòng sau bên dưới dòng "AddDefaultCharset UTF-8":
Mã:
Options +FollowSymLinks +Multiviews +Indexes AllowOverride None AuthType basic AuthName "Authentication Required" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user
Lưu tệp và khởi động lại dịch vụ Apache để các thay đổi có hiệu lực:
Mã:
systemctl restart httpd

Truy cập phpMyAdmin​

Bây giờ, phiên bản phpMyAdmin của bạn được bảo mật bằng một lớp bảo mật bổ sung. Mở trình duyệt web của bạn và nhập URL http://your-server-ip/phpmyadmin. Bạn sẽ được yêu cầu nhập thông tin đăng nhập của người dùng mà bạn đã tạo trước đó như hiển thị bên dưới:



Cung cấp tên người dùng và mật khẩu quản trị viên của bạn, sau đó nhấp vào nút OK. Bạn sẽ được chuyển hướng đến trang đăng nhập phpMyAdmin:



Bây giờ, hãy cung cấp thông tin đăng nhập người dùng quản trị MySQL của bạn và nhấp vào nút Go. Bạn sẽ thấy trang sau:


Kết luận​

Xin chúc mừng! Bạn đã cài đặt và bảo mật phpMyAdmin thành công trên máy chủ CentOS 8. Bây giờ bạn có thể tạo cơ sở dữ liệu, người dùng, bảng và quản lý chúng từ giao diện dựa trên web. 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