MySQL FAILED_LOGIN_ATTEMPTS
Chưa chạy MySQL 8? . Với plugin này, quá nhiều lần thử không thành công liên tiếp sẽ làm tăng độ trễ trong phản hồi của máy chủ để giúp tránh hoặc giảm thiểu các cuộc tấn công vũ phu. Nếu có hứng thú, tôi có thể trình bày chi tiết hơn về plugin này trong một bài đăng trên blog trong tương lai. Cho tôi biết Hãy nhớ rằng một lần nữa, chúng tôi sẽ không bao gồm tất cả mọi thứ bạn cần biết, nhưng chúng tôi sẽ cố gắng cung cấp những điểm khởi đầu tốt để bạn tự nghiên cứu
Danh mục tài khoản trong MySQLDanh mục tài khoản đã được giới thiệu trong MySQL 8 – cụ thể là trong MySQL 8. 0. 16. Đây là mấu chốt của nó Show
Để tận dụng các danh mục tài khoản trong bảo mật MySQL, hãy nhớ rằng đặc quyền SYSTEM_USER ảnh hưởng đến những thứ như thao túng tài khoản và giết . Danh mục tài khoản cũng có thể được sử dụng để bảo vệ tài khoản hệ thống khỏi sự thao túng của tài khoản thông thường. để làm như vậy, không cấp đặc quyền sửa đổi lược đồ mysql cho các tài khoản thông thường. Để cấp đặc quyền cho tài khoản SYSTEM_USER , hãy sử dụng truy vấn sau trên tài khoản đã tạo.
Vai trò trong MySQLTrong MySQL, vai trò là tập hợp các đặc quyền. Khi bạn cấp cho tài khoản người dùng một vai trò trong MySQL, bạn cấp tất cả các đặc quyền liên quan đến vai trò đó. Có thể tạo vai trò bằng cách sử dụng câu lệnh CREATE ROLE .
Tên vai trò bao gồm phần người dùng và phần máy chủ – phần người dùng không được để trống và phần máy chủ mặc định là “ %” nếu không được chỉ định. Khi vai trò được tạo, bạn nên gán đặc quyền cho chúng. Đặc quyền có thể được chỉ định bằng cách sử dụng câu lệnh GRANT.
Để gán vai trò cho một người dùng cá nhân, hãy sử dụng cú pháp này
Để gán nhiều vai trò cho một người dùng riêng lẻ, hãy sử dụng cú pháp này
Để gán vai trò cho nhiều người dùng cùng một lúc, hãy sử dụng cú pháp này
Các vai trò có thể hữu ích trong việc ngăn chặn các sự cố bảo mật vì nếu kẻ tấn công biết mật khẩu của một người dùng không có nhiều đặc quyền và cho rằng người dùng đó có vai trò rất “mạnh mẽ”, thì ứng dụng của bạn (và cơ sở dữ liệu của bạn) có thể được cứu rất tốt Tài khoản dành riêng trong MySQLKhi có liên quan đến tài khoản dành riêng, hãy nhớ rằng MySQL tạo tài khoản trong quá trình khởi tạo thư mục dữ liệu. Có một vài tài khoản nên được coi là dành riêng trong MySQL.
Trong trường hợp này, bạn không thể làm gì nhiều về mặt bảo mật, nhưng hãy nhớ rằng tài khoản root có các đặc quyền thần thánh . Ngoài ra, hãy ghi nhớ những tài khoản MySQL khác được sử dụng để làm gì. Quản lý mật khẩu trong MySQLMySQL cũng hỗ trợ các tính năng quản lý mật khẩu. Một số trong số họ bao gồm.
Bây giờ, chúng ta sẽ xem xét thêm các tùy chọn này Để hết hạn mật khẩu theo cách thủ công, hãy sử dụng câu lệnh ALTER USER như vậy.
Để đặt chính sách chung, hãy sửa đổi của tôi. cnf sao cho bao gồm tham số default_password_lifetime . Tham số có thể được xác định bên dưới phần [mysqld] (ví dụ sau đặt thời gian tồn tại của mật khẩu là 3 tháng (90 ngày)).
Nếu bạn muốn mật khẩu không bao giờ hết hạn, hãy đặt tham số default_password_litetime thành 0 Để vô hiệu hóa hết hạn mật khẩu
Để đặt lại chính sách hết hạn mật khẩu toàn cầu 0 Các hạn chế sử dụng lại mật khẩu không cho phép sử dụng lại mật khẩu – để tận dụng tính năng này, hãy sử dụng password_history and password_reuse_interval variables. You can either put these variables in my. cnf bằng cách xem ví dụ bên dưới hoặc đặt chúng trong thời gian chạy bằng cách thêm SET PERSIST trước các câu lệnh bên dưới. Để cấm sử dụng lại bất kỳ mật khẩu nào trong số 5 mật khẩu đã sử dụng trước đó sau hơn 365 ngày, hãy sử dụng 1Để yêu cầu tối thiểu 5 lần thay đổi mật khẩu trước khi cho phép sử dụng lại 2Có thể thực hiện tương tự khi tạo người dùng – thay thế ALTER USER bằng TẠO NGƯỜI DÙNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Để tạo mật khẩu ngẫu nhiên khi tạo người dùng, hãy chạy 3Để thay đổi mật khẩu của người dùng thành mật khẩu được tạo ngẫu nhiên 4Mật khẩu ngẫu nhiên của bạn sẽ được hiển thị bên dưới Hãy nhớ rằng mật khẩu ngẫu nhiên mặc định có độ dài 20 ký tự. Độ dài có thể được kiểm soát bởi biến generated_random_password_length có phạm vi từ 5 đến 255. Để kiểm tra xem mật khẩu đã sử dụng có mạnh hay không, bạn có thể sử dụng biến VALIDATE_PASSWORD_STRENGTH – hàm hiển thị một số từ 0 đến 100 với 0 . Khóa tài khoản trong MySQLMySQL 8. 0. 19 cũng giới thiệu khả năng khóa tạm thời tài khoản người dùng. Điều này có thể được thực hiện bằng cách sử dụng các biến FAILED_LOGIN_ATTEMPTS và PASSWORD_LOCK_TIME . Để bật khóa tài khoản khi tạo người dùng, hãy chạy 5Giá trị sau FAILED_LOGIN_ATTEMPTS chỉ định sau bao nhiêu lần thử không thành công thì tài khoản bị khóa, giá trị sau . Cũng có thể chỉ định một giá trị không kết thúc cho đến khi tài khoản được mở khóa bằng cách chỉ định specifies the account lock time in days. It is also possible to specify a value which does not end until the account is unlocked by specifying PASSWORD_LOCK_TIME là KHÔNG GIỚI HẠN< . . Plugin bảo mật được cung cấp bởi MySQLMySQL cũng cung cấp một vài plugin có thể nâng cao hơn nữa khả năng bảo mật. cung cấp MySQL.
Các plugin này có thể được sử dụng cho một số thứ về mặt bảo mật Plugin xác thựcPhần bổ trợ xác thực có thể cho phép người dùng chọn giữa nhiều phương thức xác thực có thể cắm được có sẵn trong MySQL. Chúng có thể được sử dụng cùng với câu lệnh CREATE USER hoặc ALTER USER . Đây là một ví dụ. 6Truy vấn này sẽ triển khai xác thực bằng phương pháp băm mật khẩu gốc Plugin kiểm soát kết nốiCác phần bổ trợ kiểm soát kết nối có thể gây ra độ trễ ngày càng tăng trong phản hồi của máy chủ đối với các lần thử kết nối nếu các lần thử kết nối vượt quá một con số nhất định – chúng có thể ngăn chặn các cuộc tấn công vũ phu tiềm ẩn. Thư viện plugin này đã được giới thiệu cho MySQL trong phiên bản 5. 7. 17 và nó có thể được thêm vào MySQL thông qua my. cnf hoặc bằng cách tải plugin vào máy chủ khi chạy. 7Sau khi sửa đổi tệp, hãy lưu các thay đổi của bạn và khởi động lại MySQL 8Điều chỉnh. hậu tố như vậy khi cần thiết. Nếu bạn đã hoàn thành mọi thứ một cách chính xác, thì bảng CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS sẽ chứa tất cả các lần kết nối không thành công. Plugin xác thực mật khẩuPlugin xác thực mật khẩu có thể cho phép người dùng sử dụng mật khẩu mạnh hơn nếu được sử dụng đúng cách. Plugin xác thực mật khẩu có thể được cài đặt qua my. cnf hoặc bằng cách tải plugin vào máy chủ khi chạy. Để cài đặt plugin qua my. cnf , thêm dòng sau vào bên dưới [mysqld] , sau đó khởi động lại máy chủ. 9Để tải plugin khi chạy, hãy chạy câu lệnh sau 0Để tải plugin trong thời gian chạy và ngăn plugin bị xóa, hãy thêm validate-password=FORCE_PLUS_PERMANENT vào my.cnf . Để ngăn máy chủ chạy nếu plugin chưa được khởi tạo, hãy sử dụng tùy chọn –validate-password với giá trị là FORCE or FORCE_PLUS_PERMANENT. Chính sách về độ mạnh của mật khẩu cũng có thể được thay đổi. để làm như vậy, hãy thay đổi giá trị validate_password_policy thành LOW , MEDIUM, or STRONG. The value of LOW chỉ kiểm tra độ dài mật khẩu, TRUNG BÌNH chính sách thêm một số điều kiện . STRONG policy adds the condition that password substrings that consist of 4 or more characters must not match words in a dictionary file that can be specified by modifying the validate_password_dictionary_file variable. Plugin móc khóaPlugin tạo khóa có thể cho phép các thành phần máy chủ và plugin lưu trữ an toàn thông tin nhạy cảm để truy xuất. Để tải plugin vào MySQL, hãy thêm phần sau vào bên dưới [mysqld] . 1Để chỉ định tệp vault khóa, hãy thêm phần sau (biến keyring_vault_config phải trỏ đến tệp cấu hình). 2Tệp khóa phải chứa biến vault_url xác định địa chỉ máy chủ vault, biến secret_mount_point xác định tên điểm gắn nơi khóa . Ngoài ra, bạn cũng có thể xác định biến vault_ca (biến này phải trỏ tới chứng chỉ CA được sử dụng để ký chứng chỉ của kho tiền). Khởi động lại máy chủ để các thay đổi có hiệu lực; Plugin kiểm traPhần bổ trợ kiểm tra có thể cho phép giám sát, ghi nhật ký và chặn hoạt động được thực hiện trên máy chủ MySQL. Để cài đặt Kiểm tra doanh nghiệp MySQL, hãy chạy tập lệnh nằm trong thư mục chia sẻ của phiên bản MySQL của bạn (tránh đặt mật khẩu phiên bản MySQL của bạn trong thiết bị đầu cuối – sử dụng my.cnf ). 3Bạn cũng có thể ngăn plugin bị xóa khi chạy - thêm phần sau vào phần [mysqld] . 4Khởi động lại máy chủ để áp dụng các thay đổi. Xin lưu ý rằng theo mặc định, nhật ký dựa trên quy tắc không có sự kiện nào có thể kiểm tra được, vì vậy, để ghi nhật ký mọi thứ, hãy tạo bộ lọc 5Sau đó gán nó cho một tài khoản 6Lưu ý rằng các plugin kiểm tra chỉ khả dụng trong MySQL Enterprise Edition; Plugin tường lửaCác plugin tường lửa có thể cho phép người dùng cho phép hoặc từ chối việc thực thi các câu lệnh SQL cụ thể dựa trên các mẫu cụ thể. MySQL Enterprise Firewall đã được giới thiệu trong MySQL 5. 6. 24 - nó có thể bảo vệ dữ liệu bằng cách giám sát, cảnh báo và chặn hoạt động trái phép. nó có thể chặn các cuộc tấn công SQL injection, theo dõi các mối đe dọa và chặn lưu lượng truy cập đáng ngờ cũng như phát hiện các hành vi xâm nhập vào cơ sở dữ liệu. Tường lửa cũng có thể ghi nhật ký các câu lệnh bị chặn - chúng có thể được kiểm tra và cũng có thể quan sát được số lượng các câu lệnh được phê duyệt và bị từ chối theo thời gian thực Để cài đặt MySQL Enterprise Firewall, chỉ cần kích hoạt nó khi cài đặt MySQL Server trên Windows, nó cũng có thể được cài đặt, vô hiệu hóa hoặc gỡ cài đặt với sự trợ giúp của MySQL Workbench 6. 3. 4. Tường lửa cũng có thể được cài đặt thủ công bằng cách chạy tập lệnh trong thư mục share của cài đặt MySQL của bạn. Để bật tường lửa, hãy thêm dòng sau vào bên dưới [mysqld] và khởi động lại máy chủ. 7Tường lửa cũng có thể được kích hoạt trong thời gian chạy 8Ngoài ra, để duy trì tường lửa (có nghĩa là tường lửa sẽ không phải bật lại trong mỗi lần khởi động lại máy chủ tiếp theo) 9Sau đó, cấp đặc quyền FIREWALL_ADMIN cho bất kỳ tài khoản nào quản trị tường lửa và FIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USERFIREWALL_USER privilege to any account that should only have access to its own firewall rules. Also, grant the EXECUTE cho các thủ tục được lưu trữ của tường lửa trong cơ sở dữ liệu mysql. Để tường lửa hoạt động, hãy đăng ký các cấu hình với nó, sau đó đào tạo tường lửa để biết các câu lệnh được phép mà cơ sở dữ liệu có thể thực thi và sau đó báo cho tường lửa khớp các câu lệnh đến với danh sách trắng đã đặt. Mỗi cấu hình có một chế độ hoạt động - TẮT, GHI, BẢO VỆ hoặc Phát hiện . TẮT vô hiệu hóa cấu hình, GHI HÌNH huấn luyện tường lửa, BẢO VỆ cho phép hoặc từ chối . Có thể đặt lại các quy tắc cho một cấu hình đã chỉ định bằng cách đặt giá trị của nó thành RESET. TẮT sẽ vô hiệu hóa hồ sơ. Để đặt chế độ, hãy sử dụng truy vấn sau trong đó tên là tên cấu hình và TẮT là chế độ hoạt động. DETECTING detects (but does not block) intrusion attempts. Rules for a specified profile can be reset by setting its value to RESET. OFF will disable the profile. To set the mode, use the following query where name is the profile name and OFF is the operational mode: 0Plugin tường lửa cũng chỉ khả dụng trong MySQL Enterprise Edition Bảo mật bản sao lưu MySQLĐối với Sao lưu MySQL, bạn có một số tùy chọn.
1
|