Wednesday, September 26, 2012

Membuat FTP Server dan Redirect ke Public

Assalamu'alaykum warahmatulllah wabarakatuh...

Jawab dulu dong. Tumben ni saya awali postingan dengan salam. hehe. Kali ini saya baru coba-coba buat ftp server (knp baru sekarang aku belajarnya T__T ) di Ubuntu Precise Pangolin alias Ubuntu 12.04. 

Jadi FTP adalah protokol yang sudah sangat tua, tapi masih banyak digunakan untuk keperluan transfer berkas. Mungkin karena kestabilannya dan banyaknya client atau aplikasi yang mendukung proses transfer berkas melalui ftp.

Ada banyak pilihan ftp server, tapi konon proftpd adalah ftp server yang fleksibel dan mudah dikonfigurasi.
Dan kebanyakan tutorial yang saya temukan juga pakai proftpd. Untuk proses instalasi sampai testing saya ambil sumber total dari sini.

Instalasi

Menginstal proftpd di Ubuntu, semudah menginstal aplikasi lain dari repositori. Caranya,
sudo apt-get install proftpd
Saat ada pilihan apakah akan menjalankan proftpd via inetd atau standalone, pilih standalone saja. Setelah instalasi selesai, seharusnya proftpd otomatis dijalankan. Jika tidak, coba Anda jalankan perintah berikut.
sudo /etc/init.d/proftpd start
Letak berkas konfigurasi ada di /etc/proftpd/proftpd.conf. Contoh yang diberikan oleh paket proftpd di Ubuntu sudah sangat baik. Tapi tentu saja, Anda tetap bisa mengkonfigurasinya lagi agar lebih sesuai dengan keperluan Anda.

Test Instalasi

Sebelum membahas konfigurasi untuk proftpd, mari kita sedikit meluangkan waktu untuk melakukan sedikit test. Setelah proftpd berhasil dijalankan, Anda bisa melakukan proses cek, apakah proftpd sudah listen atau belum.
sudo lsof -i -n -P |grep "21" |grep LISTEN
Jika proftpd sudah listen di port 21 tersebut, selanjutnya mari kita cek. Seperti pada contoh di bawah ini.
ftp localhost
Connected to localhost.
220 ProFTPD 1.3.1 Server (Debian) [::ffff:127.0.0.1]
Name (localhost:cecep): cecep
331 Password required for cecep
Password:
230 User cecep logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
200 PORT command successful
150 Opening ASCII mode data connection for file list
-rw-r--r--   1 root     root      3169166 May 17 09:23 redmine-0.8.4.tar.gz
drwxr-xr-x   7 cecep    cecep        4096 Jul 21 23:47 rubygems-1.3.5
-rw-r--r--   1 cecep    cecep      278469 Jul 22 00:16 rubygems-1.3.5.tgz
226 Transfer complete
ftp>

Membatasi User FTP di homedir

Lihat konfigurasi proftpd.conf, cari baris DefaultRoot, Anda tinggal membuang tanda pagar didepannya, seperti contoh di bawah ini.
# Use this to jail all users in their homes
DefaultRoot                   ~
Seperti biasa, jika konfigurasi baru sudah Anda simpan, Anda harus merestart service proftpd.
sudo /etc/init.d/proftpd restart

Membatasi Berkas yang Boleh di Upload

Misal, Anda membuat ftp server untuk keperluan kantor. Dan Anda tidak ingin user Anda mengupload berkas-berkas mp3 dan video yang mungkin tidak berkaitan dengan keperluan kantor.
Anda bisa menerapkan konfigurasi berikut.
# Reject files with this extension
PathDenyFilter "\\.(3gp|avi|mp3|mpg|wmv)$"
Contoh lainnya, Anda ingin membatasi besar berkas yang boleh di upload.
# Restrict upload to only 10 megabytes
MaxStoreFileSize 10 Mb

Tuning Untuk Server yang Super Sibuk

Jika FTP server Anda sangat sibuk, mungkin Anda harus mengubah beberapa konfigurasi Timeout untuk kondisi client yang tidak mentransfer, stalled atau yang sedang idle. Tujuannya agar client-client tersebut tidak membebani server, dan memberikan kesempatan ke client lain yang ingin mengakses server Anda.
Nilai default di instalasi Ubuntu, ingat satuannya dalam detik. Jadi 600 artinya 10 menit.
TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200
Anda bisa ubah misalnya menjadi seperti di bawah ini.
TimeoutNoTransfer               60
TimeoutStalled                  60
TimeoutIdle                     120
Anda juga mungkin bisa menerapkan konfigurasi tambahan seperti di bawah ini.
# Disable Ident Lookups
IdentLookups off
 
# Disable Reverse DNS Lookups
UseReverseDNS off
 
# Disable ls -R
ListOptions +R strict
 
# Disable checking for .ftpaccess
AllowOverride off
 
# Disable logging to wtmp file
WtmpLog off

Baiklah.. proses instalasi selesai. Untuk konfigurasi lainnya silakan edit saja file confignya di /etc/proftpd/proftpd.conf. Untuk coba akses ftpnya di lokal, ketikkan saja ftp://xxx.xxx.xxx (x adalah ip address server ftp kita).

Nah, sementara ftp server kita blm bisa diakses dari jaringan luar. Untuk bisa diakses ke jaringan luar, kita perlu ip publiknya. Dan sepertinya kepanjangan kalau saya tulis di sini, sudah pengen pindah halaman. hehe. Oke, lanjut ke postingan berikutnya yak.

Semoga bermanfaat ^__^

oiya karena diawali dengan salam, saya tutup pula dengan sala
wassalamu'alaykum warahmatullah wabarakatuh 

No comments:

Post a Comment