phpMyAdmin là một công cụ mã nguồn mở và miễn phí để quản lý và quản trị máy chủ MySQL. Nó có thể được sử dụng để quản lý nhiều máy chủ MySQL ở nhiều vị trí khác nhau. phpMyAdmin là một ứng dụng dựa trên web được viết bằng PHP và có thể chạy dưới LAMP (Linux, Apache2, MariaDB/MySQL, PHP) hoặc LEMP (Linux, Nginx, MariaDB/MySQL, PHP-FPM). phpMyAdmin là một ứng dụng rất mạnh mẽ và trở thành ứng dụng được sử dụng rộng rãi để quản lý máy chủ MySQL, nó cung cấp tài liệu và wiki mở rộng.
phpMyAdmin cho phép bạn quản lý dữ liệu MySQL từ trình duyệt web, bạn có thể quản lý cơ sở dữ liệu, bảng, cột, chỉ mục, quan hệ, người dùng, quyền, v.v. từ một giao diện người dùng bảng điều khiển duy nhất trên trình duyệt web của mình. phpMyAdmin cũng cho phép bạn nhập và xuất dữ liệu vào máy chủ MySQL. Bạn có thể nhập dữ liệu CSV và SQL vào MySQL, cũng như xuất dữ liệu sang nhiều định dạng như CSV, SQL, XML, Latex, XML, PDF và văn bản và bảng tính OpenDocument.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình phpMyAdmin trên máy chủ Ubuntu 22.04 mới nhất. Hướng dẫn này cũng đề cập đến một số cấu hình bổ sung để bảo mật cài đặt phpMyAdmin.
Ở trạng thái hiện tại, Ubuntu cung cấp phpMyAdmin v5.x, đây là phiên bản ổn định mới nhất của phpMyAdmin.
Trước khi bắt đầu cài đặt các gói, hãy chạy lệnh sau để cập nhật và làm mới kho lưu trữ Ubuntu của bạn.
Hãy đảm bảo kho lưu trữ Ubuntu APT Universe được bật trên hệ thống của bạn.
Bây giờ hãy kiểm tra gói phpmyadmin bằng lệnh sau.
Như bạn có thể thấy trên ảnh chụp màn hình sau, kho lưu trữ Ubuntu APT cung cấp phpMyAdmin v5.x và nó có sẵn trên kho lưu trữ Universe của Ubuntu.
Tiếp theo, bạn có thể cài đặt gói phpMyAdmin bằng lệnh bên dưới.
Nhập Y để xác nhận cài đặt và nhấn ENTER để bắt đầu. Bây giờ quá trình cài đặt phpMyAdmin đang diễn ra.
Trong quá trình cài đặt phpMyAdmin, bạn sẽ được yêu cầu cấu hình các thông số sau:
Chọn máy chủ web cho phpMyAdmin. Trong ví dụ này, máy chủ web là apache2, sau đó chọn OK.
Bây giờ hãy chọn Yes để bắt đầu cấu hình phpMyAdmin bằng dbconfig-common. Thao tác này sẽ tự động cấu hình tất cả các cơ sở dữ liệu cho phpMyAdmin.
Đối với mật khẩu cơ sở dữ liệu phpMyAdmin, bạn có thể để trống hoặc chỉ cần nhập mật khẩu của riêng bạn rồi chọn OK. Nếu bạn để trống, dbconfig-common sẽ tự động tạo mật khẩu cho phpMyAdmin của bạn.
Cuối cùng, hãy mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ với đường dẫn URL /phpmyadmin (ví dụ: http://192.168.10.15/phpmyadmin). Và bây giờ bạn sẽ nhận được trang đăng nhập của phpMyAdmin.
Nhập tên người dùng và mật khẩu máy chủ MariaDB của bạn, sau đó nhấp vào Đi để đăng nhập.
Sau khi đăng nhập, bạn sẽ thấy bảng điều khiển phpMyAdmin bên dưới. Như bạn có thể thấy, phpMyAdmin 5.x được cài đặt trên máy Ubuntu 22.04 với Apache2, MariaDB 10.x và PHP 8.1.
Dưới đây, bạn sẽ tìm hiểu ba phương pháp để bảo mật cài đặt phpMyAdmin trên hệ thống Ubuntu của mình:
Chỉnh sửa tệp cấu hình /etc/phpmyadmin/apache.conf bằng trình soạn thảo nano.
Thay đổi tùy chọn "Alias /phpmyadmin" thành đường dẫn ULR mới của bạn. Trong ví dụ bên dưới, phpMyAdmin sẽ có sẵn tại đường dẫn URL /padm.
Lưu và đóng tệp khi bạn hoàn tất.
Tiếp theo, hãy kiểm tra và xác minh cấu hình Apache2 bằng lệnh bên dưới. Nếu cấu hình của bạn đúng, bạn sẽ nhận được thông báo đầu ra như "Cú pháp OK".
Bây giờ hãy khởi động lại dịch vụ Apache2 để áp dụng những thay đổi mới cho tệp /etc/phpmyadmin/apache.conf.
Quay lại trình duyệt web của bạn và truy cập phpMyAdmin với URL đường dẫn mới /padm (ví dụ: http://192.168.10.15/padm). Bạn sẽ nhận được bảng điều khiển phpMyAdmin trong ảnh chụp màn hình sau.
Bây giờ bạn đã thay đổi thành công URL đường dẫn mặc định cài đặt phpMyAdmin thành URL đường dẫn mới /padm.
Bây giờ hãy chạy lệnh bên dưới để tạo tệp Apache2 basic auth mới /etc/phpmyadmin/.htpasswd với người dùng mới có tên padm. Nếu bạn không có lệnh htpasswd, bạn sẽ cần cài đặt gói apache2-utils vào hệ thống của mình.
Bây giờ hãy nhập mật khẩu cho người dùng xác thực cơ bản Apache2 padm và nhập lại mật khẩu. Thao tác này sẽ tạo một tệp mật khẩu mới /etc/phpmyadmin/.htpasswd.
Tiếp theo, chỉnh sửa cấu hình /etc/phpmyadmin/apache.conf bằng trình soạn thảo nano.
Thêm cấu hình bên trong "<Directory /usr/share/phpmyadmin>" như bên dưới.
Lưu và đóng tệp khi bạn hoàn tất.
Tiếp theo, chạy lệnh bên dưới để bật mô-đun Apache2 mod_rewrite.
Tạo một tệp mới /usr/share/phpmyadmin/.htaccess bằng trình soạn thảo nano.
Thêm cấu hình sau vào tệp.
Lưu và đóng tệp khi bạn hoàn tất.
Bây giờ hãy khởi động lại dịch vụ Apache2 để áp dụng các thay đổi mới.
Cuối cùng, hãy quay lại trình duyệt web của bạn và làm mới URL phpMyAdmin (ví dụ: http://192.168.10.15/padm). Bây giờ bạn sẽ được nhắc xác thực cơ bản Apache2.
Nhập người dùng padm cùng với mật khẩu của bạn và nhấp vào Đăng nhập. Nếu người dùng và mật khẩu của bạn khớp với tệp cấu hình /etc/phpmyadmin/.htpasswd, thì bạn sẽ có thể nhận được bảng điều khiển phpMyAdmin, nếu không, bạn sẽ nhận được thông báo lỗi như "421 Unauthorized".
Bây giờ bạn đã bảo mật phpMyAdmin bằng xác thực cơ bản Apache2. Phương pháp này được khuyến nghị sử dụng với chứng chỉ SSL trên máy chủ web Apache2 của bạn.
Failban hoạt động bằng cách kiểm tra tệp nhật ký của ứng dụng, vì vậy bạn sẽ cần bật tệp nhật ký cho phpMyAdmin.
Chỉnh sửa cấu hình phpMyAdmin /etc/phpmyadmin/config.inc.php bằng trình soạn thảo nano.
Thêm cấu hình sau vào cuối dòng. Thao tác này sẽ ghi lại tất cả xác thực của phpMyAdmin vào tệp Syslog /var/log/auth.log.
Lưu và đóng tệp khi bạn hoàn tất.
Tiếp theo, chỉnh sửa cấu hình jail Fail2ban /etc/fail2ban/jail.local bằng trình soạn thảo nano.
Tìm kiếm jail có tên "phpmyadmin-syslog" và thêm tùy chọn "enabled = true" để bật jail.
Lưu và đóng tệp khi bạn hoàn tất.
Bây giờ hãy khởi động lại dịch vụ Fail2ban bằng lệnh bên dưới để áp dụng cấu hình jail mới.
Để xác minh jail "phpmyadmin-syslog", hãy chạy các lệnh fail2ban-client bên dưới.
Kiểm tra danh sách jail Fail2ban đã bật.
Kiểm tra thông tin chi tiết của jail Fail2ban phpmyadmin-syslog.
Bên dưới, bạn có thể thấy trạng thái chi tiết của jail phpmyadmin-syslog. Trong ảnh chụp màn hình bên dưới, bạn có thể thấy một địa chỉ IP "192.168.10.1" bị Fail2ban chặn.
Nếu bạn kiểm tra tệp nhật ký /var/log/auth.log bằng lệnh bên dưới.
Bạn sẽ thấy các nhật ký từ xác thực phpMyAdmin bên dưới. Bạn có thể thấy địa chỉ IP "192.168.10.1" được phát hiện là thông tin đăng nhập độc hại do sử dụng tên người dùng và mật khẩu không đúng.
Tại thời điểm này, bạn đã bảo mật phpMyAdmin bằng nhiều phương pháp khác nhau, một cân nhắc khác là sử dụng SSL trên mọi máy chủ ảo trên máy chủ của bạn. Điều này làm cho phpMyAdmin của bạn an toàn hơn nữa vì SSL sẽ mã hóa các kết nối giữa trình duyệt web của bạn với máy chủ.
phpMyAdmin cho phép bạn quản lý dữ liệu MySQL từ trình duyệt web, bạn có thể quản lý cơ sở dữ liệu, bảng, cột, chỉ mục, quan hệ, người dùng, quyền, v.v. từ một giao diện người dùng bảng điều khiển duy nhất trên trình duyệt web của mình. phpMyAdmin cũng cho phép bạn nhập và xuất dữ liệu vào máy chủ MySQL. Bạn có thể nhập dữ liệu CSV và SQL vào MySQL, cũng như xuất dữ liệu sang nhiều định dạng như CSV, SQL, XML, Latex, XML, PDF và văn bản và bảng tính OpenDocument.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình phpMyAdmin trên máy chủ Ubuntu 22.04 mới nhất. Hướng dẫn này cũng đề cập đến một số cấu hình bổ sung để bảo mật cài đặt phpMyAdmin.
Điều kiện tiên quyết
- Máy chạy Ubuntu 22.04 - bạn có thể sử dụng phiên bản máy chủ Ubuntu hoặc máy tính để bàn.
- Người dùng không phải root có quyền quản trị viên root.
- Máy đã cài đặt LAMP Stack. Ví dụ này sử dụng cài đặt LAMP Stack cơ bản (Linux, Apache2, MariaDB và PHP).
Cài đặt phpMyAdmin
Trong phiên bản ubuntu 22.04 mới nhất, gói phpMyAdmin có sẵn trên kho lưu trữ chính thức của Ubuntu Universe. Vì vậy, trước khi cài đặt phpMyAdmin, hãy đảm bảo kho lưu trữ Ubuntu universe được bật trên hệ thống của bạn.Ở trạng thái hiện tại, Ubuntu cung cấp phpMyAdmin v5.x, đây là phiên bản ổn định mới nhất của phpMyAdmin.
Trước khi bắt đầu cài đặt các gói, hãy chạy lệnh sau để cập nhật và làm mới kho lưu trữ Ubuntu của bạn.
Mã:
sudo apt update
Bây giờ hãy kiểm tra gói phpmyadmin bằng lệnh sau.
Mã:
sudo apt info phpmyadmin
Tiếp theo, bạn có thể cài đặt gói phpMyAdmin bằng lệnh bên dưới.
Mã:
sudo apt install phpmyadmin
Trong quá trình cài đặt phpMyAdmin, bạn sẽ được yêu cầu cấu hình các thông số sau:
Chọn máy chủ web cho phpMyAdmin. Trong ví dụ này, máy chủ web là apache2, sau đó chọn OK.
Bây giờ hãy chọn Yes để bắt đầu cấu hình phpMyAdmin bằng dbconfig-common. Thao tác này sẽ tự động cấu hình tất cả các cơ sở dữ liệu cho phpMyAdmin.
Đối với mật khẩu cơ sở dữ liệu phpMyAdmin, bạn có thể để trống hoặc chỉ cần nhập mật khẩu của riêng bạn rồi chọn OK. Nếu bạn để trống, dbconfig-common sẽ tự động tạo mật khẩu cho phpMyAdmin của bạn.
Cuối cùng, hãy mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ với đường dẫn URL /phpmyadmin (ví dụ: http://192.168.10.15/phpmyadmin). Và bây giờ bạn sẽ nhận được trang đăng nhập của phpMyAdmin.
Nhập tên người dùng và mật khẩu máy chủ MariaDB của bạn, sau đó nhấp vào Đi để đăng nhập.
Sau khi đăng nhập, bạn sẽ thấy bảng điều khiển phpMyAdmin bên dưới. Như bạn có thể thấy, phpMyAdmin 5.x được cài đặt trên máy Ubuntu 22.04 với Apache2, MariaDB 10.x và PHP 8.1.
Bảo mật cài đặt phpMyAdmin
Sau khi bạn đã cài đặt phpMyAdmin. tiếp theo, bạn sẽ tìm hiểu cách bảo mật cài đặt phpMyAdmin.Dưới đây, bạn sẽ tìm hiểu ba phương pháp để bảo mật cài đặt phpMyAdmin trên hệ thống Ubuntu của mình:
- Thay đổi URL đường dẫn của Cài đặt phpMyAdmin: Cài đặt phpMyAdmin mặc định có sẵn tại đường dẫn URL /phpmyadmin, rất dễ đoán đối với kẻ tấn công. Bạn có thể thay đổi đường dẫn mặc định thành URL đường dẫn tùy chỉnh của mình.
- Xác thực bổ sung bằng Xác thực cơ bản Apache2: Trong trường hợp này, người dùng sẽ được hiển thị xác thực cơ bản Apache2 trước khi hiển thị trang đăng nhập phpMyAdmin. Điều này sẽ thêm xác thực bổ sung, vì vậy chỉ những người dùng trong danh sách xác thực cơ bản Apache2 mới được hiển thị trang đăng nhập phpMyAdmin và có thể đăng nhập vào phpMyAdmin.
- Chặn nỗ lực đăng nhập phpMyAdmin bằng Fail2ban Jail: Bạn sẽ cần cài đặt và định cấu hình fail2ban trên máy Ubuntu của mình. Điều này sẽ cấm địa chỉ IP của các nỗ lực đăng nhập độc hại vào phpMyAdmin. Ngoài ra, bạn có thể thiết lập số lần đăng nhập tối đa trên Fail2ban jail.
Thay đổi URL đường dẫn của cài đặt phpMyAdmin
Cài đặt phpMyAdmin mặc định đi kèm với cấu hình bổ sung cho máy chủ web apache2, cấu hình là tệp /etc/phpmyadmin/apache.conf. Để thay đổi cài đặt URL đường dẫn mặc định của phpMyAdmin, bạn sẽ cần chỉnh sửa cấu hình /etc/phpmyadmin/apache2.conf và khởi động lại dịch vụ Apache2.Chỉnh sửa tệp cấu hình /etc/phpmyadmin/apache.conf bằng trình soạn thảo nano.
Mã:
sudo nano /etc/phpmyadmin/apache.conf
Mã:
Alias /padm /usr/share/phpmyadmin
Tiếp theo, hãy kiểm tra và xác minh cấu hình Apache2 bằng lệnh bên dưới. Nếu cấu hình của bạn đúng, bạn sẽ nhận được thông báo đầu ra như "Cú pháp OK".
Mã:
sudo apchectl configtest
Mã:
sudo systemctl restart apache2
Bây giờ bạn đã thay đổi thành công URL đường dẫn mặc định cài đặt phpMyAdmin thành URL đường dẫn mới /padm.
Bảo mật phpMyAdmin bằng Apache2 Basic Auth
Apache2 basic Auth là phương pháp xác thực do mô-đun Apache mod_basic_auth cung cấp. Để thiết lập Apache2 basic Auth, bạn sẽ cần tạo tệp mật khẩu và thiết lập tệp .htaccess trên thư mục gốc của tài liệu phpMyAdmin.Bây giờ hãy chạy lệnh bên dưới để tạo tệp Apache2 basic auth mới /etc/phpmyadmin/.htpasswd với người dùng mới có tên padm. Nếu bạn không có lệnh htpasswd, bạn sẽ cần cài đặt gói apache2-utils vào hệ thống của mình.
Mã:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd padm
Tiếp theo, chỉnh sửa cấu hình /etc/phpmyadmin/apache.conf bằng trình soạn thảo nano.
Mã:
sudo nano /etc/phpmyadmin/apache.conf
Mã:
...
...
AllowOverride All
Tiếp theo, chạy lệnh bên dưới để bật mô-đun Apache2 mod_rewrite.
Mã:
sudo a2enmod rewrite
Mã:
sudo nano /usr/share/phpmyadmin/.htaccess
Mã:
AuthType Basic
AuthName "Tệp bị hạn chế"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Bây giờ hãy khởi động lại dịch vụ Apache2 để áp dụng các thay đổi mới.
Mã:
sudo systemctl restart apache2
Nhập người dùng padm cùng với mật khẩu của bạn và nhấp vào Đăng nhập. Nếu người dùng và mật khẩu của bạn khớp với tệp cấu hình /etc/phpmyadmin/.htpasswd, thì bạn sẽ có thể nhận được bảng điều khiển phpMyAdmin, nếu không, bạn sẽ nhận được thông báo lỗi như "421 Unauthorized".
Bây giờ bạn đã bảo mật phpMyAdmin bằng xác thực cơ bản Apache2. Phương pháp này được khuyến nghị sử dụng với chứng chỉ SSL trên máy chủ web Apache2 của bạn.
Chặn nỗ lực đăng nhập phpMyAdmin bằng Fail2ban Jail
Trong trường hợp này, bạn sẽ cần cài đặt và cấu hình Fail2ban trên máy ubuntu của mình. Sử dụng Fail2ban jail sẽ hạn chế lỗi xác thực đối với phpMyAdmin và hạn chế tấn công bằng vũ lực. Fail2ban sẽ chặn mọi nỗ lực đăng nhập độc hại được phát hiện vào phpMyAdmin.Failban hoạt động bằng cách kiểm tra tệp nhật ký của ứng dụng, vì vậy bạn sẽ cần bật tệp nhật ký cho phpMyAdmin.
Chỉnh sửa cấu hình phpMyAdmin /etc/phpmyadmin/config.inc.php bằng trình soạn thảo nano.
Mã:
sudo nano /etc/phpmyadmin/config.inc.php
Mã:
...
...
...
$cfg['AuthLog'] = 'syslog';
Tiếp theo, chỉnh sửa cấu hình jail Fail2ban /etc/fail2ban/jail.local bằng trình soạn thảo nano.
Mã:
sudo nano /etc/fail2ban/jail.local
Mã:
[phpmyadmin-syslog]
enabled = true
port = http,https
logpath = %(syslog_authpriv)s
backend = %(syslog_backend)s
Bây giờ hãy khởi động lại dịch vụ Fail2ban bằng lệnh bên dưới để áp dụng cấu hình jail mới.
Mã:
sudo systemctl restart fail2ban
Kiểm tra danh sách jail Fail2ban đã bật.
Mã:
sudo fail2ban-client status
Mã:
sudo fail2ban-client status phpmyadmin-syslog
Nếu bạn kiểm tra tệp nhật ký /var/log/auth.log bằng lệnh bên dưới.
Mã:
cat /var/log/auth.log
Tại thời điểm này, bạn đã bảo mật phpMyAdmin bằng nhiều phương pháp khác nhau, một cân nhắc khác là sử dụng SSL trên mọi máy chủ ảo trên máy chủ của bạn. Điều này làm cho phpMyAdmin của bạn an toàn hơn nữa vì SSL sẽ mã hóa các kết nối giữa trình duyệt web của bạn với máy chủ.