Memindahkan konfigurasi vsftpd yang dicoba-dan-benar ke server baru dengan Fedora 16, saya mengalami masalah. Semua tampaknya berjalan sebagaimana mestinya, tetapi otentikasi pengguna gagal. Saya tidak dapat menemukan entri dalam log apa pun yang menunjukkan apa yang terjadi.
Ini file konfigurasi lengkap:
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 menantang saya untuk nama pengguna dan kata sandi, saya berikan, Login Tidak Benar. Saya telah memverifikasi, pengguna ini dapat masuk dari ssh. Sesuatu kacau dengan pam_service
.
Anonim (jika diubah menjadi diizinkan) tampaknya berfungsi dengan baik.
SELinux dinonaktifkan.
Ftpsecure tampaknya dikonfigurasi dengan baik ... Saya benar-benar bingung!
Berikut adalah file log yang saya periksa tidak berhasil:
/var/log/messages
/var/log/xferlog #empty
/var/log/vsftpd.log #empty
/var/log/secure
Menemukan sesuatu di /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'
Mungkin saya harus melihat /var/log/wtf-is-wrong.help
:-)
Info lebih lanjut:
/etc/pam.d/vsftpd terlihat seperti ini:
#%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
sumber
/etc/pam.d/vsftpd
, saya pikir)?/var/log/syslog
ataudmesg
.Jawaban:
Wah. Saya memecahkan masalah. Itu berjumlah konfigurasi tetapi di dalam /etc/pam.d/vsftpd
Karena sesi ssh berhasil sementara sesi ftp gagal, saya pergi ke
/etc/pam.d/vsftpd, menghapus semua yang ada di sana dan alih-alih meletakkan konten ./sshd agar sesuai dengan aturan dengan tepat. Semua bekerja!
Dengan metode eliminasi, saya menemukan bahwa garis yang menyinggung adalah:
Menghapusnya memungkinkan saya untuk melanjutkan.
Tuns out, "pam_shells adalah modul PAM yang hanya memungkinkan akses ke sistem jika shell pengguna terdaftar di / etc / shells." Saya melihat ke sana dan cukup yakin, tidak ada bash, tidak ada apa-apa. Ini adalah bug dalam konfigurasi vsftpd menurut saya karena tidak ada dalam dokumentasi yang Anda edit / etc / shells. Dengan demikian instalasi dan instruksi default tidak berfungsi seperti yang disebutkan.
Saya akan mencari di mana saya bisa mengirimkan bug sekarang.
sumber
/etc/shells
membantu saya menemukan alasan untuk perubahan perilaku aneh ini. Pengguna FTP dibuat denganShell: /sbin/nologin
dan/sbin/nologin
ternyata dihapus dari/etc/shells
. Jadi saya menambahkan garis/sbin/nologin
dan/usr/sbin/nologin
yang membuatauth required pam_shells.so
pekerjaan juga.Saya menggunakan ubuntu dan memiliki masalah yang sama
Larutan:
Kemudian komentari dan tambahkan baris sebagai berikut
sumber
Seperti yang Anda sebutkan dalam jawaban Anda sendiri, shell pengguna harus didaftar
/etc/shells
. Anda dapat menetapkan/sbin/nologin
sebagai shell pengguna untuk melarang ssh dan mengizinkan ftp tanpa mengubah konfigurasi pam:sumber
Jika vsftpd gagal dengan kesalahan
Kemudian kemungkinan lain adalah untuk memeriksa apakah
pasv_addr_resolve=YES
sudah diatur dalam/etc/vsftpd/vsftpd.conf
file. Ini menyebabkan nama host server FTP harus diselesaikan melalui DNS. Jika DNS tidak akan menyelesaikan, seperti jika Anda tidak bisaping yourhostname.example.com
, maka Anda harus memperbaiki masalah resolusi DNS atau mengaturpasv_addr_resolve=NO
dalam/etc/vsftpd/vsftpd.conf
dan setidaknya harus membiarkan vsftpd mulai tanpa kesalahan.sumber
Saya juga mengalami perilaku aneh yang sama dengan konfigurasi Pengguna FTP
pada satu Sistem dapat login dan yang lain tidak.
Dalam ekstensi ke Jawaban @KateYoak ternyata
/etc/shells
File berbeda dan tidak termasuk/sbin/nologin
shell. yang membuat Otentikasi PAM di/etc/pam.d/vsftpd
gagal
Dengan hanya menambahkan ke
/etc/shells
File, baris yang hilangproses check in
/etc/pam.d/vsftpd
berhasil.Jadi
/etc/shells
File yang berfungsi harus memiliki:sumber
dalam kasus saya, saya memilih untuk mengomentari baris auth dalam file config /etc/pam.d/vsftpd
Di sinilah alasannya. Jika Anda menambahkan / sbin / nologin sebagai sistem shell, Anda mungkin bisa membuka pintu belakang yang tidak diinginkan di sistem Anda. Sebaliknya, mengubah file ini tentunya Anda hanya memengaruhi vsftpd .
Saya tidak tahu apakah proses lain seperti sshd mencari shell sistem, tapi saya pikir mengubah file pam.d adalah solusi yang lebih baik daripada yang lain.
sumber
Cadangkan file konfigurasi sebelum melakukan perubahan;
dan kemudian edit vsftpd.conf (dengan vi atau nano)
Kemudian buat perubahan berikut
Simpan perubahan Anda dan mulai ulang server ftp (jika Anda menggunakan nano tekan CTRL + O & enter untuk menyimpan kemudian CTRL + X untuk keluar)
sumber