Anda di halaman 1dari 19

Nama kelompok

- Raffi firnanda
- Raffi ahmad
- M syaidha waman
- Pradifta
- Ririn

PENDAHULUAN
Kemajuan teknologi di bidang jaringan telah memungkinkan
untuk melakukan interaksi melalui komputer.
Jaringan komputer adalah sekumpulan peralatan komputer
yang dihubungkan agar dapat saling berkomunikasi dengan
tujuan membagi sumber daya. Dalam sebuah jaringan
komputer dibutuhkan aturan-aturan (protocols) yang mengatur
komunikasi dan layanan-layanan secara umum untuk seluruh
sistem jaringan.[1]
Jaringan komputer memiliki fungsi yang boleh dibilang cukup
vital dalam teknologi informasi. Pada jaringan komputer maka
diperlukanlah sebuah sistem keamanan server untuk
melindungi komputer server dari
ancaman baik dalam bentuk kesengajaan ataupun bukan. [2]
Suatu jaringan komputer terdiri dari server dan client.
Serversendiri biasanya dikendalikan oleh seorang administrator,
baik monitoring secara langsung maupun dengan cara di
remote. Administrator yang mengkontrol suatu server haruslah
orang yang sudah kompeten dalam bidangnya. Karena saat ini
banyak sekali pelaku kriminal dalam dunia cyber yang dengan
sengaja masuk kedalam sistem dan kemudian melakukan
perubahan serta merusak berbagai konfgurasi server hanya
untuk kesenangan semata atau bahkan mengambil keuntungan
materil. Berikut ini jenis-jenis serangan mendasar yang sering
terjadi
pada jaringan, antara lain IP Spoofing/Session Hijacking,
Packet Snifer, DDoS, Man-in-the Middle, Back Door.
[1] Untuk itu keamanan dalam sebuah server sangatlah
diperlukan. Keamanan pada server sendiri berkaitan dengan
berbagai lapisan-lapisan penunjang sistem keamanan, atau
layer OSI.
The Open System Interconnection (OSI) atau yang biasa
disebut dengan layer OSI merupakan suatu susunan jaringan
yang di implementasikan melalui protokol jaringan ke dalam
tujuh lapisan berbeda. Lapisan-lapisan pada
Layer OSI dibuat dengan tujuan agar setiap paket data dalam
sebuah jaringan dapat melewati satu per satu layer yang pada
akhirnya bisa saling terkoneksi.[1]
Cara kerja dari OSI Layer sendiri adalah proses berjalannya
suatu data dari suatu host ke host lainnya.[3]
Seluruh data itu harus melewati setiap layer-layer, agar sampai
ke host tujuan. Misalnya saat anda mengirim email ke
komputer lain dalam suatu jaringan yang sama. Proses yang
paling pertama ada pada application layer, yaitu menyediakan
program aplikasi email. Di sebuah presentation layer, email itu
dikonversi menjadi sebuah format dalam jaringan. Lalu pada
session layer, akan dibentuk lagi sesi perjalanan data itu dari
mulai dibentuk sampai selesainya proses pengiriman tersebut.
Di sebuah transport layer akan dipecah menjadi beberapa
bagian kecil, lalu akan dikumpulkan lagi kepada transport layer
penerima. Dalam network layer akan dibuatkan alamat, dan
ditentukan juga jalan yang dilalui oleh data tersebut agar
sampai ke tujuan. Dalam data link layer

Hardening SSH Server – Ubuntu 20


Setelah sebelumnya saya sudah menulis tentang 2 tulisan terkait dengan SSH
server (Baca : Secure Shell (SSH) & Instalasi SSH Server), selanjutnya adalah
melakukan hardening terhadap SSH server yang digunakan.

Hardening ini dilakukan supaya SSH server bisa terlidungi dari


ancamanancaman orang-orang yang tidak bertanggung jawab, yang mungkin
saja berniat untuk mengambil data-data penting yang ada di server.
Walaupun hardening ini bisa dibilang sudah menjadi hal yang wajib untuk
dilakukan, tapi saya memberi rekomendasi untuk melakukan uji coba
hardening SSH server ini pada server development terlebih dahulu, jangan
langsung di terapkan pada server production yang sudah berjalan. Kenapa?
Karena jika konfigurasi hardening yang dilakukan tidak benar & tidak sesuai
kebutuhan. Bisa saja yang terjadi adalah kita sebagai user yang eligible tidak
bisa remote login SSH ke server bersangkutan karena hardening yang
dilakukan terlalu ketat. Maka dari itu, pastikan konfigurasi hardening yang
akan di terapkan pada server production, di uji coba terlebih dahulu
menggunakan server testing.

