[PENOLAKAN] Saya menyadari bahwa saya terlambat ke pesta, tetapi saya ingin menempelkan jawaban yang saya berikan ke pertanyaan lain , karena saya merasa seperti itu dapat menawarkan wawasan yang baik kepada pembaca, dan pertanyaan ini tampaknya menjadi tujuan tempat untuk info ssh dasar.
Ada masalah serupa yang mengejutkan saya setelah membaca pertanyaan ini di sini di AskUbuntu dan memeriksa VPS saya, hanya untuk melihat banyak upaya brute force. Saat itulah saya memutuskan untuk mengambil tindakan.
Sekarang sesuai dengan pertanyaan yang saya tautkan, jika Anda ingin melihat upaya login yang gagal pada mesin Anda lebih dari ssh (bisa berupa upaya brute force atau apa pun), coba ketikkan ini:
grep sshd.\*Failed /var/log/auth.log | less
Jika output terdiri dari beberapa baris, itu adalah banyak upaya brute force, terutama jika mereka terjadi di antara interval pendek, Anda mungkin ingin melakukan tindakan berikut:
Ubah file konfigurasi ssh
Untuk melakukan ini, buka file yang terletak di / etc / ssh / sshd_config dengan editor favorit Anda, seperti ini vim /etc/ssh/sshd_config
.
1. Cobalah untuk memindahkan ssh dari port 22 : Sekarang cari baris yang bertuliskan:
# What ports, IPs and protocols we listen for
Port 22
dan komentari Port 22, dan gunakan siapa saja yang Anda suka. Contoh:
# What ports, IPs and protocols we listen for
# Port 22
Port 28934
Harap diingat bahwa port di bawah 1024 perlu izin khusus (root). Saya tidak tahu bagaimana ini bisa mengganggu itu, tetapi saya hanya mengatakan.
2. Nonaktifkan login Root melalui ssh : Karena nama pengguna root dapat diprediksi dan menyediakan akses lengkap ke sistem Anda, memberikan akses tanpa batas ke akun ini melalui SSH adalah tidak bijaksana. Temukan baris yang membaca PermitRootLogin dan atur ke no .
PermitRootLogin no
3. Nonaktifkan otentikasi kata sandi : Hasilkan dan gunakan kunci SSH untuk masuk ke sistem Anda. Tanpa kata sandi diaktifkan, penyerang perlu menebak (atau mencuri) kunci pribadi SSH Anda untuk mendapatkan akses ke server Anda. Sesuatu yang sangat sangat sulit. Lanjutkan untuk menemukan baris yang membaca PasswordAuthentication dan set ke no
PasswordAuthentication no
!PERINGATAN! Sebelum melakukannya, silakan baca panduan ini di sini tentang cara mengatur otentikasi sertifikat.
CATATAN: Setelah Anda melakukan perubahan, gunakan sudo /etc/init.d/ssh restart
. Untuk menyambung ke port lain melalui penggunaan ssh: ssh username@hostname.com -p <port_number>
.
Siapkan firewall
Silakan lihat panduan ini tentang cara mengatur firewall yang sangat kuat dan efektif, yang terintegrasi ke Linux, IPTables .
Siapkan skrip untuk membantu Anda dengan keamanan
Salah satu yang saya gunakan secara pribadi dan cepat terlintas dalam pikiran adalah Fail2Ban . Fail2ban akan memantau file log Anda untuk upaya login yang gagal. Setelah alamat IP melebihi jumlah upaya otentikasi maksimum, alamat itu akan diblokir pada tingkat jaringan dan acara akan dicatat /var/log/fail2ban.log
. Untuk menginstalnya:sudo apt-get install fail2ban
Periksa riwayat perintah melalui ssh
Ada perintah linux, bernama history
, yang memungkinkan Anda untuk melihat perintah mana yang telah diinput hingga saat itu. Coba ketikkan history
terminal untuk melihat semua perintah hingga saat itu. Ini bisa membantu jika Anda root .
Untuk mencari perintah tertentu, coba:history | grep command-name
Untuk mendaftar semua perintah setelah ssh :fc -l ssh
Anda juga dapat mengedit perintah menggunakan vi (belum mencobanya, meskipun saya menganggap itu berfungsi juga):fc -e vi
Anda juga dapat menghapus riwayat :history -c
CATATAN: Jika Anda bukan penggemar perintah, history
ada juga file di direktori home Anda ( cd ~
), bernama .bash_history (jika Anda menggunakan bash) yang Anda bisa cat
melihat semua yang telah diketikkan dalam bash shell.
unset HISTFILE
di dalam bash, dan kemudian riwayat bash mereka tidak akan direkam.