2017-02-02 18 views
11

Mam działający serwer proxy MySQL i mam LUA z funkcją dla read_auth(), jednak hasła przekazywane podczas uwierzytelniania są mieszane (zgodnie z oczekiwaniami).Hasła cleartext mysql-proxy

Wymagam ich w formacie, z którym będę mógł pracować i pisać dalej, tak jak w przypadku zwykłego tekstu. Włączenie wtyczki tekstu jawnego na kliencie MySQL nie ma żadnego skutku, podejrzewam, że serwer proxy MySQL nie żąda, aby klient wysłał go w postaci zwykłego tekstu, czyli domyślnego hashu.

Więc, w zasadzie: czy masz jakieś pomysły na temat tego, w jaki sposób będę w stanie uzyskać szczegółowe dane uwierzytelniające tekst w ramach funkcji proxy MySQL pod numerem read_auth()?

Uwaga: moim celem końcowym jest autoryzacja LDAP, jednak jedyny sposób, w jaki mogę uzyskać hasło (hashowane lub nie), jest faktycznie wiążący dla LDAP, nie można go uzyskać przez wyszukiwanie.

Odpowiedz

8

Protokół sieciowy MySQL nie zezwala na wysyłanie haseł w postaci zwykłego tekstu, wszystko, co można przechwycić, to wersja zaszyfrowana.


Jeśli jednak staramy się wysyłać (od klienta do serwera) w czystym tekście, po stronie klienta jasne wtyczki tekst powinien działać ...

Jak MySQL 5.5.27, aby nieumyślne użycie tej wtyczki jest mniej prawdopodobne, wymagane jest, aby klienci jawnie ją włączali. Można to zrobić na kilka sposobów:

Ustaw zmienną środowiskową LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN na wartość zaczynającą się od 1, Y lub y. Umożliwia to wtyczkę dla wszystkich połączeń klientów.

Programy klienckie mysql, mysqladmin i mysqlslap obsługują opcję --enable-cleartext-plugin, która włącza wtyczkę dla każdej inwokacji.

Funkcja API mysql_options() C obsługuje opcję MYSQL_ENABLE_CLEARTEXT_PLUGIN, która włącza wtyczkę dla poszczególnych połączeń. Ponadto każdy program, który używa plików opcji libmysqlclient i czyta pliki opcjonalne, może włączyć wtyczkę poprzez włączenie opcji enable-cleartext-plugin w grupie opcji odczytanej przez bibliotekę klienta.


Alternatywnie istnieje kilka innych opcji do uwierzytelnienia za pomocą LDAP. Na przykład można użyć wtyczki PAM Authentication, która umożliwi korzystanie z dowolnego dostępnego modułu PAM w celu świadczenia usług uwierzytelniania, i można również sprawdzić wykorzystanie ról i odwzorowanie nazw użytkowników na role, więc trzeba mieć kilka role z uprawnieniami i wieloma nazwami użytkowników zmapowanymi do tych ról. Możesz znaleźć więcej informacji na ten temat tutaj.

Dalsze Zasoby:

+0

jestem przy założeniu wtyczki uwierzytelniania PAM nie może być używany z proxy? –

+0

Uwierzytelnianie Pam wymaga wersji Enterprise Mysql, ale istnieje kilka implementacji open-source. Nie rozumiem, dlaczego nie można go używać z proxy.Podróżuję, więc nie mogę szybko podać linków. Ale gdybym to robił i wymagany byłby serwer proxy, użyłbym metody ról. –

+0

Jeszcze jeden szybki komentarz - czy nie ma sposobu, aby poradzić sobie z tym na poziomie aplikacji? Zaprogramuj wyjście, jeśli ... –