Pada Tutorial sebelumnya kita sudah mencoba membangun server FTP sederhana dengan vsftpd.Sekarang saya akan mencoba membangun Sistem serupa dengan menggunakan SFTP (Secure FTP), dengan CHROOT agar user hanya bisa mengakses Direktori yang kita tentukan saja. Perbedaan dari FTP konvensional adalah dari sisi keamanan, dengan SFTP relatif lebih aman dikarenakan ada enkripsi data, perbedaan lainnya yakni dari port default yang digunakan yaitu port 22 sama seperti port SSH, walaupun sebenarnya port ini bisa kita tentukan sendiri.
Untuk membangun SFTP dengan CHROOT, berikut tahapannya:
- Instalasi paket Openssh yang dibutuhkan.
- Membuat Direktori baru untuk user/client. Direktori ini sebaiknya dipisahkan dari direktori home default. Misalnya kita akan buat seperti ini: /home/ftp/ucox. Direktori "ucox" inilah yang kita sediakan untuk Client.
- Membuat User baru untuk Client, misalnya saja user baru tersebut adalah Ucox.
- Batasi User Client agar tidak bisa mengakses SHELL.
- Lakukan perubahan Hak Akses dan kepemilikan direktori
- Konfigurasi pada /etc/ssh/sshd_config
- Pengetesan Akses dengan sftp client (WinScp)
1. Instalasi paket openssh yang dibutuhkan
Disini, saya menggunakan Linux CentOS 5.6 32bit. Untuk paket openssh default nya yakni versi 4.3p2xx tidak akan kita gunakan karena tidak support untuk parameter "Match" didalam file konfigurasi ssh. Disini saya menggunakan paket openssh sebagai berikut:
- openssh-server-6.1p1-5.el5.1.i386.rpm
- openssh-6.1p1-5.el5.1.i386.rpm
- openssh-clients-6.1p1-5.el5.1.i386.rpm
- openssh-askpass-6.1p1-5.el5.1.i386.rpm
- libedit-20090923-3.0_1.el5.rf.i386.rpm
Paket-paket tersebut sudah saya kumpulkan dan bisa anda download disini, dan paket-paket ini cocok digunakan di CentOS 5.6. Didalam nya sudah saya sertakan untuk CentOS 64 bit juga.
Tahapan instalasi :
[root@MAJAPAHIT openssh]# rpm -ivh openssh-server-6.1p1-5.el5.1.i386.rpm openssh-6.1p1-5.el5.1.i386.rpm openssh-askpass-6.1p1-5.el5.1.i386.rpm libedit-20090923-3.0_1.el5.rf.i386.rpm openssh-clients-6.1p1-5.el5.1.i386.rpm
Jika paket openssh versi bawaan CentOS default sudah terinstall, silahkan uninstall terlebih dahulu karena bisa menyebabkan conflict.
2. Menyiapkan Direktori baru untuk Client
Berikutnya, kita siapkan Direktori baru untuk Home Direktori client. Disini saya akan menyiapkan direktori /ftp didalam /home dengan format: /home/ftp/ucox. Direktori yang perlu dibuat adalah /sftp dan /ucox (bisa langsung dibuat dengan parameter "-d").
[root@MAJAPAHIT ~]# mkdir /home/ftp
[root@MAJAPAHIT ~]# mkdir /home/ftp/ucox
3. Membuat user baru untuk Client
[root@MAJAPAHIT ~]# useradd -d /home/ftp/ucox/ ucox
[root@MAJAPAHIT ~]# passwd ucox
4. Membatasi akses user Client agar tidak bisa mengakses shell,kita ketikkan perintah:
[root@MAJAPAHIT ~]# usermod -s /sbin/nologin ucox
atau kita bisa merubahnya secara manual pada file /etc/passwd.
5. Merubah Hak Akses dan Kepemilikan Direktori.
Berdasarkan hirarki Direktori dibawah ini, kita ubah hak akses untuk direktori /ftp
[root@MAJAPAHIT ~]# chown root:root /home/ftp/
Ubah kepemilikan direktori untuk Client Ucox
[root@MAJAPAHIT ~]# chown ucox:ucox -R /home/ftp/ucox/
6. Konfigurasi file sshd_config
Buka File sshd_config, lalu tambahkan beberapa baris konfigurasi seperti dibawah:
# override default of no subsystems
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match User ucox
ChrootDirectory /home/ftp/
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
7. Lakukan Test Login dengan WinSCP
Dengan cara-cara diatas, SFTP server kita sudah berjalan, dan user/cliet dengan nama ucox hanya bisa melakukan transfer file dari dan ke direktori nya saja, tidak bisa membuka direktori lain.
Saya coba tidak masuk gan... malah kembali ke menu utama winsp terus ni..
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapus