Làm cách nào để kích hoạt bảo mật trong MySQL?

MySQL là một trong những cơ sở dữ liệu nguồn mở phổ biến nhất chạy trên nhiều nền tảng khác nhau. Nó tương đối dễ cấu hình, tường lửa đơn giản và hiển thị các đặc tính hiệu suất tốt ngay cả khi tải đáng kể nhưng nó vẫn có nhiều vấn đề cấu hình liên quan đến bảo mật

Phương pháp quản lý bảo mật tốt nhất là hãy hoang tưởng và lường trước một cuộc tấn công từ mọi hướng bất cứ lúc nào, nhưng nếu bạn áp dụng một số biện pháp phòng ngừa, thì đó sẽ không phải là một công việc khó khăn như vậy. Các hướng dẫn sau đây sẽ giúp bạn giảm đáng kể bề mặt của các mối đe dọa có thể xảy ra

Trước hết, hãy đọc hướng dẫn bảo mật tại http. // nhà phát triển. mysql. com/doc/refman/5. 7/en/an ninh. html và kiểm tra cập nhật thường xuyên. Một số lỗ hổng nghiêm trọng đã được tìm thấy gần đây đối với MySQL RDBMS có các khai thác sẵn có miễn phí. Tận dụng các bản cập nhật bổ sung các tính năng mới và quan trọng hơn là sửa các lỗi bảo mật

Thường xuyên theo dõi cơ sở dữ liệu lỗ hổng. Luôn nhận thức được các mối đe dọa mới được tìm thấy đối với hệ thống của bạn

Hệ điều hành

  1. Tắt các daemon và dịch vụ không cần thiết. Kẻ tấn công có thể truy cập vào càng ít thành phần thì khả năng chúng tìm thấy một lỗ hổng có thể được sử dụng để giành quyền truy cập vào hệ thống càng ít. Bằng cách giữ cho cấu hình máy chủ đơn giản, bạn giảm thiểu nỗ lực cần thiết để quản lý hệ thống và giảm thiểu rủi ro thiếu sót bảo mật
  2. Đảm bảo rằng người dùng MySQL không thể truy cập các tệp bên ngoài một bộ thư mục giới hạn. Các tệp dữ liệu MySQL không được đọc bởi bất kỳ người dùng nào ngoại trừ tài khoản root hoặc tài khoản quản trị viên
  3. Vô hiệu hóa hoặc hạn chế truy cập từ xa. Trong trường hợp bạn cần truy cập MySQL từ xa, hãy định cấu hình câu lệnh GRANT, được sử dụng để thiết lập người dùng, để yêu cầu SSL
  4. Đảm bảo rằng không có người dùng nào khác ngoài người dùng MySQL có thể đọc các tệp nhật ký và cấu hình MySQL. tập tin của tôi. cnf, của tôi. ini và chủ. thông tin thường có tên người dùng và mật khẩu không được mã hóa. Nếu có một tệp nhật ký truy vấn, nó cũng có khả năng chứa mật khẩu. Một số tệp cấu hình MySQL cũng có thể chứa tên người dùng và mật khẩu văn bản gốc. Đảm bảo rằng các tệp này được bảo vệ khỏi những người dùng không mong muốn
  5. Chạy MySQL với tùy chọn –chroot. Nó cung cấp một biện pháp giảm thiểu tuyệt vời đối với sức mạnh của đặc quyền tệp. Chroot được sử dụng để hạn chế quyền truy cập tệp của một quy trình vào một thư mục nhất định. Ngay cả với tùy chọn chroot, kẻ tấn công giành được đặc quyền tệp sẽ có thể đọc tất cả dữ liệu MySQL và có thể vẫn có thể thực thi UDF
  6. Thường xuyên xóa của bạn. mysql_history hoặc liên kết vĩnh viễn nó với /dev/null. Theo mặc định trên các hệ thống Unix, bạn sẽ tìm thấy một. tệp mysql_history trong thư mục chính của bạn. Nó chứa nhật ký với tất cả các truy vấn mà bạn đã nhập vào ứng dụng khách dòng lệnh MySQL. Thực hiện lệnh sau để xóa lịch sử
