Skocz do zawartości

Wkurzające próby włamania przez ssh jak ograniczyć to g...


beha

Rekomendowane odpowiedzi

Moje logi są regularnie zawalone żądaniami logowań na ssh z różnych ipków (kilkadziesiąt) tak mniej więcej na sekunde mam jedną próbę logowania. Jak to ograniczyć ? Może coś w stylu nieudane logowanie ogranicza danemu IP dostęp do ssh na następne 5-10 minut .

Jest jakieś rozwiązanie które nie zablokuje dostępu do strony tylko zablokuje dostęp do shh ?

Znalałem coś takiego jak poniżej, lecz poniższy skrypt ma jak dla mnie kilka wad.

1 Skrypt poniżej bedzie mi blokował dostęp dla danego ip do całej strony, a nie tylko ssh no i

2 Wolałbym aby blokowało to tylko dane ip na jakiś czas a nie na zawsze ( a co bedzie jak będę miał stałe ip i pomylę się te kilka razy )

3 Czy skanowanie za pomoca wyrazeń regularnych logów co np minute logów nie spowoduje, wiekszego obciązenia ?

Może ma ktoś jakieś inne rozwiązania tego problemu (juz napisane :) ). Jestem początkującym linuxiarzem i nie wiem jak to ugryźć. ? Może jakiś soft ?

#!/bin/bash
LAST_IP=0.0.0.0
COUNT=1

# Set MAXCOUNT to the maximum failures allowed before blacklisting
MAXCOUNT=5

#
# The three lines below put the leading lines in /etc/hosts.allow
# Note: This script overwrites the entire /etc/hosts.allow file.
#

echo '
# /etc/hosts.deny
# See "man tcpd" and "man 5 hosts_access" as well as /etc/hosts.allow
# for a detailed description.
http-rman : ALL EXCEPT LOCAL' > /etc/hosts.deny

#
# Scan the /var/log/messages file for failed login attempts via ssh.
# Parse out the IP address, and count the failure occurances from that IP
# If the IP fails more than 5 times - deny further access
#

for IP in `/bin/grep sshd /var/log/messages|/bin/grep "Illegal user"|/bin/sed 's/^.*from :*[a-z]*://'` 0.0.0.0; do
 if [ ${LAST_IP} == ${IP} ]; then
 let COUNT=${COUNT}+1
 else
 if [ ${COUNT} -ge ${MAXCOUNT} ]; then
	echo "ALL: ${LAST_IP}/32" >> /etc/hosts.deny
 fi
 LAST_IP=${IP}
 COUNT=1
 fi
done 

...

Odnośnik do komentarza
Udostępnij na innych stronach

e e e po co tak brutalnie i z kombinacjami

primo: BFD (Brute Force Detection)

https://www.rfxnetworks.com/bfd.php

secundo:

zablokuj logowanie na roota i jezeli to jest twoj serwer z mala iloscia kont shell to podaj, ze mozna sie tylko z nich logowac. u mnie mozna sie logowac tylko na 2 konta.

Odnośnik do komentarza
Udostępnij na innych stronach

Ktos atakuje Cie slownikowo - admin nie moze tego jakos zabezpieczyc?

To mój serwerek, więc sam sobie jestem "Ladminem" .

Na razie zrobiłem tak jak normanos powiedział, wyłączyem logowanie roota z ssh. Napiszę zaraz zbiorowy list na ovh.com i kilku innych firm których ip powtarzają się najczęściej - Pewnie i tak to walka z wiatrakami, ale może chociaż jednemu kretynowi utrudnię nieco życie.

...

Odnośnik do komentarza
Udostępnij na innych stronach

Znalałem coś takiego jak poniżej, lecz poniższy skrypt ma jak dla mnie kilka wad.

1 Skrypt poniżej bedzie mi blokował dostęp dla danego ip do całej strony, a nie tylko ssh no i

W takim razie chyba wystarczy zamienić:

http-rman : ALL EXCEPT LOCAL' > /etc/hosts.deny

na

sshd : ALL EXCEPT LOCAL' > /etc/hosts.deny

a także zrobienie tego: https://www.ssh.com/support/documentation/o...rs_Support.html

2 Wolałbym aby blokowało to tylko dane ip na jakiś czas a nie na zawsze ( a co bedzie jak będę miał stałe ip i pomylę się te kilka razy )

To zrób kopie domyślnego /etc/hosts.deny i za pomocą crona przywracaj ją do życia co np. 30 minut, tak będzie najprościej bez konieczności pisania dodatkowych skryptów.

3 Czy skanowanie za pomoca wyrazeń regularnych logów co np minute logów nie spowoduje, wiekszego obciązenia ?

To już zależy od tego jakimi dyskami dysponujesz. Możesz również czyścić logi co jakiś czas lub po przekroczeniu pewnej wielkości.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Jak korzystasz tylko Ty z SSH, to proponowałbym odpalenie tylko na sieci daemona sshd. Wtedy nikt zza Twojej sieci się nie zaloguje :D Ustawiasz to zmieniająć wartość w sshd_config

ListenAddress tutaj_adres_ip_w_sieci

hip-hop - najlepsze forum hip-hop w sieci! :)

proxy - ukryj swoje ip, badz anonimowy w sieci!

wzory umów

Odnośnik do komentarza
Udostępnij na innych stronach

Jak korzystasz tylko Ty z SSH, to proponowałbym odpalenie tylko na sieci daemona sshd. Wtedy nikt zza Twojej sieci się nie zaloguje :D Ustawiasz to zmieniająć wartość w sshd_config

ListenAddress tutaj_adres_ip_w_sieci

coś chyba nie tak... to może i jest dobre przy sieciach lokalnych a nie na serwery dedykowane gdzie jednak trzeba mieć dostęp do serwera z zewnątrz

Odnośnik do komentarza
Udostępnij na innych stronach

Protocol 2

PermitRootLogin no

to powinno być w konfigu sshd

więcej opcji ustawia się w login.defs w etc

np.

FAIL_DELAY 10 (czas co ile sekund może być powrórzone logowanie)

SU_WHEEL_ONLY yes (z tym ostrożnie - pozwala użyć komendy su tylko userom gid 0)

LOGIN_RETRIES 2 (ilość powtórek żle wpisanego hasła - po tym zerwanie połączenia)

LOGIN_TIMEOUT 60 (maksymalny czas oczekiwania na zalogowanie)

przede wszystkim przed jakim kolwiek działaniem polecam zastanowić się 3 razy żeby nie odciąć sobie wstępu na serwer.

Można również używać pliku zdefiniowanego przez NOLOGINS_FILE do ograniczenia kont na które można się logować przez ssh. Można to również uczynić zmieniając powłokę na np. /bin/false

Ja ogólnie polecam przede wszystkim firewalla - nie musi być on wymyślny ani jakimś kombajnem a jedynie przemyślane kilka linijek.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności