Translate








Rabu, 29 Januari 2014

Membangun Server FTP dengan vsftpd di Linux Centos 5.6

vsftpd (Very Secure FTP Daemon) merupakan server FTP yang dikembangkan oleh Chris Evans. Vsftpd diciptakan dengan tingkat keamanan yang cukup untuk menutupi beberapa permasalahan yang terdapat pada server FTP konvensional. Penggunaan chroot() pada vsftpd dapat membatasi visibilitas direktori user didalam server. Selain itu, kita bisa menggunakan OpenSSL untuk mengenkripsi transfer file. Sebagai FTP server, vsftpd mendukung mode pasif dan aktif, dan bekerja pada port 21 atau bisa juga pada port yang kita tentukan sendiri. Instalasi vsftpd sangatlah mudah, cukup dengan baris perintah dibawah ini:

[root@MAJAPAHIT ~]# yum install vsftpd


File konfigurasi vsftpd berada dalam direktori /etc/vsftpd. Ada 4 buah file yakni : ftpusers, user_list vsftpd.conf, vsftpd_conf_migrate.sh. File konfigurasi utama yakni vsftpd.conf, dimana didalamnya terdapat direktif yang bisa kita ubah sesuai dengan kebutuhan. File ftpusers merupakan file teks yang akan digunakan untuk membatasi user-user yang bisa mengaksed server FTP, cukup dengan memasukkan nama user kedalam file tersebut, maka user tersebut tidak akan diizinkan untuk mengakses server FTP. File user_list secara default berisi daftar user yang diizinkan mengakses server FTP, namun apabila direktif "userlist_enable=YES" (default) pada file konfigurasi utama (vsftpd.conf), maka fungsinya sama seperti file ftpusers dimana file user_list ini tidak akan mengizinkan user yang terdaftar untuk mengakses server FTP. File yang terakhir yakni vsftpd_conf_migrate.sh merupakan shell script untuk migrasi file konfigurasi vsftpd yang lama agar kompatibel dengan versi vsftpd baru yang terinstall.

Menjalankan server FTP


Untuk memulai pengetesan server FTP, kita jalankan dulu service vsftpd dengan perintah:

[root@MAJAPAHIT ~]# service vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]


Coba untuk mengakses server FTP melalui browser ke alamat IP server FTP seperti gambar dibawah:

(Gambar 1: Akses FTP konfigurasi default, anonymous allowed)
Pada konfigurasi vsftpd default, kita bisa mengakses server FTP dengan anonymous. Untuk itu, kita coba melakukan konfigurasi pada vsftpd.conf untuk membatasi user anonymous. Kita buka file konfigurasi dan merubah direktif "anonymous_enable=YES" menjadi "anonymous_enable=NO". Setelah melakukan perubahan pada file tersebut, kita restart service vsftpd (service vsftpd restart), lalu coba akses kembali melalui browser :

(Gambar 2: Anonymous restriction)

Selanjutnya, kita coba membuat user baru yang akan kita gunakan untuk mengakses server FTP. Kita buat saja user dengan nama ujang.

[root@MAJAPAHIT ~]# useradd ujang
[root@MAJAPAHIT ~]# passwd ujang
Changing password for user ujang.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.


Coba Login FTP dengan user ujang melalui browser:

(Gambar 3: Login dengan user Ujang sukses)

Sekarang, kita coba tambahkan user ujang kedalam file ftpusers. Lalu restart service vsftpd, dan lakukan akses kembali ke server ftp dengan browser.

(Gambar 4 : Menambahkan user ujang kedalam file ftpusers)

Apabila kita akses kembali server FTP dengan user ujang, maka akan muncul Alert seperti berikut, yang menandakan bahwa user ujang tidak bisa mengakses server FTP, karena sudah kita masukkan kedalam file ftpusers.
(Gambar 5 : User ujang tidak bisa mengakses server FTP)

Berikutnya kita akan melakukan uji coba fungsi chroot() yang terdapat dalam vsftpd. Terlebih dahulu kita aktifkan kembali user ujang (hapus atau beri komentar pada user ujang dari file ftpusers). Restart service vsftpd, lalu lakukan login ftp melalui konsol seperti dibawah ini:

(Gambar 6 : user ujang login ftp dan melakukan navigasi pada system)

Saat ini user Ujang bisa login FTP dan melakukan navigasi terhadap system dengan leluasa. Untuk itu, kita akan coba membatasi ujang agar hanya bisa berada di home direktorinya saja. Kita lakukan konfigurasi kembali pada file vsftpd.conf, kita ubah direktif dengan mengaktifkan "chroot_list_enable=YES" (hilangkan tanda ‘#’), lalu aktifkan direktif "chroot_list_file=/etc/vsftpd/chroot_list" (hilangkan tanda ‘#’), dan buat file chroot_list pada direktori /etc/vsftpd.

(Gambar 7 : perubahan file konfigurasi vsftpd)

Setelah melakukan perubahan diatas, kita tambahkan user ujang kedalam file /etc/vsftpd/chroot_list. lalu kita restart service vsftpd (service vsftpd restart), dan coba login kembali melalui konsol dengan user ujang.

(Gambar 8 : user ujang tidak bisa melakukan navigasi ke direktori lain selain home direktori nya sendiri)
Dengan mengaktifkan fitur chroot() seperti diatas, akan jauh lebih aman dikarenakan user hanya bisa mengakses home direktori nya saja. Namun untuk konfigurasi lebih jauh silahkan disesuaikan dengan kebijakan dan kebutuhan kita di lapangan. Lebih jauh kita bisa mempelajari direktif-direktif yang lain yang terdapat pada file vsftpd.conf atau dengan mempelajari manualnya.

Like the Post? Do share with your Friends.

3 komentar:

  1. halo bang
    saya sudah install vsftpd dan seting sesuai dengan konfigurasi sebagai berikut
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=YES
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    firewall dan selinux dalam keadaan disabled karena di set di mikrotik
    akan tetapi ketika login failed padahal sudah dengan user yang ada di chroot_list
    mohon pencerahannya

    BalasHapus
    Balasan
    1. Coba firewall di Centos nya yang di disable gan, ketik aja "setup" di konsol, lalu cari menu firewall, lalu disable. Ato SELINUX yang di Centos nya, ubah di /etc/selinux/config, ubah menjadi selinux=disable, lalu restart server nya (karena perubahan selinux biasanya memerlukan restart fisik)

      Hapus
    2. Pengecekan lebih lanjut:
      langkah awal, coba cek login ftp di localhost dulu gan. Apakah failed atau tdk.

      Lalu, coba tambahkan baris berikut di /etc/vsftpd/vsftpd.conf agan:

      chroot_list_enable=YES
      chroot_list_file=/etc/vsftpd/chroot_list

      Buat file chroot_list nya, di lokasi /etc/vsftpd seperti diatas, lalu masukkan user ftp kesitu.

      nano /etc/vsftpd/chroot_list, masukan nama user di file tersebut. Tutup editor, restart kembali service vsftpd, dan dicoba lagi akses ftp nya.

      Thx

      Hapus

IconIconIconFollow Me on Pinterest

Blogger news

Blogroll

What's Hot