Regu

Masz problemy z siecią bądź internetem? Zapytaj tu
robero
Beginner
Posty: 164
Rejestracja: 05 października 2009, 11:43

Reguły iptables do sprawdzenia

Post autor: robero »

Witam.
Opis:
[INDENT]serwer ma adres 192.168.2.1
komputer1 192.168.2.2
komputer2 192.168.2.3[/INDENT]

Chcę udostępnić dostęp do serwera tylko tym komputerom.
Moje reguły:

Kod: Zaznacz cały

iptables -P INPUT DROP
iptables -t nat -A POSTROUTING -s 192.168.2.2/32 -j MASQUERADE
iptables -A FORWARD -s 192.168.2.2/32 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.2.3/32 -j MASQUERADE
iptables -A FORWARD -s 192.168.2.3/32 -j ACCEPT
Czy to 32 po adresach to dobra liczba, ja to skopiowałem, na jakiej zasadzie się ją dobiera?
v-sgfx
Posty: 84
Rejestracja: 16 maja 2007, 22:07
Lokalizacja: olkusz

Post autor: v-sgfx »

Kod: Zaznacz cały

iptables -t nat -A POSTROUTING -s 192.168.2.2/32 -j MASQUERADE
adres: 192.168.2.2/32 oznacza pulę hostów, którym dajesz dostęp, czyli od 2 do 32
Sytuacja blokowania (zwłaszcza na własnym komputerze) dostępu do jakiegoś hosta rzadko się jednak zdarza. Zazwyczaj zależy nam na zablokowaniu dostępu do naszego komputera lokalnego lub naszej sieci "z zewnątrz". najprostszy przykład polegać może na zablokowaniu dostępu do naszego komputera z określonego innego komputera. Powiedzmy, że chcemy aby nasz komputer był niedostępny dla sieci 192.168.0.0/8:

Kod: Zaznacz cały

iptables -A INPUT -s 192.168.0.0/8 -j DROP
Tym razem używamy łańcucha INPUT, gdyż dotyczy on pakietów, których celem jest nasz komputer. Reguła -s oznacza "źródło pakietu", czyli adres IP, domenę lub sieć z którego pakiet został nadany.

Podobnie jak w przypadku -d możemy odwrócić źródło przy pomocy wykrzyknika - będziemy wtedy dostępni tylko i wyłącznie dla sieci 192.168.0.0/8.
źródło: http://zsk.wsti.pl/publikacje/iptables_przystepnie.htm
robero
Beginner
Posty: 164
Rejestracja: 05 października 2009, 11:43

Post autor: robero »

Opcja 1

Kod: Zaznacz cały

iptables -P INPUT DROP
iptables -t nat -A POSTROUTING -s 192.168.2.2/3 -j MASQUERADE
iptables -A FORWARD -s 192.168.2.2/3 -j ACCEPT
Opcja 2

Kod: Zaznacz cały

iptables -P INPUT DROP
iptables -A INPUT -s ! 192.168.2.2/3 -j DROP
Czy któraś z opcji jest ok? Jeśli obie to która lepsza?
v-sgfx
Posty: 84
Rejestracja: 16 maja 2007, 22:07
Lokalizacja: olkusz

Post autor: v-sgfx »

Chyba tak:

Kod: Zaznacz cały

iptables -P INPUT DROP 
iptables -A INPUT -s 192.168.2.2/3 ! -j DROP
A może i Twoja opcja 2 zadziała.
Cyphermen
Beginner
Posty: 426
Rejestracja: 24 maja 2009, 10:56
Lokalizacja: cze-wa

Post autor: Cyphermen »

v-sgfx, co Ty gadasz:

Kod: Zaznacz cały

iptables -t nat -A POSTROUTING -s 192.168.2.2/32 -j MASQUERADE
to 32 to nie, że od 2 do 32 tylko to jest maska, a 32 oznacza, że tylko ten numer, o ile się nie mylę.

Jeśli jednak jest inaczej to chyba się przewrócę.

Poza tym, jeśli chcesz wejść na serwer odblokuj łańcuch ,,input'' dla tej sieci, czy tam tego hosta.
Przekierowanie (ang. forward) to tylko ruch przechodzący przez serwer, czyli między hostami np. w sieci.
robero
Beginner
Posty: 164
Rejestracja: 05 października 2009, 11:43

Post autor: robero »

Kod: Zaznacz cały


iptables -P INPUT DROP 
iptables -A INPUT -s 192.168.2.2/32 -j ACCEPT
iptables -A INPUT -s 192.168.2.3/32 -j ACCEPT 
Teraz dobrze?
Awatar użytkownika
markossx
Beginner
Posty: 489
Rejestracja: 26 maja 2007, 16:01
Lokalizacja: Polska

Post autor: markossx »

adres: 192.168.2.2/32 oznacza pulę hostów, którym dajesz dostęp, czyli od 2 do 32
Co Ty mówisz?!
Gdybyście obaj zrobili listing

Kod: Zaznacz cały

iptables -L -nv -t tablica
to byście wiedzieli, że to bzdura. To maska oznaczająca w tym wypadku pojedynczego hosta - niepotrzebna. Jak chcesz kilka hostów to można na przykład tak:

Kod: Zaznacz cały


#NAT
 X1="2 3 4 5 6 7 8 9 10"
    for i in $X1         
      do         
      IP="192.168.2.$i"         
      iptables -t nat -A POSTROUTING -o eth0 -p all -s $IP -j MASQUERADE        
  done
Ewentualnie można kombinować na maskach.
robero
Beginner
Posty: 164
Rejestracja: 05 października 2009, 11:43

Post autor: robero »

To jak ocenicie kod z mojego ostatniego posta? Czy jest poprawny?

markosxx dziękuję, mogę taki kod z pętlą dać po prostu do pliku /etc/sysconfig/iptables (o ile taki plik istnieje, nie mogę teraz sprawdzić)?
I chyba POSTROUTING nie jest wskazany w opisywanym przeze mnie przypadku.
Awatar użytkownika
markossx
Beginner
Posty: 489
Rejestracja: 26 maja 2007, 16:01
Lokalizacja: Polska

Post autor: markossx »

Cyphermen, dość długo miałem otwarte na edycji i nie widziałem Twojego wpisu.
robero, czy dobry? To zależy co ma robić. Jak wpuszczać do hosta to w porządku. To jest przykładowa pętla - możesz ją sobie wyregulować pod swoje potrzeby.
Cyphermen
Beginner
Posty: 426
Rejestracja: 24 maja 2009, 10:56
Lokalizacja: cze-wa

Post autor: Cyphermen »

robero to zrób to z pomocą snat. Pytałeś, że chcesz dostęp do rutera tylko dla danych adresów, więc jeśli ograniczysz im ten dostęp opcją ,,drop'' na ,,input'' to i tak pisząc reguły

Kod: Zaznacz cały

iptables -P INPUT DROP 
iptables -A INPUT -s 192.168.2.2/32 -j ACCEPT
iptables -A INPUT -s 192.168.2.3/32 -j ACCEPT
powinno być w porządku.
Napisałeś o dostępie do serwera, więc maskarada ci tu nie potrzebna. Określ dokładnie co chcesz osiągnąć?
ODPOWIEDZ