Cara Memasang dan Mengkonfigurasi Pelayan FTP di Ubuntu

Cara Memasang dan Mengkonfigurasi Pelayan FTP di Ubuntu

Ftp (Protokol Pemindahan Fail) adalah protokol rangkaian standard yang agak lama dan paling banyak digunakan untuk memuat naik/memuat turun fail antara dua komputer melalui rangkaian. Walau bagaimanapun, Ftp Dengan tidak selamat asalnya, kerana ia menghantar data bersama -sama dengan kelayakan pengguna (nama pengguna dan kata laluan) tanpa penyulitan.

Amaran: Sekiranya anda merancang untuk menggunakan Ftp, Pertimbangkan mengkonfigurasi sambungan FTP dengan SSL/TLS (Akan diliputi dalam artikel seterusnya). Jika tidak, lebih baik menggunakan FTP selamat seperti SFTP.

Cadangan Baca: Cara Memasang dan Mengamankan Pelayan FTP di CentOS 7

Dalam tutorial ini, kami akan menunjukkan cara memasang, mengkonfigurasi dan menjamin a Ftp pelayan (Vsftpd sepenuhnya "Daemon FTP yang sangat selamat") Dalam Ubuntu mempunyai keselamatan yang kuat terhadap kelemahan FTP.

Langkah 1: Memasang pelayan VSFTP di Ubuntu

1. Pertama, kita perlu mengemas kini senarai sumber pakej sistem dan kemudian pasang Vsftpd Pakej binari seperti berikut:

$ sudo apt-get update $ sudo apt-get install vsftpd 

2. Sebaik sahaja pemasangan selesai, perkhidmatan akan dilumpuhkan pada mulanya, oleh itu, kita perlu memulakannya secara manual untuk masa yang sama dan juga membolehkannya bermula secara automatik dari boot sistem seterusnya:

------------- Pada sistem ------------- # Systemctl Mula VSFTPD # SystemCtl Dayakan VSFTPD ------------- Pada sysvinit ------------- # Service vsftpd Start # chkconfig -level 35 vsftpd on 

3. Seterusnya, jika anda telah diaktifkan oleh UFW Firewall (tidak didayakan secara lalai) pada pelayan, anda perlu membuka port 21 dan 20 Di mana daemon FTP sedang mendengar, untuk membolehkan akses kepada perkhidmatan FTP dari mesin jauh, kemudian tambahkan peraturan firewall baru seperti berikut:

$ sudo ufw membenarkan 20/tcp $ sudo ufw membenarkan status 21/tcp $ sudo ufw 

Langkah 2: Mengkonfigurasi dan menjamin pelayan VSFTP di Ubuntu

4. Mari kita lakukan beberapa konfigurasi untuk menyiapkan dan mengamankan pelayan FTP kami, pertama kami akan membuat sandaran fail konfigurasi asal /etc/vsftpd/vsftpd.Conf Seperti So:

$ sudo cp /etc /vsftpd.conf /etc /vsftpd.Conf.Orig 

Seterusnya, mari kita buka vsftpd Fail konfigurasi.

$ sudo vi /etc /vsftpd.conf atau $ sudo nano /etc /vsftpd.Conf 

Tambah/ubah suai pilihan berikut dengan nilai -nilai ini:

anonymous_enable = no # disable login anonim local_enable = ya # membenarkan log masuk tempatan write_enable = ya # membolehkan arahan ftp yang mengubah sistem fail local_umask = 022 # nilai Umask untuk penciptaan fail untuk pengguna tempatan dirmessage_enable = ya # membolehkan menunjukkan mesej pertama masukkan direktori baru xferlog_enable = ya # fail log akan dikekalkan memperincikan muat naik dan muat turun connect_from_port_20 = ya # gunakan port 20 (ftp-data) pada mesin pelayan untuk sambungan gaya port xferlog_std_format = ya # Cegah vsftpd daripada berjalan dalam mod mandiri Listen_ipv6 = ya # vsftpd akan mendengar pada soket IPv6 dan bukannya IPv4 One PAM_Service_Name = VSFTPD # Nama PAM Service vsftpd akan menggunakan userList_enable = ya # enable # Hidupkan pembalut TCP 

5. Sekarang, konfigurasikan Vsftpd Untuk membenarkan/menafikan akses FTP kepada pengguna berdasarkan fail senarai pengguna /etc/vsftpd.UserList.

