LAB 3.2 SERVER SSH

LAB 3.2 SERVER SSH 

Pengertian SSH (Secure Shell)
SSH adalah aplikasi pengganti remote login seperti telnet, yang jauh lebih aman. Fungsi utama aplikasi ini adalah untuk mengakses mesin secara remote. Sama seperti telnet, SSH Client menyediakan User dengan  Shell untuk remote ke mesin. Tidak seperti telnet, SSH menyediakan koneksi enkripsi antara klien dengan server. Dalam prakteknya, penggunaan menggunakan telnet dan ssh seperti perbedaan dengan mengakses website biasa dengan website yang lebih aman (HTTPS).

Manfaat SSH
Dengan menggunakan SSH Anda dapat bergerak bebas melalui stukrur file akun hosting. Anda juga dapat menjalankan tugas seperti monitoring log file dan memulai atau menghentikan service ( berlaku di layanan VPS / Dedicated). Bahkan ANda juga dapat menggunakannya untuk install software ke akun hostingmu atau manage database MySQL. SSH mengijinkan Anda untuk melakukan banyak hal lebih dari standard web.
TOPOLOGI


IP ADDRESS :

Setting network server CentOS7, client 1 Windows7, dan client 2 CentOS7 :
network>>>adapter 1>>> not attached 



jangan lupa untuk di powered off ketika ingin masuk GNS3, oke sekarang kita close saja virtualnya.


cara membuat topologinya di GNS 3 kalian bisa visit postingan saya sebelumnya klik saja disini.

KONFIGURASI SERVER 

1) secara default server SSH sudah terinstall pada CentOS7 sehingga kita tidak perlu lagi menginstall SSH. jika belum terinstall kita bisa menginstall packetnya dengan cara sebagi berikut :
yum install openssh-server -y 


2) untuk melihat apakah paket sudah terinstall yaitu dengan menggunakan command atau perintah :

rpm -qa | grep ssh 


3) untuk mengetahui versi SSH bisa menggunakan perintah sebagai berikut :

ssh -V
 maka hasil outputnya adalah :



Keterangan :
grep : adalah sebuah perintah yang berfungsi untuk mencari sebuah string pada suatu file.
ssh : adalah string yang akan dicari.

 KONFIGURASI CLIENT 1 

1) untuk client yang menggunakan windows kita harus menggunakan aplikasi tambahan yaitu : putty, putty dapat di download di website http://www.putty.org/

setelah di download jalankan aplikasi putty masukkan IP Address server yang telah kita buat sebelumnya :



2) setelah itu masukkan user root dengan password yang digunakan ketika login ke server, jika password yang dimasukkan benar maka kita akan masuk kedalam system server yang telah kita buat :


KONFIGURASI CLIENT2

1) Untuk client2 karena menggunakan linux CentOS 7 sebenernya ketika kita install mode minimal install maka selain paket SSH server juga terdapat SSH client, hal itu juga bisa kita lihat dengan menggunakan perintah

rpm -qa | grep ssh




2) maka akan terlihat paket openssh-client-6.4p1-8.el7.x86_64 seperti pada gambar di atas , jika paket tersebut belum terinstall maka kita bisa melakukan installasi menggunakan perintah :


setelah itu untuk melakukan remote bisa menggunakan perintah :
ssh root@172.16.11.105
atau
ssh -l root 172.16.11.105 
 maka hasilnya adalah sebagai berikut :


keterangan :

SSH : ini perintah bahwa kita ingin mengakses ssh
root : ini ada user yang dipilih sewaktu ingin mengakses ssh
172.16.11.105 : adalah ip server yang akan diakses client.


PEMBUKTIAN BAHWA SSH LEBIH SECURE

Jika kita melakukan capture ketikamelakukan remote menggunakan ssh maka yang di dapat hasilnya adalah sebagai berikut :


terlihat bahwa hasil capture menggunakan wireshark tidak mampu melihat hasil yang diketikkan oleh client hal ini dikarenakan ketika paket data yang berupa remote akan di enkripsi oleh SSH sehingga akan bisa dilihat jika menggunakan aplikasi wireshark hal ini berbeda dengan telnet yang dikirim tidak menggunakan enkripsi karena datanya masih berupa cleartext.

DISABLE ROOT ACCESS DAN LIMIT USER ACCESS


1) dengan mengaktifkan SSH login menggunakan root dan hanya memperbolehkan user account yang bisa login akan menambah keamanan pada server yang telah kita buat. yang harus dilakukan adalah buat user dan password dengan menggunakan perintah :



2) untuk konfigurasinya edit file
vi /etc/ssh/sshd_config



kemudian ubah PermitLoginRoot yes menjadi PermitLoginRoot no agar tidak bisa remote menggunakan user root. dan tambahkan
"AllowUsers alifa"


menjadi :


keterangan :
PermitRootLogin no : artinya bahwa root tidak bisa atau tidak diperbolehkan login.
AllowUsers alifa : Artinya yang bisa login hanya user alifa.

3) setelah itu restart ssh dengan perintah :


VERIFIKASI CLIENT2

1) setelah server direstart lakukan login menggunakan root pada client 2 dengan perintah :
ssh root@172.16.11.105
maka hasil outputnya kita tidak akan bisa login menggunakan user root walaupun password yang kita gunakan benar :


