Mam aplikację internetową, która nie ma użytkowników na Filipinach, ale jest ciągle bombardowana przez spamerów, testerów kart i inne niepożądane działania z tego miejsca. Widzę w dziennikach, że mają adresy IP na Filipinach i początkowo znajdują moją stronę za pośrednictwem google.ph lub innych .ph
stron.
Mam dość dobre filtry i kontrole bezpieczeństwa, więc tak naprawdę nie powodują dużych szkód, ale mimo to naprawdę mam tego dość. Wykorzystują przepustowość, wypełniają moją bazę danych, logi nadużyć i logi bezpieczeństwa bzdurami, marnują czas na kontach itp.
Podczas gdy zdecydowana większość obywateli Filipin nie jest spamerem i nie mogę po prostu zablokować każdego kraju, który mnie denerwuje, w tym momencie uważam, że rozwiązaniem jest po prostu zablokowanie całego ruchu z Filipin do mojej aplikacji internetowej. (Wiem, że blokowanie blokowania adresów IP całych krajów nie jest świetną praktyką i ma wiele problemów, ale dla tego kraju chcę zrobić wyjątek.)
(Wiem, że mogą sfałszować swój adres IP, ale przynajmniej mogę sprawić, że trochę nad tym popracują).
Wiem, że jest tam kilka usług geoip. Czy ktoś wie o jakichkolwiek bezpłatnych lub niedrogich usługach? Lub w jakikolwiek inny sposób odfiltrować ruch z określonego kraju?
Używam PHP na Apache 2, jeśli to ma znaczenie.
Odpowiedzi:
Możesz to zrobić na podstawie adresu IP przy użyciu darmowego interfejsu API Locatin IP, takiego jak IPInfoDB http://ipinfodb.com/index.php.
źródło
W przeciwieństwie do większości innych plakatów tutaj, nie powiem ci, że to zły pomysł, że nie powinieneś tego robić, że to nie rozwiąże twojego problemu lub że powinieneś zrobić coś innego. Oto co nam się przydarzyło:
Drażniły nas osoby z Chin i Korei (lub korzystające z serwerów proxy w Chinach i Korei). Skanowanie portów, przeszukiwanie naszych stron internetowych w poszukiwaniu luk, próby logowania itp. Próbowałem je zignorować (fail2ban zwykle się nimi zajmuje), ale w niektórych momentach uderzali nas tak mocno, że skutecznie zamieniali się w atak DoS. Kiedy masz setki połączeń naraz od osób, które próbują użyć twojego serwera jako serwera proxy, próbują połączyć się z SSH na twoim komputerze, próbują losowych nazw użytkowników i haseł, ma to tendencję do ważenia na stronie. W końcu miałem dość.
Nie otrzymujemy żadnego legalnego ruchu z Chin ani Korei; nasza firma tam nie sprzedaje (jesteśmy e-commerce), więc nie było ryzyka utraty legalnego ruchu, więc pomyślałem, że łatwiej było je zablokować z wyprzedzeniem, niż czekać na nich.
I to wszystko. Nasi problemowi użytkownicy odeszli, obciążenie sieci i serwer został zmniejszony, a my bez trudu przetrwaliśmy okres świąteczny.
Uwaga 1 : możesz to zrobić za pomocą zwykłych iptables (tj. Bez ipset), ale jest to bardziej kosztowne obliczeniowo niż używanie ipset.
Uwaga 2 : Tak wyglądają zrzuty (ipset wygeneruje je, jeśli chcesz):
Uwaga 3 : Używamy nethash, ponieważ wszystkie nasze zakresy są przechowywane jako bloki CIDR. Jeśli nie chcesz przekonwertować ich na CIDR, możesz zamiast tego użyć iptreemap, ale wyobrażam sobie, że może to być mniej wydajne, jeśli masz duży ruch.
źródło
Jak naprawić błąd w kodzie?
Podoba ci się?
Błąd: Dodaj (2,2) zwraca 0, powinien zwrócić 4.
Naprawiono kod:
Oczywiście, że nie. Nie tylko tworzysz drżącą potworność specjalnych przypadków, która jest niezwykle delikatna i stanowi przepis na katastrofę. Nie tylko załatujesz DZISIAJ symptomy leżące u podstaw problemu.
Zamiast tego ustal pierwotną przyczynę i napraw ją. Jest to o wiele bardziej niezawodne niż jakakolwiek zhackowana łatka do specjalnych przypadków, którą można wdrożyć.
Dlaczego twoja aplikacja internetowa jest podatna na spam? Jakie cechy sprawiają, że jest wrażliwy? Jakie cechy sprawiają, że jest to cenny cel? Czy istnieją sposoby na zmianę tych cech, aby uczynić swoją aplikację bardziej odporną na spam i mniej kuszącym celem? Prawie na pewno odpowiedź na te pytania brzmi „tak”. Dodaj łańcuchy sprawdzania poprawności do formularzy, inteligentnie użyj captcha, losowo urluj adresy URL i / lub nazwy parametrów, aby uczynić je nieprzyjaznymi dla botów. Istnieją miliony sposobów rozwiązania tego problemu, przykro mi powiedzieć, że wybrałeś jedno z najmniej wartościowych, najmniej użytecznych i najbardziej delikatnych rozwiązań.
źródło
Po pierwsze, zdecydowanie zalecam nie robienie tego.
Jak twierdzą inni, bardziej elokwentnie, blokowanie określonego kraju nie rozwiązuje problemu, tylko go nieco opóźnia. Ponadto, gdy użytkownicy z tego kraju zobaczą, że ich specjalnie zablokowałeś , będzie to tylko motywowało ich do powodowania dalszych problemów.
To powiedziawszy, jeśli naprawdę chcesz to zrobić, IPinfoDB zapewnia bezpłatną bazę danych geolokalizacji IP,
źródło
Powinieneś używać produktów takich jak fail2ban, aby wykluczyć błędy, które zgłaszasz w swojej aplikacji internetowej wskazujące na próbę spamowania. Spowoduje to zablokowanie adresu IP na pewien czas, dzięki czemu witryna będzie odporna, ale nie będzie blokować całego bloku adresów IP.
źródło
Kilka rozwiązań:
Rozwiązania te są dość łatwe i szybkie do wdrożenia oraz bezpłatne.
Długofalowym rozwiązaniem byłoby wykrycie spamu z aplikacji internetowej, zalogowanie adresu IP i nakarmienie iptables, aby je automatycznie zablokować.
źródło
Czy zastanawiałeś się nad tym, kto obsługuje sieci, z których jesteś atakowany? Znajdź kontakt „nadużycie” za pomocą whois i zgłoś się do nich. Oczywiście może pochodzić z kilku sieci, ale warto też, jeśli widzisz powtarzające się adresy / bloki sieciowe.
źródło
Masz pełne prawo do blokowania adresów IP z dowolnego powodu, który sam możesz uzasadnić. To Ty świadczysz usługę i to Ty decydujesz, kto może ją mieć, czy nie. Być może jest to wątpliwe, czy jest to moralne, ale jest to coś, o czym możesz sam decydować.
Jednak blokowanie segmentu IP, ponieważ ma on pewne aspekty geograficzne, brzmi dla mnie mniej więcej jak podejście paniczne.
To, co zrobiłem w przeszłości, to przeszukiwacz przeglądający moje ostatnie dzienniki i oparty na tym zakazie pojedyncze adresy IP, które są denerwujące przez okres 24 godzin. Jeśli ten konkretny adres IP znowu źle funkcjonuje, zostaje zablokowany na 2 dni, a następnie 3 dni itd. Itd., Otrzymujesz dryf.
Adresy IP, które są zakazane przez ponad tydzień, zostaną wysłane do mnie, a ja wysyłam wiadomości o nadużyciach do tego usługodawcy (który wie, że może nawet pomóc).
źródło
Wybrałbym rozwiązanie Snort + OSSEC, które mogłoby dynamicznie utrzymywać coś takiego.
źródło