Napisałem program do blokowania adresów IP tak, jak prosiłeś kilka lat temu, ale zrobiłem to dla Klienta jako pracownika najemnego. Ponieważ tego wieczoru miałem trochę „wolnego” czasu, postanowiłem ponownie wdrożyć całość od podstaw, napisać użyteczną dokumentację i ogólnie uczynić z niej program do prezentacji. Ponieważ słyszałem od wielu osób, że byłoby to przydatne, wydaje się, że prawdopodobnie warto. Mam nadzieję, że ty i inni członkowie społeczności możecie z tego trochę skorzystać.
Windows sshd_block
sshd_block to program VBScript, który działa jak ujście zdarzenia WMI, odbierając wpisy dziennika zdarzeń Windows zarejestrowane przez sshd. Analizuje te wpisy dziennika i działa na nie w następujący sposób:
Jeśli adres IP próbuje się zalogować przy użyciu nazwy użytkownika oznaczonej jako „natychmiast zablokuj”, adres IP zostanie natychmiast zablokowany.
Jeśli adres IP będzie próbował logować się częściej niż jest to dozwolone w danym okresie czasu, adres IP zostanie zablokowany.
Nazwy użytkowników i progi związane z powtarzającymi się próbami logowania można skonfigurować w sekcji „Konfiguracja” skryptu. Domyślne ustawienia są następujące:
- Ban Natychmiast Nazwy użytkowników - administrator, root, gość
- Dozwolone próby logowania - 5 w 120 sekund (2 minuty)
- Czas trwania bana - 300 sekund (5 minut)
Raz na sekundę wszelkie adresy IP, które zostały zablokowane na czas trwania zakazu, są odblokowywane (poprzez usunięcie trasy czarnej dziury z tabeli routingu).
Możesz pobrać oprogramowanie tutaj i przejrzeć archiwum tutaj .
Edytować:
W dniu 2010-01-20 zaktualizowałem kod, aby obsługiwał „Zaawansowaną zaporę” w systemie Windows Vista / 2008/7/2008 R2 w celu wstrzymania ruchu poprzez tworzenie reguł zapory (co jest znacznie bardziej zgodne z zachowanie „fail2ban”). Dodałem także kilka dodatkowych pasujących ciągów, aby złapać wersje OpenSSH, które „nieprawidłowego użytkownika” w przeciwieństwie do „nielegalnego użytkownika”.
W Linuksie denyhosts rozwiązuje problem, nie mogę powiedzieć, czy będzie działać na Windows / Cygwin, czy nie. Spróbuj.
źródło
Ten jest bardzo interesujący, obecnie oceniamy to rozwiązanie:
Syspeace ściśle współpracuje z systemem Windows w celu wykrywania potencjalnych zagrożeń przy optymalnej wydajności. Zdarzenia w dzienniku zdarzeń są stale monitorowane pod kątem podejrzanych zachowań. Jeśli zdarzenie zostanie uznane za zagrożenie dla systemu, Syspeace przechodzi do następnego poziomu, sprawdzając wewnętrzną bazę reguł, która po prostu blokuje adres IP i dodaje regułę do zapory systemu Windows.
Lokalna biała lista
Użytkownik może zawsze dodawać adresy IP do lokalnej białej listy, aby na przykład zapobiegać blokowaniu jakichkolwiek sieci wewnętrznych lub tymczasowo dodawać pojedyncze komputery. Należy tego używać ostrożnie, ponieważ wszelkie adresy IP na tej liście są uznawane przez Syspeace za godne zaufania i zawsze będą ignorowane.
Lokalna czarna lista
Wszelkie zagrożenia zostaną automatycznie dodane do lokalnej czarnej listy przez Syspeace. Zawsze możesz przejrzeć czarną listę i dodawać lub usuwać je według własnego uznania. Zalecamy jednak, aby nie wprowadzać żadnych zmian na tej liście, ponieważ może przypadkowo utorować drogę nieznanemu hakerowi.
Globalna czarna lista
Kluczową cechą Syspeace jest możliwość zapobiegawczego blokowania znanych adresów IP na globalnej czarnej liście. Wybierając tę opcję, Syspeace zaimportuje globalną czarną listę do twojego klienta i podejmie odpowiednie działania, dodając wszystkie globalnie czarne listy adresów IP do zestawu reguł zapory za naciśnięciem jednego przycisku.
Wiadomości
Ilekroć ma miejsce ważne wydarzenie, usługa jest uruchamiana lub zatrzymywana, reguły są umieszczane lub usuwane z zapory ogniowej lub status komunikacji z licencją centralną i globalny serwer czarnej listy jest zmieniany, Syspeace ma możliwość wysyłania poczty do odpowiednich osób w twoja organizacja.
Raporty
Otrzymywanie wiadomości e-mail, gdy wydarzy się ważne wydarzenie, może być dobre, ale czasami chcesz również uzyskać podsumowanie. Syspeace kompiluje codzienny raport ze wszystkimi próbami ataku w twoim systemie i wysyła ci wiadomość z informacją. W ten sam sposób Syspeace kompiluje cotygodniowy raport.
www.syspeace.com
źródło
Dosłownie wszystkie próby logowania z Chin / USA / Indii na moim serwerze próbują zalogować się przez administratora, który wyłączyłem.
Czy nie byłoby łatwiej wyłączyć logowanie administratora, a następnie napisać skrypt blokujący wszystkie adresy IP, które próbują się zalogować przy użyciu „Administrator” jako nazwy użytkownika?
źródło
Być może będziesz musiał zadzierać z zaporą systemu Windows; Cygwin nie miałby tego rodzaju funkcjonalności.
źródło
Możesz rozważyć użycie SSHBlock - skryptu Perla do kontrolowania prób użycia siły.
Jeszcze nigdy nie korzystałem z niego w Cygwin.
Oto jednak link do innego artykułu opisującego sshblock na kilka innych sposobów:
Obrona przed atakami ssh brutalnej siły
źródło