Xác thực MySQL PAM

- Cả MySQL và MariaDB đều cung cấp mô-đun xác thực PAM. PAM là viết tắt của các mô-đun xác thực có thể cắm được và là một ứng dụng Unix để có thể xác thực thông qua bất kỳ phương thức nào. Ví dụ: tệp mật khẩu /etc/shadow, LDAP, mật khẩu một lần, sự kết hợp của bất kỳ phương thức nào trong số này và nhiều phương thức khác. Tôi sẽ không giải thích cách thiết lập hoặc định cấu hình PAM vì điều đó nằm ngoài phạm vi của khóa học này. Nếu bạn quan tâm đến việc sử dụng PAM làm phương thức xác thực cho MySQL, tôi cho rằng bạn đã quen với việc thiết lập PAM làm dịch vụ xác thực. Mô-đun PAM trong MariaDB được gọi là auth_pam và auth_pam. vì vậy plugin có thể được tìm thấy trong thư mục plugin. Trong MySQL, mô-đun PAM là một tiện ích mở rộng thương mại, có sẵn với MySQL Enterprise và tệp plugin có tên là authentication_pam. vì thế. Bất kỳ mô-đun PAM nào bạn sử dụng đều có thể được cài đặt bằng cú pháp plugin cài đặt thông thường và bất kể bạn đang sử dụng bản phân phối nào, máy khách đã có các thư viện để sử dụng PAM…

Tải xuống các khóa học và học mọi lúc, mọi nơi

Xem các khóa học trên thiết bị di động của bạn mà không cần kết nối internet. Tải xuống các khóa học bằng ứng dụng LinkedIn Learning trên iOS hoặc Android của bạn

