Ingin menghubungi Betariko? Silahkan klik link berikut! Hubungi Betariko

Table of Content

Mengamankan Koneksi SSH dengan sshd_config Linux Centos 6,7,8

Betariko.com - Ulasan ini menguraikan beberapa langkah tambahan yang dapat dimanfaatkan dalam mengamankan akses jaringan server menggunakan SSH, terutama dari akses ilegal atau serangan server yang secara terus menerus brute-force otomatis.

Tutorial Linux Centos : Persyaratan Install Open SSH Server

Server SSH biasanya sudah terinstall ketika pertama kali install sistem operasi Linux Centos. Namun jika tidak terinstall coba untuk menginstall dengan perintah berikut ini:

yum install openssh-server

service sshd start

Tutorial Linux Centos : Prosedur Pengerjaan

Beberapa bagian besar langkah yang ada pada ulasan setting ssh di Linux centos ini melibatkan bagian direktori konfigurasi ssh global yang terletak dibagian /etc/ssh/sshd_config, serta file konfigurasi tcpwrapper kontrol akses /etc/hosts.allow dan /etc/hosts.deny. Kamu dapat menggunakan editor pilihanmu untuk mengedit beberapa file tersebut dengan akses sebagai root. 

Tutorial Linux Centos : Ringkasan Langkah:

Beberapa atau semua langkah berikut mungkin dilakukan untuk mengamankan server SSHmu. Langkah-langkah diurutkan secara kasar dalam urutan tindakan pencegahan yang sepenuhnya masuk akal hingga benar-benar paranoid:

  • Pilih kata sandi yang kuat
  • Instal "DenyHosts" untuk memblokir klien buruk secara otomatis
  • Ubah port default
  • Nonaktifkan Protokol 1 yang tidak aman; hanya mengizinkan Protokol 2
  • Nonaktifkan login root
  • Kurangi MaxStartup
  • Kurangi LoginGraceTime
  • Izinkan hanya pengguna atau grup tertentu untuk terhubung
  • Izinkan hanya alamat IP tertentu untuk terhubung
  • Izinkan hanya pengguna dengan kunci untuk terhubung; tidak ada kata sandi yang diizinkan
  • Ikat server ssh ke antarmuka jaringan tertentu

Tutorial Linux Centos : Penjelasan Detail Langkah

Jika Kamu tidak melakukan hal lain, sangat penting untuk memilih kata sandi yang kuat untuk semua akun, terutama root, karena ini adalah akun #1 yang diserang. Sangat mencerahkan melihat akun di sistemmu yang menjadi target penyerang akhir-akhir ini; untuk melakukan ini, gunakan perintah lastb untuk melihat dengan cepat semua jenis login yang gagal, atau, lebih baik, parsing /var/log/secure untuk mendapatkan statistik hanya untuk login ssh yang gagal. Tiga contoh:

Centos menggunakan pam_cracklib.so untuk memaksa pengguna normal untuk memilih kata sandi semi-kuat dari 6 karakter atau lebih ketika mengubah passwd mereka, tetapi root masih dapat memilih kata sandi yang lemah kapan saja dia mau (tetapi akan diperingatkan). Perhatikan juga bahwa akun pengguna pertama yang ditambahkan ke sistem setelah instalasi (menggunakan firstboot) diperbolehkan lemah jika Kamu mengabaikan peringatan tersebut.

Kamu mungkin ingin menggunakan utilitas yang disebut "john the ripper" untuk mengaudit kekuatan kata sandi di sistemmu – jika terlalu cepat retak, kata sandi itu terlalu lemah.

Instal Denyhosts yang mengawasi file log /var/log/secure untuk upaya login ssh yang tidak valid, dan jika ambang yang dapat dikonfigurasi dilewati, mereka secara otomatis diblokir dengan ditambahkan ke /etc/hosts.deny. Instal Denyhosts, dan secara opsional edit konfigurasi default yang baik di /etc/denyhosts.conf:

yum instal Denyhosts

chkconfig menyangkal host aktif

layanan penolakan host dimulai

Sebagian besar serangan ssh diarahkan oleh mesin zombie yang dikompromikan terhadap server ssh yang mendengarkan pada port default "22". Dengan mengubah port ini ke port lain, Kamu sangat mengurangi risiko pembobolan otomatis. Edit /etc/ssh/sshd_config dan ubah baris yang bertuliskan "Port 22" menjadi "Port 39691", atau port lain yang tidak digunakan yang Kamu pilih, sebaiknya di atas 1024. Baris yang diawali dengan '#' adalah nilai default yang dikomentari .

#Port 22

Port 39691

SSH menggunakan dua protokol: Protokol 1 yang lama dan tidak aman, dan Protokol 2. yang lebih baru. Hampir semua klien SSH sekarang menggunakan Protokol 2, jadi yang terbaik adalah menonaktifkan yang lebih lama. Edit sshd_config untuk hanya menyertakan Protokol 2, dan bukan keduanya:

Tidak ada alasan yang baik bagi root untuk diizinkan masuk secara interaktif secara langsung; setelah terhubung sebagai pengguna biasa, Kamu masih dapat "su -" untuk melakukan root. edit sshd_config:

#Protocol 2,1

Protocol 2

Jika login root diperlukan – mis. untuk pencadangan sistem jarak jauh – Kamu juga dapat mengizinkan root untuk masuk, tetapi hanya jika menggunakan kunci ssh, bukan entri kata sandi interaktif:

