Bagaimana cara melacak upaya masuk SSH yang gagal?

134

Saya ingin melihat apakah seseorang telah mencoba masuk dengan paksa ke server Ubuntu 12.04 saya melalui SSH. Bagaimana saya bisa melihat jika kegiatan tersebut telah terjadi?

Ivan
sumber

Jawaban:

150

Semua upaya masuk dicatat /var/log/auth.log.

1. Filter untuk login SSH interaktif brute force

Buka terminal, dan ketik di bawah ini; jika lebih dari 1 halaman Anda akan dapat menggulir ke atas dan ke bawah; ketik quntuk keluar:

grep sshd.\*Failed /var/log/auth.log | less
  • Ini adalah contoh nyata dari salah satu VPS saya:

    18 Agustus 11:00:57 izxvps sshd [5657]: Gagal kata sandi untuk root dari 95.58.255.62 port 38980 ssh2
    18 Agustus 23:08:26 izxvps sshd [5768]: Gagal kata sandi untuk root dari port 91.205.189.15 38156 ssh2
    18 Agustus 23:08:30 izxvps sshd [5770]: Gagal kata sandi untuk siapa pun dari 91.205.189.15 port 38556 ssh2
    18 Agustus 23:08:34 izxvps sshd [5772]: Gagal kata sandi untuk tanda bintang pengguna yang tidak valid dari 91.205.189.15 port 38864 ssh2
    18 Agustus 23:08:38 izxvps sshd [5774]: Gagal kata sandi untuk sjobeck pengguna yang tidak valid dari 91.205.189.15 port 39157 ssh2
    18 Agustus 23:08:42 izxvps sshd [5776]: Gagal kata sandi untuk root dari port 91.205.189.15 39467 ssh2
    

2. Cari koneksi yang gagal (mis. Tidak ada upaya masuk, bisa menjadi pemindai port, dll.):

Gunakan perintah ini:

grep sshd.*Did /var/log/auth.log | less
  • Contoh:

    5 Agustus 22:19:10 izxvps sshd [7748]: Tidak menerima string identifikasi dari 70.91.222.121
    10 Agustus 19:39:49 izxvps sshd [1919]: Tidak menerima string identifikasi dari 50.57.168.154
    13 Agustus 23:08:04 izxvps sshd [3562]: Tidak menerima string identifikasi dari 87.216.241.19
    17 Agustus 15:49:07 izxvps sshd [5350]: Tidak menerima string identifikasi dari 211.22.67.238
    19 Agustus 06:28:43 izxvps sshd [5838]: Tidak menerima string identifikasi dari 59.151.37.10
    

Cara mengurangi upaya masuk yang gagal / brute-force

  • Coba alihkan SSH Anda ke port non-standar dari standar 22
  • Atau pasang skrip larangan otomatis seperti fail2banInstal fail2ban .
ish
sumber
4
Seberapa banyak keamanan yang Anda dapatkan saat mengganti port SSH (tidak bisakah mereka memindai Anda seperti yang Anda sebutkan) dan apakah layak menggunakan sedikit kegunaan untuk pengguna yang sah?
Nick T
8
@NickT ternyata cukup untuk mengurangi upaya masuk secara signifikan. Di mana saya mendapatkan ribuan upaya dalam seminggu / hari, sejauh ini saya belum pernah melakukannya selama sebulan terakhir, hanya dengan mengganti port.
AntoineG
2
Saya pikir melarang login dengan kata sandi juga dapat membantu.
Luc M
2
saya tahu ini ubuntu, hanya ingin menyebutkan bahwa pada beberapa sistem seperti centos path file-nya/var/log/secure
lfender6445
Beberapa sistem mengakses log dengansystemctl -eu sshd
alecdwm
72

Saya berpendapat bahwa pemantauan log adalah solusi yang lemah terutama jika Anda memiliki kata sandi yang lemah pada akun. Upaya kasar sering mencoba setidaknya ratusan kunci per menit. Bahkan jika Anda memiliki tugas cron yang diatur untuk mengirim email kepada Anda tentang upaya kasar, itu bisa berjam-jam sebelum Anda sampai ke server Anda.

Jika Anda memiliki server SSH yang menghadap publik, Anda memerlukan solusi yang menendang  jauh sebelum Anda bisa diretas.

Saya sangat merekomendasikan fail2ban. Wiki mereka mengatakan apa yang dilakukannya lebih baik daripada yang saya bisa.

Fail2ban memindai file log (mis. /var/log/apache/error_log) Dan melarang IP yang menunjukkan tanda-tanda berbahaya - terlalu banyak kegagalan kata sandi, mencari eksploit, dll. Umumnya Fail2Ban kemudian digunakan untuk memperbarui aturan firewall untuk menolak alamat IP untuk jumlah waktu tertentu, walaupun ada tindakan sewenang-wenang lainnya (misalnya mengirim email, atau mengeluarkan baki CD-ROM) juga dapat dikonfigurasi. Di luar kotak, Fail2Ban dilengkapi dengan filter untuk berbagai layanan (apache, curier, ssh, dll).

Mendapatkan perlindungan darinya semudah sudo apt-get install fail2ban.

Secara default segera setelah seseorang melakukan tiga upaya gagal, IP mereka mendapat larangan lima menit. Penundaan semacam itu pada dasarnya menghentikan upaya brute force SSH tetapi itu tidak akan merusak hari Anda jika Anda lupa kata sandi Anda (tetapi Anda harus tetap menggunakan kunci!)

Oli
sumber
6
Kenapa itu disebut gagal untuk melarang?
Pacerier
9
@ Paser Yah dengan beberapa analogi, kegagalan login menyebabkan (2) larangan.
Sebi
2
Bwahaha kau membuat hariku @Pacerier. Aku tidak pernah menganggapnya sebagai "kegagalan untuk melarang" secara harfiah.
adelriosantiago
1
Saya pikir ini harus diedit untuk menghapus "terutama" dari kalimat pertama. Ini hanya masalah jika Anda memiliki kata sandi yang lemah. Kata sandi yang kuat tidak dapat secara paksa dipaksa dalam keadaan apa pun, dan satu-satunya alasan untuk mencegah orang lain mencoba adalah untuk mengurangi beban server.
Abhi Beckert
Sangat setuju. Lagi pula itu akan baik-baik saja mencegah beban server yang tinggi. Saya telah melihat upaya dengan tarif milidetik
Diego Andrés Díaz Espinoza