Perhatikan bahawa secara lalai, pengguna yang disenaraikan userList_file =/etc/vsftpd.UserList ditolak akses log masuk dengan userList_deny = YA pilihan jika userList_enable = YA.

Tetapi, pilihannya userList_deny = no memutar makna tetapan lalai, jadi hanya pengguna yang namanya disenaraikan secara eksplisit userList_file =/etc/vsftpd.UserList akan dibenarkan masuk ke pelayan FTP.

userList_enable = ya # vsftpd akan memuatkan senarai nama pengguna, dari nama fail yang diberikan oleh userList_file userList_file =/etc/vsftpd.UserList # menyimpan nama pengguna. userList_deny = no 

Penting: Apabila pengguna log masuk ke pelayan FTP, ia diletakkan di penjara yang diketuai, ini adalah direktori akar tempatan yang akan bertindak sebagai direktori rumah mereka untuk sesi FTP sahaja.

Seterusnya, kita akan melihat dua senario yang mungkin bagaimana untuk menetapkan direktori penjara (akar tempatan), seperti yang dijelaskan di bawah.

6. Pada ketika ini, mari kita tambahkan/mengubah suai/uncomment kedua -dua pilihan berikut untuk menyekat pengguna FTP ke direktori rumah mereka.

chroot_local_user = Ya Allow_Writeable_Chroot = YA 

Pilihan chroot_local_user = ya Yang penting bermaksud pengguna tempatan akan diletakkan di penjara chroot, direktori rumah mereka secara lalai selepas log masuk.

Dan kita mesti memahami bahawa VSFTPD tidak membenarkan direktori penjara chroot dapat ditulis, secara lalai atas alasan keselamatan, bagaimanapun, kita boleh menggunakan pilihan membenarkan_writeable_chroot = ya untuk melumpuhkan tetapan ini.

Simpan fail dan tutupnya. Kemudian kita perlu memulakan semula perkhidmatan VSFTPD untuk perubahan di atas untuk berkuatkuasa:

------------- Pada sistem ------------- # Systemctl mulakan semula vsftpd ------------- Pada sysvinit ------------- # perkhidmatan vsftpd mulakan semula 

Langkah 3: Menguji pelayan VSFTP di Ubuntu

7. Sekarang kami akan menguji pelayan FTP dengan membuat pengguna FTP dengan perintah userAdd seperti berikut:

$ sudo useradd -m -c "Aaron Kili, contributor" -s /bin /bash aaronkilik $ sudo passwd aaronkilik 

Kemudian, kita harus menyenaraikan pengguna secara eksplisit Aaronkilik dalam fail /etc/vsftpd.UserList dengan perintah echo dan perintah tee seperti di bawah:

$ echo "Aaronkilik" | sudo tee -a /etc /vsftpd.UserList $ Cat /etc /vsftpd.UserList 

8. Sekarang sudah tiba masanya untuk menguji konfigurasi di atas berfungsi seperti yang diperlukan. Kami akan bermula dengan menguji log masuk tanpa nama; Kita dapat melihat dengan jelas dari output di bawah bahawa log masuk tanpa nama tidak dibenarkan pada pelayan FTP:

# FTP 192.168.56.102 Disambungkan ke 192.168.56.102 (192.168.56.102). 220 Selamat Datang ke Tecmint.Com FTP Service. Nama (192.168.56.102: Aaronkilik): Kebenaran 530 Anonymous ditolak. Daftar masuk gagal. ftp> selamat tinggal 221 selamat tinggal. 

9. Seterusnya, mari kita uji jika pengguna tidak disenaraikan dalam fail /etc/vsftpd.UserList akan diberikan kebenaran untuk log masuk, yang tidak benar dari output yang berikut:

# FTP 192.168.56.102 Disambungkan ke 192.168.56.102 (192.168.56.102). 220 Selamat Datang ke Tecmint.Com FTP Service. Nama (192.168.56.10: akar): user1 530 kebenaran ditolak. Daftar masuk gagal. ftp> selamat tinggal 221 selamat tinggal. 

10. Sekarang kami akan menjalankan ujian akhir untuk menentukan sama ada pengguna yang disenaraikan dalam fail /etc/vsftpd.UserList, sebenarnya diletakkan di direktori rumahnya selepas log masuk. Dan ini berlaku dari output di bawah:

