Membuat FTP Server di Fedora 8 Menggunakan VSFTPD


Penulis dalam tulisan kali ini mencoba mendokumentasikan cara mensetup sebuah PC/laptop dengan sistem operasi Linux (distro Linux apapun bisa digunakan, dalam tulisan ini penulis menggunakan Fedora 8. Udah jadul sih nih distro, but masih stabil ama mesin gw, jadi malas buat upgrade total, paling upgrade aplikasi-aplikasinya aja πŸ˜€ ) menjadi sebuah FTP server sederhana menggunakan salah satu aplikasi open source untuk FTP server yaitu VSFTPD (Very Secure File Transfer Protocol Daemon)

Dengan adanya sebuah FTP server, client dalam suatu jaringan dapat mengupload (meletakkan file) secara massa (banyak), tidak lagi upload satu per satu atau beberapa, cukup drag saja ke lokasi yang disediakan oleh si FTP server πŸ˜€
Selain itu, juga bisa berfungsi sebagai download file. Ini semua tergantung settingan masing-masing sih πŸ™‚

Penulis sendiri tidak akan berhasil mengerjakan pembuatan server FTP ini tanpa peran serta beberapa manual yang penulis peroleh, baik yang tersedia secara default di terminal/konsole sendiri (ketik man vsftpd) segera setelah anda menginstalasi vsftpd di Linux anda, maupun manual-manual serupa yang berlimpah di internet (misalkan di ini, ini, dan ini). Thanks for all atas sharing ilmunya πŸ™‚

Konsepnya, jika ingin mengkonfigurasikan sebuah FTP server menggunakan vsftpd, pastikan setelah instalasi vsftpd, di PC anda telah ada file-file berikut :
1.) /etc/services
File ini merupakan service untuk vsftpd.
2.) /etc/vsftpd/vsftpd.conf
File konfigurasi vsftpd
3.) /etc/vsftpd/ftpusers
File untuk menyimpan list user yang tidak diperbolehkan untuk mengakses FTP anda (penulis sarankan user anonymous dimasukan dalam list yang di-banned ini demi keamanan).
4.) etc/vsftpd/user_list
File ini kebalikannya πŸ™‚
Menyimpan list user yang diperbolehkan untuk mengakses FTP anda. tambahkan pada vsftpd.conf baris : user_deny=NO

Kini penulis coba uraikan secara detail langkah demi langkah pengerjaannya :
1.) Pertama, asumsikan Fedora 8 (atau distro apapun) sudah terinstall dengan baik di PC/laptop anda.
2.) install vsftpd. Penulis menggunakan paket yang telah tersedia di repositori lokal (/var/www/html/repo). Semua file ini diperoleh dari bonus Info Linux (lupa edisi berapa πŸ˜€ )
Dalam hal ini, command yang penulis gunakan untuk menginstall langsung dari repositori lokal adalah : yum install vsftpd. Bisa juga via GUI menu, biasanya dari Yumex.
Jika menggunakan file paket (.tar.gz, .tar.bz, dll), cukup ekstrak, kemudian kompile deh πŸ˜€
Klo di Debian, misal Ubuntu, bisa diinstall lanngsung via GUI maupun command line. Hal yang sama berlaku juga dengan distro lainnya, misal Slackware dan sebagainya (sesuaikan aja yah πŸ™‚ ).
3.) Secara default, FTP server sudah bisa dijalankan dengan command : [root@astina-pura 8yt35c0d3]#/etc/init.d/vsftpd start
Tapi masih standar sih πŸ™‚
4.) Mari kita matikan dulu servicenya πŸ˜€
[root@astina-pura 8yt35c0d3]#//etc/init.d/vsftpd stop
5.) Buatlah sebuah group untuk pengguna FTP, misal group bernama ftpgue:
[root@astina-pura 8yt35c0d3]#groupadd ftpgue
6.) Buat sub direktori bernama ftp (atau terserah anda πŸ˜€ ) di direktori /home :
[root@astina-pura 8yt35c0d3]#cd /home
[root@astina-pura 8yt35c0d3]#mkdir ftp
7.) Berikan permission (saya sarankan 777 aja agar tidak pusing πŸ˜€ )
[root@astina-pura 8yt35c0d3]#chmod 777 -R /home/ftp/
8.) Buatlah sebuah user bernama jenderal-tux (atau terserah anda :D) lengkap bersama passwordnya.
[root@astina-pura 8yt35c0d3]#adduser -d /home/ftp/ -s /sbin/nologin -g ftpgue jenderal-tux
Atau bisa juga dengan command :
[root@astina-pura 8yt35c0d3]#adduser jenderal-tux
[root@astina-pura 8yt35c0d3]#passwd jenderal-tux
9.) Lalu ubah kepemilikan dari /home/ftp/ :
[root@astina-pura 8yt35c0d3]#chown -R jenderal-tux.ftpgue /home/ftp/
10.) Ubah konfigurasi vsftpd sebagai berikut (vim /etc/vsftpd/vsftpd.conf) :
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd’s
# capabilities.
#
# Allow anonymous FTP? (Beware – allowed by default if you comment this out).
anonymous_enable=YES
#
# 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=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#
# 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
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using “root” for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command “SIZE /big/file” in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
ftpd_banner=Selamat datang di FTP Server Jenderal-Tux
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# 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().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
#
# You may activate the “-R” option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as “ncftp” and “mirror” assume
# the presence of the “-R” option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# When “listen” directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
#
# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6
# sockets, you must run two copies of vsftpd whith two configuration files.
# Make sure, that one of the listen options is commented !!
#listen_ipv6=YES
guest_enable=YES
file_open_mode=0777
no_anon_password=YES
dirlist_enable=YES
dirmessage_enable=YES

pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
tcp_wrappers=YES

11.) Restart daemon vsftpd :
[root@astina-pura 8yt35c0d3]#/etc/init.d/vsftpd restart

Kini silahkan buka via terminal, perambah berkas, maupun browser anda, apapaun itu, selama terkoneksi via jaruingan ke server FTP yang telah dibuat πŸ˜€
Seharusnya, anda akan bisa mengakses FTP server tersebut dengan login terlebih dahulu. setelah login, anda dapat membentuk folder sendiri (dan meletakkan file di dalam folder yang telah dibuat) atau langsung meletakkan file tersebut di dalam area FTP server itu sendiri.

Untuk membatas, misal client hanya bisa mendownload saja, atau ;lainnya, silahkan dimodifikasi lagi pada keempat file konfigurasi yang telah saya sebutkan di atas πŸ™‚

Selamat mencoba πŸ˜€

NB :
Klo misalkan saat mengakses ada pesan kesalahan/permisson, segera ketikkan di terminal command : setenforce 0
[root@astina-pura 8yt35c0d3]# setenforce 0
Kemudian restart kembali vsftp daemon, baik via GUI maupun command line. πŸ™‚

Berikut beberapa capture dari hasil percobaan yang telah penulis lakukan :
1.) Mengakses FTP di terminal/konsole (command line) :
mengakses FTP via command line

2.) Mengakses FTP via browser (studi kasus Opera, berlaku juga untuk browser lainnya, sistem operasi apapun) :
Mengakses via browser, menu login

FTP telah diakses

Tulisan ini dibuat untuk menyukseskan Lomba Blog Open Source P2I-LIPI dan Seminar Open Source P2I-LIPI 2009.

7 tanggapan untuk “Membuat FTP Server di Fedora 8 Menggunakan VSFTPD

Tinggalkan komentar