Saya memiliki aplikasi web yang tidak memiliki pengguna di Filipina, tetapi terus-menerus dibombardir oleh spammer, kartu pengujian carder, dan aktivitas lain yang tidak diinginkan dari sana. Saya dapat melihat di log bahwa mereka memiliki IP di Filipina dan pada awalnya menemukan situs saya melalui google.ph atau .ph
situs lainnya .
Saya memiliki filter dan pemeriksaan keamanan yang cukup bagus, sehingga tidak benar-benar menyebabkan banyak kerusakan, tetapi saya sangat bosan. Mereka menggunakan bandwidth, mengisi basis data saya, log penyalahgunaan, dan log keamanan dengan omong kosong, buang-buang waktu saya menyebut akun, dll.
Sementara sebagian besar warga negara Filipina bukan spammer, dan saya tidak bisa hanya memblokir setiap negara yang mengganggu saya, pada titik ini, saya pikir solusinya adalah dengan memblokir semua lalu lintas dari Filipina ke webapp saya. (Saya tahu memblokir blok IP seluruh negara bukan praktik yang bagus, dan memiliki banyak masalah, tetapi untuk negara ini, saya ingin membuat pengecualian.)
(Saya tahu mereka bisa memalsukan alamat IP mereka, tetapi setidaknya saya bisa membuatnya sedikit bekerja.)
Saya tahu ada beberapa layanan geoip di luar sana. Adakah yang tahu layanan gratis atau tidak mahal? Atau cara lain untuk menyaring lalu lintas dari negara tertentu?
Saya menjalankan PHP di Apache 2, jika itu penting.
Jawaban:
Anda dapat melakukan ini berdasarkan alamat IP menggunakan IP Locatin API gratis seperti IPInfoDB http://ipinfodb.com/index.php.
sumber
Tidak seperti kebanyakan poster lain di sini, saya tidak akan memberi tahu Anda bahwa ini adalah ide yang buruk, bahwa Anda tidak boleh melakukannya, bahwa itu tidak akan menyelesaikan masalah Anda, atau bahwa Anda harus melakukan sesuatu yang lain. Inilah yang terjadi pada kami:
Orang-orang dari Cina dan Korea (atau menggunakan proxy di Cina dan Korea, tetap) mengganggu kami. Portscanning, merayapi situs web kami mencari kerentanan, membuat upaya masuk, dll. Saya mencoba mengabaikannya (fail2ban merawatnya biasanya) tetapi pada beberapa titik mereka memukul kami begitu keras sehingga secara efektif berubah menjadi serangan DoS. Ketika Anda memiliki ratusan koneksi sekaligus dari orang-orang yang mencoba menggunakan server web Anda sebagai proxy, mencoba SSH ke mesin Anda, mencoba nama pengguna dan kata sandi acak, itu cenderung membebani situs. Saya akhirnya muak.
Kami tidak mendapatkan lalu lintas yang sah dari Cina atau Korea; perusahaan kami tidak menjual di sana (kami adalah e-commerce) sehingga tidak ada risiko kehilangan lalu lintas yang sah, jadi saya pikir lebih mudah untuk memblokir mereka terlebih dahulu daripada menunggu mereka menjadi orang bodoh.
Dan itu saja. Pengguna masalah kami pergi, memuat di jaringan dan server menurun, dan kami melewati musim Natal tanpa kesulitan.
Catatan 1 : Anda dapat melakukan ini dengan iptables biasa (yaitu tanpa ipset) tetapi lebih mahal secara komputasi daripada menggunakan ipset.
Catatan 2 : Ini adalah bagaimana tampilan dump (ipset akan menghasilkan ini untuk Anda jika Anda mau):
Catatan 3 : Kami menggunakan nethash karena semua rentang kami disimpan sebagai blok CIDR. Jika Anda tidak ingin mengonversinya menjadi CIDR, Anda dapat menggunakan iptreemap sebagai gantinya, tetapi saya membayangkan itu mungkin kurang efisien jika Anda mendapatkan banyak lalu lintas.
sumber
Bagaimana Anda memperbaiki bug dalam kode?
Seperti begitu?
Bug: Tambahkan (2,2) pengembalian 0, harus kembali 4.
Kode tetap:
Tentu saja tidak. Anda tidak hanya membuat kebuntuan kasus-kasus khusus, itu sangat rapuh dan resep untuk bencana. Anda juga tidak hanya menambal gejala HARI INI dari masalah yang mendasarinya.
Alih-alih, cari tahu penyebabnya, dan perbaiki itu. Ini jauh lebih kuat daripada tambalan kasus khusus yang bisa Anda terapkan.
Mengapa aplikasi web Anda rentan terhadap spam? Karakteristik apa yang membuatnya rentan? Karakteristik apa yang menjadikannya target yang berharga? Adakah cara Anda dapat mengubah karakteristik itu untuk membuat aplikasi Anda lebih kuat melawan spam dan mengurangi target yang menggoda? Hampir pasti jawaban untuk pertanyaan ini adalah ya. Tambahkan rantai validasi ke formulir Anda, gunakan captcha secara cerdas, acakkan url dan / atau nama parameter untuk membuatnya tidak bersahabat dengan bot. Ada jutaan cara untuk mendekati masalah ini, maaf saya katakan Anda telah memilih salah satu solusi yang paling tidak berharga, paling tidak berguna, dan paling rapuh di luar sana.
sumber
Pertama, saya sangat menyarankan untuk tidak melakukan ini.
Seperti yang orang lain katakan dengan jauh lebih fasih, memblokir negara tertentu tidak memperbaiki masalah, tetapi justru sedikit membantahnya. Juga, ketika pengguna dari negara itu melihat Anda telah memblokirnya secara khusus, itu hanya akan memotivasi mereka untuk menyebabkan Anda lebih banyak masalah.
Yang mengatakan, jika Anda benar - benar ingin melakukan ini, IPinfoDB menyediakan basis data geolokasi IP gratis,
sumber
Anda harus menggunakan produk seperti fail2ban untuk mengunci kesalahan yang Anda masukkan ke dalam aplikasi web Anda yang menunjukkan upaya spam sedang dilakukan. Ini akan memblokir IP untuk jangka waktu tertentu, membuat situs Anda tahan, tetapi tidak menutup seluruh blok IP.
sumber
Beberapa solusi:
Solusi ini cukup mudah dan cepat untuk diterapkan, dan gratis.
Solusi jangka panjang adalah mendeteksi spam dari aplikasi web Anda, mencatat IP dan memberi makan iptables Anda untuk memblokirnya secara otomatis.
sumber
Apakah Anda mempertimbangkan untuk menemukan siapa yang mengoperasikan jaringan tempat Anda diserang? Temukan kontak "penyalahgunaan" menggunakan whois dan laporkan kepada mereka. Tentu saja itu mungkin berasal dari beberapa jaringan, tetapi juga mungkin layak jika Anda melihat beberapa alamat berulang / blok jaringan.
sumber
Anda memiliki setiap hak untuk memblokir alamat IP dari alasan apa pun yang Anda bisa membenarkan untuk diri sendiri. Andalah yang menyediakan layanan dan Andalah yang memutuskan siapa yang bisa memilikinya atau tidak. Mungkin dipertanyakan apakah ini bermoral tetapi itu adalah sesuatu yang hanya dapat Anda putuskan sendiri.
Namun memblokir segmen IP karena memiliki beberapa aspek geografis untuk itu bagi saya lebih mirip pendekatan panik.
Apa yang telah saya lakukan di masa lalu adalah memiliki crawler menelusuri log terbaru saya dan berdasarkan larangan individu IP yang mengganggu selama 24 jam. Jika IP spesifik itu bermasalah lagi, itu diblokir selama 2 hari, maka 3 hari, dll.
IP yang diblokir lebih dari seminggu akan dikirimkan kepada saya dan saya mengirim email penyalahgunaan ke penyedia layanan tersebut (siapa tahu itu mungkin bisa membantu).
sumber
Saya akan memilih solusi Snort + OSSEC yang dapat mempertahankan sesuatu seperti ini secara dinamis.
sumber