Cách cài đặt và bảo mật phpMyAdmin trên Ubuntu 18.04 LTS

theanh

Administrator
Nhân viên
phpMyAdmin là một công cụ quản trị mã nguồn mở và miễn phí dành cho MySQL và MariaDB. phpMyAdmin là một công cụ dựa trên web cho phép bạn dễ dàng quản lý cơ sở dữ liệu MySQL hoặc MariaDB. Bạn có thể thực hiện các tác vụ quản trị như tạo, chỉnh sửa hoặc xóa cơ sở dữ liệu, nhập và xuất bản sao lưu cơ sở dữ liệu, chạy tìm kiếm và quản lý người dùng và quyền bằng phpMyAdmin.

Tính năng​

  • Hỗ trợ nhiều ngôn ngữ.
  • Nhập dữ liệu từ CSV và SQL.
  • Cung cấp biểu đồ trực tiếp để theo dõi hoạt động của máy chủ MySQL như kết nối, quy trình, mức sử dụng CPU/bộ nhớ, v.v.
  • Tìm kiếm toàn cầu trong cơ sở dữ liệu hoặc một tập hợp con của cơ sở dữ liệu đó.
  • Giao diện web đơn giản và dễ sử dụng.
  • Xuất dữ liệu sang nhiều định dạng khác nhau như CSV, SQL, XML, PDF, Word, Excel, LaTeX và các định dạng khác.
Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt và bảo mật phpMyAdmin trên máy chủ Ubuntu 18.04.

Yêu cầu​

  • Máy chủ chạy Ubuntu 18.04.
  • Người dùng không phải root có quyền sudo.

Cài đặt phpMyAdmin​

Trước khi bắt đầu, bạn sẽ cần cài đặt Apache và MySQL vào máy chủ của mình. Bạn có thể cài đặt bằng lệnh sau:
Mã:
sudo apt-get install apache2 mysql-server -y
Theo mặc định, phpMyAdmin không có trong kho lưu trữ mặc định của Ubuntu 18.04. Vì vậy, bạn sẽ cần thêm kho lưu trữ PHP của bên thứ ba vào hệ thống của mình.

Bạn có thể thêm nó chỉ bằng cách chạy lệnh sau:
Mã:
sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php
Sau khi kho lưu trữ được thêm vào, hãy cài đặt phpMyAdmin bằng cách chạy lệnh sau:
Mã:
sudo apt-get install phpmyadmin php-mbstring php-gettext -y
Trong quá trình cài đặt, bạn sẽ được yêu cầu chọn máy chủ web như hiển thị bên dưới:



Chọn Apache và nhấp vào nút OK. Bạn sẽ được chuyển hướng đến trang sau:



Bây giờ, hãy nhấp vào nút Yes. Bạn sẽ thấy trang sau:





Tại đây, hãy cung cấp mật khẩu ứng dụng MySQL của bạn cho phpMyAdmin và nhấp vào nút OK.

Sau khi phpMyAdmin đã được cài đặt, hãy bật tiện ích mở rộng PHP mbstring bằng lệnh sau:
Mã:
sudo phpenmod mbstring
Tiếp theo, khởi động lại dịch vụ Apache để áp dụng các thay đổi:
Mã:
sudo systemctl restart apache2

Cấu hình Xác thực Người dùng​

phpMyAdmin tự động tạo một người dùng cơ sở dữ liệu có tên là phpmyadmin với mật khẩu quản trị mà bạn đã đặt trong quá trình cài đặt. Tuy nhiên, bạn nên tạo một người dùng riêng để quản lý cơ sở dữ liệu thông qua giao diện web phpMyAdmin. Trong phiên bản mới nhất của MariaDB, người dùng MySQL gốc được đặt để xác thực bằng plugin auth_socket theo mặc định. Vì vậy, nếu bạn muốn đăng nhập vào phpMyAdmin với tư cách là người dùng MySQL gốc, bạn sẽ cần chuyển phương thức xác thực của nó từ auth_socket sang mysql_native_password.

