Buka /etc/selinux/config
Ubah selinux=enforcing atau permisif menjadi nonaktif.
Ingatlah untuk me-restart server!
Tentu saja, Anda juga perlu menentukan pertanyaan-pertanyaan berikut:
1. Apakah pengguna dilarang login oleh vsftpd? Misalnya, nama pengguna di /etc/ftpusers dan diblokir untuk login.
2. Apakah opsi otentikasi pam diaktifkan di vsftpd.conf (Saya sering membuat kesalahan saat mengkompilasi dan menginstalnya sendiri) (Lihat apakah ada pam_service_name=ftp atau vsftpd di vsftpd.conf. Tergantung yang mana
Siapa yang berada di bawah file layanan /etc/pam.d dari modul PAM? Milik saya adalah ftp dan konfigurasinya adalah sebagai berikut:
#%PAM-1.0
auth diperlukan /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth diperlukan /lib/security/pam_unix.so shadow nullok
auth diperlukan /lib/security/pam_shells.so
akun diperlukan /lib/security/pam_unix.so
sesi diperlukan /lib/security/pam_unix.so
Jika beberapa pengguna di /etc/ftpusers akan ditolak
3. Apakah izin folder terkait sudah benar?
Mengenai masalah "beberapa pengguna lokal tidak bisa login ke vsftpd, tetapi ada juga yang bisa",
Tidak ada akun lokal yang ada di sistem yang dapat masuk. Konfigurasi file /etc/vsftpd/vsftpd.conf saya adalah sebagai berikut:
local_enable=YA
tulis_aktifkan=YA
chroot_local_user=YA
pam_service_name=vsftpd
/etc/pam.d/vsftpd ada dan normal.
Pesan error saat login juga sama:
500 OOPS: tidak dapat mengubah direktori:/home/xxxx
Gagal masuk.
421 Layanan tidak tersedia, server jarak jauh memiliki koneksi tertutup
Direktori home mereka semuanya adalah /home/xxxx. Izin /home dan /home/xxxx keduanya 755.
Tak satu pun dari akun di atas dapat login melalui ftp. Ini biasanya digunakan dan dapat login menggunakan shell.
Saya membuat akun usr1 baru
# useradd -G tes -d /tmp/usr1 usr1
Bisa login lewat ftp, dan rumahnya di /tmp/usr1, yang ada di partisi /. Saya memasang/home ke/dev/hda9.
#gunung
/dev/hdb1 aktif/ketik ext3 (rw)
/dev/hda9 aktif /home ketik ext2 (rw)
Jadi, saya kira: Apakah karena partisi/home sehingga "akun yang direktori home-nya ada di partisi/home" tidak dapat login?
Untuk memverifikasi asumsi di atas, saya mencoba membuat akun lain
tambahkan pengguna -G tes -d /home/usr3 usr3
Izin /home dan /home/usr3 semuanya 755.
login usr3 ftp gagal.
500 OOPS: tidak dapat mengubah direktori:/home/usr3
Gagal masuk.
421 Layanan tidak tersedia, server jarak jauh memiliki koneksi tertutup
Pada titik ini, saya rasa sudah pasti karena partisi /home sehingga "akun yang direktori home-nya ada di partisi /home" tidak dapat login.
Artikel referensi:
Saya menyelesaikan upgrade kedua saya ke Fedora Core 4. Tentu saja belum semuanya terselesaikan dengan build-nya. Namun satu hal yang pasti, banyak hal telah terjadi pada RedHat yang saya ketahui sebelumnya.
Saya harus mengatakan bahwa dari semua perubahan tersebut, bagi saya tambahan yang paling bagus adalah ekstensi SELinux yang baru. Untuk latar belakang mendalam tentang alasan dan teori SELinux, bacalah, Kegagalan yang Tak Terelakkan: Asumsi Keamanan yang Cacat dalam Lingkungan Komputasi Modern.
Semakin saya bekerja dengan SELinux semakin saya menyadari bahwa saya perlu mengetahuinya, dan bagaimana tepatnya SELinux melakukan semua tugasnya. Ini tentu saja mengubah hal-hal yang berkaitan dengan pengguna, direktori, dan akses Saya melakukan hal-hal dengan cara yang sulit :)
Perbedaan utama, sejauh ini bagi saya, di SELinux Red Hat adalah cara penanganan ftp. vsftpd masih merupakan server yang bagus. Namun, tampaknya ia dirancang untuk dijalankan sebagai daemon daripada dipanggil melalui xinet.d Anda mengambil salinan file xinet.d yang berfungsi untuk vsftpd, Anda dapat menjalankannya melalui pembungkus xinet.d. Saya melakukan peningkatan server pertama saya dengan cara ini. Yang saat ini saya coba sebagai daemon fitur yang dibawa oleh pembungkus xinet.d, dan mungkin akan kembali lagi ke dalamnya.
Dari semua masalah yang saya lihat paling menonjol adalah jika Anda ingin mengaktifkan direktori chroot di luar vsftpd /home/xxx normal. Ini akan gagal dengan a
500 OOPS: tidak dapat mengubah direktori: /mnt/xxxxx
Saya dapat menggunakan ftp jika saya masuk dengan akun dengan direktori di/home, tetapi setelah saya menetapkan akun pengguna untuk memiliki drive rumah di luar/home (dalam hal ini pada disk sekunder yang terpasang) vsftpd membatalkan yang di atas .
Saya menemukan informasi di NSA yang menunjukkan Anda dapat menonaktifkan perlindungan SELinux pada daemon ftp.
setsebool -P ftpd_disable_trans 1
Ini tampaknya agak drastis.
Saya pikir pada akhirnya masalahnya terletak pada kebijakan, tetapi karena kebijakan SELinux merupakan hal baru bagi saya, maka akan memakan waktu sebelum semuanya terselesaikan. Saat saya menghabiskan waktu dengan ekstensi SELinux baru di Fedora Core 4, saya akan terus memberi tahu Anda pendapat saya dan pelajaran konfigurasi.
Larutan:
#setsebool ftpd_disable_trans 1
# layanan vsftpd dimulai ulang
Saya menggunakan FC4 dan mencoba cara di postingan Anda sebelumnya, dan langsung teratasi. Oleh karena itu, dapat dipastikan bahwa penyebabnya terletak pada SELinux.