# FTP 192.168.56.102 Disambungkan ke 192.168.56.102 (192.168.56.102). 220 Selamat Datang ke Tecmint.Com FTP Service. Nama (192.168.56.102: Aaronkilik): Aaronkilik 331 Sila nyatakan kata laluan. Kata Laluan: 230 Log masuk berjaya. Jenis Sistem Jauh adalah UNIX. Menggunakan mod binari untuk memindahkan fail. ftp> ls 
Sahkan log masuk FTP di Ubuntu

Amaran: Menetapkan pilihan membenarkan_writeable_chroot = ya boleh menjadi sangat berbahaya, kemungkinan implikasi keselamatan, terutama jika pengguna telah memuat naik kebenaran, atau lebih, akses shell. Hanya gunakannya jika anda betul -betul tahu apa yang anda lakukan.

Kita harus ambil perhatian bahawa implikasi keselamatan ini tidak khusus untuk VSFTPD, mereka juga boleh menjejaskan semua daemon FTP lain yang menawarkan untuk meletakkan pengguna tempatan di penjara chroot.

Kerana sebab ini, di bahagian di bawah, kami akan menerangkan kaedah yang lebih selamat untuk menetapkan direktori akar tempatan yang tidak boleh ditulis untuk pengguna.

Langkah 4: Konfigurasikan direktori rumah pengguna FTP di Ubuntu

11. Sekarang, buka fail konfigurasi VSFTPD sekali lagi.

$ sudo vi /etc /vsftpd.conf atau $ sudo nano /etc /vsftpd.Conf 

dan mengulas pilihan yang tidak selamat menggunakan # watak seperti yang ditunjukkan di bawah:

#membenarkan_writeable_chroot = ya 

Seterusnya, buat direktori akar tempatan alternatif untuk pengguna (Aaronkilik, Anda mungkin tidak sama) dan menetapkan keizinan yang diperlukan dengan melumpuhkan kebenaran tulis kepada semua pengguna lain ke direktori ini:

$ sudo mkdir/home/aaronkilik/ftp $ sudo chown tiada siapa: nogroup/home/aaronkilik/ftp $ sudo chmod a-w/home/aaronkilik/ftp 

12. Kemudian, buat direktori di bawah akar tempatan dengan keizinan yang sesuai di mana pengguna akan menyimpan failnya:

$ sudo mkdir /home/aaronkilik/ftp/files $ sudo chown -R aaronkilk:aaronkilik /home/aaronkilik/ftp/files $ sudo chmod -R 0770 /home/aaronkilik/ftp/files/ 

Selepas itu, tambah/ubah suai pilihan di bawah dalam fail konfigurasi VSFTPD dengan nilai yang sepadan:

user_sub_token = $ user # Masukkan nama pengguna dalam direktori root tempatan local_root =/home/$ user/ftp # mentakrifkan mana -mana direktori akar tempatan pengguna 

Simpan fail dan tutupnya. Dan mulakan semula perkhidmatan VSFTPD dengan tetapan baru -baru ini:

------------- Pada sistem ------------- # Systemctl mulakan semula vsftpd ------------- Pada sysvinit ------------- # perkhidmatan vsftpd mulakan semula 

13. Sekarang, mari kita lakukan cek akhir dan pastikan direktori akar tempatan pengguna adalah direktori FTP yang kami buat di direktori rumahnya.

# FTP 192.168.56.102 Disambungkan ke 192.168.56.102 (192.168.56.102). 220 Selamat Datang ke Tecmint.Com FTP Service. Nama (192.168.56.10: Aaronkilik): Aaronkilik 331 Sila nyatakan kata laluan. Kata Laluan: 230 Log masuk berjaya. Jenis Sistem Jauh adalah UNIX. Menggunakan mod binari untuk memindahkan fail. ftp> ls 
Log masuk direktori rumah pengguna FTP

Itu sahaja! Ingatlah untuk berkongsi pendapat anda mengenai panduan ini melalui borang komen di bawah atau mungkin memberi kami maklumat penting mengenai topik ini.

Akhir sekali, jangan lepaskan artikel seterusnya kami, di mana kami akan menerangkan bagaimana untuk mendapatkan pelayan FTP menggunakan sambungan SSL/TLS di Ubuntu 16.04/16.10, Sehingga itu, sentiasa ditala ke Tecmint.