Zeige Beiträge
|
Seiten: [1]
|
1
|
ProFTPD / ProFTPD - Deutsch / Re: FYI: Secunia meldet Sicherheitslücke in ProFTPd
|
am: 21. November 2006, 11:20:49
|
Die Meldung ist wirklich sehr dürftig - man hofft, dass wenigstens der Entwickler mit brauchbaren Infos versorgt wurde. Secunia ist allerdings recht bekannt, ich denke nicht, dass die es nötig haben, Traffic durch sowas zu generieren. Dann doch eher durch das 74538. Loch im IE oder das 112. im Firefox
|
|
|
2
|
ProFTPD / ProFTPD - Deutsch / FYI: Secunia meldet Sicherheitslücke in ProFTPd
|
am: 10. November 2006, 16:34:54
|
TITLE: ProFTPD Unspecified Vulnerability SECUNIA ADVISORY ID: SA22803 VERIFY ADVISORY: http://secunia.com/advisories/22803/CRITICAL: Moderately critical IMPACT: System access WHERE: From remote SOFTWARE: ProFTPD 1.3.x http://secunia.com/product/5430/DESCRIPTION: Evgeny Legerov has reported a vulnerability in ProFTPD, which potentially can be exploited by malicious people to compromise a vulnerable system. The vulnerability is caused due to an unspecified error. Successful exploitation may allow execution of arbitrary code. The vulnerability is reported in version 1.3.0. Other versions may also be affected. SOLUTION: Restrict access to the service. PROVIDED AND/OR DISCOVERED BY: Evgeny Legerov, GLEG Ltd.
|
|
|
3
|
ProFTPD / ProFTPD - Deutsch / Unnötige SQL-Verbindung
|
am: 02. Oktober 2006, 14:29:17
|
Hallo, wir überprüfen periodisch, ob der FTP-Server (proftpd 1.3/mod_mysql) auf unseren Servern korrekt läuft. Dazu lassen wir ein Skript eine Verbindung aufbauen, versuchen dort aber keinen Login, sondern senden QUIT Dies sollte rein von der Logik keine SQL-Verbindung über mod_sql erfordern. Trotzdem werden Verbindungen zum FTP-Server aufgebaut, bei sehr vielen Checks über einen kleinen Zeitraum zu viele. Kann man dieses Verhalten irgendwie steuern bzw. abschalten? Hier der betreffende Teil aus der proftpd conf: <IfModule "mod_sql.c"> AuthOrder mod_auth_unix.c mod_sql.c SQLConnectInfo ******
SQLLogFile /var/log/proftpd_sql.log SQLAuthTypes Crypt Plaintext SQLAuthenticate users SQLUserInfo ftp_users username password uid gid homedir shell SQLMinUserUID 500 SQLMinUserGID 500
#allow only enabled users and users for this specific server SQLUserWhereClause "login_enabled = 'Y' AND Server_Name = SUBSTRING_INDEX(USER(),'@',-1)"
SQLLog PASS login SQLNamedQuery login UPDATE "last_login=now(), login_count=login_count+1 where username='%u'" ftp_users
SQLLog RETR download SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b where username='%u'" ftp_users
SQLLog STOR upload SQLNamedQuery upload update "up_count=up_count+1, up_bytes=up_bytes+%b where username='%u'" ftp_users </IfModule>
|
|
|
4
|
ProFTPD / ProFTPD - Deutsch / mod_vroot Bug
|
am: 26. September 2006, 13:13:56
|
proftpd 1.3.0 mit mod_vroot 0.7.1 Die Benutzer liegen in ihrem Home-Verzeichnis /usr/home/[login] und sind per DefaultRoot ~ dort eingesperrt. Zudem läuft mod_vroot um den Zugriff auf einen symbolischen Link zu gestatten. Der Benutzer will ein Verzeichnis /usr/home/[login] anlegen. Der gesamte Pfad für dieses Verzeichnis würde also lauten: /usr/home/[login]/usr/home/[login]Das Verzeichnis kann nicht angelegt werden (login "ftptest" für diesen Test): Antwort: 150 Opening ASCII mode data connection for file list Antwort: 226 Transfer complete. Status: Auflistung des Verzeichnisinhalts erfolgreich Befehl: CWD /usr/home/ Antwort: 250 CWD command successful Befehl: MKD ftptest Antwort: 550 ftptest: No such file or directory Befehl: REST 0 Antwort: 350 Restarting at 0. Send STORE or RETRIEVE to initiate transfer Fehler: Verbindung getrennt Auch wenn ich das Verzeichnis per SSH anlege, wird es im FTP-Client nicht dargestellt und auch der direkte Wechsel ins Verzeichnis gibt einen Fehler 550 Kann das jemand bestätigen und/oder mal bei sich testen? Es tritt wie gesagt nur auf, wenn mod_vroot angeschaltet ist... Übrigens, auch /usr/home/[login]/usr/home/[login]irgendetwas schlägt fehl
|
|
|
5
|
ProFTPD / ProFTPD - Deutsch / Re: mod_mysql Verständnisfrage
|
am: 21. September 2006, 16:08:41
|
Wenn man die bisherige "Lösung" sieht, ist mod_vroot schon mal ein großer Sprung in die richtige Richtung. Eine Lösung per bind oder gar eine Änderung der Filesystemstruktur kommen im Moment leider nicht in Frage.
|
|
|
6
|
ProFTPD / ProFTPD - Deutsch / Re: mod_mysql Verständnisfrage
|
am: 21. September 2006, 15:36:39
|
Ich hab das mal probiert - in meinem FTP-Programm (Filezilla) sieht der Symlink jetzt komplett aus wie ein normales Verzeichnis! Wirklich erstaunlich - vom Handling her (also auch der angezeigte Pfad im FTP-Programm) sieht es aus, als wenn es keinen Symlink gäbe sondern nur ein ganz normales Verzeichnis... Ich werd das mal weiter testen ob es nicht doch irgendeinen Fallstrick gibt...klingt ja fast zu gut um wahr zu sein
|
|
|
7
|
ProFTPD / ProFTPD - Deutsch / Re: mod_mysql Verständnisfrage
|
am: 21. September 2006, 14:09:16
|
Danke - mod_vroot werde ich mir auf jeden Fall ansehen - war mit der bisherigen Lösung auch immer sehr unzufrieden.
Ansonsten läuft die Konfiguration jetzt wie vorgesehen, auch meine "Spezialwünsche" laufen hervorragend. Vielen Dank für die tolle Hilfe!
|
|
|
8
|
ProFTPD / ProFTPD - Deutsch / Re: mod_mysql Verständnisfrage
|
am: 21. September 2006, 12:50:07
|
Die DefaultRoot Geschichte hab ich mir nicht ausgedacht - es gibt wohl (leider) Gründe, warum das so gemacht wurde. Soweit ich mich erinnere, hat es was damit zu tun, dass die User Zugriff auf 2 Verzeichnisse haben sollen (ohne 2. Login). Gibt es da ne andere Möglichkeit? Ansonsten habe ich das Problem beheben können (deine Beispiel-Konfig hat mich auf den richtigen Weg gebracht ) SQLMinUserUID 500 SQLMinUserGID 500 Diese Werte stehen standardmäßig auf 999/999 - und meine 750 aus dem Beispiel fallen da nicht rein...
|
|
|
9
|
ProFTPD / ProFTPD - Deutsch / Re: mod_mysql Verständnisfrage
|
am: 21. September 2006, 12:07:25
|
Ok - danke erstmal für deine Antwort...das macht je erstmal Hoffnung - dachte schon, das würde gar nicht funktionieren Also - ich hab jetzt PAM deaktiviert udn AuthOrder gesetzt, gleiches Ergebnis. Login geht - hier mal die relevanten Konfigurationsdaten: ############################################################################### # # GENERAL CONFIGURATION # ###############################################################################
AuthPAM off User nobody Group nobody DefaultRoot / Umask 022 CommandBufferSize 255 DeferWelcome on IdentLookups off ListOptions "-a" MaxClients 40 MaxClientsPerHost 22 PassivePorts 49152 65534 PathAllowFilter "^[a-zA-Z0-9öäüÖÄÜ \/_\.\+\-\:\,]+$" PathDenyFilter "(\.ftp[a-z]+$)|(passwd.cdb)" TimeoutIdle 3600 TimeoutStalled 3600 WtmpLog on TimesGMT off RequireValidShell off
<Directory /*> HideUser root AllowOverwrite on </Directory> AuthOrder mod_auth_unix.c mod_sql.c
############################################################################### # # MYSQL # ############################################################################### <IfModule "mod_sql.c">
SQLConnectInfo [db]@[server] [login] [pass] SQLLogFile /var/log/proftpd_sql.log SQLAuthTypes Crypt Plaintext SQLAuthenticate users SQLUserInfo ftp_users username password uid gid homedir shell
#allow only enabled users and users for this specific server SQLUserWhereClause "login_enabled = 'Y' AND Server_Name = SUBSTRING_INDEX(USER(),'@',-1)"
SQLLog PASS login SQLNamedQuery login UPDATE "last_login=now(), login_count=login_count+1 where username='%u'" ftp_users
SQLLog RETR download SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b where username='%u'" ftp_users
SQLLog STOR upload SQLNamedQuery upload update "up_count=up_count+1, up_bytes=up_bytes+%b where username='%u'" ftp_users </IfModule>
Jetzt das Anwendungsbeispiel: Der Systemuser heißt foo und hat die UID/GID 750 Der "Unteruser": foo_0id username uid gid password homedir shell login_enabled login_count last_login up_count up_bytes down_count down_bytes Server_Name 1 foo_0 750 750 test1234 /usr/home/foo/ /bin/false Y 14 2006-09-20 15:51:16 0 0 0 0 server.name
Einloggen klappt wie gesagt. Aber beim Verzeichniswechsel: Befehl: CWD temp Antwort: 550 temp: Permission denied Fehler: Dateiliste konnte nicht empfangen werden Siehst du einen Fehler in der Konfiguration?
|
|
|
10
|
ProFTPD / ProFTPD - Deutsch / mod_mysql Verständnisfrage
|
am: 20. September 2006, 17:02:22
|
Hallo,
folgendes ist mein Endziel: Jeder Systemuser soll die Möglichkeit haben, "Unteruser" anzulegen, die jeweils nur auf bestimmte Unterverzeichnisse Zugriff haben sollen. Also im Prinzip eine Funktion, die viele Oberflächen (syscp etc.) realisieren. Diese Unteruser sollen mit der gleichen UID/GID wie der entsprechende Systemuser unterwegs sein, so dass Dateien beliebig änderbar sind.
Folgendermaßen habe ich es probiert: Systemuser loggen sich ganz normal über PAM ein, für die Unteruser wird mod_mysql benutzt. Diesen Usern gebe ich die gleiche UID/GID wie dem Systemuser (die hole ich aus /etc/passwd). <-- Bei dem Schritt bin ich mir nicht sicher, ob ein Verständnisproblem vorliegt, DENN: Der Unteruser kann sich zwar einloggen, hat dann aber nur World-Rechte und nicht Owner-Rechte
Ist das überhaupt so realisierbar? Oder muss ich vorhandene Systemuser erst umständlich in die DB einlesen? (wie ich es bei syscp gesehen habe)
|
|
|
11
|
ProFTPD / ProFTPD - Deutsch / Re: SQLUserWhereClause erweitern
|
am: 10. August 2006, 14:55:27
|
Ja, das sieht ganz gut aus. Nur statt der IP den Servernamen in die DB schreiben, dann sollte das passen. Das bringt mich schon mal enorm weiter - Danke Werde dann berichten, falls noch Probleme auftauchen...
|
|
|
12
|
ProFTPD / ProFTPD - Deutsch / Re: SQLUserWhereClause erweitern
|
am: 10. August 2006, 13:31:37
|
Ok - danke erstmal für die Korrektur und die Antwort. Vielleicht hat ja jemand noch eine andere Idee (irgendwelche anderen mod's?), da unsere Konfiguration zu 99% zentral verwaltet wird (also alle server quasi-identisch sind) wäre eine separate Konfiguration leider keine Lösung.
|
|
|
14
|
ProFTPD / ProFTPD - Deutsch / SQLUserWhereClause erweitern
|
am: 10. August 2006, 11:10:16
|
Hallo, folgende Struktur ist vorgegeben: zentrale DB mit bis zu mehreren tausend FTP-Usern. Dazu eine gewisse Anzahl von Servern, auf denen ProFTPd (+mod_sql) läuft. Die User in der DB sollen natürlich NICHT auf alle Server zugreifen, sondern nur auf einen spezifischen. In der ftp_user Tabelle ist dazu ein Feld mit der IP des erlaubten Servers. Ich habe jetzt folgendes versucht: SQLUserWhereClause "login_enabled = 'Y' AND Server_IP = '%L'" Leider löst es %L (normalerweise die IP des aktuellen FTP-Server(?)) nicht auf, das SQL-Log: query "SELECT username, password, uid, gid, homedir, shell FROM ftp_users WHERE (username='test_123') and ((login_enabled = 'Y' AND Server_IP = '%L')) LIMIT 1" Wie kann ich die SQLUserWhereClause so erweitern, dass die IP-Adresse des momentanen Server an die DB übertragen wird? (Das hardcodieren der IP-adresse ist keine Option, da alle FTP-Server eine identische Konfiguration besitzen müssen) Oder gibt es andere Wege, das gewünschte Verhalten zu erreichen. Vielen Dank für eure Ideen - falls jemand eine hat
|
|
|
|