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.