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.
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
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.
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:
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
Also Read: Tutorial Linux Centos dari A – Z dengan VM
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
Also Read: Tutorial Linux Ubuntu Server Lengkap
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
Also Read: Tutorial AWS Cloud Devops Engineer Lengkap
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
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.