# Mail funktioniert nicht / Fragen zu FTP-/Shell-User



## Reddi (21. Mai 2011)

Moin Moin!

Ich habe ein kleines Problem mit der Einrichtung von ISPConfig 3. Die Installation habe ich auf Grundlage des Tutorials mit CentOS 5.6 minimal 64bit (bei Hetzner) durchgeführt. Ich habe nicht Debian gewählt, weil CentOS ein RedHat Derivat ist und ich einige eigene C++ Programme für RedHat habe und die auf CentOS 1a laufen. Auch noch vorweg: Ich habe lange im Forum durchsucht und einige Punkte, wie es in anderen Lösungen vorgegeben wurde ausprobiert.

Nach ein paar anfänglichen Schwierigkeiten, sicherlich weil meine Linux-Kentnisse doch eher rudimentär sind, und der Installation von BIND, rpm-devel, make, system-config-securitylevel, jwhois und noch einigen weiteren Paketen, konnte ich das Tutorial auch recht zielstrebig abschließen. Der Login in das Panel, FTP und Shell funktionierte. Auch das Anlegen von Domains war problemlos. eMails habe ich zu dem Zeitpunkt nicht gestestet.

Anschließend habe ich mit dem ius-Packet PHP auf die aktuelle 5.3.6 geupdated (Tutorial war 5.1.x). 

Beim Testen aller Funktionen, konnte ich mich jedoch nicht per IMAP/POP3 anmelden - weder per Outlook noch lokal über Squirrelmail. Ein Reinstall von dovecot (Teil aus dem Tut) brachte auch keinen Erfolg. Laut dem Menupunkt "Überwachung" sind die Dienste IMAP und POP3 aktiv. Das versenden von eMails klappt sowohl mit fail2ban als auch PHP-mail().

*1. Wie bekomme ich die Mailgeschichte zum Laufen?*

Hier ein paar Auszüge aus den verschiedenen Logs-Files. Die ersten beiden Zeilen sind z.B. im 5 Minuten Takt.  (Den Domainnamen (ohne TLD) habe ich gegen EXAMPLE getauscht / IPs wurden gexxxt):
	
	



```
May 21 14:50:01 EXAMPLE dovecot: pop3-login: Disconnected (no auth attempts): rip=127.0.0.1, lip=127.0.0.1, secured
May 21 14:50:01 EXAMPLE dovecot: imap-login: Disconnected (no auth attempts): rip=127.0.0.1, lip=127.0.0.1, secured
...
May 18 20:56:31 EXAMPLE postfix/postfix-script: starting the Postfix mail system
May 18 20:56:31 EXAMPLE postfix/master[2420]: fatal: bind 0.0.0.0 port 25: Address already in use
May 18 20:56:32 EXAMPLE amavis[2344]: DKIM signature verification disabled, corresponding features not available. If not intentional, consider enabling it by setting: $enable_dkim_verification to 1, or explicitly disable it by setting it to 0 to quench down this warning.
...
May 21 14:55:10 EXAMPLE dovecot: imap-login: Aborted login (auth failed, 1 attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
May 21 14:56:44 EXAMPLE dovecot: imap-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=82.xx.xx.xx, lip=88.xx.xx.xx
May 21 14:56:58 EXAMPLE dovecot: imap-login: Disconnected (auth failed, 2 attempts): user=, method=PLAIN, rip=82.xx.xx.xx, lip=88.xx.xx.xx
...
May 21 14:56:35 EXAMPLE dovecot-auth: pam_unix(dovecot:auth): check pass; user unknown
May 21 14:56:35 EXAMPLE dovecot-auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=info@EXAMPLE.net rhost=82.xx.xx.xx
May 21 14:56:35 EXAMPLE dovecot-auth: pam_succeed_if(dovecot:auth): error retrieving information about user info@EXAMPLE.net
May 21 14:56:36 EXAMPLE dovecot-auth: pam_unix(dovecot:auth): check pass; user unknown
May 21 14:56:36 EXAMPLE dovecot-auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=info@EXAMPLE.net rhost=82.xx.xx.xx
May 21 14:56:36 EXAMPLE dovecot-auth: pam_succeed_if(dovecot:auth): error retrieving information about user info@EXAMPLE.net
```

*2. Wenn ich mich an der Shell mit einem User anmelde...*

...sehe ich die Ordner /etc, /lib, /lib64, /www, /var, /dev, /usr und einige weitere. Wobei ich z.B. in den Ordnern /etc keine Leserechte habe. Die Option "chroot-Shell" ist hier auf "None". Stelle ich sie auf "Jailkit", sehe fast gleiches (nach cd /), aber Befehle wie stat * funktionieren dort nicht?! Schön wäre ja, wenn man sich per Login im eigenen Verzeichnis befindet und da nicht rauskommt - z.B.: /var/www/clients/clientXXX/ *Ist das alles so richtig und wo ist der genaue Unterschied zwischen None und Jailkit?*


*3. Wenn ich mich per FTP anmelde...*

... sehe ich wie bei dem Shell-Zugang die Ordner /etc, /lib, /lib64, /www, /var, /dev, /usr und einige  weitere. Wobei ich z.B. in den Ordnern /etc keine Leserechte habe. *Kann man diese System-Ordner (mit Ausnahme von /tmp, /www und /cgi-bin sowie /log und /ssl) ausbleden und kann man den FTP-Zugang auch über SSH gestatten*? Diese muss ein Kunde ja nicht unbedingt sehen. 


