9 biện pháp hàng đầu để tăng cường bảo mật trong MySQL và MariaDB

MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới. Trong khi đó, MariaDB là một nhánh của MySQL và là một trong những hệ quản trị cơ sở dữ liệu mã nguồn mở phát triển nhanh nhất. Bảo mật cơ sở dữ liệu là ưu tiên hàng đầu của bất kỳ quản trị viên hệ thống. Vì vậy, nó rất quan trọng cho các doanh nghiệp số ngày nay.

Cài đặt mặc định của MySQL/MariaDB không an toàn. Vì vậy bạn cần tinh chỉnh một số cấu hình để bảo mật MySQL và MariaDB khỏi các hacker. 

Hướng dẫn này sẽ cung cấp 9 biện pháp hàng đầu để bảo mật cơ sở dữ liệu MySQL và MariaDB.

1. Bảo mật cài đặt MySQL/MariaDB

Theo mặc định, cài đặt MySQL/MariaDB không an toàn. Theo mặc định, cơ sở dữ liệu kiểm tra và người dùng ẩn danh có sẵn trong MySQL/MariaDB và có thể được truy cập bởi tất cả người dùng. Nên vô hiệu hóa tài khoản root MySQL khỏi truy cập từ bên ngoài.

Bạn có thể chạy script mysql_secure_installation để bảo mật tất cả:

```

mysql_secure_installation

```

Bạn sẽ được yêu cầu đặt mật khẩu root, xóa cơ sở dữ liệu kiểm tra và người dùng ẩn danh, vô hiệu hóa đăng nhập root từ xa.

2. Thay đổi cổng mặc định và địa chỉ lắng nghe của MySQL 

Theo mặc định, MySQL và MariaDB lắng nghe trên cổng 3306 trên địa chỉ vòng lặp. Thay đổi cổng mặc định MySQL là một ý kiến tốt vì mục đích bảo mật.

Đối với MySQL, bạn có thể thay đổi cổng và địa chỉ lắng nghe mặc định bằng cách chỉnh sửa tệp:

```

/etc/mysql/mysql.conf.d/mysqld.cnf 

```

Thay đổi dòng sau:

```

bind-address = 127.0.0.1 

Port = 9090

```

Đối với MariaDB, bạn có thể thay đổi cổng và địa chỉ lắng nghe mặc định bằng cách chỉnh sửa tệp: 

```

/etc/mysql/mariadb.conf.d/50-server.cnf

```

Thay đổi dòng sau:

```

bind-address = 127.0.0.1

Port = 9090

```

Lưu và đóng tệp, sau đó khởi động lại dịch vụ MySQL/MariaDB.

3. Vô hiệu hóa LOCAL INFILE

Nên vô hiệu hóa local_infile trong MySQL. Nó sẽ từ chối client tải dữ liệu từ tệp cục bộ lên máy chủ MySQL từ xa. Bạn có thể vô hiệu hóa bằng cách chỉnh sửa tệp cấu hình mặc định của MySQL/MariaDB:

```

/etc/mysql/mysql.conf.d/mysqld.cnf

Hoặc 

/etc/mysql/mariadb.conf.d/50-server.cnf

```

Thay đổi dòng sau:

```

local-infile=0

```

Lưu và đóng tệp, sau đó khởi động lại MySQL/MariaDB để áp dụng thay đổi.

4. Bật ghi nhật ký MySQL 

Theo mặc định, ghi nhật ký bị vô hiệu hóa trong cả máy chủ MySQL và MariaDB. Bạn nên bật nó để tìm nguyên nhân tiềm ẩn của sự cố và hiểu những gì xảy ra trên máy chủ.

Bạn có thể bật nhật ký bằng cách chỉnh sửa tệp cấu hình mặc định của MySQL và MariaDB:

```

/etc/mysql/mysql.conf.d/mysqld.cnf

Hoặc

/etc/mysql/mariadb.conf.d/50-server.cnf

```

Thay đổi dòng sau:

```

log_error = /var/log/mysql/error.log

```

Lưu và đóng tệp, sau đó khởi động lại MySQL/MariaDB để áp dụng thay đổi.

5. Bảo mật kết nối MySQL/MariaDB với SSL/TLS

Nên bảo mật kết nối MySQL/MariaDB với SSL/TLS. Bật SSL/TLS sẽ mã hóa dữ liệu gửi đến và từ cơ sở dữ liệu. Ngoài ra, nó sẽ thêm một lớp bảo mật cho máy chủ MySQL và đảm bảo tất cả dữ liệu được chuyển an toàn và không thể bị nghe lén bởi kẻ tấn công.

6. Xóa tệp lịch sử MySQL 

Khi cài đặt MySQL và MariaDB, tệp lịch sử MySQL .mysql_history được tạo tự động. Tệp này chứa tất cả thông tin cài đặt và cấu hình cũng như các lệnh. Nó có thể nguy hiểm vì nó sẽ ghi lại tất cả các lệnh, tên người dùng và mật khẩu bạn đã gõ trên shell vào tệp lịch sử.

Vì vậy, nên xóa tệp này khỏi hệ thống của bạn.

```

rm -rf ~/.mysql_history

```

7. Thay đổi mật khẩu MySQL thường xuyên 

Nên thay đổi mật khẩu MySQL thường xuyên. Nó sẽ ngăn người xấu theo dõi hoạt động của bạn trong thời gian dài.

Để thay đổi mật khẩu người dùng MySQL, kết nối với shell MySQL:

```

mysql -u root -p

```

Sau khi đăng nhập, đặt mật khẩu root mới:

```

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpassword';

```

Tiếp theo, làm mới các đặc quyền và thoát khỏi shell MySQL:

```

FLUSH PRIVILEGES; EXIT;

```

8. Cập nhật gói MySQL/MariaDB thường xuyên

Nên cập nhật và nâng cấp gói MySQL/MariaDB thường xuyên để giữ máy chủ của bạn với các bản cập nhật bảo mật và sửa lỗi.

Bạn có thể cập nhật gói MySQL/MariaDB với lệnh:

```

apt-get upgrade mysql-server -y

apt-get upgrade mariadb-server -y

```

Sau khi cập nhật gói, khởi động lại dịch vụ MySQL/MariaDB để áp dụng thay đổi.

9. Đổi tên người dùng root MySQL

Nên đổi tên người dùng root MySQL để ngăn chặn tấn công trực tiếp vào người dùng root.

Đầu tiên, kết nối với MySQL:

```

mysql -u root -p

```

Sau đó, đổi tên người dùng root thành admin:

```

rename user 'root'@'localhost' to 'admin'@'localhost'; 

```

Kiểm tra thay đổi:

```

select user,host from mysql.user;

```

Sau đó, làm mới đặc quyền và thoát MySQL:

```

FLUSH PRIVILEGES; EXIT;

```

Bây giờ bạn có thể đăng nhập với người dùng mới tạo.


Như vậy là bạn đã biết cách bảo mật máy chủ cơ sở dữ liệu MySQL và MariaDB. Hy vọng những biện pháp này sẽ giúp bạn bảo mật máy chủ cơ sở dữ liệu.

Comments

Popular posts from this blog

Cách sử dụng Redis Cache để ngăn chặn các cuộc tấn công DDoS

Hướng dẫn cài đặt và cấu hình OrientDB trên Ubuntu 22.04 LTS

Hướng dẫn sao lưu cơ sở dữ liệu SQLite định kỳ trên iCloud dành cho Data Scientist