[CentOS 7] [3.2] Konfigurasi Secure Shell (SSH)

Konfigurasi SSH Menggunakan CentOS 7



Sebelumnya, mari kita kenali dulu Apa itu SSH?
SSH adalah sebuah Protokol Jaringan yang di lakukan untuk Remote/Komunikasi Data Berbasis perintah antar dua Komputer agar lebih aman.



Maksudnya aman apa? Jadi Setiap data data, ya contohnya text deh, Itu tuh bakalan di ekripsi sama SSH, jadi bakalam lebih secure, dari namanya juga udah ketauan kan "Secure shell" :D. 



Untuk Client, terserah kalian saja mau berapa, tapi disini Saya hanya menggunakan 2 Client, yang satu Windows 7, yang satunya lagi CentOS 7

Oke, Kita mulai...

Konfigurasi Server

1) Sebenarnya secara default SSH Server sudah Terinstall di CentOS 7, jadi kita ga perlu lagi menginstall Server SSH, Jika memang belum terinstal, lakukan perintah berikut untuk menginstallnya
yum install openssh-server -y

2) Pastikan Paket terinstall, Untuk melihat paket sudah terinstall atau belum, lakukan perintah
rpm -qa |grep ssh

3) Jika mau melihat Versi SSH, lakukan perintah berikut
ssh -V 

Konfigurasi Client 1

1) Untuk Client yang menggunakan Sitem Operasi berbasis Windows, kita harus menggunakan aplikasi tambahan, yaitu PuTTY, jika ingin mendownloadnya silahkan kunjungi http://www.putty.org/

Jika sudah di download, sekarang Jalankan PuTTY, terus pada kolom Host Name (or IP address) isikan IP address Server kalian, jika sudah klik Open


2) Login dengan User root dan masukkan password Server kalian, berikut penampakannya jika berhasil


Pembuktian Bahwa SSH Lebih Secure


1) Sekarang coba capture kabel pada topology yang di buat di GNS 3, dan lihat proses apa yang terjadi, Untuk cara capturenya, kalian bisa buka postingan saya sebelumnya tentang server Telnet, berikut saya sertakan linknya http://masihkayakemaren.blogspot.co.id/2016/09/konfigurasi-telnet-centos-7.html (caranya ada dibagian akhir)

2) Follow TCP Stream pada Protocol SSH, kemudian liat data user pada saat login SSH


Maka Hasiilnya akan seperti gambar diatas, mengapa demikian? karena data-yang ada akan di Enskripsi oleh SSH, jadinya akan lebih secure, aman, tidak seperti Telnet

Konfigurasi Client 2

1) Untuk Client 2 saya menggunakan CentOS 7, Sama seperti yang sudah saya bilang sebelumnya, saat kita install mode minimal install, selain paket SSH Server juga Terdapat SSH Client, dan jika mamang belum terinstall lakukan perintah dengan cara sama seperti bagian Nomor 1 pada Konfigurasi Server
yum install openssh-server -y

2) Untuk melakukan Remote bisa menggunkan perintah
ssh "username"@"ip address server yang ingin di remote"
Atau :
ssh -l "username" "ip address server yang ingin di remote" 
Contoh :
ssh root@192.168.1.111
ssh -l  root 192.168.1.111
Jika diminta password, masukan password server yang ingin di remote tersebut


Dissable root Access dan Limit User Access


Pada tahap ini berfungsi untuk Menonaktifkan Akses user root dan hanya memperbolehkan User tertentu untuk meremote
Konfigurasi Server
1) Pertama buat dahulu User yang akan kita pakai untuk meremote
adduser "nama user yang ingin dibuat"
passwd "nama user yang ingin di berikan paswword"
Jika sudah, kalian akan di minta untuk memasukan password baru untuk user tersebut


2) Untuk konfigurasinya, Edit file sshd_config yang berada di folder /etc/ssh/
nano /etc/ssh/sshd.config

3) Cari Script "PermitRootLogin yes" kira-kira tampilannya seperti gambar di bawah ini



4) Ubah yes menjadi no, Setelah itu tambahkan script ini tepat dibawahnya
AllowUsers "nama user"
Contoh :
AllowUsers trihandika 

5) Restart SSH agar konfigurasi berjalan dengan baik
systemctl restart sshd 

Verifikasi Client 2

1) Coba Remote login SSH dengan menggunakan user root. Pasti outputnya akan seperti ini
ssh root@192.168.1.111

Di situ tertulis Permission denied  karena kita tidak mengizinkan User root untuk mengakses server menggunakan SSH, di karenakan pada file sshd_config tadi, PermitRootLogin nya kita ubah menjadi no

2) Coba Lakukan Remote dengan menggunakan User yang sudah kita berikan akses login SSH yang sudah kita konfigurasi pada tahap sebelumnya
ssh trihandika@192.168.1.111

Berhasil, No problem :D

3) Coba Sekarang bikin User baru lagi di Server kalian


4) Setelah itu, Coba Login dengan menggunakan User tersebut, maka tidak akan berhasil, dikarenakan kita belum mengedit file sshd_config untuk mengizinkan User tersebut

 Mengganti Port SSH

