Saya baru saja memeriksa server saya /var/log/auth.log
dan menemukan bahwa saya mendapatkan lebih dari 500 pemberitahuan upaya gagal kata sandi / pembobolan per hari! Situs saya kecil, dan URL-nya tidak jelas. Apakah ini normal? Haruskah saya mengambil tindakan apa pun?
196
Jawaban:
Di internet saat ini hal ini cukup normal. Ada gerombolan botnet yang mencoba masuk ke setiap server yang mereka temukan di seluruh jaringan IP. Biasanya, mereka menggunakan serangan kamus sederhana pada akun terkenal (seperti akun root atau aplikasi tertentu).
Target serangan tidak ditemukan melalui entri Google atau DNS, tetapi para penyerang hanya mencoba setiap alamat IP dalam subnet tertentu (misalnya perusahaan hosting server-root yang dikenal). Jadi tidak masalah bahwa URL Anda (karenanya entri DNS) agak tidak jelas.
Itulah mengapa sangat penting untuk:
Selain itu, Anda dapat menginstal fail2ban yang akan memindai authlog dan jika ia menemukan sejumlah upaya login gagal dari IP, ia akan melanjutkan untuk menambahkan IP ke
/etc/hosts.deny
atau iptables / netfilter untuk mengunci penyerang selama beberapa menit.Selain serangan SSH, juga umum untuk memindai server web Anda untuk aplikasi web yang rentan (beberapa aplikasi blogging, CMS, phpmyadmin, dll.). Jadi, pastikan untuk selalu memperbarui dan mengonfigurasi mereka dengan aman!
sumber
action.d/iptables.conf
.Beberapa 100 baik-baik saja ... Bulan lalu saya menemukan salah satu server saya memiliki upaya gagal 40k. Saya mengalami kesulitan merencanakannya: Peta
Setelah saya mengubah port ssh dan mengimplementasikan Port Knocking, jumlahnya turun menjadi 0 :-)
sumber
grep 'Failed password' /var/log/secure* | grep sshd | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort | uniq
(hapus | uniq di bagian akhir jika Anda ingin memperbolehkan duplikat). Anda kemudian dapat menempatkannya di CSV dan mengunggahnya ke zeemaps.com. Saya telah melihat peta yang lebih baik daripada milik saya, di mana mereka akan menggunakan hitungan untuk mewarnai peta (hijau menjadi merah untuk jumlah upaya per county) tapi saya belum menemukan satu punI untuk satu menggunakan "tarpit" selain hanya memungkinkan otentikasi kunci publik dan melarang login root.
Di
netfilter
sana adarecent
modul, yang dapat Anda gunakan dengan (INPUT
rantai):Apa yang dilakukan adalah, bahwa setiap upaya untuk terhubung ke port 22 terdaftar oleh
recent
modul dengan IP dan beberapa hal lain dengan nama "tarpit" (jika Anda penasaran, lihat/proc/net/xt_recent/tarpit
). Jelas Anda bisa menggunakan nama lain.Untuk membuat daftar atau menghapus daftar IP, gunakan:
Nilai ini membatasi upaya hingga 5 dalam 300 detik. Harap perhatikan bahwa pengguna dengan koneksi yang ada tidak terganggu oleh batas itu, karena mereka sudah memiliki koneksi yang sudah mapan dan diizinkan untuk membuat lebih banyak (bahkan di atas batas tarif).
Sesuaikan aturan sesuai keinginan Anda, tetapi pastikan bahwa aturan itu ditambahkan dalam urutan itu (yaitu saat menambahkan lalu menggunakannya dalam urutan ini, saat memasukkan lalu dalam urutan terbalik).
Ini sangat mengurangi kebisingan. Ini juga menyediakan keamanan aktual (melawan kekerasan) tidak seperti keamanan yang dirasakan untuk mengubah port. Namun, saya masih merekomendasikan untuk mengganti port jika memungkinkan di lingkungan Anda. Ini akan mengurangi tingkat kebisingan juga ...
Anda masih dapat menggabungkan ini dengan fail2ban, meskipun saya sudah berjalan dengan baik tanpa itu dan hanya aturan di atas.
SUNTING:
Dimungkinkan untuk mengunci diri Anda keluar dari melakukan ini, sehingga Anda dapat menambahkan sesuatu seperti berikut ini yang memungkinkan Anda menghapus Anda melarang dengan mengetuk port tertentu:
sumber
Anda bisa mengimplementasikan fail2ban , atau metode serupa seperti mengunci SSH ke IP Anda. Sayangnya bot mencoba untuk mengakses bruteforce sepanjang waktu sehingga itu cukup normal, Anda perlu memastikan Anda memiliki kata sandi yang baik.
sumber
Ya . Ini cukup normal saat ini.
Harap gunakan hanya otentikasi kunci publik untuk keperluan administratif jika memungkinkan. Hasilkan kunci pribadi di komputer Anda:
Copypaste konten ~ / .ssh / id_dsa.pub ke server Anda ~ / .ssh / Authorized_keys (dan /root/.ssh/authorized_keys, jika Anda memerlukan login root langsung).
Konfigurasikan server Anda / etc / ssh / sshd_config untuk hanya menerima otentikasi kunci publik:
Jika Anda memiliki terlalu banyak server, Anda dapat menggunakan Wayang untuk menjalankan kunci publik dan konfigurasi padanya.
Lihatlah ke Denyhosts dan fail2ban untuk memblokir upaya login SSH berulang dan lihat Snort jika Anda memerlukan IDS / IPS lengkap.
sumber
gunakan http://denyhosts.sourceforge.net/
dan ya, Anda harus menggunakan otentikasi kunci publik dan menonaktifkan kata sandi auth.
sumber
Upaya ini dilakukan secara mekanis, sehingga jumlahnya tampak OK (ya mereka tinggi dibandingkan dengan beberapa situs dan rendah dibandingkan dengan yang lain). Anda harus mengambil langkah-langkah yang biasanya Anda harus: Anda menganggap situs Anda sebagai target serangan setiap hari, bahkan ketika Anda tidak mendeteksi serangan; tidak mendeteksi serangan, tidak berarti itu tidak ada .
sumber
Menurut saya hanya mendapat 500 saja agak rendah.
Di perusahaan sebelumnya, salah satu peneliti keamanan komputer menyebut aliran konstan upaya pembobolan "ekuivalen internet dari kebisingan kosmik ". Dia menggambarkannya sebagai arus normal, lalu lintas berbahaya yang mencari sistem di internet dan secara otomatis mengeksploitasi skrip untuk mencoba membajak sistem. Bot dan sistem jahat lainnya akan terus memindai dan memindai ulang internet untuk sistem yang rentan seperti SETI.
sumber
Iya,
ini biasa, tetapi itu tidak berarti Anda tidak boleh bertarung dengan pertarungan yang baik. Berikut adalah beberapa langkah tentang bagaimana Anda dapat membuat server Anda lebih aman.
Hindari alamat IP terkait DNS
Anda dapat sangat mengurangi nomor ini di lingkungan bersama atau colocation dengan menonaktifkan akses SSH pada alamat IP yang terkait dengan nama domain. Alamat IP non-domain yang tidak terdaftar akan menerima lebih sedikit dari jenis lalu lintas ini, jadi belilah IP yang tidak terdaftar dan hanya gunakan IP ini untuk akses SSH.
Gunakan VPN untuk semua akses SSH
Jika Anda berada di lingkungan di mana Anda dapat mengimplementasikan IPsec / VPN ke jaringan pribadi dalam lingkungan server Anda, ini sangat ideal. Nonaktifkan semua akses Internet SSH, pastikan Anda memiliki solusi lampu mati terintegrasi. Atur VPN Anda, dan hanya izinkan akses SSH dari VPN Anda.
Menerapkan aturan alamat IP untuk akses SSH
Jika VLAN bukan opsi konfigurasi router Anda, atau aturan firewall hanya mengizinkan koneksi SSH dari rentang alamat IP yang diketahui.
Jika Anda mengikuti langkah-langkah ini Anda akan lebih mudah tidur di malam hari mengetahui seseorang harus berkompromi dengan jaringan perusahaan hosting Anda untuk mendapatkan akses ke server melalui SSH.
sumber
Cukup normal untuk melihat ratusan koneksi SSH yang gagal.
Jika Anda memiliki opsi, saya cukup mengubah port SSH saya ke sesuatu yang tidak standar. Itu tidak selalu membuat server Anda lebih aman, tetapi itu jelas membersihkan log (dan memungkinkan Anda melihat seseorang dengan sengaja mencoba masuk!)
sumber
Selain menggunakan mekanisme penguncian otomatis seperti fail2ban, Anda memiliki satu opsi lagi: benar-benar menghubungi ISP alamat penyerang penyerang. Ini mungkin tampak benar-benar sia-sia tetapi dalam kasus script-kiddie ISP mereka lebih dari bersedia untuk mengambil tindakan terhadap mereka.
Untuk menemukan alamat penyalahgunaan, mulailah dengan arin.net dan cari alamat IP menggunakan whois. Anda mungkin dialihkan ke registri regional lain tetapi pada akhirnya Anda dapat menemukan ISP yang bertanggung jawab untuk blok IP yang berisi alamat tersebut. Cari alamat @ penyalahgunaan atau kirimkan kontak teknis.
Kirimi mereka pesan sopan dengan entri file log yang relevan (pastikan untuk menghapus informasi pribadi apa pun) dan minta mereka untuk mengambil tindakan terhadap host yang melanggar.
sumber
Saya akan merekomendasikan tidak menggunakan fail2ban tetapi menjalankan SSH (dan lainnya) pada port non-standar. Saya tidak percaya pada keamanan oleh ketidakjelasan tapi saya pikir ini adalah cara terbaik untuk mengurangi kebisingan di log Anda.
Login gagal pada port non-standar akan sedikit dan jauh antara dan juga dapat menunjukkan lebih banyak serangan yang ditargetkan.
Anda bahkan dapat melangkah lebih jauh menginstal honeypot SSH seperti Kippo untuk 'membiarkan' para bruteforcers dan melihat apa yang akan mereka lakukan jika diberi kesempatan.
sumber
Ya itu normal. Apa yang saya katakan pada klien dalam situasi Anda dengan situs web kecil.
Selalu siap untuk diretas.
Memiliki salinan situs web Anda di server dev. Ini bisa menjadi desktop Windows Anda menggunakan XAMPP yang bisa Anda dapatkan secara gratis.
SELALU membuat perubahan ke server dev Anda lalu mengunggahnya ke situs web langsung Anda. Jika itu adalah CMS seperti Wordpress, buat posting Anda di server dev kemudian salin dan tempel ke server langsung.
JANGAN PERNAH mengunduh apa pun dari situs web langsung Anda ke server dev Anda.
Pantau halaman web Anda secara teratur untuk setiap perubahan yang tidak Anda lakukan. Secara khusus, tautan tersembunyi ke obat-obatan atau produk 'tambahan'. Anda dapat menemukan banyak browser dan program yang akan melakukan ini untuk Anda.
Jika Anda dikompromikan. Beri tahu host Anda, hapus semuanya, ubah semua kata sandi, dan unggah server dev bersih Anda ke server web yang sekarang kosong. Bekerja dengan host Anda untuk mencegah terulangnya.
Anda seharusnya tidak memerlukan tim keamanan untuk situs kecil. Itulah yang seharusnya disediakan oleh tuan rumah Anda. Jika tidak, dapatkan host lain yang jauh lebih mudah dilakukan ketika Anda memiliki server dev daripada mencoba memindahkan server langsung.
Semoga ini membantu.
sumber
Cara lain untuk menghentikannya (karena saya pribadi tidak suka memindahkan port SSH): putuskan apakah Anda dapat membuat daftar semua jaringan dari mana Anda ingin login, kemudian hanya mengizinkan ini untuk mengakses port SSH Anda.
Entri WHOIS dari ISP lokal membantu saya mengurangi serangan menjadi 1-2 upaya login sebulan (saat itu sekitar 1 k / hari). Saya mendeteksi mereka dengan masih menggunakan denyhosts .
sumber
Selain saran bagus lainnya yang telah Anda terima, saya juga ingin menggunakan arahan AllowUsers jika sesuai untuk server yang diberikan. Ini memungkinkan hanya pengguna tertentu untuk masuk melalui SSH yang sangat mengurangi kemungkinan mendapatkan akses melalui akun tamu / layanan / sistem yang tidak aman dikonfigurasi.
Contoh:
sumber
Ya itu normal. Kamu bisa :
Fwknop adalah salah satu implementasi ketukan port yang lebih baik karena tidak spoofable dan benar-benar mengotentikasi sebagai lawan hanya mengotorisasi koneksi.
Anda dapat mengubah port yang digunakan openssh tetapi Anda tidak benar-benar meningkatkan keamanan.
Fortifikasi ssh otentikasi menggunakan Google-authenticator atau wikid
Ini akan melindungi serangan berbasis kata sandi dan kemungkinan penyerang / serangan bertarget yang membahayakan mesin admin Anda dan mencuri kombo ssh-key & password Anda.
Lihat saja comp pwn2own terbaru untuk melihat betapa mudahnya bagi penyerang yang terampil untuk berkompromi dengan kotak admin Anda yang telah ditambal sepenuhnya.
sumber
Sayangnya ini cukup normal. Anda harus mempertimbangkan untuk menambahkan sesuatu seperti fail2ban ke sistem Anda untuk secara otomatis mendeteksi dan melarang penyerang. Jika Anda belum melakukannya, Anda juga harus mempertimbangkan hanya menggunakan ssh dengan kunci publik dan tidak mengizinkan login root melalui ssh. Jika menggunakan ftp untuk mentransfer file ke sistem, pertimbangkan untuk menggunakan scp / sftp sebagai gantinya.
sumber
Saya menerapkan port knocking, dan memiliki beberapa probe per hari. Mereka tidak mendapatkan koneksi, jadi mereka pergi. Saya mencatat dan melaporkan semua akses ke port yang terlibat.
Saya juga menjalankan fail2ban dengan Shorewall sebagai firewall untuk sementara daftar hitam penyerang gigih.
Jika Anda tidak memerlukan akses Internet untuk menonaktifkan SSH itu. Jika Anda memiliki beberapa alamat yang diketahui yang memerlukan akses jarak jauh, batasi akses ke alamat-alamat itu.
Membatasi akses ke kunci yang diizinkan juga dapat membantu.
sumber
Saya gunakan
pam_abl
untuk sementara mem-blacklist brute forcers, dan bekerja dengan baik. Saya pikir rasanya lebih baik untuk memiliki otorisasi di PAM menggunakan database sendiri daripada bergantung padahosts.deny
atauiptables
.Kelebihan lainnya adalah
pam_abl
tidak tergantung pada pemindaian file log.sumber
Ini sangat normal akhir-akhir ini.
Anda dapat mengatur batas "burst" pada firewall untuk koneksi baru yang masuk pada port SSH,
atau menginstal salah satu dari banyak parser log, kecuali fail2ban atau mengubah port SSH;).
Yang terakhir adalah yang termudah. Pada mesin berat yang dimuat, upaya break-in seperti itu dapat memberikan pengaruh sangat buruk bagi seluruh sistem.
-
Salam,
Robert
sumber
Ya itu normal.
Saya baru saja mengubah port ssh dari standar 22. Server saya, aturan saya :) cukup sunting / etc / ssh / sshd_config, ubah port dan restart layanan. Satu-satunya kelemahan adalah Anda harus ingat untuk menambahkan port itu ke konfigurasi untuk setiap klien ssh yang Anda gunakan.
sumber
Nonaktifkan login root (Di setiap pengguna sistem root linux ada sehingga bot dapat dengan mudah menebak nama pengguna). Setelah masuk sebagai pengguna normal Anda dapat beralih ke root baik dengan su atau sudo.
ubah port default dari 22
Izinkan akses ssh dari hanya ip yang dikenal
Gunakan kata sandi alfanumerik yang kuat untuk pengguna dengan akses ssh
sumber