Přesunutím osvědčené konfigurace vsftpd na nový server s Fedorou 16 jsem narazil na problém. Zdá se, že vše jde, jak má, ale ověření uživatele se nezdaří. V žádném protokolu nemohu najít žádný záznam, který by uváděl, co se stalo.
Zde je úplný konfigurační soubor:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=0
data_connection_timeout=0
nopriv_user=ftpsecure
connect_from_port_20=YES
listen=YES
chroot_local_user=YES
chroot_list_enable=NO
ls_recurse_enable=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
FTP mě vyzývá k zadání uživatelského jména a hesla, poskytnu je, přihlášení je nesprávné. Ověřil jsem, že tento uživatel se může přihlásit z ssh. S pam_service
se něco pokazilo .
Zdá se, že anonymní (pokud se změní na povoleno) funguje dobře.
SELinux je zakázán.
Zdá se, že Ftpsecure je nakonfigurován dobře... Jsem v naprosté ztrátě!
Zde jsou soubory protokolu, které jsem bez úspěchu prozkoumal:
/var/log/messages
/var/log/xferlog #empty
/var/log/vsftpd.log #empty
/var/log/secure
Něco jsem našel v /var/log/audit/audit.log
:
type=USER_AUTH msg=audit(1335632253.332:18486): user pid=19528 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:authentication acct="kate" exe="/usr/sbin/vsftpd" hostname=ip68-5-219-23.oc.oc.cox.net addr=68.5.219.23 terminal=ftp res=failed'
Možná bych se měl podívat na /var/log/wtf-is-wrong.help
🙂
Další informace:
/etc/pam.d/vsftpd vypadá takto:
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
Přijatá odpověď:
Páni. Problém jsem vyřešil. Je to konfigurace, ale v /etc/pam.d/vsftpd
Protože relace ssh byly úspěšné, zatímco relace ftp se nezdařily, šel jsem na
/etc/pam.d/vsftpd odstranil vše, co tam bylo, a místo toho umístil obsah ./sshd tak, aby přesně odpovídal pravidlům. Vše fungovalo!
Metodou eliminace jsem zjistil, že problematická linie byla:
auth required pam_shells.so
Jeho odstranění mi umožní pokračovat.
Uvědomuje si, že „pam_shells je modul PAM, který umožňuje přístup do systému pouze v případě, že je uživatelský shell uveden v /etc/shells.“ Podíval jsem se tam a jistě, žádná rána, nic. Toto je podle mého názoru chyba v konfiguraci vsftpd, protože nikde v dokumentaci nemáte upravovat /etc/shells. Výchozí instalace a pokyny tedy nefungují tak, jak je uvedeno.
Půjdu teď najít, kam mohu chybu odeslat.