cat /dev/null > ~/.mysql_history

người dùng

Sau khi cấu hình hệ điều hành, bạn cần xây dựng mô hình đặc quyền và gán tài khoản người dùng

  1. Trong giai đoạn thiết lập ban đầu, hãy xóa tất cả người dùng MySQL không root để bạn biết vị trí của mình về người dùng có quyền truy cập vào cơ sở dữ liệu. Cách tốt nhất là bắt đầu từ con số không và xây dựng người dùng khi bạn cần
  2. Đổi tên người dùng gốc và thay đổi mật khẩu bằng các số và ký tự khác nhau. Bạn có thể thay đổi tên người dùng của quản trị viên bằng lệnh sau trong bảng điều khiển MySQL. mysql> RENAME USER root TO new_name;
  3. Đừng cấp cho tài khoản những đặc quyền mà họ không thực sự cần, đặc biệt là File_priv, Grant_priv và Super_priv. Cân nhắc việc tạo một tài khoản MySQL riêng mà ứng dụng của bạn có thể sử dụng để tương tác với hệ thống tệp trong MySQL. Hãy nhớ rằng người dùng này sẽ có quyền truy cập vào tất cả dữ liệu MySQL, bao gồm cả mật khẩu băm
  4. Nếu có thể, hãy tạo người dùng MySQL cho từng ứng dụng web hoặc cho từng vai trò trong từng ứng dụng web. Trong ứng dụng này chỉ gán đặc quyền người dùng cho các lệnh được yêu cầu. Nó có vẻ tẻ nhạt nhưng có ý nghĩa khi thiết lập một hệ thống bảo mật toàn diện
  5. Trong trường hợp kết nối từ xa được bật, hãy chỉ định YÊU CẦU SSL trong câu lệnh GRANT được sử dụng để thiết lập người dùng. Một số tập lệnh khai thác không hoạt động sẽ không hoạt động vì chúng không có hỗ trợ SSL. Hơn nữa, giao thức SSL đảm bảo tính bảo mật của chuỗi phản hồi hộ chiếu. Bạn cũng có thể thiết lập các hạn chế dựa trên chứng chỉ phía máy khách được sử dụng để xác thực bằng SSL. Một biện pháp bảo mật hữu ích khác, kiến ​​thức về mật khẩu sẽ không đủ, một chứng chỉ được chỉ định cũng sẽ được yêu cầu
  6. Không cấp cho bất kỳ ai quyền truy cập vào mysql. người sử dụng. table (ngoại trừ người dùng có quyền root)

Cấu hình MySQL

  1. Tắt lệnh LOAD DATA LOCAL INFILE. Nó là một cấu trúc giúp nhập các tệp cục bộ vào một bảng, nó có một điểm đặc biệt là trong một số trường hợp nhất định có thể dẫn đến việc truy xuất nội dung tệp /etc/passwd. Khai thác cho điều này đã được cung cấp miễn phí từ năm 2013. Thêm set-variable=local-infile=0 vào my. tập tin cnf
  2. Loại bỏ mọi UDF không sử dụng. UDF cũng gây ra các mối đe dọa đối với bảo mật cơ sở dữ liệu. Nếu bạn thấy các UDF không sử dụng trong mysql. bảng func, loại bỏ
  3. Nếu bạn chỉ sử dụng kết nối cục bộ và không cần máy chủ từ xa kết nối với MySQL, hãy tắt kết nối TCP/IP thông qua tùy chọn –skip-networking
  4. Xóa cơ sở dữ liệu thử nghiệm. Có một cơ sở dữ liệu thử nghiệm theo mặc định mà bất kỳ ai cũng có thể truy cập được. Xóa nó hoặc hạn chế đặc quyền
  5. Xóa tài khoản ẩn danh. Không để bất kỳ người dùng nào có mật khẩu trống

    Bạn có thể tìm người dùng ẩn danh bằng lệnh này

    select * from mysql.user where user=””;
  6. Đảm bảo rằng lưu lượng truy cập MySQL được mã hóa
  7. Cho phép ghi nhật ký qua tùy chọn –log. Theo tài liệu MySQL, "nhật ký truy vấn chung" là một tính năng sửa lỗi, nhưng bạn cũng có thể sử dụng nó như một biện pháp bảo mật. Nó ghi lại các kết nối thành công và các truy vấn đã thực hiện. Theo mặc định, nhật ký truy vấn bị tắt, bạn có thể bật nó bằng tùy chọn –log