#PermitRootLogin yes

PermitRootLogin no

Terakhir, Kamu juga dapat membatasi akses root agar hanya dapat menjalankan perintah tertentu, seperti skrip cadangan (di luar cakupan artikel ini):

PermitRootLogin without-password

PermitRootLogin forced-commands-only

Batasi jumlah maksimum koneksi yang tidak diautentikasi yang akan ditangani oleh server ssh secara bersamaan. Semakin kecil ini, semakin sulit bagi script kiddies untuk membuat upaya cracking yang paralel dan terkoordinasi dengan banyak koneksi. edit sshd_config dan ubah MaxStartups dari default "10" menjadi "3:50:10". Nilai yang dipisahkan titik dua memberi tahu server ssh untuk, "mengizinkan 3 pengguna untuk mencoba masuk pada saat yang sama, dan secara acak dan semakin menjatuhkan upaya koneksi antara 3 dan maksimum 10". Catatan: ini harus ditingkatkan pada server dengan sejumlah besar pengguna ssh yang valid yang masuk.

#MaxStartups 10

MaxStartups 3:50:10>

Batasi jumlah maksimum koneksi yang tidak diautentikasi yang akan ditangani oleh server ssh secara bersamaan. Semakin kecil ini, semakin sulit bagi script kiddies untuk membuat upaya cracking yang paralel dan terkoordinasi dengan banyak koneksi. edit sshd_config dan ubah MaxStartups dari default "10" menjadi "3:50:10". Nilai yang dipisahkan titik dua memberi tahu server ssh untuk, "mengizinkan 3 pengguna untuk mencoba masuk pada saat yang sama, dan secara acak dan semakin menjatuhkan upaya koneksi antara 3 dan maksimum 10". Catatan: ini harus ditingkatkan pada server dengan sejumlah besar pengguna ssh yang valid yang masuk.

#LoginGraceTime 2m

LoginGraceTime 30

Secara default, semua pengguna yang valid pada sistem diizinkan untuk masuk. Kebijakan yang lebih aman adalah hanya mengizinkan daftar putih pengguna atau grup untuk masuk. Misalnya, hanya mengizinkan pengguna “agung”, “beta”, “ riko", dan nama pengguna apa pun yang dimulai dengan "beta" untuk login, tambahkan baris berikut ke sshd_config:

AllowUsers agung beta riko

Sebagai alternatif, Kamu dapat mengizinkan hanya pengguna yang menjadi anggota grup tertentu untuk masuk. Misalnya, untuk mengizinkan hanya anggota grup "sshusers" untuk terhubung, pertama-tama pastikan grup itu ada (groupadd sshusers) dan tambahkan pengguna Kamu ke dalamnya (usermod -a -G sshusers username), lalu tambahkan baris berikut ke sshd_config :

AllowGroups sshusers

catatan: Kamu harus menggunakan perintah groupadd untuk membuat grup ini: groupadd sshusers

Izinkan hanya pengguna dari alamat IP tertentu untuk terhubung. Sebelum mengizinkan IP tertentu, kebijakan default terlebih dahulu harus disetel ke DENY agar efektif. edit /etc/hosts.deny dan tambahkan baris berikut:

sshd: ALL

Selanjutnya tambahkan ke /etc/hosts.allow jaringan yang ingin Kamu izinkan. Misalnya, untuk mengizinkan semua 254 host di jaringan kelas C "192.168.1.*", semua 16 juta host dari jaringan kelas A "10.0.0.0", dan IP 24.42.69.101, Kamu harus menambahkan yang berikut ke / etc/hosts.allow:

sshd: 192.168.1.0/255.255.255.0

sshd: 10.0.0.0/255.0.0.0

sshd: 24.42.69.101

catatan: Kamu juga dapat mengizinkan/menolak koneksi melalui firewall, tetapi untuk menjaga kewarasan, sebaiknya tetap berpegang pada satu metode atau yang lain.

Untuk menghilangkan kemungkinan ada orang yang menebak kata sandi pengguna, nonaktifkan otentikasi kata sandi sepenuhnya, dan minta pasangan kunci publik/pribadi digunakan sebagai gantinya. Meskipun jauh lebih aman daripada kata sandi, kunci pribadi pengguna masih dapat disusupi, terutama jika tidak dilindungi oleh frasa sandi. Untuk menonaktifkan login kata sandi, tambahkan berikut ini ke sshd_config:

PasswordAuthentication no

Secara default, server ssh mendengarkan koneksi pada SEMUA antarmuka (0.0.0.0). Jika server ssh hanya dapat diakses secara internal, ikat ke IP LAN. Misalnya: edit sshd_config:

ListenAddress 192.168.1.10

Tutorial Linux Centos : Pemecahan Masalah / Cara Menguji

Jika perubahan Kamu tampaknya tidak berfungsi, ingatlah untuk me-restart server sshd, tetapi JANGAN TUTUP KONEKSI SSH AKTIF jika terjadi kesalahan; coba buat koneksi baru terlebih dahulu, dan batalkan perubahan apa pun jika perlu, atau Kamu mungkin menemukan bahwa Kamu telah mengunci diri dari sistem dari jarak jauh.

/etc/init.d/sshd restart

Demikian ulasan pengaturan koneksi SSH dengan sshd_config, host.allow, host.deny, groupadd, semoga dapat memberikan manfaat. 

Technical Support | Sysadmin | Cloud Engineer | Quality Assurance Tester | Digital Marketing