Berikut adalah konfigurasi-konfigurasi hardening yang bisa rekan-rekan


lakukan untuk meningkatkan keamanan SSH server.

Disable Root Login


Secara default, remote login SSH menggunakan user root pada server
berbasis Linux Ubuntu sudah dibatasi aksesnya, yaitu tidak bisa login sebagai
user root menggunakan metode password tetapi harus menggunakan metode
SSH key (SSH key akan dijelaskan pada tulisan selanjutnya.

Lain halnya dengan server Ubuntu, server lain seperti Fedora, Red hat
ataupun Linux enterprise secara default memperbolehkan akses remote login
SSH menggunakan akun root. Hal ini tentu saja bisa menjadi celah keamanan
yang dapat dimanfaatkan oleh orang-orang yang menyusupi sistem server
kita.

Mengapa berbahaya? Bukankah akun root sama saja dengan yang lainnya?
Tentu saja akun root ini berbeda dengan akun yang lain. Akun root pada
sistem operasi Linux merupakan superuser/administrator yang memiliki full
hak akses terhadap sistem, sehingga bisa sangat berbahaya apabila akun root
bisa diakses oleh sembarangan orang.

Maka dari itu, root login SSH perlu kita disable. Berikut adalah
langkahlangkahnya.
• Remote login ke SSH server
• Pertama edit file konfigurasi SSH dengan perintah “sudo nano
/etc/ssh/sshd_config” atau “sudo vi /etc/ssh/sshd_config” lalu
cari baris berikut
Ubah “prohibit-password” menjadi “no

Restart service SSH dengan perintah berikut

User SSH
Selain user root, user lain juga perlu dibatasi aksesnya. Biasanya dalam
sebuah sistem operasi Linux ada beberapa user-user yang sengaja dibuat
untuk berbagai macam kebutuhan ataupun sekedar user yang digunakan oleh
individual admin-admin yang menangani server tersebut.

Secara prinsip, sebenarnya kita bisa hanya mengizinkan user-user tertentu


yang bisa remote login SSH, sehingga user-user yang tidak ada di list allow
tidak bisa remote login SSH.
Misalnya, kali ini saya akan membuat user dengan nama “remote” dan hanya
menggunakan user tersebut untuk remote login. Dari sisi sistem juga akan
dibuat supaya remote login SSH hanya bisa dilakukan dengan akun “remote”.
Berikut adalah langkah-langkah untuk melakukannya.

- Pertama, create user yang akan digunakan khusus untuk remote login
SSH. User yang akan saya buat adalah user dengan nama “remote“.
Jalankan perintah berikut untuk membuat user baru

- # sudo adduser remote

- Adding user `remote' ...

- Adding new group `remote' (1001) ...

- Adding new user `remote' (1001) with group `remote' ...

- Creating home directory `/home/remote' ...

- Copying files from `/etc/skel' ...

- New password: (Masukkan password baru)

- Retype new password: (Masukkan password baru)

- passwd: password updated successfully

- Changing the user information for remote

- Enter the new value, or press ENTER for the default

- Full Name []: remote

- Room Number []:

- Work Phone []:

- Home Phone []:

- Other []:
- Is the information correct? [Y/n]

- Masukkan user yang tersebut ke dalam grup sudo, supaya user remote
bisa menjalankan command sebagai superuser/root dengan cara
menjalankan perintah berikut

# sudo usermod -aG sudo remote

- Selanjutnya allow user remote pada file konfigurasi SSH. Edit file
konfigurasi SSH lalu tambahkan baris berikut di bagian paling bawah
AllowUsers remote

Note : Apabila user yang di allow untuk remote login lebih dari satu, maka
format penulisannya adalah seperti ini “AllowUsers user1 user2“, dipisahkan
oleh spasi

- Restart service SSH dengan perintah berikut

# sudo systemctl restart ssh

- Bandingkan saat login menggunakan user yang tidak di allow & user
yang di allow
# Unallowed

- # ssh raihan@192.168.100.56

- raihan@192.168.100.56's password:

- Permission denied, please try again.

# Allowed

# ssh remote@192.168.100.56
remote@192.168.100.56's password:

Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-42-generic

x86_64) ....

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent


permitted by

applicable law

Port SSH
Secara default SSH client & server melakukan komunikasi menggunakan port
TCP 22, tetapi penggunaan port TCP tersebut bisa diganti dengan port
nonstandard. Misalnya menggunakan port-port yang tidak diketahui oleh
orang lain selain diri kita sendiri. Tujuannya tentu saja untuk menghindari
percobaan pembobolan sistem via SSH, karena port yang kita gunakan tidak
terpikirkan oleh orang lain.

Perubahan konfigurasi port ini dilakukan di sisi SSH server, sedangkan dari sisi
SSH client cukup menyesuaikan port yang digunakan pada saat remote login
dilakukan. Dengan syarat port non standard yang dipilih belum digunakan
oleh aplikasi lain di SSH server. Berikut adalah langkah-langkah untuk
melakukan perubahan port SSH server.

• Edit file konfigurasi SSH lalu cari baris berikut

#Port 22

Hilangkan tanda pagar dan ubah angka 22 menjadi port SSH yang akan
digunakan, misalnya “2020”

Port 2020

• Restart service SSH dengan perintah berikut


# sudo systemctl restart ssh

• Remote login SSH dengan port SSH yang baru, jalankan perintah SSH
dengan tambahan “-p (port-baru)” atau sesuaikan port SSH yang baru
jika menggunakan Putty Windows

# ssh remote@192.168.100.56 -p 2020

Banner & MOTD


Selain hardening dalam hal pengamanan akses SSH, kita juga bisa membuat
semacam peringatan kepada orang-orang yang mencoba untuk meretas SSH
server via SSH. Bahkan bukan hanya sekedar peringatan, tapi bisa saja
kalimat yang tampil adalah kalimat ancaman sehingga orang-orang tersebut
akan berpikir 2x sebelum melanjutkan aksinya. Hal tersebut bisa dilakukan
dengan cara mengaktifkan banner & menambahkan teks pada MOTD
(Message of The Day).

Banner

Banner merupakan teks yang muncul saat melakukan remote login SSH.
Secara default banner ini tidak diaktifkan. Berikut adalah cara untuk
mengaktifkan banner pada SSH server.

- Edit file konfigurasi SSH lalu cari baris berikut

#Banner /etc/issue.net

Hilangkan tanda pagar pada baris tersebut

Banner /etc/issue.net
- Selanjutnya, penambahan ataupun pengubahan teks banner bisa
dilakukan dengan cara edit /etc/issue.net. Isi default file tersebut
kurang lebih seperti ini (Sesuai dengan versi Ubuntu yang digunakan)

Ubuntu 20.04.1 LTS

Rekan-rekan bisa menambahkan teks-teks tertentu sebagai warning


kepada orang yang ingin melakukan remote login ke server SSH.
Misalnya seperti ini
#############################################################

# SERVER DEVELOPMENT RAIHAN #

# SERVER INI TERMONITOR OLEH PENULIS BLOG COLAMEN.ID #

# https://colamen.id #

#############################################################

Setelah perubahan dilakukan, save file issue.net

- Testing remote login SSH, dan lihat kalimat yang muncul


MOTD

Sedangkan MOTD (Message of The Day) adalah teks yang muncul setelah
login berhasil dilakukan. Secara default MOTD ini sudah aktif pada sistem
operasi Linux, biasanya berisi informasi tentang versi sistem operasi yang
digunakan. Tetapi kita bisa menambahkan teks tertentu pada MOTD tersebut,
misalnya kalimat peringatan. Berikut adalah langkah-langkahnya.
• Sebelum melakukan perubahan pada MOTD, lakukan backup file MOTD
(/etc/update-motd.d/00-header) terlebih dahulu, dengan perintah
berikut

• # cd /etc/update-motd.d/

# sudo cp 00.header 00.header.save

• Edit file /etc/update-motd.d/00-header lalu tambahkan pesan


peringatan ataupun ancaman dengan format printf “pesan”, contohnya
seperti ini

printf
"#############################################################
############\n"

• printf "# INI SERVER SECURE SSH!


#\n"

• printf "# JANGAN LANJUTKAN APABILA ANDA BUKAN PENULIS BLOG


COLAMEN.ID ! #\n"

