VMware Produkt Versions Tracker | 08.08.2023 10:44 | |
Fritz!Box SmartHome Monitoring mit PRTG, AHA-Interface | 02.03.2023 10:59 | |
Bachmann BlueNet SNMP-OID Generator für PRTG / Monitoring | 15.12.2022 16:14 | |
change fail2ban socket permissions for f2bwi for systemd | 29.06.2022 14:57 | |
Fehler bei vSphere 7.x und vTPM / Virtualization Based Security enabled VMs | 10.11.2021 17:44 | |
HP Color Laser Drucker MFP 179 – Anmeldung Weboberfläche | 11.06.2020 11:42 | |
VMCS 6.5+ neuen ESXi-Host hinzufügern schlägt Fehl wegen Zertifikat | 21.11.2019 09:44 | |
EMC Isilon IOps mit PRTG-Monitoring überwachen | 26.10.2016 14:30 | |
Windows Sicherung Fehler 0X8078002A | 07.06.2016 10:58 | |
VMware vSphere Update Manager Paket / Patch manuell entfernen | 08.12.2015 08:27 | |
Fail2Ban für Teamspeak3 Server | 21.08.2015 10:46 | |
PhpMyAdmin root Login auf bestimmte Clients beschränken | 17.06.2015 08:13 | |
Debian 8 (Kernel >=3.9) VMware Konsole bleibt schwarz | 05.05.2015 11:20 | |
Thunderbird Lightning Google Kalender (CalDAV) | 04.12.2014 07:41 | |
Pure-FTPd TLS "PEM_read_bio:no start line" | 20.11.2014 08:44 | |
PHP5 + MySQL load data local infile Error 1148 | 17.04.2014 13:27 | |
Pure-FTPd und MySQL Last User Access Logging | 13.12.2013 11:55 | |
Als FTP-Server Service ist Pure-FTPd einer meiner Lieblinge im Linuxumfeld und weltweit relativ verbreitet im Einsatz. Das Ding betreibe ich mit MySQL-Athentifizierung, also "pure-ftpd-mysql" und VirtualChroot. Ein Kollege von mir brachte mich auf folgende Idee: Wieso kann man nicht (Anmerkung: doch geht, per cronjob, grep, tail, usw.) in einer Datenbank speichern, wann ein FTP-User Account das letzte mal benutzt wurde und von welcher IP-Adresse das geschah? Gute Frage. Also ein Auth-Logging für Pure-FTPd basteln, dass in Echtzeit - nicht per Cron über die Logfiles - läuft. Wir gehen davon aus, dass es bereits eine Tabelle für die FTP-Nutzer gibt. In dem Beispiel steht in der Spalte "user" der Login-Name. Die Tabelle heißt im Beispiel "ftp_users". Wer die MySQL-Variante des Daemons bereits benutzt weiß was ich meine. Für das Login-Logging *Wortspiel* benötigen wir eine neue Tabelle, denn Ziel soll sein: - Loggen der letzten 10 IP-/Datumsangaben je Nutzer bzw. - Loggen der letzten Datumsangabe je IP-Adresse je Nutzer Also die Tabellenstruktur für die neue Tabelle: CREATE TABLE IF NOT EXISTS `ftp_login` ( `user` varchar(100) NOT NULL, `last_login` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `last_ip` varchar(15) NOT NULL, UNIQUE KEY `ip` (`user`,`last_ip`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Wer InnoDB nutzt kann auch Constraints anlegen: ALTER TABLE `ftp_login` ADD CONSTRAINT `ftp_login_ibfk_1` FOREIGN KEY (`user`) REFERENCES `ftp_users` (`user`) ON DELETE CASCADE ON UPDATE CASCADE; Nun kommt der Trick: Offiziell kann Pure-FTPd soetwas nicht, aber man kann dessen mysql.conf Datei dafür missbrauchen. Wir suchen uns die Zeile mit MYSQLGetPW heraus, die sollte in etwa so aussehen: MYSQLGetPW SELECT password FROM ftp_users WHERE user="\L" AND active="Y" AND (ipaccess = "*" OR ipaccess LIKE "\R") und erweitern diese einfach. Dazu zuerst - wenn noch nicht vorhanden - ein Semikolon ";" dahinter und 2 weitere Queries anhängen. Nummer 1: neuen Datensatz speichern INSERT INTO ftp_login VALUES("\L",NOW(),"\R") ON DUPLICATE KEY UPDATE last_login=NOW(); Nummer 2: alte Einträge per User bis auf die letzten 10 löschen: DELETE FROM ftp_login WHERE user="\L" AND last_login < (SELECT tmp.last_login FROM (SELECT last_login FROM ftp_login WHERE user="\L" ORDER BY last_login DESC LIMIT 10,1) as tmp); Wer die letzten 50 aufheben will macht hinten ein LIMIT 50,1 draus usw... Am Ende sollte die komplette Zeile in etwa so aussehen: MYSQLGetPW SELECT password FROM ftp_users WHERE user="\L" AND active="Y" AND (ipaccess = "*" OR ipaccess LIKE "\R"); INSERT INTO ftp_login VALUES("\L",NOW(),"\R") ON DUPLICATE KEY UPDATE last_login=NOW(); DELETE FROM ftp_login WHERE user="\L" AND last_login < (SELECT tmp.last_login FROM (SELECT last_login FROM ftp_login WHERE user="\L" ORDER BY last_login DESC LIMIT 10,1) as tmp); Wichtig ist dabei, dass alles IN EINER ZEILE steht. Danach den Pure-FTPd Dienst neu starten und fertig. | ||
MySQL / PhpMyAdmin Fehler: Doppelte InnoDB Foreign Key Constraints | 25.10.2013 11:25 | |
vSphere Replication Fehler: MISSING PLACEHOLDER | 14.10.2013 08:34 | |
MySQL ERROR 130 (HY000) | 13.06.2013 11:46 | |
MS-SQL Server 2008 - Aktivitätsmonitor Fehler | 06.03.2013 12:20 | |
Thunderbird IMAP Posteingang (Inbox) & Papierkorb (Trash) doppelt vorhanden | 05.11.2012 13:18 | |
Redirect Verzeichnis zu URL Parameter mit Apache2 mod_rewrite | 22.03.2012 08:22 | |
DKIM und SPF mit united-domains.de | 12.01.2012 08:55 | |
VMware vCenter 5 - Verbindung zu Diensten bricht manchmal ab & PlugIns werden deaktiviert | 29.09.2011 09:49 | |
Linux V2V Konvertierung XEN -> VMware | 13.07.2011 12:30 | |
VMware Workstation 7.x (und andere) Bandbreite beschränken | 10.03.2011 19:22 | |
DSL Zugangsdaten / Kennwort vergessen - Herausfinden mit Fritz!Box | 20.02.2011 23:44 | |
PHP 5.3.5 - Problem mit MySQL 5 und OLD_PASSWORD Kennwörtern | 04.02.2011 09:42 | |
HP Proliant DL160 G6, B110i RAID und SLES11-SP1 X84_64 Installation | 14.12.2010 14:36 | |
Informatiker-Wetter | 10.11.2010 11:59 | |
Informatikerwitz | 10.11.2010 11:56 | |
Das ist doch mal 'ne vernünftige Erklärung, die man auch begreift... | 20.09.2010 11:18 | |
Windows: Zuletzt verwendet Einträge löschen (Recent) | 16.08.2010 09:13 | |
Canon ScanLIDE 35 mit Windows 7 (64Bit) | 13.01.2010 07:00 | |
MSI Eclipse Plus (MS-7566) DriveBooster für Windows 7 (64Bit) | 05.01.2010 10:05 | |
MSI Eclipse Plus (MS-7566) BIOS | 05.01.2010 10:00 | |