Cara Mengatur Hak Akses User Linux terhadap Shell dan Sudoers

Hak Akses/Permission user terhadap Shell dan Sudoers

Saat kamu membuat user ,kamu sebagai root bisa mengatur home directory dan apakah user tersebut dibolehkan mengakses shell atau tidak,karena user pada linux tidak semua memerlukan shell akses (untuk alasan keamanan) saat digunakan.

Taukah kamu ,di linux setiap service mempunyai user dan privilage sendiri untuk menjalankan service ,Misalnya MariaDB service (Database server) menggunakan user mysql tanpa shell (/sbin/nologin) dan aplikasi daemon (service)lain nya juga berkarakteristiks eperti mariaDB.
user dan shell linux

 

shell path /sbin/nologin pada user mysql  artinya user mysql memang tidak diberikan akses ke shell,karena service MariaDB yang menggunakan user mysql untuk menjalankan service tidak memerlukan shell(kalau gak perlu maka jangan dikasih,ini untuk alasan keamanan).

 

Mengenal Apa itu Shell pada linux?

Shell -Simpel nya shell adalah program yang mengambil perintah dari ketikan yang kamu ketik lewat keyboard dan memberikan nya kepada Sistem operasi untuk dijalankan.Pada zaman dahulu kala shell merupakan  satu satunya interface yang ada pada komputer berbasis Unix untuk melakukan interaksi dengan komputer tersebut.Pada zaman modern seperti sekarang ini komputer mempunyai banyak interface seperti graphical user interfaces (GUIs) dan command line interfaces (CLIs) yang berguna seperti shell untuk mengetikan perintah dalam bentuk text dengan keyboard seperti zaman dahulu kala.

Aplikasi Shell -mayoritas Linux modern saat ini menggunakan bash yang bertindak sebagai aplikasi shell ,bash yang merupakan akronim dari Bourne Again SHell,merupakan pengembangan dari aplikasi shell sebelumnya dengan nama sh yang dibuat oleh Steve Bourne.bash bukan satu-satunya aplikasi shell namun bash digunakan oleh sebagian besar distro linux, aplikasi shell selain bash antara lain ksh,tcsh dan zsh.

Terminal emulator – Karena linux sekarang sudah menggunakan GUI dan untuk memudahkan mengakses shell maka linux menggunakan terminal emulator,ada banyak jenis terminal emulator saat ini yang pada dasarnya sama yaitu memudahkan user untuk mengakses shell dari GUI tanpa harus menggunakan remote SSH atau melalui TTY. bebrapa terminal emulator yang populer diantaranya Xterm,gnome-terminal,konsole,rxvt dll.

Cara setting HakAkses/Permisson/privileges user terhadap Linux Shell

Path– ada beberapa path yang menyatakan bahwah user tidak diberi akses ke shell, path ini baiknya dicek dulu untuk setiap distro linux yang kalian gunakan dan gunakan yang tersedia pada linux kalian .Path yang menyatakan tanpa wewenang shell antara lain /bin/false , /bin/nologin ,  /sbin/nologin ,  /usr/sbin/nologin . dengan memberikan path yang disediakan oleh sistem maka user masih bisa melakukan login melalui SSH (jika diberi permission remote dan login) dan bisa melakukan port forwarding (tehnik ini biasanya dipakai oleh jasa penjualan akun SSH premium untuk proxy)

Untuk  mengeset akses shell user bisa kamu lakukan saat membuat user atau setelah user dibuat. contoh pemberian akses user ke shell saat user dinbuat [[email protected] masarie]# useradd -md /home/andi -s /bin/bash andi   dan untuk mencabut akses shell user andi maka kamu gunakan perintah [[email protected] masarie]# usermod -s /bin/false andi

melihat shell user – Untuk melihat shell user  kita bisa melihat isi file /etc/passwd dengan perintah cat /etc/passwd  dan untuk melakukan pencarian tertentu kita gunakan cat /etc/passwd |grep andi

