Saya baru saja cat /var/log/auth.log
login dan melihat, bahwa ada banyak | grep "Failed password for"
catatan.
Namun, ada dua jenis rekaman yang mungkin - untuk pengguna yang valid / tidak valid. Ini mempersulit upaya saya untuk | cut
mereka.
Saya ingin melihat membuat daftar (file teks) dengan alamat IP dari kemungkinan penyerang dan jumlah upaya untuk setiap alamat IP. Apakah ada cara mudah untuk membuatnya?
Juga, hanya mengenai ssh
: Apa semua catatan yang /var/log/auth.log
harus saya pertimbangkan ketika membuat daftar kemungkinan penyerang?
Contoh 'auth.log' saya dengan nomor tersembunyi:
cat /var/log/auth.log | grep "Failed password for" | sed 's/[0-9]/1/g' | sort -u | tail
Hasil:
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user ucpss from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user vijay from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user webalizer from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user xapolicymgr from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user yarn from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user zookeeper from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user zt from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for mysql from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for root from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for root from 111.111.111.1 port 11111 ssh1
/etc/ssh/sshd_config
... pengaturan pencarianPasswordAuthentication no
danPermitRootLogin without-password
... maka semua upaya kata sandi tersebut akan digagalkan sebelum memasuki auth.log ...Jawaban:
Anda dapat menggunakan sesuatu seperti ini:
Ia menangkap string
Failed password for
dan mengekstrak (-o
) alamat ip. Ini diurutkan, danuniq
menghitung jumlah kejadian.Outputnya kemudian akan terlihat seperti ini (dengan contoh Anda sebagai file input):
Yang terakhir dalam output telah mencoba 6 kali.
sumber
| sort -n
ke rantai.sed -nr '/Failed/{s/.*([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*/\1/;p}'
menggantikan kedua greps.zgrep "Failed" /var/log/auth.log*
mencari melalui arsip log terkompresi, apa yangsed
tidak bisa.Ini mungkin solusi yang membengkak, tetapi saya sarankan Anda melihat menginstal sesuatu seperti Fail2Ban
Ini dibuat untuk jenis logging + ini menambahkan bonus karena dapat menambahkan aturan (sementara) di firewall Anda untuk memblokir pelanggar berulang. Pastikan untuk daftar putih ip Anda sendiri, saya berhasil mengunci diri sementara waktu pada beberapa kesempatan
sumber
Ini bekerja dengan sangat baik bagi saya. (IP telah diubah untuk melindungi yang bersalah)
sumber
sumber
password
- tidak berfungsi. Bahkan tidak mencakup berbagai jenis entri,awk
kolom cetak adalah alternatif untukcut
, bukan solusinya.uniq -c
seperti dalam jawaban terbaik.