Azt szeretném megtudni megoldható e, hogy ne csak syslogba logoljon pure-ftpd, hanem egy megadott mysql adatbázis táblába is?
Ha igen akkor hogyan?
- 1061 megtekintés
Hozzászólások
en ezt ugy oldottam meg regebben hogy csinaltam egy scriptet ami folyamatosan figyeli a pure-ftpd logjat es feldolgozza azt majd berakja mysql-be. mas megoldast ha jol lattam nincs erre, viszont ha nem ragaszkodsz a pure-ftpdhez akkor proftpd tudja ezt.
(esetleg meg a pure-ftpd forrasaba is beleirhatod bar ez kicsit macerasabb de nem lehetetlen)
- A hozzászóláshoz be kell jelentkezni
Forrásba írás nem valószínű, log figyelés jó lehet, de utána nézek a tanácsodra proftpd-nek.
Köszi.
Ha valakinek még van valami használható ötlete, az nyugodtan írjon.
- A hozzászóláshoz be kell jelentkezni
nekem a pureftpd-m sqlből authol, megvan neki adva mi a query a keresesre.
mondjuk select elott/utan csinalhat eppen egy insertet is.... igaz ezt akkoris fogja ha nemsikeres a login. (bar imho egymasba agyazott sql utasitasokkal megoldhato hogy a pure auth is menjen es logolni is tudd kulon a valid es invalid loginokat..)
- A hozzászóláshoz be kell jelentkezni
Már próbáltam, így nem működött, hogyha mögé fűztem egy INSERT-et. Vagy lehet én rontottam el valamit? Neked működött? Elvileg van SELECT és INSERT joga a pureftpd usernek és a tábla is létezik, szóval mennie kellene.
Már kezdek lejjebb adni a tervezettből megint. Elég ha csak logolja nekem a belépéseket. Teljesen mindegy már hogy sikerült e neki vagy sem.
- A hozzászóláshoz be kell jelentkezni
IMHO, nem fogod tudni logolni a belépési kísérleteket, mivel a user/pass ellenőrzés nem az SQL queryben történik, csakis a passwd column mező kerül lekérésre. A doksiban nem találtam password kapcsolót, mint ahogy rendre van \L = user, \R = remote ip stb. Vagyis tudod, csak nem lehet eldönteni, hogy sikeres volt-e a belépés vagy sem. Ha tévedek... FIXME
- A hozzászóláshoz be kell jelentkezni
Szóval, tömören és röviden, azt mondod, hogy nem lehet megoldani egyszerűen. :)
Se a sima ip és felhasználónév logolást, se pedig azt hogy sikeres volt e a belépés.
Igaz?
- A hozzászóláshoz be kell jelentkezni
A (vélt/valós) felhasználónevet, ip-t, portot stb. természetesen tudod tárolni, de azt, hogy sikeres volt-e már nem.
- A hozzászóláshoz be kell jelentkezni
Siman megoldhato, csak sajat auth scrpitet kell irnod pure-ftpd hez. Aztan pure-authd -n keresztul autholni.
En ennel sokkal tobb mindent oldottam meg authd -vel es tokeletesen mukodik. Sajnos kodot nem tehetek kozze.
- A hozzászóláshoz be kell jelentkezni
pont most akartam írni... :)
- A hozzászóláshoz be kell jelentkezni
Nagyon dirty 3 perces ruby script erre, kiindulasnak tokeletes:
#!/usr/local/bin/ruby
require 'rubygems'
require 'dbi'
account = ENV['AUTHD_ACCOUNT']
passwd = ENV['AUTHD_PASSWORD']
ip = ENV['AUTHD_REMOTE_IP']
begin
dbh = DBI.connect("DBI:Pg:silihostadmin:localhost", "dbname", "pass")
user = dbh.select_one("SELECT * from ftps WHERE name = '#{account}' AND password = '#{passwd}'")
if user.nil?
puts "auth_ok:0"
exit
end
puts "auth_ok:1\nuid:#{user[:uid]}\ngid:#{user[:gid]}\ndir:#{user[:homedir]}\n"
dbh.execute("INSERT INTO ftplog ('#{account}', '#{ip}', localtimestamp)")
rescue DBI::DatabaseError => e
puts "auth_ok:0"
ensure
dbh.disconnect if dbh
end
- A hozzászóláshoz be kell jelentkezni
Jól néz ki de nem látok benne számomra realitást, de majd bepróbálkozok valamelyik nap vboxon vele.
Ruby-nak is utána kell akkor néznem.
Kösz szépen. :)
- A hozzászóláshoz be kell jelentkezni
Esetleg syslog-ng a syslog helyett?
- A hozzászóláshoz be kell jelentkezni
Kezdő linuxos vagyok de a gugli a barátom ugye. :)
syslog-ng az mysql táblába is logolhatja a rendszereseményeket ha jól veszem ki.
Na és ez hogy működne, mert ez felkeltette az érdeklődésemet.
- A hozzászóláshoz be kell jelentkezni
Most nézem, hogy amikor telepíteni akarja syslog-ng -t debianom, akkor eltávolítja rsyslog-ot, ennek a csomagnak is utána néztem elvileg ez is képes sql-be tárolni.
Ha rsyslog-ról van valakinek valami tapasztalata mysql adatbázis alapon, az nyugodtan írjon.
Azért nem akarom syslog-ng -t feltenni mert fail2ban nem tudom hogy szívlelné a dolgot... perpillanat pure-ftpd-mysql syslog-ba írja ugye bele a hibás belépéseket is, és fail2ban meg onnan szedi ki és tilt ip-re ha túl sok próbálkozás volt. Még majd bővebben utána nézek a csomagoknak, de most mennem kell aludni. cs
- A hozzászóláshoz be kell jelentkezni
http://wiki.rsyslog.com/index.php/Debian
rsyslog-mysql
Szóval csak telepíteni kell, létrehozza magát a táblát és a hozzá tartozó mysql felhasználót automatikusan.
És úgy tűnik megoldva a dolog. Már csak tesztelni kellene. Arra vagyok kíváncsi, hogy csak mysql-be fog a telepítés után logolni, vagy mysql-be is és fájlba is. fail2ban miatt lenne csak fontos.
- A hozzászóláshoz be kell jelentkezni
És igen!
Működik!
Egyszerre logol fájlba is meg mysql táblába.
Akkor megoldódott a dolog.
Csodálatos! :)
- A hozzászóláshoz be kell jelentkezni