J'ai fait une configuration de vsftpd sur mon serveur domestique. J'ai eu une erreur d'authentification alors j'ai cherché sur ce forum et j'ai trouvé une solution. Cette solution a fonctionné pour moi
Comme dans la solution. le réglage par défaut
pam_service_name=vsftpd
ne fonctionne pas et le serveur FTP ne me permet pas de me connecter.
Et après je l'ai changé pour
pam_service_name=ftp
Cela fonctionne et je peux me connecter en tant qu'utilisateur local au serveur FTP. Quelle est la raison derrière cela? Pourquoi le défaut ne fonctionne pas? J'apprends Linux afin que votre bonne explication puisse m'aider beaucoup
J'ai rencontré la même erreur d'authentification avec pam_service_name=vsftpd
.
Suite aux conseils en ligne, je ne comprenais pas pourquoi la définition de pam_service_name=ftp
corrigeait le problème. J'ai donc testé la définition de pam_service_name=foobar
. Le problème a également été résolu!
Disclaimer: Moi aussi je suis nouveau sur linux cependant Je crois que le conseil généralement accepté de définir pam_service_name=ftp
est faux .
pam_service_name=vsftpd
sélectionne le fichier de configuration existant /etc/pam.d/vsftpd
. Cependant, pam_service_name=ftp
cherchera le /etc/pam.d/ftp
qui n'existe pas (du moins sur mon système - Ubuntu 14.04.2 LTS). Je soupçonne qu'il s'agit en réalité de contourner l'authentification PAM sans se plaindre de ne pas trouver le fichier.
En n'utilisant pas une configuration PAM valide, elle risque d'être moins sécurisée.
Solution finale
J'ai fini par garder pam_service_name=vsftpd
et je me suis assuré que le shell de l'utilisateur existait dans le fichier /etc/shells
. http://www.cyberciti.biz/tips/howto-linux-Shell-restricting-access.html
En regardant /etc/pam.d/vsftd
# Standard behaviour for ftpd(8).
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.
# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth required pam_shells.so
Mon problème était qu'il échouait à l'étape auth required pam_shells.so
. J'avais obligé tous mes utilisateurs FTP à utiliser le shell /usr/sbin/nologin
qui n'existait pas dans le fichier /etc/shells
(non-ubuntu, il pourrait s'agir simplement de /sbin/nologin
). Si vous n'êtes pas sûr, essayez de commenter le auth required pam_shells.so
pour voir si c'est la cause de pam_service_name=vsftpd
.
Remarque: Des lectures supplémentaires suggèrent qu'il est plus propre de créer des utilisateurs virtuels, mais cela nécessite une configuration différente de vsftpd et de PAM - http://www.sigerr.org/linux/setup-vsftpd-custom-multiple-directories-users- comptes-ubuntu-étape par étape / .
Dans /etc/pam.d/vsftpd, vous pouvez spécifier
auth required pam_nologin.so
ainsi, les utilisateurs dont la connexion est désactivée via/usr/sbin/nologin peuvent uniquement se connecter au système par le biais de ftp.
Remarque: J'ai lu que l'ajout de nologin à/etc/shells pouvait constituer une menace pour la sécurité de Serverfault .
Pour moi, le problème était que j'ai créé la configuration de PAM (/etc/pam.d/vsftpd
) sur un ordinateur Windows, ce qui a abouti à \r\n
fins de ligne.
Une fois que j'ai converti les fins de ligne au style Linux (seulement \n
), la configuration de PAM a commencé à fonctionner.
J'ai aussi d'abord pensé que le nom du service PAM était erroné et essayé avec pam_service_name=ftp
au lieu de pam_service_name=vsftpd
, mais cela n'a pas aidé du tout et je suis d'accord avec l'évaluation de Josef P. que ce n'est pas la voie à suivre.