printf
"#############################################################
############\n"
• Testing remote login SSH, masukkkan password dan lihat kalimat yang
muncul setelah berhasil login
SSH Audit Tool (Enkripsi)
Walaupun SSH ini sudah menggunakan metode enkripsi yang powerful
sehingga sangat sulit untuk dibaca datanya, tetapi enkripsi yang digunakan
oleh aplikasi openssh ini bisa diganti dengan metode yang lebih rumit
sehingga hacker makin sulit untuk melakukan dekripsi data-data yang
dikirimkan via SSH.

Sebelum melakukan improvement di sisi enkripsi SSH, kita perlu melakukan


pengecekkan terhadap konfigurasi SSH, supaya terlihat apa saja enkripsi yang
bisa di improve. Pengecekkan bisa dilakukan menggunakan script SSH Audit.
Script SSH audit tidak bisa digunakan langsung dari SSH server yang akan
dilakukan pengecekkan, melainkan harus dilakukan dari komputer lain. Berikut
adalah langkah-langkah untuk melakukan pengecekkan SSH audit serta
meningkatkan enkripsi yang digunakan.

Pengecekan SSH Audit

Note : Pengecekan SSH audit yang akan saya lakukan menggunakan


komputer dengan sistem operasi Linux. Jika teman-teman menggunakan
sistem operasi Windows dan kesulitan menjalankan script python, silakan
melewati bagian pengecekkan SSH audit & langsung lanjut ke bagian
improvement enkripsi SSH

- Akses terminal SSH client berbasis Linux


- Install aplikasi pendukung SSH audit, yaitu pyhton & git dengan
perintah berikut
- # sudo apt-get update

# sudo apt-get install python git -y

- Clone git repository SSH audit dengan perintah berikut

# git clone https://github /arthepsy/ssh-audit.git

# cd ssh-audit

- Edit file script ssh-audit (ssh-audit.py) & temukan baris berikut

oport, port = '22', 22

Sesuaikan nomor port yang digunakan oleh SSH server, disini saya menggunakan port 2020

oport, port = '2020', 2020


- Jalankan script ssh-audit dengan perintah” python ssh-audit.py (ip address server)”

- Terlihat dari pengecekkan yang dilakukan, bahwa ada beberapa metode enkripsi SSH yang bisa
kita tingkatkan

Improvement Enkripsi SSH

• Edit file konfigurasi SSH lalu tambahkan baris berikut di bagian paling bawah

• KexAlgorithms curve25519-sha256@libssh.org
• Ciphers chacha20-poly1305@openssh.com,aes256-
gcm@openssh.com,aes128-gcm@openssh.com,aes256-
ctr,aes192ctr,aes128-ctr

MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256etm@openssh.com,umac-
128-etm@openssh.com

• Restart service SSH dengan perintah berikut

# sudo systemctl restart ssh

• Lakukan pengecekkan kembali dengan SSH audit setelah improvement dilakukan

Beberapa konfigurasi yang ada diatas sebenarnya belum mencakup semua hardening yang bisa
dilakukan pada SSH server. Masih ada beberapa hal lagi yang bisa dilakukan untuk mengamankan
SSH server yang kita miliki. Tetapi karena pertimbangan tingkat kesulitan konfigurasi hardening
lainnya, maka saya akan menunjukkan konfigurasi hardening lainnya pada tulisan terpisah.
KESIMPULAN
Pada dasarnya sistem keamanan pada suatu jaringan sangatlah penting dan tidak dapat dipungkiri
kejahatan di dunia cyber pun semakin beragam. Berbagai perangkat keamanan sudah tersedia di
jaman sekarang ini, sebab teknologi semakin berkembang dari masa ke masa, begitu pun
softwaresoftware pendukung sistem keamanan.Berhubung dengan hal tersebut sistem keamanan
jaringan sendiri diatur melalui sebuah computer server. Mulai dari pembatasan user, layanan yang
disediakan untuk client, sampai access permission. Dari hasil dan pembahasan diatas terkait
peracangan keamanan pada computer server berbasis linux telah dilakukan konfigurasi dan
audit.Konfigurasi yang dilakukan pun secara manual dan dilakukan dengan selektif terkait kebutuhan
untuk menunjang penguatan (hardening) pada sistem keamanan server. Kemudian ada pun
pengecekan yang dilakukan menggunakan program audit lynis pada computer server. Hasil dari
report yang ditampilkan pun sudah sesuai dengan apa yang sudah dikonfigurasi. Pada dasarnya apa
yang dilakukan terkait hardening pada layer 1 dan layer7 tidak dapat maksimal apabila pada layer 2
sampai dengan 6 tidak dilakukan pengamanan kendati sama halnya dengan layer 1 dan layer 7.
Namun dalam hal ini layer 1 dan layer 7 hanya dilakukan opitimalisasi untuk tingkat keamanan yang
lebih atau dapat dikatakan sebagai sistem keamanan berlapis. Apa yang dilakukan dalam metode
hardening ini masih terdapat kekuarangan terkait sistem keamanannya, sebab hanya pada layer 1
dan 7 saja yang menjadi center of security method. Namun apa yang sudah dilakukan dalam
pengerjaan dan prakteknya hanya merupakan bagian kecil dari banyaknya metode terkait
pengamanan sistem jaringan pada sebuah server.
REFERENCES
[1] Sirait, F., Putra K. "Implementasi Metode Vulnerability Dan Hardening Pada Sistem Keamanan
Jaringan". Jurnal Teknologi Elektro, Universitas Mercu Buana, Vol. 9 No. 1 Januari 2018.

