Skocz do zawartości

Jak Ustawić Limit Połaczeń Na Dany Port Przekierowany Na Routerze ?


LenoX

Rekomendowane odpowiedzi

Witam,

 

proszę o pomoc jak ograniczyć do 3/min ilość prób połączeń na dany port za firewallem.

Gdzież błąd popełniam?

(aha, qmic; wyciąganie kabla po zliczeniu 3ch połączeń na min odpada ;-) )

 

opis:

WAN----- port 12345 : Router(192.168.1.1) : port 21 ---- server FTP (192.168.1.120)

serwer FTP nie ma firewalla (instalacja jest trudna, mało RAM itd)

na serwerze FTP jest konto z hasłem

router (Linksys) ma dedykowany software dd-wrt i firewall. (nie ma opcji modyfikacji firewalla)

 

Aby ograniczyć ryzyko włamu, chcę ograniczyć ilość prób połączeń do 3 na min

zgodnie z https://www.dd-wrt.com/wiki/index.php/Iptables_command

próbowałem działać ale bez efektu.

 

Działa przekierowanie, można łączyć się na server:

iptables -t nat -I PREROUTING -p tcp -d $(nvram get wan_ipaddr) --dport 12345 -j DNAT --to 192.168.1.120:21

 

Nie działa limit połączeń - blokuje dostęp do FTP:

iptables -I FORWARD 1 -p tcp -d 192.168.1.120 --dport 21 -j DROP
iptables -I FORWARD 2 -p tcp --dport 21 -m state --state NEW -m limit --limit 3/min -j ACCEPT
iptables -I FORWARD 3 -p tcp --dport 21 -m state --state RELATED,ESTABLISHED -j ACCEPT

 

Nie działa limit połączeń - brak ograniczenia połączeń:

iptables -I FORWARD 1 -p tcp --dport 21 -m state --state NEW -m limit --limit 3/min -j ACCEPT
iptables -I FORWARD 2 -p tcp --dport 21 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD 3 -p tcp -d 192.168.1.120 --dport 21 -j DROP

 

Przed wprowadzeniem powyższych linijek iptables -t filter -L daje dla FORWARD

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     gre  --  192.168.1.0/24       anywhere            
ACCEPT     tcp  --  192.168.1.0/24       anywhere            tcp dpt:1723 
ACCEPT     0    --  anywhere             anywhere            
logdrop    0    --  anywhere             anywhere            state INVALID 
TCPMSS     tcp  --  anywhere             anywhere            tcp flags:SYN,RST/SYN tcpmss match 1453:65535 TCPMSS set 1452 
lan2wan    0    --  anywhere             anywhere            
ACCEPT     0    --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     tcp  --  anywhere             Voip.Wilenska       tcp dpt:5060 
ACCEPT     tcp  --  anywhere             Voip.Wilenska       tcp dpt:5061 
TRIGGER    0    --  anywhere             anywhere            TRIGGER type:in match:0 relate:0 
trigger_out  0    --  anywhere             anywhere            
ACCEPT     0    --  anywhere             anywhere            state NEW 
DROP       0    --  anywhere             anywhere

 

 

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Obawiam się, że druga metoda, przy której napisałeś, że nie ogranicza, działa. Jądro nie liczy tak jakbyś tego chciał (pierwsze połączenie - zaczyna liczyć czas, 4. - zaczyna odrzucać, aż skończy się czas), bo to byłoby za mało wydajne. Dopasowywanie ruchu jest trochę rozmyte. Przynajmniej tak mi się wydaje... feel free to correct.

 

Jeśli zależy Ci na dokładności poszukaj w Googlach fraz typu: iptables limit ssh login tries. Jako, że problem ograniczenia prób logowań odnosi się częściej do ssh, powinieneś mieć więcej szczęścia.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli zależy Ci na dokładności poszukaj w Googlach fraz typu: iptables limit ssh login tries. Jako, że problem ograniczenia prób logowań odnosi się częściej do ssh, powinieneś mieć więcej szczęścia.

 

Nie wiem czy warto bo ilość prób można ograniczyć w samych ustawieniach sshd a nie iptables. Mogę się mylić co prawda.

 

Odnośnik do komentarza
Udostępnij na innych stronach

@InIrudeBwoy

O ile kojarzę samo sshd nie ma takiej możliwości, ma login, tyle że jego można ominąć otwierając nowe sesję.

 

Jeśli próba z iptables nie wypali pozostają jeszcze programy jak np. fail2ban, o ile mają możliwość współpracy z danym serwerem FTP.

Odnośnik do komentarza
Udostępnij na innych stronach

tak w sshd da sie to zrobic. trzeba zmodyfikowac MaxSessions w /etc/ssh/sshd_config . mozna na wszelki wypadek ustawic MaxStartups na wartosc minimalna.

 

Jest taki programik ban2ip czy coś takiego który po określonej liczbie prób blokuje dostęp.

 

Warto jednak ustawić sobie troszkę większą liczbę prób na wypadek wpisywania po pijaku :)

Odnośnik do komentarza
Udostępnij na innych stronach

@fafig

Na moje oko podane opcje pozwalają tylko na ograniczenie ilości prób _jednoczesnych_ logowań.

 

@qmic

Tak, pisałem już o fail2ban. Wpisywania po pijaku nie trenowałem, a przynajmniej nie pamiętam ;)

 

Przypominam temat: Jak Ustawić Limit Połaczeń Na Dany Port Przekierowany Na Routerze ?, ma być 3 połączenia/min

Odnośnik do komentarza
Udostępnij na innych stronach

Widziałeś to?

 

Widziałem,

 

mój router nie wie co to 'hitcount', i się nie dowie.. :-)

 

 

Kończąc wątek, może komuś się przydadzą 2i linijki do firewalla.

Ograniczają do max 3/min limit połączeń na dany port. (poniżej na port 22)

 

iptables -I INPUT 2 -p tcp --dport 22 -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
iptables -I INPUT 3 -p tcp --dport 22 -j REJECT

 

źródło:

http://www.dd-wrt.com/wiki/index.php/Preve...e_Force_Attacks

ja zamiast 'logreject' daje REJECT

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...