melihat shell yang digunakan user pada linux

Mengenal Apa itu sudoers

Walau user diberi akses ke shell namun bukan berarti user tersebut mempunyai akses penuh ke mesin,karena hanya user dengan privilage root yang mempunyai akses tak terbatas terhadap  mesin.Pemberian privilage root harus dipertimbangkan dengan matang karena jika diberikan ke user yang salah maka akibatnya bisa fatal.

Sudo– Karena tanggung jawab yang begitu besar memegang akses root maka sudo ada dengan segala kemudahan nya, sudo pada dasarnya mengizinkan administrator memberikan wewenang kepada user atau user yang ada didalam group utnuk menjalankan perintah dengan privilage root (bukan user root tapi bisa menjalankan perintah root).

sudo merupakan alternatif dari su untuk menjalankan perintah sebagai root.tidak seperti su yang menjalankan shell /terminal emulator sebagai root,sudo hanya memberikan akses root secara sementara kepada sebaris perintah yang didepan nya dibubuhi sudo.Dengan hanya memberikan akses root secara sementara,sudo memeprkecil kemungkinan kerusakan system yang dikarenakan salah  mengetik perintah /typo. Contoh : jika kita ingin merubah owner menggunakan perintah chown maka kita tambahkan sudo didepannya agar perintah chown dieksekusi dengan privilage root  [[email protected] ~]$ sudo chown andi:users /home/andi

Cara setting hak akses/permission/privileges user untuk sudoers

Ada beberapa cara agar user yang kamu inginkan bisa mendapatkan akses root dengan memasukan user yang dimaksud pada sudoers,namun mengedit langsung file /etc/sudoers dan menambahkan user yang dimaksud adalah solusi paling mudah .

Edit file sudoers dengan perintah sudo nano /etc/sudoers dan tambahkan user dibawah ## User privilege specification dengan format namauser ALL=(ALL) ALL  jangan hapus baris  root ALL=(ALL) ALL tambahkan saja dibawah nya
L
save dengan menekan ctrl+x lalu Y lalu tekan enter

KESIMPULAN:

Saat kamu membuat user pada linux baiknya kamu memperhatikan hak akses user/permission user terhadap shell/command,memberikan akses shell/command kepada user secara tidak bijakdapat menyebabkan resiko hacking terhadap linux yang kamu kelola jika sampai hacker menggunakan user yang telah kamu buat.

Memahami Advanced Files Permission Pada Linux

Memahami File Permission pada Linux

 

Pada linux file sistem, semua file dan folder mempunyai permission(rambu hak akses) untuk setiap user dan group,tujuan diberlakukan/set file permission pada linux adalah untuk alasan keamanan  yang tujuan utamanya adalah membatasi akses user terhadap suatu file,cara ini sangat efektif untuk memproteksi file sistem dari modifikasi user yang tidak bertanggung jawab (hacker).

Memahami Hak Kepemilikan File

.Setiap file dan folder pada linux dimiliki oleh user tertentu(owner) dan group tertentu dan tidak sembarang user bisa mengakses dan memodifikasi file tersebut, hak akses suatu file didefinisikan dalam suatu atribut yang sering disebut file permission.

Pada attribut file permission menjelaskan permission/hak akses untuk 3 kelompok user,yaitu :

  • Ownner : Menjelaskan Permission/hak akses untuk owner/pemilik file tersebut.
  • Group : Menentukan permission/hak akses untuk sekelompok user yang masuk dalam group tersebut. jadi semua user yang masuk ke group tersebut akan mempunyai hak akses file yang sama
  • Other/World : Menentukan permission/hak akses untuk user selain owner dan user diluar group yang tercantum pada file permisison.

Memahami Attribute File Permission

Untuk menjelaskan hak akses suatu file,linux menggunakan flag permission ,dimana setiap flag menjelaskan hak akses untuk user owner,group dan world/other.

  • Read (R) : Hak akses untuk membaca isi file/folder
  • Write(W) : Hak akses untuk memodifikasi suatu file/memodifikasi isi folder
  • Execute(X) : Hak akses untuk mengeksekusi sutu file/menjalankan aplikasi.

Jadi pada attribut file permission nanti ada flag permission seperti diatas untuk menentukan hak akses user terhadap file tersebut.

Selain dengan simbolic/huruf,flag file permission juga bisa dijabarkan menggunakan angka. Metode atribut angka jauh lebih efisien saat kamu ingin mengeset attribut suaru file,karena kamu hanya mengetikan 1 digit file untuk setiap segmen (total 3 digit angka untuk mengeset permission  owner,group dan other).
Attribut/permission Read(R) mempunyai nilai 2 ,Write (W) mempunyai nilai 4 sedangkan attribut executable(X) mempunyai nilai 1.

Jadi jika kamu ingin megeset permission suatu file dengan hak akses Owner (read,write,execute) ,group (read,execute) dan Other (read,execute) maka kamu cukup mengesetnya menggunakan 3 digit angka yaitu 755

memahami  file permission pada linux

$ chmod 755 nama_file_folder

 

 

 

 

PSticky bit Permission

 

sticky bit permission ini digunakan untuk mengantisipasi dihapusnya sebuah file/folder oleh user  (other/world) yang mempunyai permission Write (w) terhadap file/folder tersebut,dengan demikian hanya root dan owner yang bisa mendelet file/folder tersebut. jadi ingat,attribut ini hanya digunakan untuk mengeset user yang masuk dalam kategori other/world (bukan owner ataupun group).
sticky bit permission dengan executable permission

numeric value sticky bit permission =1 dan sysmbolic character sticky bit permission =t

Contoh kamu ingin mengeset sticky bit permission pada folder /home/share maka kamu bisa mengesetnya menggunakan :

Cara symbolic
# chmod o+t /home/share atau chmod +t /home/share 
Untuk menghapus atribut permision kamu bisa gunakan operator  (minus)
# chmod o-t /home/share atau chmod -t /home/share

Cara Numeric
Pertama kamu harus tau permission seperti apa yang kamu inginkan pada directory /home/share misal : drwxrw-rwx lalu kamu bisa mengkonversinya  kedalam numeric 3 digit  permission dan  menambahkan angka 1 pada digit awal menjadi 4 digit.
r(2)+w(4)+x(1)  r(2)+w(4)+ (0) r(2)+w(4)+x(1) –> drwxrw-rwx =767
# chmod 1767 /home/share

setelah diberi attribut sticky bit permission maka jika dilihat menggunakan perintah ls -l maka akan terlihat seperti dibawah ini

[[email protected] ~]# chmod 1767 /home/share 
[[email protected] ~]# ls -l /home/ 
drwxrw-rwt 1 root root 0 Jul 11 14:25 share

 

T besar dan t Kecil pada sticky bit attribute

T besar dan t kecil memiliki makna yang berbeda, dimana T besar mengindikasikan atribut x tidak diset dan t kecil mengindikasikan attribut x diset.
Logic nya begini sticky bit + execute permision diwakili dengan t kecil dan  sticky bit + non execute permission diwakili dengan Tbesar
sticky bit permission tanpa executable permission

contoh: jika kamu ingin membuat folder /home/share menjadi non executable tapi tetap menerapkan attribut sticky bit permission maka caranya :

Cara symbolic
$ sudo chmod o+t /home/share atau chmod +t /home/share 

$ sudo chmod o-x /home/share

Cara Numeric
Pertama kamu harus tau permission seperti apa yang kamu inginkan pada directory /home/share misal : drwxrw-rw- lalu kamu mengkonversinya kedalam numeric 3 digit  permission dan  menambahkan angka 1 pada digit awal menjadi 4 digit.
r(2)+w(4)+x(1)  r(2)+w(4)+ (0) r(2)+w(4)+(0) –> drwxrw-rw- =766
chmod 1766 /home/share

 mari lihat dengan perintah ls -l maka hasilnya akan terlihat seperti dibawah ini (atribut T besar)

