Sudah gak jamannya transfer file via FTP, gunakan SCP atau SFTP. Ungkapan ini benar sekali jika
Anda peduli akan keamanan data saat transfer file dari komputer Anda ke komputer lainnya dalam
jaringan lokal apalagi pada jaringan internet. FTP adalah protokol TCP/IP yang memungkinkan Anda
melakukan transfer file dari komputer Anda ke komputer FTP server. Namun dikarenakan masalah
keamanan data saat transfer file, FTP dianggap beresiko atau rentan terhadap penyadapan data saat
transfer. Guna mencegah penyadapan data saat transfer file kini dapat Anda gunakan layanan transfer
file via SCP atau SFTP. Meskipun sebenarnya kita tidak dapat menghilangkan sama sekali potensi
penyadapan data tersebut saat terjadi transfer file paling tidak dengan SCP dan SFTP data yang
ditransfer tersebut telah dienkripsi saat proses transfer data sehingga meskipun orang dapat menyadap
data tersebut, akan sulit untuk membacanya. Layanan transfer file via SCP dan SFTP ini membutuhkan
SSH daemon yang dapat disediakan oleh software OpenSSH. Umumnya sebagian besar distro Linux
menyertakan paket OpenSSH server ataupun client. SSH adalah suatu protokol dalam TCP/IP yang
memungkinkan Anda melakukan remote login kesuatu komputer dalam jaringan melalui channel
komunikasi yang aman (terenkripsi). Bagaimanakah SSH daemon dapat juga menyediakan layanan
transfer file via SCP dan SFTP ? Gambar-1 berikut ini mengilustrasikan cara kerja SCP/SFTP.
SCP/SFTP -> SSH (Diamond Server) -> Call SFTPD Subsystem -> Requires as shell -> User login and run other commands
Tampak bahwa saat terjadi permintaan SCP atau SFTP kepada SSH daemon, maka
SSH daemon memanggil subsistem SFTPD untuk melayani permintaan SFTP atau SCP, selanjutnya
subsistem sftpd membutuhkan sebuah Shell, barulah kemudian user dapat login dan mengeksekusi
perintah-perintah yang lain pada shell. Judul artikel yang penulis buat saat ini bertujuan untuk
menjelaskan bagaimanakah caranya agar kita tetap dapat menyediakan layanan transfer file yang aman
dengan SCP dan SFTP melalui channel komunikasi yang disediakan oleh SSH daemon, tetapi kita
tidak akan mengijinkan user untuk dapat melakukan akses shell untuk remote login.
Untuk maksud tersebut, penulis memanfaatkan sebuah shell khusus yang dapat membatasi user untuk
tidak dapat melakukan remote login ke komputer SSH server namun hanya dapat melakukan transfer
file. Apakah nama shell khusus yang dimaksud penulis ? Jawabannya yaitu rssh.
RSSH (restricted shell)
Rssh adalah sebuah restricted shell yang dapat digunakan dengan OpenSSH, yang hanya
memungkinkan SCP dan / atau SFTP. Saat ini rssh juga mencakup dukungan untuk rdist, rsync, dan
cvs. Sebagai contoh, jika Anda memiliki sebuah server yang Anda hanya ingin untuk mengizinkan
pengguna untuk menyalin file melalui SCP, tanpa menyediakan akses shell, Anda dapat menggunakan
rssh untuk melakukan itu.
Instalasi rssh
Jika Anda menggunakan distro linux Debian atau Ubuntu (penulis menggunakan ubuntu) maka Anda
dapat menginstal secara online menggunakan perintah apat-get .
Proses instalasi rssh di ubuntu
Jika Anda ingin menginstal rssh dari source maka Anda harus mendownload dahulu source rssh dengan
mengakses URL http://prdownloads.sourceforge.net/rssh/rssh-2.3.2.tar.gz?download . Selanjutnya
Ekstrak file source tersebut seperti perintah berikut ini:
Selanjutnya jika proses instalasi rssh selesai (baik dari source atau paket binary), lakukan langkah
berikut ini.
sudo echo "$( which rssh )" >> /etc/shells
File konfigurasi rssh adalah /etc/rssh.conf (atau /usr/local/etc/rssh.conf). Anda harus melakukan
konfigurasi pada file rssh.conf tersebut untuk menentukan service apa saja yang dapat diijinkan untuk
diakses (scp, sftp,rsync, cvs, rdist) oleh user. Untuk itu sebelumnya Anda harus membuat user yang
hanya akan dijinkan untuk SCP dan atau SFTP dengan menggunakan rssh.
Membuat user account untuk menggunakan rssh
Untuk membuat user account untuk rssh, gunakan perintah berikut ini:
sudo useradd m d /home/akhtar s /usr/bin/rssh akhtar
sudo passwd akhtar
User account yang sudah terdaftar pada sistem linux dapat juga Anda jadikan user untuk rssh , dengan
cara merubah shell user tersebut menjadi rssh. Berikut ini contoh merubah shell user account yang
sudah ada.
sudo usermod s /usr/bin/rssh henry
atau
sudo chsh s /usr/bin/rssh hana
Selanjutnya buktikan dahulu bahwa user-user dengan shell rssh tidak akan bisa melakukan akses shell
via ssh. Lakukan perintah berikut ini untuk mengujinya (sbg contoh ip server ssh adalah 192.168.1.237)
desi@ubuntu:~$ ssh akhtar@192.168.1.237
akhtar@192.168.1.237's password:
Linux ubuntu.lap.top 2.6.2712generic #1 SMP Thu Feb 5 09:26:35 UTC
2009 i686
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/
This account is restricted by rssh.
This user is locked out.
If you believe this is in error, please contact your system
administrator.
Connection to 192.168.1.237 closed.
Muncul pesan “This account is restricted by rssh” membuktikan bahwa user akhtar
adalah betul sebagai user yang dibatasi akses shell nya dikarenakan shell user akhtar menggunakan
rssh.
Konfigurasi rssh untuk mengijinkan user melakukan SCP dan SFTP
Secara default file konfigurasi rssh tidak mengijinkan user siapapun melakukan scp atau sftp. Untuk itu
kita akan coba melakukan konfigurasi agar user akhtar hanya dapat melakukan SCP dan SFTP. Untuk
itu Anda harus mengedit file /etc/rssh.conf, kemudian tambahkan pada bagian baris akhir file, entri
seperti berikut ini:
user=akhtar:011:00011
Penjelasan dari entri baris diatas adalah, user=akhtar menunjukkan username atau loginname dari user
yang akan diberikan ijin. Kemudian angka 011 adalah angka yang menunjukan nilai umask. Angka
00011 menunjukkan hanya diijinkan SFTP dan SCP. Penjelasan detil makna dari angka 00011 seperti
ini untuk angka 0 yang paling awal adalah angka yang menunjukan bahwa tidak dijinkan untuk rsync,
angka 0 berikutnya menunjukan tidak dijinkan untuk rdist, angka 0 berikutnya artinya tidak dijinkan
untuk cvs, dan selanjutnya adalah angka 1 yang menunjukkan ijin untuk sftp, dan angka 1 terakhir ijin
untuk scp.
Selanjutnya coba untuk melakukan scp ataupun sftp ke komputer ssh server 192.168.1.237, apakah bisa
atau tidak (seharusnya bisa jika konfigurasi benar).
Jika Anda akan memberikan ijin untuk user lainnya maka hal yang sama harus dilakukan seperti diatas,
Anda harus manambah entri baru dibawahnya yang meunjukkan konfigurasi ijin akses untuk user
tersebut.
________________________________________________________________________________________________
REferensi :: • http://pizzashack.org/rssh
• http://www.cyberciti.biz/tips/rhel-centos-linux-install-configure-rssh-shell.html