[2] Sahari, S. (2017). Implementasi Sistem Keamanan Web Server Berbasis Distro Linux Debian &
Mikrotik Pada CV. Karya Baru Perabot. Pendidikan Teknologi Informasi UPI-YPTK, 3(1).

[3] Prastika, D. P., Triyono, J., & Lestari, U. (2018). Audit dan Implementasi CIS Benchmark Pada
Sistem Operasi LinuxDebian Server (Studi Kasus: Server Laboratorium Jaringan dan KOmputer 6,
Institut Sains & Teknologi AKPRIND Yogyakarta). Jurnal Jarkom, 6(1), 1-12.

[4] Nazwita, N., & Ramadhani, S. (2017, May). Analisis Sistem Keamanan Web Server Dan Database
Server Menggunakan Suricata. In Seminar Nasional Teknologi Informasi Komunikasi dan Industri
(pp. 308-317).

[5] Suhartono, S., & Patta, A. R. (2017). Sistem Pengamanan Jaringan Admin ServerR Dengan Metode
Intrusin DetectonSysem (IDS) Snort Menggunakan Sistem Operasi ClearOS. Jurnal Teknologi
Elekterika, 14(2), 145-155.

[6] Mattetti, M., Shulman-Peleg, A., Allouche, Y., Corradi, A., Dolev, S., & Foschini, L.. (2015). Security
Hardening Of Linux Containers And Their Workloads.

[7] Khurana, S. (2015). A Security Approach to Prevent ARP Poisoning and Defensive Tools.
International Journal of Computer and Communication System Engineering, 2(3), 431-437.

[8] Nepal, A. K. Linux Server & Hardening Security.

[9] Tevault, D. A. (2018). Mastering Linux Security and Hardening: Secure your Linux server and
protect it from intruders, malware attacks, and other external threats. Packt Publishing Ltd.

[10] Derby Cardona, D. (2016). Hardening linux processes-extending Grsecurity to integrate


system call filters and namespaces (Master's thesis, Uniandes).

[11] Mattetti, M., Allouche, Y., Corradi, A., Dolev, S., & Foschini, L. Automatic security hardening
and protection of linux containers.

[12] Marzuki, I. (2017). Perancangan dan Implementasi Sistem Keamanan Jaringan Komputer
Menggunakan Metode Port Knocking Pada Sistem Operasi Linux. JTII (Jurnal Teknologi Informasi
Indonesia), 2(2), 18-24.

[13] Mutaqin, A. F. (2016). Rancang Bangun Sistem Monitoring Keamanan Jaringan Prodi Teknik
Informatika Melalui SMS Alert dengan Snort. JUSTIN (Jurnal Sistem dan Teknologi Informasi), 4(1),
98103.
[14] Riska, P., Sugiartawan, P., & Wiratama, I. (2018). Sistem Keamanan Jaringan Komputer dan
Data Dengan Menggunakan Metode Port Knocking. Jurnal Sistem Informasi dan Komputer
Terapan
Indonesia (JSIKTI), 1(2), 53-64.

[15] Ogasawara, J., & Kono, K. (2017, December). Nioh: Hardening the hypervisor by filtering
illegal I/O requests to virtual devices. In Proceedings of the 33rd Annual Computer Security
Applications Conference (pp. 542-552).

Anda mungkin juga menyukai