Selain membuat keamanan dengan menggunakan Dissable root Access dan Limit User Access kita juga bisa membuat keamanan dengan menagganti port default SSH, yaitu port 22.. Berikut cara konfigurasinya

Konfigurasi Server

1) Pertama, edit file sshd_config yang terletak di folder /etc/ssh/
nano /etc/ssh/sshd_config

2) Cari Script #Port 22, dan ubah angka portnya, kira-kira penampakannya seperti gambar dibawah ini


3) Ubah Menjadi Seperti ini


4) Kita harus mendaftarkan port yang baru kita daftarkan kedalam sistem selinux dengan menggunakan perintah semanage, akan tetapi perintah semanage tidak bisa di gunakan karena secara default, paket tersebut belum terinstall pada CentOS 7. Untuk menginstallnya, lakukan perintah seperti beriikut
yum install policycoreutils-python -y 

5) Pastikan paket tersebut terinstall


6) Daftarkan Port SSH yang baru kedalam selinux Centos 7
semanage port -a -t ssh_port _t -p tcp 222 

7) Kemudian daftarkan Port SSH yang baru kedalam Firewall
firewall-cmd --permanent --add-port=222/tcp

8) Reload Firewall agar konfigurasi berjalan dengan baik
firewall -cmd --reload

9) Restart SSH
systemctl restart sshd

10) Untuk mengecek apakah port sudah berubah atau belum, lakukan perintah
ss -tnlp |grep ssh

Pengujian pada Client 2

1) Coba login SSH dengan perintah defaultnya, maka akan gagal, dikarenakan Port defaultnya (22) sudah di ganti. Coba sekarang login dengan mencantumkan port ssh yang sudah di ganti tersebut
ssh "nama user"@"ip address server yang ingin di remote" -p 222
 Contoh :
ssh trihandika@192.168.1.111 -p 222
Maka akan berhasil, kira-kira tampilannya seperti gambar dibawah ini

 

Login Banner SSH


Singkatnya, Login Banner SSH digunakan untuk menunjukan beberapa pesan berupa kata kata atau kalimat, tulisan tersebut berisi tentang informasi atau peringatan ketika ada User yang ingin meremote server tertentu.

Konfigurasi Server

1) Buat terlebih dahulu file mybanner di folder /etc/ kemudian edit filenya
nano /etc/mybanner

2) Kemudian masukan kata-kata/kalimat yang ingin di munculkan dalam banner kita, jikas sudah, jangan lupa di save


3) Setelah itu edit file sshd_config
nano /etc/ssh/sshd_config

4) Cari Script seperti gambar di bawah ini


5) Tambah kan script ini tepat di bawahnya
Banner /etc/mybanner 

6) Restart SSH agar konfigurasi berjalan dengan baik


Verifikasi Client 2

1) Remote ke Server SSH, dan di situ akan terdapat banner berupa kata-kata yang sudah kita konfigurasi tadi pada tahap sebelumnya

 Login Menggunakan SSH Keygen

Kita juga bisa menggunakan SSH Keygen untuk meningkatkan kepercayaan antara dua server linux untuk melakukan sync atau transfer data secara mudah

Konfigurasi Client

1) Pertama, kita harus membuat Authentication SSH-Keygen dengan menggunakan perintah sebagai berikut
ssh-keygen

2) Kemudian kita akan meremote Server SSH dengan user trihandika, untuk membuat directory .ssh caranya dengan menggunakan perintah sebagai berikut
ssh -p 222 trihandika@192.168.1.111

3) Setelah itu, lakukan Upload generated public key yang sudah kita buat tadi (pada tahap 1) ke Server SSH menggunakan user trihandika ke dalam directory .ssh dengan nama file authorized_keys
cat .ssh/id.rsa.pub | ssh -p 222 trihandika@192.168.1.111 'cat>> .ssh/authorized_keys'

4) Beri hak aksed untuk directory .ssh dan file authorized_keys
ssh -p 222 trihandika@192.168.1.111 "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"


Konfigurasi Server

1) Edit file sshd_config
nano /etc/ssh/sshd_config

2) Cari script seperti gambar di bawah ini


3) Ubah PubkeyAuthentication menjadi yes, dan jangan lupa hapus tanda pagar di depannya



4) Kemudian Cari script seperti gambar di bawah ini


5) Pada PasswordAuthentication ubah menjadi no, ini berfungsi agar tidak bisa di remote oleh orang lain, menonaktifkan Autentikasi Password pada saat login, agar user yang yang keygennya tidak di daftarkan, tidak bisa meremote.



 6) Restart SSH agar konfigurasi berjalan dengan baik
systemctl restart sshd

Pengujian Pada Client

1) Remote ke Server SSH dengan user trihandika.. dan hasilnya akan bisa meremote tanpa harus memasukan Password


2) Coba Remote menggunakan Client lain, maka tidak akan bisa atau Perizinannya ditolak, di karenakan Publickey nya tidak di daftarkan di Server



Comments

Post a Comment