Download on the App Store Get it on Google Play

  • 1. MariaDB khác biệt như thế nào 1. MariaDB khác biệt như thế nào

  • 2. Công cụ lưu trữ Sphinx 2. Công cụ lưu trữ Sphinx

  • 3. Tích hợp NoSQL 3. Tích hợp NoSQL

  • 4. Mã định danh giao dịch toàn cầu và bản sao đa nguồn 4. Định danh giao dịch toàn cầu và sao chép đa nguồn

    MySQL hỗ trợ một số cơ chế xác thực có sẵn thông qua xác thực có thể cắm được. MySQL sử dụng một số thuật toán để mã hóa mật khẩu được lưu trữ trong bảng người dùng

    • Plugin mysql_native_password triển khai định dạng mật khẩu tiêu chuẩn, hàm băm rộng 41 byte
    • Plugin mysql_old_password triển khai định dạng cũ kém an toàn hơn, rộng 16 byte
    • Plugin sha256_password thực hiện thuật toán băm SHA-256 được sử dụng rộng rãi trong điện toán an toàn

    Giá trị của biến hệ thống old_passwords chỉ định thuật toán mà hàm PASSWORD() sử dụng để tạo mật khẩu, như sau

    • 0. Thuật toán tiêu chuẩn, như được sử dụng kể từ MySQL 4. 1. 1
    • 1. Thuật toán cũ, như được sử dụng trước MySQL 4. 1. 1
    • 2. Thuật toán SHA-256

    Khởi động máy chủ với tùy chọn plugin-xác thực-mặc định được đặt thành sha256_password để sử dụng mật khẩu SHA-256 cho tất cả người dùng mới hoặc sử dụng TẠO NGƯỜI DÙNG với mệnh đề IDENTIFIED WITH sha256_password để chỉ định mật khẩu SHA-256 cho một người dùng cụ thể

    Plugin xác thực Cleartext phía máy khách

    Một số phương thức xác thực, chẳng hạn như xác thực PAM (Mô-đun xác thực có thể cắm), yêu cầu máy khách gửi mật khẩu văn bản thuần túy đến máy chủ để máy chủ có thể xử lý mật khẩu ở dạng thông thường. Plugin mysql_clear_password kích hoạt hành vi này

    Thư viện máy khách MySQL bao gồm plugin Xác thực Cleartext tích hợp, mysql_clear_password. Plugin được sử dụng để gửi mật khẩu văn bản thuần túy đến máy chủ – Mật khẩu thường được băm. Plugin được Kích hoạt bởi biến môi trường LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN và chỉ định –enable-cleartext-plugin khi chạy các ứng dụng máy khách MySQL như mysql và mysqladmin. Tùy chọn MYSQL_ENABLE_CLEARTEXT_PLUGIN của hàm mysql_options() C API cũng có thể được sử dụng để kích hoạt plugin

    Plugin xác thực có thể tải

    Ngoài các plugin tích hợp mặc định, MySQL cung cấp một số plugin có thể tải

    • Plugin Xác thực thử nghiệm (test_plugin_server) xác thực bằng cách sử dụng xác thực mật khẩu gốc hoặc mật khẩu cũ và được dùng cho mục đích thử nghiệm và phát triển
    • Plugin Socket Peer-Credential (auth_socket) chỉ cho phép người dùng kết nối qua tệp ổ cắm UNIX nếu tên người dùng Linux của họ khớp với tài khoản MySQL của họ
    • Plugin xác thực PAM (authentication_pam) là plugin Phiên bản doanh nghiệp cho phép bạn đăng nhập bằng cơ chế xác thực bên ngoài. MySQL không lưu trữ mật khẩu của bạn, nhưng sử dụng cơ chế UNIX PAM (Mô-đun xác thực có thể cắm) để truyền tên người dùng và mật khẩu do khách hàng cung cấp để hệ điều hành xác thực

    Bạn có thể phát triển các plugin xác thực của riêng mình. Plugin Xác thực thử nghiệm được các nhà phát triển sử dụng để tạo các plugin của riêng họ; . Tải plugin xác thực có thể tải bằng cách khởi động máy chủ với tùy chọn tải plugin tại dòng lệnh hoặc trong tệp my. cnf, như trong ví dụ sau

    [mysqld] 
    plugin-load=authentication_pam.so

    Plugin xác thực PAM

    Plugin PAM Authentication là plugin Phiên bản doanh nghiệp xác thực tài khoản MySQL với hệ điều hành. PAM định nghĩa các dịch vụ cấu hình xác thực. Chúng được lưu trữ trong /etc/pam. d. PAM tìm trong /etc/pam. d cho các dịch vụ mà nó xác thực. Ví dụ: để tạo dịch vụ PAM có tên mysql-pam, hãy tạo tệp /etc/pam. d/mysql-pam với nội dung sau

    #%PAM-1.0
    auth     include  password-auth 
    account  include  password-auth

    Ngoài xác thực MySQL, PAM còn tích hợp với các phương thức xác thực khác bao gồm LDAP và Active Directory, vì vậy bạn có thể sử dụng PAM để xác thực nhiều dịch vụ (bao gồm cả MySQL) đối với một cửa hàng trong mạng của mình. Để tạo người dùng MySQL ánh xạ trực tiếp tới người dùng hệ điều hành, hãy sử dụng câu lệnh như sau

    CREATE USER bob@localhost
    IDENTIFIED WITH authentication_pam AS 'mysql-pam';

    Khi bob đăng nhập, MySQL chuyển tên người dùng và mật khẩu mà nó nhận được từ máy khách tới PAM, xác thực với hệ điều hành. Khách hàng phải gửi mật khẩu ở dạng văn bản rõ ràng. Bật plugin Xác thực Cleartext phía máy khách để phục vụ mục đích này

    shell> mysql --enable-cleartext-plugin -ubob -p 
    Enter password: bob’s_OS_password

    Để bật đăng nhập dựa trên nhóm bằng plugin Xác thực PAM, hãy tạo tài khoản proxy ẩn danh hỗ trợ PAM không khớp với người dùng, nhưng chỉ định một bộ ánh xạ từ nhóm hệ điều hành tới người dùng MySQL

    CREATE USER ''@'' IDENTIFIED WITH authentication_pam AS 'mysql-pam, sales=m_sales, finance=m_finance';

    Ví dụ trước giả định rằng bạn có các nhóm hệ điều hành bán hàng và tài chính cũng như người dùng MySQL m_sales và m_finance. Sau đó, bạn phải cấp đặc quyền PROXY cho tài khoản proxy ẩn danh, cấp cho nó quyền đăng nhập với tư cách là người dùng MySQL m_sales và m_finance

    GRANT PROXY ON m_sales@localhost TO ''@'';
    GRANT PROXY ON m_finance@localhost TO ''@'';

    Người dùng là thành viên của nhóm bán hàng và tài chính hiện có thể cung cấp thông tin đăng nhập hệ điều hành của họ tại dấu nhắc dòng lệnh mysql, dấu nhắc này sẽ đăng nhập họ với tư cách là người dùng MySQL m_sales hoặc m_finance tương ứng, cung cấp cho họ tất cả các đặc quyền được cấp cho các tài khoản đó. Ví dụ: nếu peter là thành viên của nhóm bán hàng, anh ấy có thể đăng nhập như sau

    Xác thực dựa trên PAM là gì?

    Mô-đun xác thực có thể cắm (PAM) là cơ chế tích hợp nhiều sơ đồ xác thực cấp thấp vào giao diện lập trình ứng dụng (API) cấp cao. PAM allows programs that rely on authentication to be written independently of the underlying authentication scheme.

    Mô-đun PAM nào được sử dụng để xác thực người dùng cục bộ?

    Lỗi xác thực PAM là gì?

    Xác thực với hệ thống xác thực PAM bên ngoài có thể không thành công nếu Máy chủ đối tượng, tác nhân xử lý hoặc xử lý cổng không chạy với quyền root . Đây không phải là hạn chế của các quy trình Tivoli® Netcool®/OMNIbus, mà thay vào đó là do PAM cơ bản và cấu hình hệ điều hành gây ra.

    Xác thực PAM SSH là gì?

    PAM, trong ngữ cảnh này, là viết tắt của Mô-đun xác thực có thể cắm được (vì vậy chúng tôi gọi là mô-đun xác thực có thể cắm được 😂). Bằng cách triển khai một mô-đun, chúng tôi có thể thêm các phương thức xác thực tùy chỉnh cho người dùng. Trong bài viết này, chúng tôi sẽ viết một mô-đun Linux PAM để xác thực người dùng thông qua OneLogin.