Strona 1 z 1

[SOLVED] Iptables odblokowanie strony tylko dla wybranego usera

: 11 sty 2011, 14:40
autor: d80k
Witam,

Musze zablokować dostęp do jednej strony wszystkim poza trzem użytkownikom

iptables -t nat -A PREROUTING -s 0/0 -p tcp -d BLOKOWANY_ADRES -j DNAT --to-destination INNY_ADRES

powyższa regułka przekierowuje mi użytkowników do strony z odpowiednim komunikatem.
Jak teraz odblokować dostęp dla wybranego użytkownika? Próbowałem różnych regułek ale cały czas mam przekierowanie dla wszystkich

Pozdawiam
D80k

PS. Przy okazji jak ktoś ma dobry i sprawdzony opis jak zainstalować i skonfigurować IPP2P i Layer7 to również poproszę bo przy tym też siedzę .

Odp: Iptables odblokowanie strony tylko dla wybranego usera

: 11 sty 2011, 15:26
autor: nithathak
Masz na myśli użytkowników na ubuntu, czy użytkowników w twojej sieci którzy mają swoje IP prywatne a ubuntu jest dla nich bramą.
Jeżeli ubuntu jest bramą, to przypisujesz delikwentom statycznie prywatne IP.

Kod: Zaznacz cały

iptables -t nat -A PREROUTING -s ADRES_IP_BLOKOWANEGO_USERA -p tcp -d BLOKOWANY_ADRES -j DNAT --to-destination INNY_ADRES

Odp: Iptables odblokowanie strony tylko dla wybranego usera

: 11 sty 2011, 15:39
autor: d80k
sory, nie sprecyzowałem, ubuntu jest bramą, użytkownicy to stacje robocze z ip,
oczywiście znam IP/MAC które mam dopuścić.

Odp: Iptables odblokowanie strony tylko dla wybranego usera

: 11 sty 2011, 15:53
autor: nithathak
Możesz zrobić tak jak w edytowanym poście wyżej dla każdego blokowanego IP usera, albo użyć jakiegoś wyrażenia regularnego w tamtym miejscu (nie znam go) zwracającego wszystkie adresy poza twoim. Musiałbyś sobie poszukać. Dla 3 użytkowników i statycznych IP to ma sens ale już dla dużych sieci z dhcp męka w administrowaniu, lepiej dla dużych sieci będzie przekierować wszystkich a wybranych pozostawić w spokoju.

Odp: Iptables odblokowanie strony tylko dla wybranego usera

: 11 sty 2011, 16:01
autor: d80k
no tak, ale jest to rozwiązanie którego wolał bym uniknąć,
mając np: 100 użytkowników którym chce coś zablokować i tylko 3 którym chce na coś zezwolić, to zamiast powielać regułkę 100x zmieniając IP użytkownika to chciałbym przekierować wszystkich (dlatego zamiast jak jest u Ciebie: ADRES_IP_BLOKOWANEGO_USERA zastąpiłem 0/0 ) i teraz odblokować tylko tych trzech pozostałych.

u mnie jest dhcp ale zafixowane na stale IP dla każdego MAC

pzdr

Odp: Iptables odblokowanie strony tylko dla wybranego usera

: 11 sty 2011, 16:23
autor: nithathak
To rozwiązanie będzie działąć.
Musisz tylko nie blokowanych mieć koło siebie abyś mógł jednym IP i maską objąć wszystkich nie blokowanych, i żadnego blokowanego.

Kod: Zaznacz cały

iptables -t nat -A PREROUTING -s ! PULA_ADRESÓW_IP_NIE_BLOKOWANYCH_USERÓW -p tcp -d BLOKOWANY_ADRES -j DNAT --to-destination INNY_ADRES
Powiedzmy że nie blokowane to 192.168.1.100 , 192.168.1.101, 192.168.1.102, 192.168.1.103 nie przydzielony, wtedy:

Kod: Zaznacz cały

iptables -t nat -A PREROUTING -s ! 192.168.100/30 -p tcp -d BLOKOWANY_ADRES -j DNAT --to-destination INNY_ADRES

Nie mogę doszukać się operatorów logicznych w manalu dla tej sekcji, więc druga propozycja może nie działać ale po znalezieniu składni AND ta propozycja jest lepsza bo nie wymaga by adresy nie blokowane były koło siebie.
możesz spróbować "AND" lub "&&" lub poszukać innych możliwych reprezentacji.

Kod: Zaznacz cały

iptables -t nat -A PREROUTING -s ! IP_NIE_BLOKOWANEGO_USERA1 AND ! IP_NIE_BLOKOWANEGO_USERA2 AND ! IP_NIE_BLOKOWANEGO_USERA3 -p tcp -d BLOKOWANY_ADRES -j DNAT --to-destination INNY_ADRES

Odp: Iptables odblokowanie strony tylko dla wybranego usera

: 12 sty 2011, 08:59
autor: d80k
dzięki bardzo za pomoc

właśnie sprawdziłem, działa
jeśli IP są obok siebie można użyć grupowania:

iptables -t nat -A PREROUTING -m iprange ! --src-range x.x.x-150-x.x.x.200 -p tcp -d BLOKOWANY_ADRES -j DNAT --to-destination ADRES_PRZEKIEROWANIA

jeżeli nie można zrobić tak:

iptables -t nat -A PREROUTING -s x.x.x.150 -j ACCEPT
iptables -t nat -A PREROUTING -s x.x.x.180 -j ACCEPT
...
iptables -t nat -A PREROUTING -p tcp -d BLOKOWANY_ADRES -j DNAT --to-destination ADRES_PRZEKIEROWANIA

jeszcze nie mogę odnaleźć jak używać operatorów logicznych, bo można by w tedy zrobić to w jednej linii, jakby ktoś wiedział niech da znać

jeszcze raz dzieki !