ProFTPD – logowanie zdarzeń do bazy SQL

Serwer ProFTPD domyślnie pobiera konfigurację oraz loguje zdarzenia do plików tekstowych. Istnieje jednak moduł, który pozwala na integrację z bazą SQL. Jest to przydatne, gdy chcemy analizować dane (np. podliczać transfer) lub zarządzać użytkownikami z poziomu bazy.

W niniejszym wpisie opiszę sposób konfiguracji serwera FTP tak, aby informacje o poprawnych i błędnych logowaniach były zapisywane do bazy MySQL.

Instalujemy serwer FTP oraz moduł umożliwiający dostęp do bazy SQL.

W pliku /etc/proftpd/modules.conf znajduje się lista modułów. Musimy włączyć mod_sql.c oraz mod_sql_mysql.c. Wyszukujemy poniższe linie i usuwamy komentarze (znak #) lub dodajemy je na koniec pliku w przypadku ich braku.

W głównym pliku z konfiguracją należy dodać plik z listą modułów. Jeżeli poniższej linii nie ma w pliku /etc/proftpd/proftpd.conf, to dodajemy ją na koniec.

Teraz czas na konfigurację MySQL-a. Zakładamy nową bazę, użytkownika oraz tabelę na dane. Moja tabela wygląda następująco. Zamiast MyISAM możemy użyć silnik ARCHIVE.

Na koniec pliku /etc/proftpd/proftpd.conf dodajemy poniższe polecenia, które umożliwią nawiązanie połączenia oraz logowanie danych do bazy.

SQLConnectInfo zawiera nazwę bazy, adres serwer oraz login i hasło. SQLogFile określa ścieżkę do pliku z dziennikiem operacji wykonywanych na bazie, a SQLBackend zawiera typ bazy.

Polecenie SQLLog określa operacje, które będą logowane do bazy. W moim przypadku, są to polecenia USER, PASS oraz ERR_PASS, czyli prawidłowe oraz błędne próby logowania na serwer FTP. SQLNamedQuery to zapytanie, które dodaje dane do bazy. Loguję adresy IP, datę operacji, login oraz status (prawidłowe lub błędne logowanie). Dodatkowe informacje na temat logowania można znaleźć w dokumentacji.

Po zapisaniu zmian, restarujemy serwer.

Oraz podglądamy plik z logiem.

Jeżeli zalogujemy się teraz na FTP, to na ekranie pojawi się odpowiednia informacja, a w bazie rekord z naszym IP oraz użytym loginem.

Uwagi

Działanie powyższej konfiguracji oraz serwera FTP możemy sprawdzić włączając logowanie przy pomocy poleceń DebugLevel oraz SystemLog.

Następnie logujemy się na FTP, wykonujemy kilka operacji (np. pobieramy plik) i sprawdzamy czy komunikacja pomiędzy ProFTPD a MySQL-em działa.

Wynik powyższego polecenia powinien zawierać informacje o przesyłaniu poszczególnych komand do modułu mod_sql.

Dodaj komentarz

Twój adres email nie zostanie opublikowany.