Hãy nhớ rằng nhật ký truy vấn và nhật ký lỗi cũng là nguồn thông tin cho kẻ tấn công. Đảm bảo rằng tệp nhật ký chỉ hiển thị với quản trị viên hoặc tài khoản gốc của hệ thống. Ngoài ra, nó không ghi nhật ký kết quả của các truy vấn và dữ liệu đã truy xuất, nhưng đây là các giải pháp giám sát hoạt động cơ sở dữ liệu đặc biệt cho vấn đề đó

Thường xuyên theo dõi nhật ký truy vấn và tìm kiếm các cuộc tấn công SQL injection và sử dụng cú pháp hệ thống tệp load_file, infile và outfile

Cài đặt phần mềm chống vi-rút và chống thư rác. Triển khai tường lửa để kiểm soát lưu lượng mạng đến và đi và bảo vệ khỏi các cuộc tấn công

Hệ thống bảo mật cơ sở dữ liệu MySQL toàn diện được xây dựng bằng cách kết hợp một lượng lớn các thay đổi cấu hình kín đáo. Mọi chi tiết đều quan trọng. Không có cách nào để đảm bảo an ninh 100%, nhưng việc theo đuổi biện pháp bảo vệ tối đa là điều bắt buộc trong thời đại tội phạm mạng

Làm cách nào để cung cấp bảo mật trong MySQL?

Các phương pháp hay nhất về bảo mật MySQL .
Xóa tài khoản mặc định, ánh xạ cổng và các cài đặt khác. .
Hạn chế truy cập từ xa. .
Chỉ cấp cho người dùng những đặc quyền họ cần. .
Sử dụng tài khoản không root. .
Giữ cho máy chủ an toàn về mặt vật lý. .
Hãy chắc chắn rằng bạn tiếp tục kiểm tra và giám sát thích hợp. .
Đánh giá bảo mật cơ sở dữ liệu của bạn thường xuyên

Bảo mật người dùng được triển khai như thế nào trong MySQL?

Bảo mật MySQL hoạt động bằng cách giới hạn cả người dùng có quyền truy cập vào cơ sở dữ liệu và những gì họ được phép làm sau khi có quyền truy cập .

Bảo mật có phải là một tính năng của MySQL không?

Chương 6 Các thành phần và plugin bảo mật . Các plugin để xác thực các nỗ lực của khách hàng để kết nối với Máy chủ MySQL. Plugin có sẵn cho một số giao thức xác thực

Làm cách nào để bảo mật MySQL trên Windows?

Bảo mật máy chủ MySQL trên Windows .
Bước 1. Cài đặt MySQL trên phiên bản Windows gần đây, dựa trên NT. .
Bước 2. Cài đặt MySQL trên Hệ thống tệp NTFS. .
Bước 3. Cài đặt MySQL trên một máy độc lập. .
Bước 4. Cài đặt phiên bản sản xuất mới nhất của MySQL. .
Bước 5. Bảo mật tài khoản người dùng MySQL. .
Bước 6. Vô hiệu hóa truy cập TCP/IP