Öffnen Sie /etc/selinux/config
Ändern Sie „selinux=enforcing“ oder „permissive“ in „disabled“.
Denken Sie daran, den Server neu zu starten!
Natürlich müssen Sie auch folgende Fragen klären:
1. Ist die Anmeldung des Benutzers durch vsftpd eingeschränkt? Der Benutzername befindet sich beispielsweise in /etc/ftpusers und ist für die Anmeldung gesperrt.
2. Ist die Pam-Authentifizierungsoption in vsftpd.conf aktiviert (ich mache oft Fehler, wenn ich sie selbst kompiliere und installiere) (Überprüfen Sie, ob in vsftpd.conf pam_service_name=ftp oder vsftpd vorhanden ist. Welches es ist, hängt davon ab
Wer befindet sich unter der Dienstdatei /etc/pam.d des PAM-Moduls? Meiner ist ftp und seine Konfiguration ist wie folgt:
#%PAM-1.0
Authentifizierung erforderlich /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
Authentifizierung erforderlich /lib/security/pam_unix.so Schatten nullok
Authentifizierung erforderlich /lib/security/pam_shells.so
Konto erforderlich /lib/security/pam_unix.so
Sitzung erforderlich /lib/security/pam_unix.so
Wenn einige Benutzer in /etc/ftpusers abgelehnt werden
3. Sind die Berechtigungen der relevanten Ordner korrekt?
Bezüglich des Problems „Einige lokale Benutzer können sich nicht bei vsftpd anmelden, andere jedoch schon.“
Keines der vorhandenen lokalen Konten im System kann sich anmelden. Die Konfiguration meiner Datei /etc/vsftpd/vsftpd.conf lautet wie folgt:
local_enable=JA
write_enable=JA
chroot_local_user=JA
pam_service_name=vsftpd
/etc/pam.d/vsftpd existiert und ist normal.
Die Fehlermeldung beim Anmelden ist dieselbe:
500 OOPS: Verzeichnis kann nicht geändert werden: /home/xxxx
Fehler bei der Anmeldung.
421 Dienst nicht verfügbar, Remote-Server hat die Verbindung geschlossen
Ihre Home-Verzeichnisse sind alle /home/xxxx. Die Berechtigungen von /home und /home/xxxx sind beide 755.
Keines der oben genannten Konten kann über FTP angemeldet werden. Diese werden häufig verwendet und können über die Shell angemeldet werden.
Ich habe ein neues usr1-Konto erstellt
# useradd -G test -d /tmp/usr1 usr1
Kann sich über FTP anmelden und sein Zuhause ist /tmp/usr1, das sich auf der /-Partition befindet. Ich habe /home nach /dev/hda9 gemountet.
#montieren
/dev/hdb1 on/type ext3 (rw)
/dev/hda9 auf /home Typ ext2 (rw)
Ich vermute also: Liegt es an der /home-Partition, dass sich „Konten, deren Home-Verzeichnis in der /home-Partition liegt“ nicht anmelden können?
Um die obige Annahme zu überprüfen, habe ich versucht, ein weiteres Konto zu erstellen
useradd -G test -d /home/usr3 usr3
Die Berechtigungen von /home und /home/usr3 sind alle 755.
usr3-FTP-Anmeldung fehlgeschlagen.
500 OOPS: Verzeichnis:/home/usr3 kann nicht geändert werden
Fehler bei der Anmeldung.
421 Dienst nicht verfügbar, Remote-Server hat die Verbindung geschlossen
An diesem Punkt halte ich es für sicher, dass es an der /home-Partition liegt, dass sich das „Konto, dessen Home-Verzeichnis in der /home-Partition liegt“ nicht anmelden kann.
Referenzartikel:
Ich habe mein zweites Upgrade auf Fedora Core 4 abgeschlossen. Mit dem Build ist natürlich noch nicht alles geklärt, aber eines ist sicher, dass sich mit dem RedHat, das ich vorher kannte, einiges getan hat.
Ich muss sagen, dass die schönste Ergänzung für mich die neuen SELinux-Erweiterungen sind. Für ausführliche Hintergrundinformationen zu den Gründen und der Theorie von SELinux lesen Sie „The Inevitability of Failure: The Flawed Assumption of Security in Modern Computing Environments“.
Je mehr ich mit SELinux arbeite, desto mehr wird mir klar, dass ich darüber Bescheid wissen muss, wie es genau funktioniert. Es verändert sicherlich Dinge in Bezug auf Benutzer, Verzeichnisse und Zugriffe, da ich anfange, es zu lernen, da bin ich mir sicher Ich mache die Dinge auf die harte Tour :)
Der größte Unterschied besteht für mich bisher in der Art und Weise, wie FTP als Server gehandhabt wird. Allerdings scheint er eher für die Ausführung als Daemon als für den Aufruf über xinet.d konzipiert zu sein Sie besorgen sich eine Arbeitskopie der xinet.d-Datei für vsftpd und können sie über den xinet.d-Wrapper aufrufen. Das aktuelle, das ich als Daemon versuche, werde ich auf jeden Fall vermissen der Funktionen, die der xinet.d-Wrapper mit sich bringt, und werden möglicherweise noch darauf zurückkommen.
Von allen Problemen, die ich gesehen habe, ist es am bemerkenswertesten, wenn Sie Chroot-Verzeichnisse außerhalb des normalen /home/xxx vsftpd aktivieren möchten. Diese werden mit a fehlschlagen
500 OOPS: Verzeichnis kann nicht geändert werden: /mnt/xxxxx
Ich konnte FTP verwenden, wenn ich mich mit einem Konto mit einem Verzeichnis in /home angemeldet habe, aber sobald ich ein Benutzerkonto so eingestellt habe, dass es ein Home-Laufwerk außerhalb von /home hat (in diesem Fall auf einer gemounteten sekundären Festplatte), macht vsftpd das oben Gesagte zunichte .
Ich habe bei der NSA Informationen gefunden, die darauf hinweisen, dass Sie den SELinux-Schutz des FTP-Daemons deaktivieren können.
setsebool -P ftpd_disable_trans 1
Das erscheint mir allerdings etwas drastisch. Im Moment funktioniert es auf jeden Fall.
Ich denke, dass das Problem letztendlich bei den Richtlinien liegt, aber da SELinux-Richtlinien für mich neu sind, wird es einige Zeit dauern, bis alles geklärt ist. Da ich Zeit mit den neuen SELinux-Erweiterungen in Fedora Core 4 verbringe, werde ich Sie über meine Gedanken auf dem Laufenden halten und Konfigurationsunterricht.
Lösung:
# setsebool ftpd_disable_trans 1
# Dienst vsftpd neu starten
Ich verwende FC4 und habe die Methode in Ihrem vorherigen Beitrag ausprobiert, und sie wurde sofort gelöst. Daher kann festgestellt werden, dass die Ursache in SELinux liegt.