KATEGORI: SFTP SERVER LINUX
Mengurung user yang menggunakan layanan SFTP
Ketika mereka berada di penjara yang kita buat, dengan begitu kita juga akan merasa lebih aman jika mereka mengakses server kita kapanpun itu.
Mengurung yang dimaksud disini adalah membatasi user yang enggunakan layanan SFTP agar hanya bisa mengakses home direktorinya saja. SFTP merupakan salah satu layanan bawaan dari SSH, kita juga mengenal SSH lebih aman dari pada Telnet, begitu pula SFTP yang lebih aman dari FTP.
Ada 2 layanan bawaan dari SSH yaitu SCP dan SFTP, namun pada tutorial kali ini kita akan membahas penggunaan SFTP server untuk mengurung user, lalu muncul lagi pertanyaan mengapa perlu dikurung?
Secara default atau bawaan, ketika kita mengakses server menggunakan layanan sftp dengan user tertentu, user tersebut dapat dengan leluasa berkeliaran kemana saja sampai pada root direktori yang asli. Maka dengan kasus tersebut, kita sudah mengetahui solusinya yaitu dengan mengikuti tutorial ini.
Sebelumnya pastikan kalian sudah pernah mengonfigurasi SSH dasar, karena saya tidak akan menjelaskan lagi hal-hal yang berkaitan dengan konfigurasi IP address, ssh dasar dan semacamnya. Kalau belum langsung klik disini dan pergi ke nomor 7.
1. Menyiapkan user dan group
Misalkan kita memiliki 2 orang tamu yang membutuhkan akses ke server untuk mengambil file saja dan melihat-lihat. Maka kita sebagai sysadmin perlu membuat dan mengelompokkan 2 user tersebut kedalam group yang sama, ketiklah perintah dibawah ini untuk membuat grupnya;
$ addgroup hanya-sftp
Keterangan:
- addgroup grup_baru, membuat group yang nantinya akan mengelompokkan beberapa user kedalam grup tersebut.
Selanjutnya mari kita buat user tamu1 dan tamu2 yang hanya diperbolehkan untuk mengakses server dengan layanan sftp;
$ adduser --ingroup hanya-sftp --shell /usr/sbin/nologin tamu1
$ adduser --ingroup hanya-sftp --shell /usr/sbin/nologin tamu2
Sesuaikan password yang mudah oleh kalian;
Keterangan:
- adduser user_baru digunakan untuk membuat user yang disertai home direktorinya juga. Biasanya home direktori dari semua user yang dibuat terdapat pada /home, bisa kalian lihat saja kedalam direktori tersebut pasti mengandung tamu1 dan tamu2.
- Opsi --ingroup digunakan untuk mengelompokkan user yang dibuat kedalam grup yang telah ada yaitu hanya-sftp.
- Opsi --shell agak sulit dijelaskan, klik disini untuk mengetahui pengertiannya.
- /usr/sbin/nologin secara default, shellnya diarahkan pada /bin/bash yang bergun untuk memberikan perintah kepada sistem operasi linux, tapi karena kita akan membatasi kedua user hanya untuk mengakses sftp, maka /usr/sbin/nologin yang bertindak untuk tidak mengizinkan pengguna login langsung dan memberikan perintah.
2. Mengubah kepemilikian home direktori
Kalian perlu memahami sedikit teori tentang chroot, karena pada tutorial kali ini kita membutuhkan opsi chroot untuk mengurung kedua user tamu1 dan tamu2;
Setelah itu kita ubah kepemilikan home direktori dari kedua user diatas yaitu /home/tamu1/ dan /home/tamu2/ untuk diberikan kepada user root, pada saat ini kepemilikannya masih dipegang oleh kedua user masing-masing. Kalian juga bisa melihat kondisi kepemilikan dan perizinan home direktori dengan mengetik perintah dibawah;
$ ls -al /home/
Keterangan:
- ls adalah perintah untuk mengetahui isi file dan folder dari sebuah direktori.
- Opsi -a akan memunculkan semua isi file dan folder termasuk yang diawali dengan titik (.)
- Opsi -l akan memberi tahu lebih detail komponen (perizinan, ukuran, tanggal dibuat dan kepemilikan) dari semua file dan folder didalam direktori.
Mengapa perlu diubah? karena kita akan membuat root direktori yang baru, coba lebih pahami lagi mengenai teori diatas agar mudah. Ketik perintah dibawah;
$ chown -R root /home/tamu1/
$ chown -R root /home/tamu2/
Keterangan:
- chown adalah perintah untuk mengubah kepemilikan dari sebuah direktori atau file.
- Opsi -R kepanjangannya adalah Recursive, artinya perintah tersebut akan mengubah kepemilikan dari direktori beserta semua isi file didalamnya.
- /home/tamu* adalah home direktori dari user tamu1 dan tamu2, klik disini untuk mengetahui lebih dalam.
Langkah terakhir di tahap ini adalah mengubah perizinan file dan home direktori dari kedua user diatas, kalian bisa cek dulu perizinan defaultnya dengan mengetik perintah dibawah;
$ ls -al /home/
Jika perizinan dari home direktori diatas kita konversikan kedalam kode oktal ID maka berubah menjadi;
- 7 = Owner
- 0 = Group
- 0 = Other/lainnya
Maka artinya hanya user root yang memiliki akses ke direktori tersebut, kita perlu mengubah agar user lain dan kelompok grup kita dapat membaca direktori juga, lihat tabel dibawah agar lebih mudah memahaminya.
Ketik perintah dibawah untuk mengubah perizinannya;
$ chmod -R 755 /home/tamu*
Keterangan:
- chmod adalah perintah untuk mengubah perizinan dari sebuah direktori atau file
- * mendefinisikan semua character yang ada, dalam hal ini dia mewakili nomor 1 dan 2.
3. Mengonfigurasi Penjara SFTP dalam SSH
Seperti yang sudah saya asumsikan di awal, kalian sudah mengonfigurasi SSH dasar, minimal sudah dapat remote menggunakan root dengan password. Setelah itu, ketik perintah dibawah untuk masuk kedalam file konfigurasi SSH server;
$ nano /etc/ssh/sshd_config
Gunakan fungsi key CTRL+W untuk mencari kata kunci yang dibutuhkan, kita akan mencari ‘Subsystem’. Setelah ketemu, berikan pagar di sebelum baris tersebut sehingga menjadi seperti dibawah ini;
…# override default of no subsystems#Subsystem sftp /usr/lib/openssh/sftp-server…
Lalu tambahkan lagi baris konfigurasi baru untuk mengurung grup hanya-sftp agar mereka terkurung dalam home direktorinya masing-masing, dalam hal ini 2 anggota grup tersebut adalah tamu1 dan tamu2.
…#Subsystem sftp internal-sftp Match Group hanya-sftp X11Forwarding no AllowTcpForwarding no ChrootDirectory ~ ForceCommand internal-sftp PasswordAuthentication yes…
Keterangan:
- Subsystem LAYANAN , mendefinisikan layanan yang akan kita konfigurasi sendiri.
- internal-sftp memaksa penggunaan server sftp agar memiliki proses tersendiri atau tidak bergantung pada konfigurasi bawaan SSH.
- AllowTCPForwarding, menentukan apakah boleh atau tidak untuk melakukan remote SSH dari server kita lalu ke mesin lainnya, dalam hal ini tidak diperbolehkan untuk alasan keamanan.
- Match akan menarik user yang memiliki group hanya-sftp agar mengikuti konfigurasi yang kita buat.
- ChrootDirectory Menentukan direktori yang digunakan untuk mengurung user, dalam hal ini kita mengurung tamu1 dan tamu2 kedalam home direktorinya sendiri.
- PasswordAuthentication mengizinkan atau tidak mengizinkan remote SSH menggunakan password, dalam hal ini kita mengizinkan.
Pastikan warna kuning dari hasil konfigurasinya seperti gambar dibawah ini;
CTRL+X+Y+ENTER Untuk keluar.
Setelah itu restart, ketik perintah dibawah;
$ service ssh restart
Sekarang kita buat lagi file untuk mengisi kekosongan hati kedua home direktori tersebut, ketik perintah dibawah;
$ cd /home/tamu1//home/tamu1/$ touch tamu1/home/tamu1/$ cd /home/tamu2//home/tamu2/$ touch tamu2
4. Verifikasi penjara SFTP
Tanpa perlu lama-lama, ketik perintah dibawah untuk melakukan percobaan remote SFTP dari mesin klien, dalam hal ini IP Addressnya 192.168.169.1 tentu saja mungkin berbeda dengan kalian, tinggal sesuaikan saja. Jangan lupa juga masukkan password yang dibuat oleh kalian.
> sftp tamu1@192.168.169.1$ pwd$ dir$ exit> sftp tamu2@192.168.169.1$ pwd$ dir$ exit
Bisa kalian lihat root direktorinya bukan lah /home/tamu1 ataupun /home/tamu2, tapi hanya / saja, itulah salah satu tanda bahwa kita telah mengurung user tamu1 dan tamu2. Coba kalian bandingkan dengan verifikasi tanpa penjara dengan klik disini.
Lalu salah satu faktor yang menandakan mereka berada dalam home direktorinya adalah keberadaan file tamu1 dan tamu2 dalam kedua direktori tersebut.
Kesimpulan
Dalam beberapa kondisi ada kalanya orang IT lain membutuhkan akses ke server kita, maka dengan begitu kita harus menyesuaikan kepentingan pekerjaannya dengan solusi keamanan yang telah kita buat. Kasus kali ini adalah ketika pengguna lain hanya butuh untuk mengambil file yang ada di dalam server.
Learn then Share