VSFTPD (Very Secure File Transfer Protocol Daemon) adalah sebuah aplikasi FTP Server yang berjalan pada sistem operasi Linux, Unix, Solaris, HP-UX and IRIX. Mendukung banyak fitur yang sangat banyak pada FTP server lain. Beberapa di antaranya adalah :

Requirement keamanan yang sangat tinggi
Batas bandwitdh
Skalabilitas yang baik
Support IPnG 

Dan pada kesempatan kali ini, izinkan saya untuk memberikan pengenalan dasar yang berkaitan dengan “FTP (File Transfer Protocol)”.

FTP (File Transfer Protocol) adalah platform independen transfer data dari internet, itu didasarkan pada arsitektur server / klien. RFC 959 [1] determins FTP untuk dibagi dalam dua saluran yang berbeda, satu berfungsi untuk data (TCP-port 20) dan yang lainnya untuk kontrol (TCP-port 21).

FTP menggunakan protokol Transmission Control Protocol (TCP) untuk komunikasi data antara klien dan server, sehingga di antara kedua komponen tersebut akan dibuatlah sebuah sesi komunikasi sebelum pengiriman data dimulai. Sebelum membuat koneksi, port TCP nomor 21 di sisi server akan “mendengarkan” percobaan koneksi dari sebuah klien FTP dan kemudian akan digunakan sebagai port pengatur (control port) untuk membuat sebuah koneksi antara klien dan server, untuk mengizinkan klien untuk mengirimkan sebuah perintah FTP kepada server dan juga mengembalikan respons server ke perintah tersebut. Sekali koneksi kontrol telah dibuat, maka server akan mulai membuka port TCP nomor 20 untuk membentuk sebuah koneksi baru dengan klien untuk mengirim data aktual yang sedang dipertukarkan saat melakukan pengunduhan dan penggugahan. (source: wikipedia)

 

Install VSFTPD

Instalasi daemon vsftpd pada Slackware cukup mudah karena paket tarball bisa kalian dapatkan disini atau kalian bisa menginstall vsftpd menggunakan paket yang sudah di sediakan dalam slackbuild. Setelah mendownload paket tarball, jalankan perintah seperti dibawah ini :

[[email protected] ~]# tar -xzvf vsftpd-x.x.x.tar.gz
[[email protected] ~]# cd vsftpd-x.x.x
[[email protected] ~]# make
[[email protected] ~]# mkdir /var/ftp
[[email protected] ~]# useradd -d /var/ftp ftp

Karena alasan keamanan direktori “/var/ftp” tidak harus berasal dari user “ftp”, maka kita dapat mengubah owner dan mengurangi permission write dari user lain :

[[email protected] ~]# chown root.root /var/ftp
[[email protected] ~]# chmod go-w /var/ftp

Dan sekarang lanjutkan tahap instalasi vsftpd :

[[email protected] ~]# make install

Setelah proses instalasi selesai, maka lanjut ke step berikutnya seperti dibawah ini :

[[email protected] ~]# cp vsftpd /usr/sbin/vsftpd
[[email protected] ~]# cp vsftpd.conf /etc
[[email protected] ~]# cp vsftpd.conf.5 /usr/share/man/man5
[[email protected] ~]# cp vsftpd.8 /usr/share/man/man8

 

Konfigurasi VSFTPD

Edit file vsftpd.conf yang terdapat di direktori /etc dengan menggunakan text editor yang kalian suka, dan menghapus comment ‘#’ yang di perlukan pada line yang ditemukan seperti dibawah ini :

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO

# Uncomment this to allow local users to log in.
local_enable=YES

# Uncomment this to enable any form of FTP write command.
write_enable=YES

# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022

# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=NO

# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=NO

# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES

# Activate logging of uploads/downloads.
xferlog_enable=YES

# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
chroot_local_user=YES

# You may fully customise the login banner string:
ftpd_banner=Welcome to My FTP service.

# When "listen" directive is enabled, vsftpd runs in standalone mode (rather
# than from inetd) and listens on IPv4 sockets. To use vsftpd in standalone
# mode rather than with inetd, change the line below to 'listen=YES'
# This directive cannot be used in conjunction with the listen_ipv6 directive.
listen=NO

 

Start FTP Service

Sebelum kita dapat menjalankan servie FTP, kita perlu menghapus comment ‘#’ dari baris di bawah VSFTPD (Very Secure File Transfer Protocol) server yang terdapat pada /etc/inetd.conf seperti dibawah ini :

# Very Secure File Transfer Protocol (FTP) server.
ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  vsftpd

Setelah melakukan step di atas, sekarang kalian bisa menjalankan service FTP server melalui terminal seperti dibawah ini :

[[email protected] ~]# /etc/rc.d/rc.inetd restart

 

Test

Setelah semuanya siap, kalian sudah dapat mengakses server FTP yang baru saja di buat seperti yang saya lakukan dibawah ini.

[[email protected] ~]# ftp indonesiancoder
Connected to indonesiancoder..
220 (vsFTPd 3.0.2)
Name (indonesiancoder:uncl): profesorlinux
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -l
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    3 1000     100          4096 Mar 12 21:22 Build
drwxr-xr-x   17 1000     100          4096 Mar 11 15:13 Dev
drwxr-xr-x    2 1000     100          4096 Apr 02 20:50 Docs
drwxr-xr-x   10 1000     100          4096 Apr 11 15:13 Repo
drwxr-xr-x   10 1000     100          4096 Apr 12 17:12 Source
226 Directory send OK.
ftp> exit
221 Goodbye.
[[email protected] ~]#

Cukup sekian tutorial sederhana dari saya, semoga bermanfaat untuk kalian yang membaca bila ada kesalahan mohon di maafkan.