setelah itu coba login menggunakan user alifa dengan password yang sudah di buat sebelumnya :


maka hasil outputnya kita akan bisa login masuk kedalam server dengan user alifa. dan kita bisa login masuk kedalam user root dengan password root.


2) kemudian kita akan mencoba melakukan test dengan menambahkan user baru yaitu alifa2, setelah itu login menggunakan user 2.




makakita tidak akan bisa login menggunakan alifa2 dikarenakan tidak didaftarkan kedalam AllowUsers :

kita daftarkan terlebih dahulu seperti gambar dibawah ini : 

3) kemudian restart :


4) lalu coba login lagi dan hasilnya bisa yeey :


 MENGGANTI PORT SSH

1) Selain membuat security menggunakan disable root access dan limit user access kita juga bisa membuat security dengan mengganti port default SSH yaitu port 22, untuk konfigurasinya edit file ssd_config.
nano /etc/ssh/sshd_config


setelah itu hapus tanda pagar pada bagian port dan ganti port default menjadi 222. 


menjadi seperti ini :


2) kemudian kita harus mendaftarkan mendaftarkan port yang baru kita buat kedalam sistem selinux pada centos dengan menggunakan perintah semanage, akan tetapi perintah semanage tidak bisa kita gunakan karena defaultnya belum terinstal untuk menginstall paketnya sebagai berikut :


ini hasil outputnya , telah berhasil terinstall :


3) setelah selesei di install baru kita daftarkan port SSH yang baru kedalam sistem SELINUX centos dengan perintah :


keterangan :
tcp 222 : adalah port yang akan didaftarkan.

 4) kemudian daftarkan port SSH yang baru kedalam firewall :


keterangan :

--permanent : adalah perintah untuk menambahkan sesuatu secara permanent didalam firewall.
--add-port : adalah perintah untuk menambahkan port.

222/tcp : adalah port yang ditambahkan kedalam firewall nya, dan tcpnya adalah protokol yang digunakan.

reload firewallnya :


5) setelah itu restart SSH :


6) untuk melakukan cek apakah port sudah berubah gunakan perintah berikut ini :


7) setelah itu cek pada client 2 dengan perintah remote sebagai berikut :


LOGIN BANNER SSH 

1) Kebanyakn sysadmin menerapkan login banner di server mereka tujuannya adalah untuk menunjukkan beberapa pesan atau peringatan ketika sesi ssh terhubungg dan sebelum masuk ke sistem server. pesan yang ditampilkan di banner linux didedikasikan oleh sysadmin untuk penyusup yang ingin memulai serangan brute force pada server sehingga penyusup akan kesulitan untuk mengetahui sandi atau password pada server yang menjadi target.

untuk membuat banner SSH kita harus membuat file mybanner
vi /etc/mybanner

kemudian masukan katakata yang ingin di munculkan dalam banner kita :


2) setelah itu edit file sshd_config :



pada bagian #Banner none tambahkan script berikut ini :


3) setelah itu restart server ssh :


4) maka hasilnya ketika di remote pada client2 menjadi seperti ini :


SSH PASSWORD LOGIN MENGGUNAKAN SSH KEYGEN 


1) Selain dengan mengganti port untuk sistem keamanan, kita juga bisa menggunakan SSH Keygen yang digunakan untuk meningkatkan kepercayaan antara dua server linux untuk melakukan singkronisasi atau transfer secara mudah :

pertama kita harus membuat Authentication SSH-Keygen di client2 dengan menggunakan perintah :
ssh-keygen 
maka hasil outputnya seperti berikut ini :


2) kemudian kita akan meremote server-ssh dengan user alifa untuk membuat directory .ssh dengan menggunakan perintah dibawah ini :


3) kemudian buat directory dengan menggunakan perintah dibawah ini :


4) setelah itu kita akan mengupload file generated public key yang kita buat sebelumnya ke server-ssh menggunakan user alifa kedalam directory .ssh dengan nama file authorized_keys :
cat .ssh/id_rsa.pub | ssh -p 222 alifa@172.16.11.105 'cat >> .ssh/authorized_keys'


keterangan :

cat : perintah untuk menampilkan isi dari suatu file ke standart output
.ssh/id_rsa.pub : nama file nya
ssh -p alifa...... : untuk login ssh alifa
.ssh/authorized_keys : merupakan file standard yang digunakan SSH untuk memanggil Public Keys.

5) setelah itu beri hak akses untuk directory .ssh dan file authorized_keys :
ssh -p 222 alifa@172.16.11.105 "chmod 700 .ssh; chmod 640 . ssh/authorized_keys"


6) setelah itu agar user yang tidak memiliki public key yang ada di server, kita harus mengkonfigurasi file sshd_config yang ada diserver kemudian cari baris seperti ini :


menjadi seperti dibawah ini :

note >> tanda pagar di PubkeyAuthentication dihilangkan, menjadi seperti dibawah ini :


setelah itu cari baris atau script seperti dibawah ini :


kemudian, pada PasswordAuthentication rubah dari yes menjadi no seperti ini :


7) kemudian restart ssh pada server :


8) setelah itu remote ke server-ssh dengan user alifa tanpa menggunakan password :


SELESEI 








Previous
Next Post »