[[email protected] ~]# chmod 1766 /home/share 
[[email protected] ~]# ls -l /home/ 
drwxrw-rwT 1 root root 0 Jul 11 14:25 share

 

SUID Permission

 

SUID (Set owner User ID up on execution) merupakan special permission yang diberikan kepada file pada linux sistem.Secara normal ketika aplikasi dijalankan di linux aplikasi tersebut dieksekusi menggunakan user dan permission dari user itu sendiri.SUID memberikan permission secara sementara kepada aplikasi agar dijalankan menggunakan user dan permission dari owner file/aplikasi tersebut, bukan menggunakan user dan permission user yang menjalanan nya.

cara setting SUID permisison di linux

Kapan dan untuk apa SUID digunakan?

SUID digunakan ketika kita sebagai admin tidak mau memberikan akses root /sudo kepada user yang akan menjalankan aplikasi tertentu,tetapi aplikasi tertentu hanya bisa berjalan jika dijalankan oleh root maka solusinya adalah dengan set owner aplikasi ke user root dan  menambahkan permission SUID ke aplikasi tersebut.Setelah aplikasi diset SUID maka aplikasi akan berjalan menggunakan user root dan permission root walau dijalankan oleh user biasa tanpa permission root /sudo.

Cara mengeset SUID pada sebuah file /aplikasi 

SUID memiliki numerical value 4 dan symbolic value s ,jadi untuk mengeset file/folder dengan attribut SUID kita hanya perlu menambahkan angka 4 pada digit pertama saat set permission menggunakan cara numerical/octal  dan menambahkan +s jika menggunakan cara symbolic

Contoh : kita ingin set SUID pada file degan nama aplikasi.sh

Cara symbolic
# chmod u+s aplikasi.sh dan untuk menghapus SUID permission  gunakan  # chmod u-s aplikasi.sh 

Cara Numeric
Pertama kita harus tau permission seperti apa yang kita inginkan pada file aplikasi.sh misal : -rwx–x–x lalu kita mengkonversi kedalam numeric 3 digit  permission dan  menambahkan angka 4 pada digit awal menjadi 4 digit.
r(2)+w(4)+x(1)    (0)+(0)+ x(1)     (0)+(0)+x(1) –> -rwx–x–x =711
# chmod 4711 aplikasi.sh untuk menghapus SUID permission ganti 4 jadi tak ada # chmod 711 aplikasi.sh

Mengeset SUID harus dilakukan oleh user owner yang ingin permission nya diturunkan (inherit) ketika file/aplikasi tersebut dijalankan oleh user lain.

S besar dan s kecil memiliki arti yang berbeda ketika muncul di atribut saat menggunakan perintah ls -l ,dimana S besar mengindikasikan atribut x tidak diset dan s kecil mengindikasikan attribut x diset.
Logic nya begini SUID + execute permision diwakili dengan s kecil dan  SUID + non execute permission diwakili dengan S besar

 

 

SGID Permisison

 

SGID (Set Group ID up on execution) adalah special permission yang diberikan untuk file/folder pada linux.Pada kasus normal,ketika user mengeksekusi file/aplikasi maka aplikasi tersebut akan berjalan menggunakan user dan permission user yang menjalankannya.SGID atribut memberikan permission sementara kepada user diluar group (other) untuk menjalankan file/aplikasi menggunakan permission group dari file/aplikasi itu sendiri.
cara set SGID advanced permission pada linux

SGID mirip dengan SUID.Perbedaan nya adalah SUID menggunakan owner permission untuk menjalankan file/aplikasi sedangkan SGID menggunakan group permission untuk menjalankan file/aplikasi ketimbang menggunakan permission user yang menjalankan file/applikasi tersebut.

Cara mengeset SGID pada sebuah file /aplikasi 

