Translate








Kamis, 20 Februari 2014

SFTP dengan CHROOT pada Linux CentOS

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:
  1. Instalasi paket Openssh yang dibutuhkan.
  2. 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.
  3. Membuat User baru untuk Client, misalnya saja user baru tersebut adalah Ucox.
  4. Batasi User Client agar tidak bisa mengakses SHELL.
  5. Lakukan perubahan Hak Akses dan kepemilikan direktori
  6. Konfigurasi pada /etc/ssh/sshd_config
  7. 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.

Like the Post? Do share with your Friends.

1 komentar:

  1. Saya coba tidak masuk gan... malah kembali ke menu utama winsp terus ni..

    BalasHapus

IconIconIconFollow Me on Pinterest

Blogger news

Blogroll

What's Hot