Cara Menginstal dan Mengkonfigurasi Server FTP di Ubuntu

Cara Menginstal dan Mengkonfigurasi Server FTP di Ubuntu

Ftp (Protokol transfer file) adalah protokol jaringan standar yang relatif lama dan paling sering digunakan untuk mengunggah/mengunduh file antara dua komputer melalui jaringan. Namun, Ftp dengan rasa tidak aman aslinya, karena mentransmisikan data bersama dengan kredensial pengguna (nama pengguna dan kata sandi) tanpa enkripsi.

Peringatan: Jika Anda berencana menggunakan Ftp, Pertimbangkan untuk mengkonfigurasi koneksi FTP dengan SSL/TLS (Akan membahas di artikel berikutnya). Kalau tidak, selalu lebih baik menggunakan FTP yang aman seperti SFTP.

Disarankan Baca: Cara Menginstal dan Mengamankan Server FTP di Centos 7

Dalam tutorial ini, kami akan menunjukkan cara menginstal, mengkonfigurasi, dan mengamankan a Ftp Server (Vsftpd secara penuh “Daemon FTP yang sangat aman") di dalam Ubuntu untuk memiliki keamanan yang kuat terhadap kerentanan FTP.

Langkah 1: Menginstal server VSFTP di Ubuntu

1. Pertama, kita perlu memperbarui daftar sumber paket sistem dan kemudian menginstal Vsftpd Paket biner sebagai berikut:

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

2. Setelah instalasi selesai, layanan akan dinonaktifkan pada awalnya, oleh karena itu, kita perlu memulainya secara manual untuk waktu yang rata -rata dan juga memungkinkannya untuk memulai secara otomatis dari boot sistem berikutnya:

------------- Di Systemd ------------- # SystemCTL Mulai vsftpd # Systemctl Aktifkan vsftpd ------------- Di Sysvinit ------------- # Layanan vsftpd Mulai # chkconfig -level 35 vsftpd on 

3. Selanjutnya, jika Anda memiliki UFW Firewall diaktifkan (tidak diaktifkan secara default) di server, Anda harus membuka port 21 Dan 20 Di mana Daemon FTP mendengarkan, untuk memungkinkan akses ke layanan FTP dari mesin jarak jauh, lalu tambahkan aturan firewall baru sebagai berikut:

$ sudo ufw izinkan 20/tcp $ sudo ufw izinkan 21/tcp $ sudo status UFW 

Langkah 2: Mengkonfigurasi dan Mengamankan Server VSFTP di Ubuntu

4. Sekarang mari kita lakukan beberapa konfigurasi untuk mengatur dan mengamankan server FTP kami, pertama kami akan membuat cadangan file konfigurasi asli /etc/vsftpd/vsftpd.conf Seperti begitu:

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

Selanjutnya, mari kita buka vsftpd file konfigurasi.

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

Tambahkan/ubah opsi berikut dengan nilai -nilai ini:

anonymous_enable = tidak # nonaktifkan anonim login local_enable = ya # ijin login lokal write_enable = ya # aktifkan perintah ftp yang mengubah sistem file local_umask = 022 # nilai uask untuk pembuatan file untuk pengguna lokal dirmessage_enable = yes # enable dari pesan ketika pengguna pertama Enter First Enter direktori baru xferlog_enable = ya # file log akan disimpan detail unggahan dan unduhan connect_from_port_20 = ya # Gunakan port 20 (ftp-data) pada mesin server untuk koneksi gaya port xferlog_std_format = ya # tetap format file log standar = tidak # # mencegah vsftpd berjalan dalam mode mandiri listen_ipv6 = ya # vsftpd akan mendengarkan soket ipv6 alih -alih ipv4 satu pam_service_name = vsftpd # Nama layanan PAM vsftpd akan menggunakan UserList_enable = ya # enable vsftpd untuk memuat daftar pengguna UserNEn # Nyalakan pembungkus TCP 

5. Sekarang, konfigurasikan Vsftpd Untuk mengizinkan/menolak akses FTP ke pengguna berdasarkan file daftar pengguna /etc/vsftpd.Daftar pengguna.

Perhatikan bahwa secara default, pengguna terdaftar di userlist_file =/etc/vsftpd.Daftar pengguna ditolak akses login userlist_deny = ya opsi jika userlist_enable = ya.

Tapi, opsi UserList_DENY = tidak memutar arti pengaturan default, jadi hanya pengguna yang nama pengguna yang secara eksplisit terdaftar userlist_file =/etc/vsftpd.Daftar pengguna akan diizinkan untuk masuk ke server FTP.

userlist_enable = ya # vsftpd akan memuat daftar nama pengguna, dari nama file yang diberikan oleh userlist_file userlist_file =/etc/vsftpd.Daftar Pengguna # Menyimpan Nama Pengguna. UserList_DENY = tidak 

Penting: Ketika pengguna masuk ke server FTP, mereka ditempatkan di penjara chrooted, ini adalah direktori root lokal yang akan bertindak sebagai direktori rumah mereka hanya untuk sesi FTP.

Selanjutnya, kita akan melihat dua skenario yang mungkin tentang cara mengatur direktori penjara (root lokal), seperti yang dijelaskan di bawah ini.

6. Pada titik ini, mari kita menambahkan/memodifikasi/membatalkan komentar dua opsi berikut ini untuk membatasi pengguna FTP ke direktori rumah mereka.

chroot_local_user = ya izin_writeable_chroot = ya 

Pilihan chroot_local_user = ya Yang penting berarti pengguna lokal akan ditempatkan di penjara chroot, direktori rumah mereka secara default setelah login.

Dan kita harus juga memahami bahwa VSFTPD tidak mengizinkan Direktori Penjara Chroot untuk dapat ditulis, secara default untuk alasan keamanan, namun, kita dapat menggunakan opsi tersebut izin_writable_chroot = ya untuk menonaktifkan pengaturan ini.

Simpan file dan tutup. Maka kita harus memulai kembali layanan VSFTPD untuk perubahan di atas agar berlaku:

------------- Di Systemd ------------- # Systemctl Restart vsftpd ------------- Di Sysvinit ------------- # Layanan vsftpd restart 

Langkah 3: Menguji Server VSFTP di Ubuntu

7. Sekarang kami akan menguji server FTP dengan membuat pengguna FTP dengan perintah UserAdd sebagai berikut:

$ sudo useradd -m -c "aaron kili, kontributor" -s /bin /bash aaronkilis $ sudo passwd aaronkilis 

Kemudian, kita harus secara eksplisit mencantumkan pengguna Aaronkilik di file /etc/vsftpd.Daftar pengguna dengan perintah gema dan Perintah tee seperti di bawah ini:

$ echo "Aaronkilis" | sudo tee -a /etc /vsftpd.UserList $ Cat /etc /vsftpd.Daftar pengguna 

8. Sekarang saatnya untuk menguji konfigurasi kami di atas berfungsi sesuai kebutuhan. Kami akan mulai dengan menguji login anonim; Kita dapat dengan jelas melihat dari output di bawah ini bahwa login anonim tidak diizinkan di server FTP:

# FTP 192.168.56.102 Terhubung ke 192.168.56.102 (192.168.56.102). 220 Selamat Datang di Tecmint.Layanan Com FTP. Nama (192.168.56.102: Aaronkilik): Izin anonim 530 ditolak. Gagal masuk. ftp> bye 221 selamat tinggal. 

9. Selanjutnya, mari kita uji jika pengguna tidak terdaftar dalam file /etc/vsftpd.Daftar pengguna akan diberikan izin untuk login, yang tidak benar dari output yang mengikuti:

# FTP 192.168.56.102 Terhubung ke 192.168.56.102 (192.168.56.102). 220 Selamat Datang di Tecmint.Layanan Com FTP. Nama (192.168.56.10: root): user1 530 izin ditolak. Gagal masuk. ftp> bye 221 selamat tinggal. 

10. Sekarang kami akan melakukan tes akhir untuk menentukan apakah pengguna yang terdaftar di file tersebut /etc/vsftpd.Daftar pengguna, sebenarnya ditempatkan di direktori rumahnya setelah login. Dan ini benar dari output di bawah ini:

# FTP 192.168.56.102 Terhubung ke 192.168.56.102 (192.168.56.102). 220 Selamat Datang di Tecmint.Layanan Com FTP. Nama (192.168.56.102: Aaronkilis): Aaronkilis 331 Harap tentukan kata sandi. Kata sandi: 230 Login berhasil. Jenis sistem jarak jauh adalah unix. Menggunakan mode biner untuk mentransfer file. ftp> ls 
Verifikasi login ftp di ubuntu

Peringatan: Mengatur opsi izin_writable_chroot = ya bisa sangat berbahaya, kemungkinan implikasi keamanan, terutama jika pengguna memiliki izin mengunggah, atau lebih dari itu, akses shell. Hanya menggunakannya jika Anda tahu persis apa yang Anda lakukan.

Kita harus mencatat bahwa implikasi keamanan ini tidak spesifik untuk VSFTPD, mereka juga dapat memengaruhi semua daemon FTP lainnya yang menawarkan untuk menempatkan pengguna lokal di penjara chroot.

Karena alasan ini, di bagian di bawah ini, kami akan menjelaskan metode yang lebih aman untuk menetapkan direktori root lokal yang tidak dapat diterapkan untuk pengguna.

Langkah 4: Mengkonfigurasi Direktori Rumah Pengguna FTP di Ubuntu

11. Sekarang, buka file konfigurasi vsftpd sekali lagi.

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

dan mengomentari opsi yang tidak aman menggunakan # karakter seperti yang ditunjukkan di bawah ini:

#izin_writeable_chroot = ya 

Selanjutnya, buat direktori root lokal alternatif untuk pengguna (Aaronkilik, milik Anda mungkin tidak sama) dan atur izin yang diperlukan dengan menonaktifkan izin tulis ke semua pengguna lain ke direktori ini:

$ sudo mkdir/home/aaronkilis/ftp $ sudo chown Tidak ada: nogroup/home/aaronkilis/ftp $ sudo chmod a-w/home/aaronkilis/ftp 

12. Kemudian, buat direktori di bawah root lokal dengan izin yang sesuai di mana pengguna akan menyimpan file -nya:

$ sudo mkdir/home/aaronkilis/ftp/file $ sudo chown -r aaronkilk: aaronkilis/home/aaronkilik/ftp/file $ sudo chmod -r 0770/home/aaronkilis/ftp/file/ 

Setelah itu, tambahkan/ubah opsi di bawah ini di file konfigurasi VSFTPD dengan nilai yang sesuai:

user_sub_token = $ user # Sisipkan nama pengguna di direktori root lokal local_root =/home/$ user/ftp # mendefinisikan setiap pengguna root direktori lokal 

Simpan file dan tutup. Dan restart layanan VSFTPD dengan pengaturan terbaru:

------------- Di Systemd ------------- # Systemctl Restart vsftpd ------------- Di Sysvinit ------------- # Layanan vsftpd restart 

13. Sekarang, mari kita lakukan pemeriksaan akhir dan pastikan bahwa direktori root lokal pengguna adalah direktori FTP yang kami buat di direktori home -nya.

# FTP 192.168.56.102 Terhubung ke 192.168.56.102 (192.168.56.102). 220 Selamat Datang di Tecmint.Layanan Com FTP. Nama (192.168.56.10: Aaronkilis): Aaronkilis 331 Harap tentukan kata sandi. Kata sandi: 230 Login berhasil. Jenis sistem jarak jauh adalah unix. Menggunakan mode biner untuk mentransfer file. ftp> ls 
FTP User Home Directory Login

Itu dia! Ingatlah untuk membagikan pendapat Anda tentang panduan ini melalui formulir komentar di bawah ini atau mungkin memberi kami informasi penting tentang topik tersebut.

Terakhir, jangan lewatkan artikel kami berikutnya, di mana kami akan menjelaskan cara mengamankan server FTP menggunakan koneksi SSL/TLS di Ubuntu 16.04/16.10, sampai saat itu, selalu tunggu -tunggu untuk tecmint.