Iptables blokowanie adresów IP od botów przekierowanie na wybrany port

Konfiguracja serwerów, usług, itp.
walacik
Posty: 5
Rejestracja: 03 października 2011, 09:48

Iptables blokowanie adresów IP od botów przekierowanie na wybrany port

Post autor: walacik »

Witam.

Mam pewien problem, którego nie mogę rozwiązać. Chodzi o to, że na ruterze ustawione jest przekierowanie portu 3389 do wewnętrznego serwera terminali. Od pewnego czasu widzę że sporo botów próbuje się zalogować na serwer terminali i chciałbym to ukrócić. Jak widzę, ilość połączeń rzędu 100-200k na 48 godzin, to widać, że komuś zależy. O włamanie się w sumie nie boję (tą metodą) gdyż hasła składają się z co najmniej 8 znaków, kombinacji małych, wielkich liter i cyfr i ban za 5 złych prób na dane konto. Mimo wszystko chcę to ukrócić. Na ruterze mam przekierowanie zrobione na takiej zasadzie:

Kod: Zaznacz cały

$IPTABLES -A FORWARD -p tcp -d 192.168.0.246 --dport 3389 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -p tcp -i eth3 -s 0/0 --dport 3389  -j DNAT --to 192.168.0.246:3389

I teraz. chciałbym utworzyć regułę, że jak ktoś połączy się więcej niż trzy razy w ciągu 300 sekund to dostaje bana. Dla ssh używam takiego rozwiązania w iptables, które działa znakomicie ale dla łańcucha przekierowania nie chce:

Kod: Zaznacz cały

$IPTABLES -A FORWARD -p tcp --dport 22 -i $IFACE -m state --state NEW -m recent --set --name SSH -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 22 -i $IFACE -m state --state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j LOG  --log-prefix"IPT SSH_brute_force"
$IPTABLES -A FORWARD -p tcp --dport 22 -i $IFACE -m state --state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP
Przerabiane powyższego na potrzeby rcp nie przyniosło nic (zmiana portu na 3389 i nazwy z ssh na rcp - rcp dodany w /etc/service).

Czy ktoś ma pomysł jak w locie blokować połączenia na port 3389, który kieruje ruch tak jak robi się to z ssh?

Pozdrawiam.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2341
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Jeżeli błędne próby masz zapisywane w logach to zainteresuj się pakietem fail2ban.
walacik
Posty: 5
Rejestracja: 03 października 2011, 09:48

Post autor: walacik »

Powiedz mi, co miałeś na myśli z logowaniem, bo jakbyś przeczytał to co napisałem to byś wiedział, że logowanie nie wchodzi w grę.

Gdy ruter jest "przezroczysty" przy przekierowaniu portów to nie ma logów odnoście czegoś złego, bo złe próby logowania są pokazywane na terminalach windowsowych. Dlatego musi to działać na tej zasadzie, że ruter sprawdza (zlicza) ilość połączeń z danego numeru ip na dany port w przeciągu np. 300 sekund. I jeśli będzie ich więcej niż np. 5 ma zrobić zatrzymanie (an. drop) dla danego adresu ip. Żeby było ciekawiej, musi to sprawdzać (umieszczać gdzieś w tablicy/bazie) przed wykonaniem opcji przekierowania na innego hosta.

Mniej więcej powinno to wyglądać tak:
Wchodzi pakiet do rutera np. z numeru ip 8.8.8.8 na porcie 3389, ten sprawdza w tablicy, czy adres źródłowy jest już w niej umieszczony, a jak tak ile razy i jeśli jest on tam więcej niż 5 w przeciągu 300 sekund to daje blokowanie adresu IP. A jeśli nie, to przepuszcza go i robi przekierowanie na hosta wewnątrz sieci LAN.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2341
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Wybacz, czytanie ze zrozumieniem się kłania :)
ODPOWIEDZ