Đầu tiên, hãy đăng nhập vào shell MySQL bằng lệnh sau:
Mã:
sudo mysql
Tiếp theo, hãy kiểm tra phương thức xác thực của người dùng MySQL bằng lệnh sau:
Mã:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Đầu ra:
Mã:
+------------------+------------------------------------+-----------------------+-----------+| user | authentication_string | plugin | host |+------------------+-------------------------------------------+-----------------------+-----------+| root | | auth_socket | localhost || mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost || mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost || debian-sys-maint | *AC18DF5CAE34BF4796EF975702F038A566B48B42 | mysql_native_password | localhost |+------------------+-------------------------------------------+-----------------------+----------+4 hàng trong tập hợp (0,01 giây)
Trong đầu ra ở trên, bạn sẽ thấy rằng người dùng root sử dụng plugin auth_socket.

Bạn có thể cấu hình tài khoản root để xác thực bằng mật khẩu bằng cách chạy lệnh sau:
Mã:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Tiếp theo, xóa các đặc quyền bằng lệnh sau:
Mã:
mysql> FLUSH PRIVILEGES;
Bây giờ, hãy kiểm tra các phương thức xác thực bằng cách chạy lệnh sau:
Mã:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Đầu ra:
Mã:
+------------------+----------------------------------------+-----------------------+------------+| người dùng | chuỗi xác thực | plugin | máy chủ |+------------------+----------------------------------------+-----------------------+----------+----------+| root | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 | mysql_native_password | localhost || mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost || mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost || debian-sys-maint | *AC18DF5CAE34BF4796EF975702F038A566B48B42 | mysql_native_password | localhost |+------------------+----------------------------------------+-----------------------+----------+4 hàng trong tập hợp (0,01 giây)
Tiếp theo, tạo một người dùng riêng có tên phpmyadminuser để kết nối với phpMyAdmin.

Đầu tiên, đăng nhập vào shell MySQL:
Mã:
mysql -u root -p
Nhập mật khẩu root của bạn, sau đó tạo một người dùng bằng lệnh sau:
Mã:
MariaDB [(none)]> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'password';
Tiếp theo, cấp các quyền thích hợp cho phpmyadminuser bằng lệnh sau:
Mã:
MariaDB [(none)]> CẤP TẤT CẢ CÁC QUYỀN TRÊN *.* CHO 'phpmyadminuser'@'localhost' VỚI TÙY CHỌN CẤP;
Cuối cùng, thoát khỏi shell MySQL bằng lệnh sau:
Mã:
MariaDB [(none)]> exit;
Bây giờ, hãy 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:



Tại đây, hãy cung cấp tên người dùng và mật khẩu của bạn. Sau đó, nhấp vào nút Go. Bạn sẽ thấy bảng điều khiển PhpMyAdmin ở trang sau:


Bảo mật PhpMyAdmin​

phpMyAdmin hiện đã được cài đặt và định cấu hình. Tuy nhiên, bạn nên bảo mật phiên bản phpMyAdmin của mình để ngăn chặn truy cập trái phép. Bạn có thể bảo mật phpMyAdmin bằng cách sử dụng chức năng xác thực và ủy quyền .htaccess tích hợp sẵn của Apache.

Để thực hiện, trước tiên hãy bật chức năng ghi đè tệp .htaccess bằng cách chỉnh sửa tệp phpmyadmin.conf:
Mã:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Thực hiện các thay đổi sau:
Mã:
 Options SymLinksIfOwnerMatch DirectoryIndex index.php AllowOverride All
Lưu và đóng tệp. Sau đó, khởi động lại dịch vụ Apache để áp dụng các thay đổi:
Mã:
sudo systemctl restart apache2
Tiếp theo, tạo tệp .htaccess bên trong thư mục phpmyadmin:
Mã:
sudo nano /usr/share/phpmyadmin/.htaccess
Thêm các dòng sau:
Mã:
AuthType BasicAuthName "Tệp bị hạn chế"AuthUserFile /etc/phpmyadmin/.htpasswdRequire valid-user
Lưu và đóng tệp. Sau đó, tạo một người dùng có tên là admin bằng tiện ích htpasswd:
Mã:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd admin
Đầu ra:
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
Phiên bản phpMyAdmin của bạn hiện được bảo mật bằng một lớp xác thực bổ sung.

Bây giờ, hãy 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 tên tài khoản và mật khẩu bổ sung mà bạn vừa cấu hình như bên dưới:



Bây giờ, hãy cung cấp tên người dùng và mật khẩu của bạn và nhấp vào nút Đăng nhập Vào. Bạn sẽ được chuyển hướng đến trang xác thực phpMyAdmin thông thường.

Liên kết​

 
Back
Bên trên