Tujuan
Tujuannya adalah untuk menginstal dan mengkonfigurasi server FTP pada Debian 9 Stretch Linux yang memungkinkan akses pengguna anonim atau lokal.
Sistem Operasi dan Versi Perangkat Lunak
- Sistem Operasi: – Debian 9 Peregangan
- Perangkat Lunak: – vsFTPd versi 3.0.3
Persyaratan
Akses istimewa ke
Kesulitan
SEDANG
Konvensi
- # – membutuhkan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan
sudo
perintah - $ – membutuhkan perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa
Petunjuk
Tutorial berikut akan menjelaskan cara menginstal dan mengkonfigurasi server FTP menggunakan vsFTPd
daemon. Ini juga akan membahas berbagai konfigurasi untuk memungkinkan akses tulis atau baca-saja ke pengguna anonim serta pengguna lokal.
Instalasi vsFTPd
Mari kita mulai dengan instalasi server vsFPTd dan klien FTP:
# apt install vsftpd ftp
Secara default, server vsFTPd dikonfigurasikan untuk memungkinkan pengguna sistem mengakses direktori home mereka dengan akses hanya-baca. Berikut ini adalah file konfigurasi default vsFTPd /etc/vsftpd.conf
:
Seperti yang telah disebutkan, file konfigurasi di atas hanya akan memberikan akses baca-saja ke pengguna sistem mana pun yang terdaftar di dalam /etc/passwd
mengajukan. Gunakan ftp
perintah dan coba sambungkan menggunakan nama pengguna dan kata sandi dari salah satu pengguna sistem lokal:
# ftp localhostTerhubung ke localhost.220 (vsFTPd 3.0.3)Nama (localhost:root):linuxconfig331 Harap tentukan kata sandinya.Password:230 Login berhasil.Tipe sistem jarak jauh adalah UNIX.Menggunakan mode biner untuk mentransfer file.ftp> masukkan FILE.TXTlocal:FILE.TXT remote:FILE.TXT200 perintah EPRT berhasil. Pertimbangkan untuk menggunakan EPSV.550 Izin ditolak.
Jika Anda hanya memerlukan akses hanya-baca oleh pengguna lokal, Anda selesai.
Izinkan Akses Tulis Pengguna
Untuk menambahkan akses tulis untuk semua pengguna lokal sistem, batalkan komentar atau tambahkan bait berikut write_enable=YES
. File konfigurasi baru terdiri dari:
Selanjutnya, mulai ulang vsFTPd Anda:
# systemctl restart vsftpd
Lakukan tes baru dengan ftp
perintah untuk mengonfirmasi akses tulis:
# ftp localhostTerhubung ke localhost.220 (vsFTPd 3.0.3)Nama (localhost:root):linuxconfig331 Harap tentukan kata sandinya.Password:230 Login berhasil.Tipe sistem jarak jauh adalah UNIX.Menggunakan mode biner untuk mentransfer file.ftp> masukkan FILE.TXTlocal:FILE.TXT remote:FILE.TXT200 perintah EPRT berhasil. Pertimbangkan untuk menggunakan EPSV.150 Ok untuk mengirim data.226 Transfer complete.ftp> ls200 Perintah EPRT berhasil. Pertimbangkan untuk menggunakan EPSV.150 Ini dia daftar direktori.-rw------- 1 1000 1000 0 Jun 07 12:45 FILE.TXT226 Directory send OK.
Hanya Izinkan Pengguna Tertentu
Saat ini server FTP kami mengizinkan akses ke pengguna sistem apa pun yang ditentukan dalam /etc/passwd
mengajukan. Untuk mengizinkan hanya pengguna tertentu yang dapat masuk, kami dapat memasukkan baris berikut ke dalam file konfigurasi kami:
userlist_file=/etc/vsftpd.userlistuserlist_enable=YA
Di atas akan mengaktifkan daftar pengguna yang telah ditentukan sebelumnya di mana setiap pengguna terdaftar dalam /etc/vsftpd.userlist
( satu nama pengguna per baris ) akan memiliki akses ke FTP ditolak sementara semua pengguna sistem lainnya akan dapat login. Mari kita buat /etc/vsftpd.userlist
baru daftar pengguna yang terdiri dari satu pengguna linuxconfig
:
# echo linuxconfig> /etc/vsftpd.userlist
Mulai ulang server vsFTPd:
# systemctl restart vsftpd
Lakukan tes baru dengan ftp
perintah untuk mengonfirmasi penolakan akses ke server FTP untuk linuxconfig
pengguna:
# ftp localhostTerhubung ke localhost.220 (vsFTPd 3.0.3)Nama (localhost:root):linuxconfig530 Izin ditolak.Login gagal.ftp>
Namun, jika Anda harus dapat masuk hanya dengan pengguna yang ditentukan dalam /etc/vsftpd.userlist
, tambahkan opsi konfigurasi berikut userlist_deny=NO
ke dalam file konfigurasi vsFTPd Anda /etc/vsftpd.conf
. Di bawah ini adalah /etc/vsftpd.conf
kami saat ini file konfigurasi:
Izinkan Anonim
Pada tahap ini kami juga akan mengizinkan akses hanya-baca oleh pengguna anonim. Mari kita mulai membuat direktori baru yang akan digunakan sebagai direktori root untuk pengguna anonim, mis. /var/ftp
. Untuk tujuan pengujian, kami juga dapat menempatkan beberapa file pengujian arbitrer di dalam /var/ftp
:
# mkdir /var/ftp/# chmod 555 /var/ftp/# chown ftp.ftp /var/ftp/# touch /var/ftp/ANONYMOUS.TXT
Selanjutnya, sertakan baris berikut ke dalam /etc/vsftpd.conf
file konfigurasi untuk menentukan direktori home anonim dan akses anonim:
anon_root=/var/ftpanonymous_enable=YA
Secara opsional, tambahkan no_anon_password=YES
baris untuk menginstruksikan vsFTPd untuk mengizinkan pengguna anonim masuk secara otomatis tanpa kata sandi. Karena kita sekarang telah menetapkan daftar pengguna, kita juga harus menambahkan anonymous
pengguna ke daftar:
# echo anonymous>> /etc/vsftpd.userlist# cat /etc/vsftpd.userlist linuxconfiganonymous
Seperti biasanya, restart server FTP Anda dan lakukan validitas konfigurasi Anda saat ini:
# systemctl restart vsftpd
Uji login anonim:
# ftp localhostTerhubung ke localhost.220 (vsFTPd 3.0.3)Nama (localhost:root):anonymous230 Login berhasil.Tipe sistem jarak jauh adalah UNIX.Menggunakan mode biner untuk mentransfer file.ftp> ls200 Perintah EPRT berhasil. Pertimbangkan untuk menggunakan EPSV.150 Ini dia daftar direktori.-rw-r--r-- 1 0 0 0 Jun 07 13:29 ANONYMOUS.TXT226 Directory send OK.ftp>
Di bawah ini Anda dapat menemukan file konfigurasi vsFTPd kami saat ini:
Aktifkan Akses Tulis Anonim
Selanjutnya, izinkan pengguna anonim untuk mengunggah file dan membuat direktori baru dan banyak lagi. Untuk melakukannya, buat direktori baru upload
dalam /var/ftp
direktori:
# mkdir /var/ftp/upload# chown ftp.ftp /var/ftp/upload/
Selanjutnya, tambahkan baris berikut ke dalam file konfigurasi vsFTPd Anda:
anon_upload_enable=YESanon_other_write_enable=YESanon_mkdir_write_enable=YA
Mulai ulang server Anda:
# systemctl restart vsftpd
Setelah restart, pengguna anonim akan dapat mengunggah file, buat direktori, ganti nama file:
# ftp localhostTerhubung ke localhost.220 (vsFTPd 3.0.3)Nama (localhost:root):anonymous230 Login berhasil.Tipe sistem jarak jauh adalah UNIX.Menggunakan mode biner untuk mentransfer file.ftp> ls200 Perintah EPRT berhasil. Pertimbangkan untuk menggunakan EPSV.150 Ini dia daftar direktori.-rw-r--r-- 1 0 0 0 Jun 07 13:29 ANONYMOUS.TXTdrwxr-xr-x 2 108 112 4096 Jun 07 13:57 upload226 Directory send OK. ftp> cd upload250 Directory berhasil diubah.ftp> masukkan FILE.TXTlocal:FILE.TXT remote:FILE.TXT200 Perintah EPRT berhasil. Pertimbangkan untuk menggunakan EPSV.150 Ok untuk mengirim data.226 Transfer complete.ftp> ls200 Perintah EPRT berhasil. Pertimbangkan untuk menggunakan EPSV.150 Ini dia daftar direktorinya.-rw------- 1 108 112 0 Jun 07 13:57 FILE.TXT226 Directory send OK.ftp> rename FILE.TXT NEW.TXT350 Ready for RNTO.250 Ganti nama sukses.ftp> ls200 perintah EPRT berhasil. Pertimbangkan untuk menggunakan EPSV.150 Ini dia daftar direktorinya.-rw------- 1 108 112 0 Jun 07 13:57 NEW.TXT226 Directory send OK.ftp>
Di bawah ini Anda dapat menemukan file konfigurasi vsFTPd final kami:
Lampiran
Pesan kesalahan:
# ftp localhostTerhubung ke localhost.220 (vsFTPd 3.0.3)Nama (localhost:root):anonymous500 OOPS:vsftpd:menolak untuk dijalankan dengan root yang dapat ditulis di dalam chroot()Login failed.ftp>
Di atas menunjukkan bahwa anon_root
. Anda direktori dapat ditulis. Solusinya adalah membuatnya hanya-baca. Contoh:
# chmod 555 /var/ftp
Atau coba tambahkan baris berikut ke file konfigurasi vsFTPd Anda:
allow_writeable_chroot=YA