2017-02-02 21 views
11

Tôi có proxy MySQL đang chạy và tôi có LUA với chức năng cho read_auth() tuy nhiên mật khẩu được chuyển trong khi xác thực được băm (như mong đợi).mật khẩu cleartext mysql-proxy

Tôi yêu cầu chúng ở định dạng mà tôi có thể làm việc và đăng lên, để rõ ràng. Việc kích hoạt plugin cleartext trên máy khách MySQL không có hiệu lực, tôi nghi ngờ rằng MySQL proxy không yêu cầu client gửi nó trong văn bản rõ ràng để mặc định băm. Vì vậy, về cơ bản: bạn có bất kỳ ý tưởng nào về cách tôi có thể nhận được các chi tiết xác thực văn bản rõ ràng trong chức năng read_auth() của proxy MySQL không? Không.

Lưu ý: mục tiêu cuối cùng của tôi là xác thực với LDAP, tuy nhiên cách duy nhất tôi có thể nhận được mật khẩu (băm hoặc không) là thực sự ràng buộc với LDAP, không thể tìm được bằng cách tìm kiếm.

Trả lời

8

Giao thức mạng MySQL không cho phép mật khẩu được gửi dưới dạng văn bản thuần túy, tất cả những gì bạn có thể chụp là phiên bản được mã hóa.


Tuy nhiên, nếu bạn đang cố gắng để gửi (từ máy khách đến máy chủ) cleartext, phía khách hàng rõ ràng Plugin văn bản nên làm việc ...

Tính đến MySQL 5.5.27, để làm vô ý sử dụng plugin này ít có khả năng hơn, yêu cầu khách hàng bật nó một cách rõ ràng. Điều này có thể được thực hiện theo nhiều cách:

Đặt biến môi trường LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN thành giá trị bắt đầu bằng 1, Y hoặc y. Điều này cho phép plugin cho tất cả các kết nối máy khách.

Chương trình khách hàng mysql, mysqladmin và mysqlslap hỗ trợ tùy chọn --enable-cleartext-plugin cho phép plugin trên cơ sở từng yêu cầu.

Hàm mysql_options() C hỗ trợ tùy chọn MYSQL_ENABLE_CLEARTEXT_PLUGIN cho phép plugin trên cơ sở mỗi kết nối. Ngoài ra, bất kỳ chương trình nào sử dụng libmysqlclient và đọc tệp tùy chọn đều có thể bật plugin bằng cách bao gồm tùy chọn bật-cleartext-plugin trong nhóm tùy chọn được đọc bởi thư viện khách.


Ngoài ra, có một vài tùy chọn khác để xác thực với LDAP. Ví dụ: bạn có thể sử dụng Plugin xác thực PAM sẽ cho phép bạn sử dụng bất kỳ mô-đun PAM có sẵn nào để cung cấp dịch vụ xác thực và there is a pam_ldap module that is easy to configure.

Bạn cũng có thể xem xét sử dụng vai trò và ánh xạ tên người dùng cho vai trò, vì vậy bạn sẽ có một vài vai trò có quyền và nhiều tên người dùng được ánh xạ tới các vai trò đó. Bạn có thể tìm thêm thông tin về điều đó tại đây.

Hơn nữa lực:

+0

Tôi giả định các plugin xác thực PAM không thể được sử dụng với các proxy? –

+0

Xác thực Pam yêu cầu phiên bản doanh nghiệp của Mysql nhưng có một vài triển khai mã nguồn mở. Tôi không thấy lý do tại sao nó không thể được sử dụng với proxy.Tôi đang đi du lịch nên tôi không thể nhanh chóng cung cấp liên kết. Nhưng nếu tôi đã làm nó và proxy được yêu cầu tôi sẽ sử dụng phương pháp vai trò. –

+0

Chỉ cần một bình luận nhanh khác - là không có cách nào bạn có thể xử lý này ở cấp ứng dụng? Lập trình theo cách của bạn nếu bạn sẽ ... –