*4. Gibt es noch mehr Sicherheitsrelevante Optionen...*

Der Server ist erst wenige Tage am Netz, schon habe ich etlich SSH-Login-Versuche auf den root. Hierzu habe ich das root-PW aus der shadow mit einem Stern getauscht und in der sshd_config hinterlegt, dass leere Passwörter nicht akzeptiert werden dürfen. Ich selbst log mir nur noch per ssh-keyfiles ein. *Ist das die sicherste Variante oder gibt es bessere Lösungen?*

Vielen Dank für Eure Mühen und Lösungsvorschläge im Voraus!


----------



## Till (23. Mai 2011)

zu 1) Welche Dovecot Version hast Du installiert? ISPConfog setzt Dovecot 1.x voraus. Dovecot 2 wird nicht unterstützt.

zu 2) Jailkit ist ein chroot jail. Siehe Jailkit Webnseite für Details.



> Schön wäre ja, wenn man sich per Login im eigenen Verzeichnis befindet und da nicht rauskommt


Und genau das ist ein jail, denn wenn Du jailkit einsetzt, kannst Du das VErzeichnis der Webseite nicht verlassen.

3) Das ist ok und nennts ich Chroot jail. Die Ordner müssen in einem chroot jail vorhanden sien, sonst funktionieren dort keine Linux Programme. Sie lassen sich auch nicht ausbelnden, wenn Du ein jail verwendest. FTP ist FTP und nicht SSH. ein FTP Zugand wird mittels FTP Client gemacht, dafür legst Du einen FRT User an. SSJ ist ein anderes Protokoll, es diemt für Shll Logins mit SSH client siwe putty.

zu 4) Diese login Versuche sind normal und nichts worum Du Dir Sorgen machen müsstest. Fail2ban ist installiert wenn Du dem Howto gefolgt bist und das ist ausreichend, wenn Du ein halbwegs sicheres Passwort verwendest. Eine weiter Absicherung des SSH Logins wie z.B. mit Keyfiles ist dann nicht notwendig.


----------



## Reddi (23. Mai 2011)

Hi!

Schon mal Danke für Deine recht ausfühliche Antwort. Installiert ist dovecot 1.2.17. Nun hatte ich mir mal die Konfigurationsdateien (master.cf, main.cf und dovecot.conf) von einem Kollegen zukommen lassen und die mit meinen verglichen. Trotz fast gleicher Versionen sind die Elementare Einträge absolut anders, auskommentiert oder sonstwas gewesen. Zwar kenne ich nicht jede einzelne Zeile, aber die Summe und die Bezeichnung lassen ahnen, dass hier nichts konfiguriert ist/wurde. Ein klitzekleiner Auszug (dovecot.conf nicht mal erwähnt):

```
fehlte in der master.cf:

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${user}@${nexthop}

fehlte in der main.cf:

virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
```
Die entsprechenden Änderungen hatte ich hier vorgenommen und den Server rebootet. Jedenfalls laufen laut ISPconfig weder POP3 noch IMAP. Weitere Nachforschungen in den Logs haben gezeigt, dass es die Datei dovecot-sql.conf gar nicht gibt?! Also kein Wunder, dass nichts läuft, wo ich es jetzt durch obige Änderungen eigentlich erst aktiviert hätte.

Ich glaube fast, dass es Sinn macht, das Ding einfach komplett neu zu installieren und von vorne anzufangen. Oder gibt es spontane Ideen oder Punkte, die man noch mal nachschauen sollte?

Mit FTP und SSH ist schon klar. Ich kenne es von meinem alten Server (KeyWeb), dass dort FTP mit FileZilla über SSH (sFTP) möglich ist. Die SSL/TLS Geschichte ist in dem Tut CentOS 5.5 nicht und das Tut zu CentOS 5.6 (dort wirds erwähnt) hatte ich nicht gesehen.

Und zu der Root-Geschichte: Hier bin ich etwas gebrandmarkt. Mein root mit einem 25 Zeichen-PW (Groß/Klein/Zahlen/Zeichen) wurde schonmal gehackt - wie auch immer. Jedenfalls wurden Dateien über einen osCommerce hochgeladen und vermutlich über dessen Account... Deshalb diese KeyFile-Lösung (wurde mir von der dortigen Technik empfohlen). 

Wenn nun keine Spotanideen kommen sollten und ich das System doch nochmal komplett neu aufsetze: Ihr empfehlt ja Debian, kann ich dort meine Programme (mit Fedora kompiliert) laufen lassen oder muss ich sie zu 99% neu kompilieren? Es handelt sich um eine Socket-Server-Anwendung. 

Vielen Dank und ich lausche gespannt den Ideen! ;-)


----------



## Till (24. Mai 2011)

Ich würde Dir zu einer Neuinstallation auf Debian raten. Ob DEine Programme dort ohne Neukompilieren laufen, kann ich nicht sagen. Hängt hauptsächlich davon ab ob Du ein statisches Binary kompiliert hast oder ob es externe Abhängigkeiten gibt.

Zu Deienm root User Hack, das hört sich für mich aber eher danach an als on jemand über einen lokalen exploit Root Rechte erlangt hat und nicht über das knacken des Passwortes. Gegen lokale Exploits hilft Dir eine zertifikatsbasierte Authentifizierung leider auch nicht. Da hilt nur regelmäßiges Einspiuelen aller verfügbaren Sicherheitspatches.


----------

