FTP Server
1. Konsep Protokol
Pengiriman File (FTP)
Protokol pengiriman file atau
biasa disebut FTP, File Transfer Protocol,
adalah sebuah protokol klien-server yang memungkinkan seorang pemakai untuk
mengirim atau menerima file dari dan ke sebuah tempat/mesin dalam jaringan. Ia
bekerja menurut aturan transport TCP dan sangat banyak digunakan dalam jaringan
internet. Meskipun demikian juga dapat digunakan pada jaringan lokal, LAN.
Standar yang
mendefinisikan FTP mendekripsikan bahwa semua operasi yang menggunakan sebuah
alat operasi sederhana yang disebut model FTP. Model FTP mendefinisikan
tugas-tugas dari peralatan yang berpartisipasi dalam sebuah perpindahan file,
dan dua kanal komunikasi yang terbentuk diantaranya. Serta komponen-komponen
FTP yang mengatur kedua kanal dan definisi terminologi yang digunakan untuk
komponen-komponen tersebut.
Karena termasuk sebagai protokol
klien-server, klien FTP disebut sebagai user, hal ini karena para pengguna FTP
menjalankan FTP melalui sebuah mesin klien. Serangkaian operasi perangkat lunak
FTP dalam sebuah mesin disebut sebagai proses. Perangkat lunak FTP yang
berjalan dalam sebuah server disebut proses server FTP sedangkan yang berjalan
di klien disebut proses klien FTP.
2. Kontrol koneksi FTP dan koneksi data
Konsep kritis dalam memahami FTP
adalah bahwa seperti kebanyakan protokol lain yang menggunakan protokol
transport TCP, ia tidak hanya menggunakan satu koneksi TCP melainkan
menggunakan dua koneksi. Model FTP dirancang memerlukan dua kanal logik
komunikasi antara proses server dan klien FTP:
a.
Kontrol koneksi,
Ini merupakan koneksi logikal TCP yang dibuat ketika sebuah sesi FTP diadakan.
Ia memelihara throughput selama sesi FTP dan digunakan hanya untuk melakukan
pertukaran informasi control, seperti perintah FTP dan jawabannya. Ia tidak
digunakan untuk mengirim file-file.
b.
Koneksi data,
Setiap saat ketika data dikirimkan dari server ke klien atau sebaliknya, sebuah
koneksi data TCP nyata dibangun di antara mereka. Data dikirimkan melalui
koneksi data tersebut. Saat pengiriman file selesai, koneksi data ini dihentikan.
Alasan untuk menggunakan
kanal-kanal yang berbeda ini adalah agar didapatkan keleluasaan bagaimana
protokol FTP ini digunakan. Karena
fungsi kontrol dan data dikomunikasikan melalui kanal yang berbeda, model FTP
membagi perangkat lunak pada tiap peralatan menjadi dua komponen logikal
protokol yang bertugas untuk masing-masing kanal. Protocol interpreter (PI) adalah bagian dari perangkat lunak yang
mengatur koneksi berkaitan dengan pengiriman dan penerimaan perintah berikut
jawabannya. Data transfer process (DTP) bertanggung
jawab terhadap pengiriman dan penerimaan data antara klien dan server. Sebagai
tambahan pada dua elemen di atas, pada proses FTP user ditambahkan komponen
ketiga yakni antar muka user untuk berinteraksi dengan user FTP sebagai
manusia, ia tidak ditambahkan pada sisi server. Sehingga terdapat dua komponen
proses FTP server dan tiga komponen proses FTP user pada keseluruhan proses
FTP. Untuk lebih jelas perhatikan gambar …. beserta penjelasan fungsi
masing-masing elemen berikut ini.
Untuk mempermudah pencarian, gunakan CTRL+W dan masukan barisan kata atau kalimat konfigurasi yang dinginkan.
6. Menguji konfigurasi securing FTP
FTP sebenarnya cara yang tidak aman dalam mentransfer suatu file karena file dikirimkan Servertanpa di-enkripsi terlebih dahulu tetapi melalui clear text. Mode text yang dipakai untuk transfer data adalah format ASCII atau format binary. Secara default, FTP menggunakan mode ASCII dalam transfer data. Karena pengirimannya tanpa enkripsi, username, password, data yang di transfer, maupun perintah yang dikirim dapat di sniffing oleh orang dengan menggunakan protocol analyzer (sniffer). Solusi yang digunakan adalah dengan menggunakan SFTP (SSH FTP) yaitu FTP yang berbasis pada SSH atau menggunakan FTPS (FTP over SSL) sehingga data yang dikirim terlebih dahulu di enkripsi.
Konfigurasi Securing FTP:
a. Installasi Openssh ubuntu@linux:~$ sudo apt-get install openssh-server
b. Buat group baru ftpaccess untuk user FTP ubuntu@linux:~$ sudo groupadd ftpaccess
c. Konfigurasi /etc/ssh/sshd_config
Sekarang cobalah untuk menghubungkan server
menggunakan SFTP (port : 22 ) dan pastikan Pengguna dapat meng-upload file ke
direktori www dan tidak dapat mengakses folder lain di luar direktori home
3. Komponen-komponen proses FTP dan
terminologi
a. Komponen-komponen
proses FTP server
Proses FTP
server terdiri dari dua elemen protokol:
1)
Server Protocol
Interpreter (Server-PI): Juru bahasa/penghubung protocol yang bertanggung
jawab untuk mengatur control koneksi pada server. Ia mendengarkan pada port
khusus untuk FTP (port 21) untuk permintaan sambungan FTP yang masuk dari user
(klien). Saat sebuah sambungan terjadi, ia menerima perintah dari User-PI,
mengirim jawaban kembali dan mengelola proses transfer data server.
2)
Server Data
Transfer Process (Server-DTP): DTP pada sisi server digunakan untuk
mengirim atau menerima data dari atau ke User-DTP (biasanya port 20).
Server-DTP mungkin tidak hanya membangun sebuah koneksi data atau mendengarkan
suatu koneksi data yang dating dari user. Ia juga berinteraksi dengan file
system server local untuk menulis dan membaca file-file.
b. Komponen-komponen
proses FTP user
Proses FTP
user terdiri dari tiga elemen protokol:
1)
User Protocol
Interpreter (User-PI): Juru bahasa/penghubung protokol yang bertanggung
jawab untuk mengatur kontrol koneksi pada klien. Ia menginisiasi sesi FTP
dengan mengirimkan permintaan ke Server-PI. Saat sebuah sambungan terjadi, ia
memroses perintah dari User-PI, mengirimkannya ke Server-PI dan menerima
jawaban-jawaban kembali‟ Ia juga mengelola proses transfer data user.
2)
User Data
Transfer Process (User-DTP): DTP pada sisi user digunakan untuk mengirim
atau menerima data dari atau ke Server-DTP. User-DTP mungkin tidak hanya
membangun sebuah koneksi data atau mendengarkan suatu koneksi data yang dating
dari server. Ia juga berinteraksi dengan file system komponen-komponen local
klien.
3)
User Interface:
Antar muka user menyediakan antar muka FTP yang lebih “friendly” untuk pengguna
manusia. Ia memungkinkan penggunaan perintah fungsi FTP yang berorientasi pada
pengguna ketimbang perintah internal FTP kriptik, dan juga memungkinkan untuk
menyampaikan pada pengguna hasil dan informasi sesi FTP yang dilakukannya.
4. Menguji Konfigurasi FTP Server
FTP merupakan protokol standar
dengan STD 9, dijelaskan pada RFC 959 – File Transfer Protocol (FTP) dan
diupdate dengan RFC 2228 – FTP security extension. FTP dapat melakukan duplikat
file secara dua arah dari komputer yang satu ke komputer lainnya atau
sebaliknya. Client dapat mengirim file menuju server atau dapat meminta suatu
file dari server. Untuk mengakses file di server, client diharuskan untuk
mengidentifikasikan dirinya terlebih dahulu, kemudian server akan melakukan
proses authentikasi untuk user atau pengguna tersebut.
FTP menggunakan koneksi berbasis
connection-oriented, sehingga dari kedua sisi harus memiliki koneksi TCP/IP.
FTP menggunakan TCP sebagai protokol transport. FTP server menerima koneksi
pada port 21 dan 20. FTP server menggunakan dua port yang berbeda, satu
digunakan untuk login dan memasukan perintah. Port lainnya digunakan untuk
transfer File. Pada kedua sisi jaringan, aplikasi FTP dilengkapi dengan
protocol interpreter (PI), data transfer protocol (DTP), dan tampilan antar
muka. Sehingga prinsip kerja protokol FTP adalah sebagai user interface
melakukan perintah melalui PI dan dilanjutkan ke sisi server. Untuk melakukan
transfer file PI memberikan perintah pada DTP untuk mengirimkan file.
5. Konfigurasi FTP Server
Ubuntu menggunakan vsftpd ( Very
Secure ftpd ) untuk keperluan FTP server. vsftpd merupakan paket aplikasi yang
bersifat free sehingga dapat didownload secara cuma-cuma. Untuk melihat apakah
paket tersebut benarbenar telah terinstalasi ceklah dengan perintah : a.
Instalasi vsftp
# apt-get
install vsftpd
b. Untuk
mengontrol vsftpd, cukup gunakan perintah sebagai berikut :
#
/etc/init.d/vsftpd start
# /etc/init.d/
vsftpd stop # /etc/init.d/vsftpd restart vsftpd berisi beberapa buah file yang
diantaranya bernama vsftpd. File ini merupakan file yang digunakan untuk
mengaktifkan FTP server. vsftpd akan residen di memori selama server berjalan
dan melayani client-client yang meminta layanan ftp. Dalam istilah teknis
program-program yang bekerja dengan cara seperti ini disebut sebagai daemon.
c. Buka
file konfigurasi VSFTPD default yang terdapat di /etc/vsftpd.conf dengan
menggunakan perintah : sudo nano
/etc/vsftpd.conf
d. Disable
anonymous untuk mencegah anonymous user berhasil login
anonymous_enable=NO
Untuk mempermudah pencarian, gunakan CTRL+W dan masukan barisan kata atau kalimat konfigurasi yang dinginkan.
e. Selanjutnya
mengaktifkan (enable) login user yang menggunakan file otentikasi lokal dengan
menghilangkan tanda pagar sebelum :
local_enable=YES
f.
Agar user dapat melakukan modifikasi file system, perlu
menghilangkan tanda pagar sebelum :
write_enable=YES
6. Menguji konfigurasi securing FTP
FTP sebenarnya cara yang tidak aman dalam mentransfer suatu file karena file dikirimkan Servertanpa di-enkripsi terlebih dahulu tetapi melalui clear text. Mode text yang dipakai untuk transfer data adalah format ASCII atau format binary. Secara default, FTP menggunakan mode ASCII dalam transfer data. Karena pengirimannya tanpa enkripsi, username, password, data yang di transfer, maupun perintah yang dikirim dapat di sniffing oleh orang dengan menggunakan protocol analyzer (sniffer). Solusi yang digunakan adalah dengan menggunakan SFTP (SSH FTP) yaitu FTP yang berbasis pada SSH atau menggunakan FTPS (FTP over SSL) sehingga data yang dikirim terlebih dahulu di enkripsi.
Konfigurasi Securing FTP:
a. Installasi Openssh ubuntu@linux:~$ sudo apt-get install openssh-server
b. Buat group baru ftpaccess untuk user FTP ubuntu@linux:~$ sudo groupadd ftpaccess
c. Konfigurasi /etc/ssh/sshd_config
Temukan Subsystem
sftp /usr/lib/openssh/sftp-server Dan
tambahkan kata berikut di akhir :
tambahkan kata berikut di akhir :
Subsystem
sftp internal-sftp
Match
group ftpaccess
ChrootDirectory %h
X11Forwarding
no
AllowTcpForwarding
no
ForceCommand
internal-sftp
d. Restart sshd service ubuntu@linux:~$ sudo service ssh restart
Selanjutnya merupakan langkah untuk membuat users yang akan akses sftp e. Buat user
smk dengan group ftpaccess dan ubuntu@linux:~$ sudo useradd -m smk -g ftpaccess -s
/usr/sbin/nologin ubuntu@linux:~$ sudo passwd smk
f. Ganti kepemilikan dari home direktori ubuntu@linux:~$ sudo chown root /home/smk
g. Buat folder di dalam direktori home untuk mengganti kepemilikan dari folder tersebut
ubuntu@linux:~$ sudo mkdir /home/smk/www ubuntu@linux:~$ sudo chown
john:ftpaccess /home/smk/www
d. Restart sshd service ubuntu@linux:~$ sudo service ssh restart
Selanjutnya merupakan langkah untuk membuat users yang akan akses sftp e. Buat user
smk dengan group ftpaccess dan ubuntu@linux:~$ sudo useradd -m smk -g ftpaccess -s
/usr/sbin/nologin ubuntu@linux:~$ sudo passwd smk
f. Ganti kepemilikan dari home direktori ubuntu@linux:~$ sudo chown root /home/smk
g. Buat folder di dalam direktori home untuk mengganti kepemilikan dari folder tersebut
ubuntu@linux:~$ sudo mkdir /home/smk/www ubuntu@linux:~$ sudo chown
john:ftpaccess /home/smk/www
Sekarang cobalah untuk
menghubungkan server menggunakan SFTP (port : 22 ) dan
pastikan Pengguna dapat meng-upload file ke direktori www dan tidak dapat mengakses
folder lain di luar direktori home.
pastikan Pengguna dapat meng-upload file ke direktori www dan tidak dapat mengakses
folder lain di luar direktori home.
FTP sebenarnya cara yang tidak
aman dalam mentransfer suatu file karena file dikirimkan tanpa di-enkripsi
terlebih dahulu tetapi melalui clear text. Mode text yang dipakai untuk
transfer data adalah format ASCII atau format binary. Secara default, FTP
menggunakan mode ASCII dalam transfer data. Karena pengirimannya tanpa
enkripsi, username, password, data yang di transfer, maupun perintah yang
dikirim dapat di sniffing oleh orang dengan menggunakan protocol analyzer
(sniffer). Solusi yang digunakan adalah dengan menggunakan SFTP (SSH FTP) yaitu
FTP yang berbasis pada SSH atau menggunakan FTPS (FTP over SSL) sehingga data
yang dikirim terlebih dahulu di enkripsi.Konfigurasi Securing FTP:
a. Installasi Openssh ubuntu@linux:~$ sudo apt-get install openssh-server
b. Buat group baru ftpaccess untuk user FTP ubuntu@linux:~$ sudo groupadd ftpaccess
c. Konfigurasi /etc/ssh/sshd_config
Temukan Subsystem
sftp /usr/lib/openssh/sftp-server Dan tambahkan kata berikut di akhir :
a. Installasi Openssh ubuntu@linux:~$ sudo apt-get install openssh-server
b. Buat group baru ftpaccess untuk user FTP ubuntu@linux:~$ sudo groupadd ftpaccess
c. Konfigurasi /etc/ssh/sshd_config
Subsystem
sftp internal-sftp
Match
group ftpaccess
ChrootDirectory %h
X11Forwarding
no
AllowTcpForwarding
no
ForceCommand
internal-sftp
d. Restart sshd service ubuntu@linux:~$ sudo service ssh restar
Selanjutnya merupakan langkah untuk membuat users yang akan akses sftp e. Buat user
smk dengan group ftpaccess dan ubuntu@linux:~$ sudo useradd -m smk -g ftpaccess -s
/usr/sbin/nologin ubuntu@linux:~$ sudo passwd smk
f.Ganti kepemilikan dari home direktori ubuntu@linux:~$ sudo chown root /home/smk
g. Buat folder di dalam direktori home untuk mengganti kepemilikan dari folder tersebut
ubuntu@linux:~$ sudo mkdir /home/smk/www ubuntu@linux:~$ sudo chown
john:ftpaccess /home/smk/www
d. Restart sshd service ubuntu@linux:~$ sudo service ssh restar
Selanjutnya merupakan langkah untuk membuat users yang akan akses sftp e. Buat user
smk dengan group ftpaccess dan ubuntu@linux:~$ sudo useradd -m smk -g ftpaccess -s
/usr/sbin/nologin ubuntu@linux:~$ sudo passwd smk
f.Ganti kepemilikan dari home direktori ubuntu@linux:~$ sudo chown root /home/smk
g. Buat folder di dalam direktori home untuk mengganti kepemilikan dari folder tersebut
ubuntu@linux:~$ sudo mkdir /home/smk/www ubuntu@linux:~$ sudo chown
john:ftpaccess /home/smk/www
7. Aplikasi Penggunaan Protokol FTP
Seperti halnya sebagian besar
hubungan klien-server lainnya, mesin klien membuka koneksi ke server pada port
tertentu dan server kemudian merespon klien pada port tersebut. Ketika sebuah
klien FTP terhubung ke server FTP membuka koneksi ke port kontrol FTP 21.
Kemudian klien memberitahu server FTP apakah akan membangun koneksi aktif atau
pasif. Jenis koneksi yang dipilih oleh klien menentukan bagaimana server
merespon dan transaksi port akan terjadi.
1) Koneksi
aktif
2) Ketika sambungan aktif dijalankan, klien dari port tinggi
mengirim permintaan ke port 21 pada server.
Kemudian server membuka sambungan data ke klien dari port 20 ke range port
tinggi pada mesin klien. Semua data yang diminta dari server kemudian
dilewatkan melalui koneksi ini.
Ketika sambungan pasif (PASV) dijalankan, klien dari port
tinggi mengirim ke port 21 pada server, klien meminta server FTP untuk
membentuk koneksi port pasif, yang dapat dilaksanakan pada port yang lebih
tinggi dari 10.000. Server kemudian mengikat ke port nomor tinggi untuk sesi
khusus ini dan menyerahkan nomor port kembali ke klien. Klien kemudian membuka
port baru yang telah disetujui untuk koneksi data. Setiap data meminta klien untuk membuat hasil dalam
koneksi data terpisah. Kebanyakan klien FTP modern mencoba untuk membuat
sambungan pasif ketika meminta data dari server.
3) Pada
sisi User
FTP merupakan cara paling umum
untuk melakukan proses pemindahan file-file dari sebuah FTP server ke komputer
pengguna, misalnya untuk mengunduh file dokumen, gambar, program maupun
file-file image DVD installer Linux. Juga dapat melakukan pemindahan file-file
dari komputer pengguna ke server misalnya untuk keperluan hosting web pengguna.
Jika hanya memerlukan untuk
mengunduh file-file dari situs internet dapat pula dilakukan dengan menggunakan
aplikasi browser sebagai antar muka pengguna. Aplikasi penggunaan protokol FTP
di sisi user/pengguna dilakukan dengan menggunakan antar muka pengguna FTP
klien untuk dapat memindah sejumlah file yang besar atau folder dengan lebih
mudah dan efisien.
Sistem operasi
yang saat ini banyak digunakan biasanya sudah dilengkapi dengan aplikasi FTP
clent yang berbasis teks. Seperti ditunjukkan pada Gambar di bawah ini adalah aplikasi FTP clent
berbasis teks command DOS pada system operasi Windows.
Perintah untuk memulai aplikasi FTP klien adalah dengan mengetik C:> ftp maka prompt akan berubah menjadi ftp> jika ingin menghubungi server 192.168.0.2 dilakukan dengan mengetikkan ftp>open 192.168.0.2. Sebelum terjadi koneksi kita akan diminta menuliskan username dan password, sebagai user kebanyakan maka kita isikan username User <192.168.0.2:<none>>: anonymous kemudian Password: bambang@gmail.com (alamat email dan tidak terbaca waktu diketikkan). Jika berhasil maka server akan menjawab 230 Logged on lalu muncul prompt ftp> berarti saat itu kita sudah terkoneksi dengan Server FTP 192.168.0.2. Selanjutnya kita bisa melakukan aplikasi kirim terima file. Langkah memulai aplikasi FTP klien pada DOS (gambar 3) sama dengan yang dapat dilakukan pada terminal UNIX/Linux.
Terdapat banyak sekali aplikasi antar muka dari pihak ketiga (3rd party software) FTP klien tidak berbayar yang dapat diunduh dari situs-situs internet yang dapat diinstal pada system operasi komputer. Salah satunya adalah Filezilla yang mampu berjalan di atas system operasi Windows, Linux maupun Mac berbasis grafis dan dapat diunduh dari URL http://filezilla-project.org/ download.php. Antar muka FTP klien yang lain misalnya: WinFTP, FireFTP, FTPExplorer, CyberDuck, CuteFTP, dan masih banyak lagi yang gratis maupun berbayar.Pada kebanyakan aplikasi antar muka FTP klien ditampilkan dengan bentuk grafis dan menampilkan proses koneksi data, direktori server FTP dan direktori komputer lokal
Pada saat akan dimulai proses koneksi pengguna diwajibkan
untuk masuk menggunakan username, untuk pengguna umum biasanya masuk dengan
anonymous, lalu harus mengisikan password, biasanya berupa alamat email. Hal
tersebut merupakan proses yang terjadi pada kanal port 21 kontrol koneksi
aplikasi FTP. Setelah tersambung, baru dapat melakukan koneksi data, yakni
proses kirim terima data pada kanal port yang lain. Karena proses kerja
protokol FTP menggunakan dua kanal/port TCP.
4) Pada sisi Server
FTP server adalah suatu server yang menjalankan piranti lunak/software yang berfungsi untuk memberikan layanan tukar menukar file sehingga server tersebut selalu siap memberikan layanan FTP apabila mendapat permintaan (request) dari FTP klien. Port standar yang digunakan oleh Server FTP adalah 21. Ketika user mencoba untuk log in, server FTP menggunakan standar system panggilan untuk memeriksa username dan password dengan membandingkan yang ada pada file password system. Jika berhasil login dengan benar user diberi akses untuk masuk ke Server FTP, maka user/klien dapat men-mengunduh, mengunggah, mengganti nama file, menghapus file, dll sesuai dengan ijin/ permission yang diberikan oleh FTP server.
FTP server adalah suatu server yang menjalankan piranti lunak/software yang berfungsi untuk memberikan layanan tukar menukar file sehingga server tersebut selalu siap memberikan layanan FTP apabila mendapat permintaan (request) dari FTP klien. Port standar yang digunakan oleh Server FTP adalah 21. Ketika user mencoba untuk log in, server FTP menggunakan standar system panggilan untuk memeriksa username dan password dengan membandingkan yang ada pada file password system. Jika berhasil login dengan benar user diberi akses untuk masuk ke Server FTP, maka user/klien dapat men-mengunduh, mengunggah, mengganti nama file, menghapus file, dll sesuai dengan ijin/ permission yang diberikan oleh FTP server.
Tujuan dari FTP server adalah sebagai berikut :
a)Untuk tujuan sharing data, menyediakan indirect atau implicit remote computer
b)Untuk menyediakan tempat penyimpanan bagi user
c)Untuk menyediakan transfer data yang reliable dan efisien
a)Untuk tujuan sharing data, menyediakan indirect atau implicit remote computer
b)Untuk menyediakan tempat penyimpanan bagi user
c)Untuk menyediakan transfer data yang reliable dan efisien
Berbeda dengan antar muka FTP klien yang telah disediakan oleh system operasi kebanyakan dewasa ini, piranti lunak Server FTP harus diinstal dan dikonfigurasi sendiri. Kebanyakan piranti lunak Server FTP bisa didapatkan dengan gratis, mereka biasanya dibuat khusus untuk masingmasing platform system operasi. Demikian juga platform windows, system operasi tidak menyertakan aplikasi Server FTP di dalamnya, kita bisa mengaplikasikan server FTP di windows server dengan menginstal melalui menu Add Remove Program, Application Server, IIS (Internet Information Services) pada pilihan FTP Services. Sistem windows server akan menggunakan CD/DVD installer untuk melakukan instalasi server FTP hingga selesai dan server FTP siap untuk digunakan.
Piranti lunak aplikasi FTP server dari pihak ke-3 seperti Filezilla Server yang berbasis grafis juga dapat dinstal dan dioperasikan pada platform windows seperti gambar di bawah ini.
Untuk platform SO Linux/UNIX server FTP standar / tradisional sudah disertakan di dalamnya yakni dapat dieksekusi melalui inetd (daemon superserver internet).
0 Response to "Mengevaluasi FTP Server "
Post a Comment