Situs web saya mendapat ribuan klik setiap hari dari berbagai IP yang mencoba mengakses:
/php-myadmin/
/myadmin/
/mysql/
... dan ribuan variasi lainnya. Tidak ada direktori ini yang ada, saya bahkan tidak punya phpmyadmin di server saya.
Saya tidak berpikir salah satu dari upaya ini telah berhasil, namun mereka harus mengambil tol mereka pada sumber daya server dan membuang-buang bandwidth, jadi saya ingin menghentikannya jika memungkinkan. Saya telah memblokir beberapa IP ini tetapi mereka tetap kembali dengan IP baru, apakah ada cara saya bisa mencegah ini lebih permanen?
web-server
hacking
amba88
sumber
sumber
mod_security
di utas ini, jadi periksa itu . Catatan komentar di bawah ini mencatat bahwa ini sebenarnya akan menyebabkan lebih banyak pekerjaan yang harus dilakukan oleh server tentunya. Jadi mungkinmod_evasive
juga akan baik untuk diimplementasikan .fail2ban
, tapi itu tercantum di bawah ini.Jawaban:
Jangan khawatir tentang itu. Melayani 404 adalah pekerjaan kecil yang harus dilakukan server web. Anda mungkin dapat melayani sepuluh 404 per detik menggunakan 486. Bandwidth per 404 diabaikan; permintaan GET kecil dan respons 404 kecil.
Serius; jangan khawatir tentang itu. Ini hanya bagian tak terpisahkan dari menjalankan server di internet.
sumber
Sayangnya untuk Anda, inilah cara kerja Internet. Abaikan saja. Ribuan bot / trojan memindai Internet. Sumber IP akan selalu acak. Tidak ada obatnya.
Satu-satunya solusi 100% untuk menghilangkan lalu lintas diilustrasikan di bawah ini:
Alternatifnya adalah:
- untuk pindah dengan https / http dari port 80/443 ke sesuatu yang lain. Bot biasanya tidak mencari server http pada semua port 65k lainnya.
- gunakan VPN untuk terhubung ke server (saya kira ini tidak mungkin jika Anda meng-host situs web publik).
sumber
Apa yang Anda inginkan adalah Fail2ban (dengan asumsi ini adalah mesin linux, Anda tidak mengatakan ...)
Apa itu Fail2ban?
Fail2ban akan mem-parsing log sistem, mencari ekspresi reguler tertentu yang akan diblokir. Ketika menemukan kecocokan (atau beberapa kecocokan dari IP yang sama, tergantung pada bagaimana Anda mengkonfigurasinya), itu akan memblokir, biasanya melalui IPTable. Biasanya ini digunakan untuk memblokir upaya otentikasi yang gagal terhadap SSH atau server web.
Anda mengonfigurasinya untuk mencekal mereka untuk jumlah waktu tertentu (bisa beberapa menit, bisa berhari-hari ... tergantung pada seberapa gigihnya mereka), setelah itu pelarangan akan kedaluwarsa, kecuali jika mereka mencoba lagi.
Bagaimana cara ini membantu memblokir bot pemindaian phpmyadmin?
Itu bisa dengan mudah digunakan untuk mencocokkan tanda-tanda umum serangan, seperti mencoba mengakses folder phpmyadmin yang tidak ada. Anda harus mengetahui ekspresi reguler yang benar untuk mencocokkan upaya tersebut, dan memastikan Anda tidak memblokir pengguna yang sah.
Konfigurasi yang diberikan dalam posting blog ini dapat berfungsi secara verbatium atau memerlukan penyesuaian untuk pengaturan Anda.
Mengapa saya harus memblokirnya? Kesalahan 404 tidak membutuhkan biaya banyak
Memblokir mereka di iptables TIDAK memiliki kegunaan - kemungkinannya adalah jika mereka memeriksa kerentanan phpmyadmin, mereka dapat mencoba layanan lain untuk kerentanan juga, sampai mereka menemukan sesuatu yang berfungsi. Melarang mereka akan membuat sebagian besar bot / skrip menyerah setelah beberapa saat, dan mereka akan beralih ke target yang lebih baik.
Bahkan melalui pemindaian tidak membutuhkan biaya banyak (kecuali mereka benar-benar menemukan kerentanan), mereka membanjiri log Anda sehingga lebih sulit untuk melihat serangan yang berhasil dan masalah dengan server web Anda.
Seperti komentar di bawah ini katakan, Fail2ban memang membutuhkan beberapa sumber daya sistem. Tetapi tidak banyak. Paling tidak saya bisa mengatakan saya tidak pernah memiliki masalah kinerja yang saya dapat atribut ke Fail2ban. Namun saya memiliki masalah kinerja dari skrip yang sangat agresif yang mencoba brute force passwords atau melemparkan ribuan upaya injeksi SQL dan eksploitasi lainnya per detik di server saya. Memblokir mereka di tingkat firewall membutuhkan sumber daya JAUH lebih sedikit daripada memblokir mereka di tingkat server / aplikasi. Itu juga dapat diperluas untuk menjalankan skrip khusus untuk melarang alamat IP - jadi alih-alih melarangnya di IPtables, Anda mungkin dapat membuatnya mencekal mereka di firewall perangkat keras, atau mengirim email kepada seseorang jika orang yang sama terus berusaha menyerang Anda sehingga Anda dapat mengeluh ke ISP mereka atau minta pusat data Anda memblokirnya di firewall mereka.
Ada tips lain?
SANGAT DIANJURKAN bahwa Anda memasukkan daftar putih beberapa alamat IP yang Anda kontrol sehingga Anda tidak sengaja mengunci diri.
sumber
Apa yang saya lakukan adalah meletakkan skrip kecil ke direktori yang sesuai, jadi itu berjalan jika seseorang mengakses / phpmyadmin /. Skrip itu tidak melakukan apa-apa selain memanggil iptables (di Linux), yang memblokir alamat IP yang mengakses skrip selama 30 menit (setelah itu cron-job mem-flush rantai iptables yang ditambahkan alamat IP).
Keuntungan dibandingkan fail2ban adalah Anda tidak menggunakan sumber daya apa pun untuk mem-parsing syslog / akses-log. Kerugiannya, tentu saja, adalah Anda tidak memeriksa hal lain, kecuali mengakses alamat yang sangat spesifik ini.
Mengapa saya melakukan ini? Tentu, melayani 404 akan mudah bagi server, tapi saya tidak ingin mereka melihat-lihat, sesederhana itu. Saya ingin membuang waktu alat mereka, menunggu server untuk membalas, mencoba lagi sampai akhirnya menyerah. Selain itu, jika Anda tidak memblokirnya, mereka akan mencoba banyak URL yang berbeda sebelum akhirnya pindah - terkadang lebih dari seribu. Tergantung pada alatnya, itu mungkin "bagus" dan ruang yang keluar selama beberapa jam, atau mungkin tidak peduli dan menumbuk server Anda dengan semuanya dalam beberapa menit.
Mengapa saya tidak melayani halaman yang valid? Alat mereka mungkin berhenti memindai Anda dan mengingatkan skiddie yang menjalankannya - yang kemudian harus memeriksa secara manual. Sisi buruknya adalah mereka akan memberi server Anda tampilan yang lebih dekat daripada yang seharusnya, jika pemindaian mereka tidak membuat Anda muncul dalam hasil mereka. Mungkin mereka akan melihat-lihat sedikit lebih banyak, mungkin beberapa scan port, mungkin Anda membuatnya marah, dan mereka meluncurkan DoS untuk melihat apakah mereka dapat melakukan apa saja. Hanya memblokir mereka - yang dari sudut pandang mereka membuat waktu server habis saat mereka mengakses skrip phpmyadmin - efektif membuang-buang waktu alat mereka, sambil menghindari perhatian yang tidak diinginkan.
Jika Anda memiliki phpMyAdmin di server, solusi yang efektif mungkin meletakkannya di direktori terpisah, dan gunakan kontrol kata sandi server web Anda (.htpasswd untuk Apache) untuk memblokir akses sebelum ada yang mencapainya.
sumber
FWIW kami membatasi akses ke / phpmyadmin / hanya untuk Alamat IP yang masuk daftar putih.
Kami juga menggunakan mod_evasive (pada apache2) untuk mencegah DOS / serangan skrip berperilaku buruk.
sumber
ikat alat admin mysql ke alamat loopback mesin Anda 127.0.0.1
kemudian gunakan ssh dengan port forwarding untuk mengakses bagian belakang admin Anda.
tambahkan lapisan keamanan tambahan yang bisa sangat transparan.
sumber
Cara terbaik yang kami temukan adalah untuk melindungi folder dengan kata sandi phpmyadmin. Juga, jangan gunakan apa pun yang berhubungan dengan phpmyadmin sebagai nama folder: pma, phpmy, dll ...
sumber
None of these directories exist, I don't even have phpmyadmin on my server.
- Dia tidak bertanya bagaimana mengeraskan instal yang ada ... dia bertanya apa yang harus dilakukan tentang hal-hal yang tidak ada. Anda tidak dapat mengganti namaPMA
atau apa yang Anda miliki jika tidak ada.