GNU/Linux >> Belajar Linux >  >> Linux

Ratusan login ssh gagal

Solusi 1:

Anda dapat menggunakan iptables untuk membatasi koneksi masuk baru ke port SSH. Saya harus melihat seluruh konfigurasi iptables Anda untuk memberi Anda solusi siap pakai, tetapi pada dasarnya Anda berbicara tentang menambahkan aturan seperti:

iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 5 --name SSH --rsource -j DROP 
iptables -A INPUT -p tcp --dport 22 -m recent --set --name SSH --rsource -j ACCEPT 

Aturan ini berasumsi bahwa Anda menerima koneksi ESTABLISHED lebih awal di tabel (sehingga hanya koneksi baru yang akan mencapai aturan ini). Koneksi SSH baru akan memenuhi aturan ini dan ditandai. Dalam 60 detik, 5 upaya dari satu alamat IP akan mengakibatkan koneksi masuk baru dari IP tersebut terputus.

Ini bekerja dengan baik untuk saya.

Sunting:Saya lebih suka metode ini daripada "fail2ban" karena tidak ada perangkat lunak tambahan yang diinstal, dan terjadi sepenuhnya dalam mode kernel. Itu tidak menangani penguraian file log seperti "fail2ban", tetapi jika masalah Anda hanya dengan SSH, saya tidak akan menggunakan mode pengguna yang memerlukan instalasi perangkat lunak dan lebih kompleks.

Solusi 2:

fail2ban dapat membantu dengan memblokir alamat IP dengan terlalu banyak upaya masuk yang gagal.

Solusi 3:

Saya akan merekomendasikan menggunakan port non-standar untuk SSH jika Anda bisa (yaitu port 10222) tetapi karena Anda menyebutkan bahwa Anda tidak dapat melakukannya, saya sarankan menggunakan sesuatu seperti DenyHosts.

http://denyhosts.sourceforge.net/

Paket hebat, mudah dipasang dan dikonfigurasi.

Solusi 4:

Meskipun mungkin bagus untuk dapat ssh ke sistem Anda dari lokasi yang sewenang-wenang di internet, ada sistem serangan kata sandi otomatis yang akan mengunci ke port ssh terbuka dan menerapkan berbagai akun joe dan serangan kamus terhadap sistem Anda. Ini dapat memperburuk untuk membaca ringkasan log malam Anda dan membuang-buang bandwidth Anda.

Jika Anda memiliki server web pada sistem yang sama, Anda dapat menggunakan pembungkus php dan tcp untuk membatasi lalu lintas masuk ssh ke sistem yang dikenal, plus memberi Anda kunci pintu belakang untuk mengizinkan diri Anda mengakses dari sistem arbitrer di internet.

Begini caranya:

tolak semua koneksi ssh di /etc/hosts.deny:

# /etc/hosts.deny fragment
sshd:  all

Izinkan sistem yang dikenal dengan IP di /etc/hosts.allow, plus tambahkan file untuk akses sementara:

# /etc/hosts.allow fragment
sshd:  10.0.10.2     # some system
sshd:  172.99.99.99  # some other system
sshd:  /etc/hosts.allow.temporary-sshd-access

Buat file php di server web Anda dan berikan nama yang tidak jelas seperti my-sshd-access.php:

<?php
function get_ip()
{
    return getenv("REMOTE_ADDR"); 
}

?>

<?php
$out='/etc/hosts.allow.temporary-sshd-access';
$log='/var/log/sshd-access-addition-log';

print "Was:";
readfile($out);
print "<br>";
$ip=get_ip();
$fp=fopen($out,"w");
fputs($fp,$ip);
fclose($fp);

$lfp=fopen($log,"a");
fputs($lfp,$ip);
fputs($lfp,"n");
fclose($lfp);

print "Wrote: ";
readfile($out);
?>

Maafkan kode phpnya -- Saya menggeseknya dari tempat lain, jadi mungkin bisa dibersihkan secara keseluruhan. Yang dilakukannya hanyalah menambahkan alamat IP dari sistem yang mengaksesnya ke file /etc/hosts.allow.temporary-sshd-access, yang dibaca oleh sshd (karena dimasukkan oleh /etc/hosts.allow) pada waktu koneksi .

Sekarang ketika Anda berada di beberapa sistem arbitrer di web dan ingin melakukan ssh ke sistem ini, pertama-tama gunakan browser web dan tekan file ini (atau gunakan wget atau yang setara):

$ wget http://your.system.name/my-sshd-access.php

Sekarang Anda harus dapat ssh ke sistem Anda. Jika ini adalah tempat Anda mungkin sering ssh'ing, akan sepele untuk membaca konten file /etc/hosts.allow.temporary-sshd-access dan secara permanen menambahkan alamat IP ke /etc/hosts. izinkan.

Solusi 5:

Anda mungkin juga ingin melihat host yang ditolak.

FYI:OpenSSH 6.7 menjatuhkan dukungan tcpwrappers, yang berarti, dendeng host mungkin bukan solusi untuk instalasi baru.


Linux
  1. Delapan cara untuk melindungi akses SSH di sistem Anda

  2. Aktifkan SSH di Sistem Debian 9 - Prosedur Langkah demi Langkah?

  3. Ssh – Salin File Kembali Ke Sistem Lokal Dengan Ssh?

  1. Ssh Mengembalikan Pesan "Permintaan Penerusan x11 Gagal Di Saluran 1"?

  2. Ssh – Membatasi Pengguna Ssh/scp/sftp ke Direktori?

  3. gnutls_handshake() gagal:Jabat tangan gagal GIT

  1. Cara Memblokir atau Menonaktifkan Login Pengguna Normal di Linux

  2. Aktifkan SSH di Ubuntu 20.04 - Panduan langkah demi langkah?

  3. SSH dengan authorized_keys ke sistem Ubuntu dengan homedir terenkripsi?