SGID memiliki numerical value 2 dan symbolic value s ,jadi untuk mengeset file/folder dengan attribut SUID kita hanya perlu menambahkan angka 2 pada digit pertama saat set permission menggunakan cara numerical/octal  dan menambahkan +s jika menggunakan cara symbolic

Contoh : kita ingin set SGID pada file degan nama aplikasi.sh

Cara symbolic
# chmod g+s aplikasi.sh dan untuk menghapus SUID permission  gunakan  # chmod g-s aplikasi.sh 

Cara Numeric
Pertama kita harus tau permission seperti apa yang kita inginkan pada file aplikasi.sh misal : -rwxrwx— lalu kita mengkonversi kedalam numeric 3 digit  permission dan  menambahkan angka 2 pada digit awal menjadi 4 digit.
r(2)+w(4)+x(1)    r(2)+w(4)+ x(1)     (0)+(0)+(0) –> -rwxrwx— =770
# chmod 2770 aplikasi.sh untuk menghapus SUID permission ganti 4 jadi tak ada # chmod 770 aplikasi.sh

KESIMPULAN

Saat kamu belajar linux server kamu wajib untuk mempelajari dan memahami advanced dan special permission linux,karena akan sangat membantu mengatasi masalah saat kamu mengelola server linux.

Browsing dengan Aman Menggunakan SSH Tunnel

Tujuan

Agar apa yang kita browsing tidak bisa di monitor oleh IT Administrator

Skema

Komputer kamu akan membuka koneksi Secure menggunakan protokol SSH ke server SSH setelah itu komputer kamu akan di atur agar setiap browsing menggunakan jalur tersebut sehingga Admin IT Administrator di kantor kita tidak bisa melihat apa yang sedang kita browsing.

Caranya

Silakan daftar ke http://www.vpnjantit.com/ agar kamu punya server ssh tunnel yang gratis lalu setelah kamu berhasil kamu bisa menggunakan akses SSH tersebut.

 

Buka terminal dan jalankan perintah berikut

ssh -D 8000 -f -C -q -N [email protected]serversshkamu.com

Penjelasan perintah tersebut:

  • ssh : adalah sebuah aplikasi SSH client
  • -D: Memberi tahu SSH bahwa kita akan menggunakan koneksi SOCKS tunnel menggunakan port 8000 (kamu boleh pilih nomor antara 1025-65536)
  • -f: Jalankan proses di background
  • -C: Compress data sebelum di kirim
  • -q: Menggunakan quite mode
  • -N: Memberitahu SSH bahwa tidak ada perintah apapun saat tunnel terjadi

 

Pastikan kamu mengganti userkamu dengan user yang kamu dapatkan dari ssh server dan juga serversshkamu di ganti dengan server ssh yang sudah kamu dapatkan.

Untuk memastikan tunnel kamu berjalan dengan lancar kamu bisa jalankan perintah berikut

ps aux | grep ssh

Seharusnya kamu akan melihat hasil nya seperti ini

hary 3166   0.0  0.1  2445908   4896 s001  S+    2:17PM   0:01.51 ssh -D 8000 -C -q -N [email protected]

 

jika hasilnya kurang lebih seperti itu berarti komputer kamu sudah terhubung dengan server ssh, langkah selanjutnya adalah melakukan pengaturan di browser untuk menggunakan tunnel yang sudah di buat tadi.

 

Buka Mozilla Firefox kemudian masuke ke menu Preferences atau Option

  1. Kemudian arahkan ke Advanced
  2. Klik tab Network

3. Setelah itu klik tombol Settings lalu akan muncul window baru

Setelah itu pilih Manual proxy configurations lalu:

Ketikan localhost di kolom SOCKS Host 

Kemudian ketikan Port yang tadi kamu buat di server tunnel yaitu 8000

Setelah itu tekan tombol OK

Sekarang kamu bisa browsing apa saja tanpa harus di intip oleh IT Administrator kamu.

 

 

Selamat Mencoba