Setup SFTP di Centos 6

Banyak artikel mengenai cara setup SFTP di internet tapi dari berbagai macam artikel itu, selalu ada saja yang tidak lengkap atau mengasumsikan pembacanya sudah paham bagaimana bekerjanya SFTP. Artikel ini dibuat dengan tujuan memberikan gambaran yang sejelas-jelasnya bagaimana menyetel SFTP.Apa itu SFTP? SFTP adalah SSH File Transfer Protocol atau dikenal juga dengan Secure FTP. Keunggulan SFTP dibandingkan dengan FTP ataupun SCP adalah:

Sekuriti. SFTP adalah ektensi dari SSH, sehingga loginnya dan trafiknya terenkripsi. SFTP juga unggul dari SCP karena SFTP tidak memerlukan shell bagi usernya. User juga akan di chroot (dipenjara) di dalam direktorinya sendiri.

SFTP tersedia secara default mulai dari paket OpenSSH 4.9 ke atas. Tersedia di Centos 6, Ubuntu 11.04, dsbnya.

Berikut ini adalah cara setup SFTP:

1. Siapkan home direktorinya.
mkdir -p /home/sftproot/home
 
2. Buat Groupnya.
groupadd sftponly
 
3a. Buat usernya.
useradd user1 user2
 
3b. Beri password.
passwd user1
passwd user2
 
3c. Command di atas akan membuat direktori /home/user1 dan /home/user2. 
Kita harus memindahkan direktori itu.
mv /home/user1 /home/sftproot/home
mv /home/user2 /home/sftproot/home
 
3d. Masukkan user ke dalam group.
usermod -g sftponly user1
usermod -g sftponly user2
 
4. Atur permission home direktori.
chown root.root /home/sftproot
chown .sftponly /home/sftproot/home
chmod 755 /home/sftproot/home
chmod 700 /home/sftproot/home/user1
chmod 700 /home/sftproot/home/user2
 
5. Edit /etc/ssh/sshd_config
Di bagian agak bawah, komen baris ini:
Subsystem      sftp    /usr/libexec/openssh/sftp-server
Menjadi:
#Subsystem      sftp    /usr/libexec/openssh/sftp-server
 
Dan tambahkan ini:
Subsystem sftp internal-sftp
Match Group sftponly
        ChrootDirectory /home/sftproot
        ForceCommand internal-sftp
        AllowTcpForwarding no
 
Save dan restart SSH.
 
6. Edit /etc/passwd agar user1 dan user2 tidak bisa shell akses (ubah /bin/bash menjadi /sbin/nologin).
user1:x:501:501::/home/user1:/sbin/nologin
user2:x:502:501::/home/user2:/sbin/nologin
 
7. Bila kamu mau memakai SELinux, jalankan command ini agar SFTP bisa menulis ke home.
setsebool -P ssh_chroot_rw_homedirs on

Penjelasan cara kerja SFTP:
Ketika user1 atau user2 melakukan koneksi menggunakan protokol SFTP, maka OpenSSH akan melakukan otentikasi. Dan jika otentikasi berhasil, maka user1 (misalnya) akan di chroot (dipenjara) di dalam direktori /home/sftproot/home/user1. Dia maksimal cuma bisa naik ke direktori /home/sftproot/home, dia tidak akan bisa iseng-iseng menjelajahi direktori user lain ataupun direktori system.

Demikianlah artikel singkat ini. Semoga berguna :)

Singapura, 5 November 2013.
Fajar Priyanto
Penulis yang sedang berpetualang.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>