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
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
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
Tidak ada komentar:
Posting Komentar