Routing dwóch podsieci.
-
- Piegowaty Guziec
- Posty: 11
- Rejestracja: 17 maja 2009, 13:13
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.10
- Środowisko graficzne: Xfce
- Architektura: x86_64
Routing dwóch podsieci.
Witam serdecznie,
mam dwie podsieci:
192.168.4.0/24
192.168.3.0/24
Potrzebuję osiągnąć taką funkcjonalność żeby z sieci 4.0 nie było dostępu do sieci 3.0, ale MUSI być dostęp do jednego komputera w sieci 3.0. Obie sieci muszą mieć dostęp do internetu. Jeżeli ustawię routing przy pomocy ip route to czy przy pomocy iptables będę mógł zdefiniować regułkę tak, aby był dostęp do tego komputera w sieci 3.0?
Pozdrawiam, Grzesiek.
mam dwie podsieci:
192.168.4.0/24
192.168.3.0/24
Potrzebuję osiągnąć taką funkcjonalność żeby z sieci 4.0 nie było dostępu do sieci 3.0, ale MUSI być dostęp do jednego komputera w sieci 3.0. Obie sieci muszą mieć dostęp do internetu. Jeżeli ustawię routing przy pomocy ip route to czy przy pomocy iptables będę mógł zdefiniować regułkę tak, aby był dostęp do tego komputera w sieci 3.0?
Pozdrawiam, Grzesiek.
-
- Piegowaty Guziec
- Posty: 9
- Rejestracja: 08 lis 2011, 22:41
- Płeć: Mężczyzna
- Architektura: x86_64
Re: Routing dwóch podsieci.
Czesc
Tym rozwiązaniem idziesz w stronę podziału na LAN i DMZ. Jeśli do tego dołączysz kompa z ktorego zrobisz bramę na iptablesach to bedzie to dzialac.
Idealnie by było miec 3 sieciowki w tym kompie z którego zrobisz brame.
Wtedy całym ruchem we wszystkie strony zarzadzasz z iptables na bramie tak jak chcesz.
Czy o takie rozwiązanie Ci chodzi ?
Tym rozwiązaniem idziesz w stronę podziału na LAN i DMZ. Jeśli do tego dołączysz kompa z ktorego zrobisz bramę na iptablesach to bedzie to dzialac.
Idealnie by było miec 3 sieciowki w tym kompie z którego zrobisz brame.
Wtedy całym ruchem we wszystkie strony zarzadzasz z iptables na bramie tak jak chcesz.
Czy o takie rozwiązanie Ci chodzi ?
-
- Piegowaty Guziec
- Posty: 11
- Rejestracja: 17 maja 2009, 13:13
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.10
- Środowisko graficzne: Xfce
- Architektura: x86_64
Re: Routing dwóch podsieci.
Witam,jackblack pisze:Czesc
Tym rozwiązaniem idziesz w stronę podziału na LAN i DMZ. Jeśli do tego dołączysz kompa z ktorego zrobisz bramę na iptablesach to bedzie to dzialac.
Idealnie by było miec 3 sieciowki w tym kompie z którego zrobisz brame.
Wtedy całym ruchem we wszystkie strony zarzadzasz z iptables na bramie tak jak chcesz.
Czy o takie rozwiązanie Ci chodzi ?
Ubuntu Server stoi na XEN Serwerze Citrixa. Są skonfigurowane sieciówki na każdą podsieć osobno wraz z VLANAMI, np: sieć 4.0 to VLAN ID 4. Switche mają poustawiane tagowanie na odpowiednie porty. Wszystko schodzi do jednego routera (właśnie na tym Ubuntu).
W tej chwili mam w iptables ustawioną regułkę:
Kod: Zaznacz cały
iptables -A FORWARD -s 192.168.4.0/24 -m iprange --dst-range 192.168.0.0-192.168.3.255 -j REJECT
iptables -A FORWARD -s 192.168.4.0/24 -p tcp -d 192.168.0.150 --dport 80 -j ACCEPT
Pozdrawiam,
Grzegorz.
-
- Zakręcona Traszka
- Posty: 574
- Rejestracja: 25 maja 2011, 10:17
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
Re: Routing dwóch podsieci.
Routingi musza byc wlasciwe bo inaczej pakiet nie wie gdzie isc, ale w/w reguly sa w zlej kolejnosci.
Pakiet nigdy nie dojdzie do drugiej reguly bo pierwsza go odrzuci.
Pakiet nigdy nie dojdzie do drugiej reguly bo pierwsza go odrzuci.
- kolszak
- Sędziwy Jeż
- Posty: 33
- Rejestracja: 14 gru 2005, 22:25
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: Fluxbox
- Architektura: x86_64
- Kontakt:
Re: Routing dwóch podsieci.
Skoro te sieci są dla routera "directly connected" to wystarczy włączyć forwading pakietów na danym routerze z ubuntu, potem zostaje Ci tylko jedna reguła która zabroni dostępu wszystkim do Twojego hosta z danej sieci za wyjątkiem... czyli załatwisz to jedną linijką (zastosuj ! w regule iptables).grzesp pisze:Witam serdecznie,
mam dwie podsieci:
192.168.4.0/24
192.168.3.0/24
-
- Piegowaty Guziec
- Posty: 9
- Rejestracja: 08 lis 2011, 22:41
- Płeć: Mężczyzna
- Architektura: x86_64
Re: Routing dwóch podsieci.
Czesc
Te dwie regułki owszem maja zamieniona kolejnosc to pewnie przeoczenie. Pingujesz .0.1 bo masz ustawiony routing w systemie i ACCEPT w iptables na icmp.
Skoro routing już działa to potrzebujesz reguł iptables. W wersji bardzo ogólnej dosłownie tak aby tylko działało mogą one wyglądać tak:
# zakładam, ze ten eth1 jest z sieci .3.0, adres zrodła 192.168.4.100 ma dopuszczone polaczenia do sieci .3.0, do kompa 192.168.3.25
# zakladam, ze eth2 jest z sieci .4.0
A teraz dostep do INTERNETU.
# zakladam, ze eth0 to wyjscie na swiat.
To jest tylko kierowanie ruchem tcp i nic więcej.
Te dwie regułki owszem maja zamieniona kolejnosc to pewnie przeoczenie. Pingujesz .0.1 bo masz ustawiony routing w systemie i ACCEPT w iptables na icmp.
Skoro routing już działa to potrzebujesz reguł iptables. W wersji bardzo ogólnej dosłownie tak aby tylko działało mogą one wyglądać tak:
# zakładam, ze ten eth1 jest z sieci .3.0, adres zrodła 192.168.4.100 ma dopuszczone polaczenia do sieci .3.0, do kompa 192.168.3.25
Kod: Zaznacz cały
iptables -A FORWARD -i eth1 -p all -m iprange --src-range 192.168.4.1-192.168.4.99 -j DROP
iptables -A FORWARD -i eth1 -p all -m iprange --src-range 192.168.4.101-192.168.4.255 -j DROP
iptables -A FORWARD -i eth1 -p tcp -s 192.168.4.100 -d 192.168.3.25 -m state --state NEW, ESTABLISHED, RELATED -j ACCEPT
Kod: Zaznacz cały
iptables -A FORWARD -i eth2 -p tcp -s 192.168.3.25 -d 192.168.4.100 -j ACCEPT
# zakladam, ze eth0 to wyjscie na swiat.
Kod: Zaznacz cały
iptables -A FORWARD -i eth2 -p tcp -m iprange --src-range 192.168.4.1-192.168.4.100 -o eth0 -m state --state NEW, ESTABLISHED, RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -p tcp -o eth2 -m multiport --dport 1:1024 -j DROP
iptables -A FORWARD -i eth0 -p tcp -o eth2 -m iprange --dst-range 192.168.4.1-192.168.4.100 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp -m iprange --src-range 192.168.3.1-192.168.3.100 -o eth0 -m state --state NEW, ESTABLISHED, RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -p tcp -o eth1 -m multiport --dport 1:1024 -j DROP
iptables -A FORWARD -i eth0 -p tcp -o eth1 -m iprange --dst-range 192.168.3.1-192.168.3.100 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source TWOJ.ZEWN.ETRZ.NYIP
-
- Piegowaty Guziec
- Posty: 11
- Rejestracja: 17 maja 2009, 13:13
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.10
- Środowisko graficzne: Xfce
- Architektura: x86_64
Re: Routing dwóch podsieci.
Witam.jackblack pisze:Czesc
Te dwie regułki owszem maja zamieniona kolejnosc to pewnie przeoczenie. Pingujesz .0.1 bo masz ustawiony routing w systemie i ACCEPT w iptables na icmp.
Dziękuję za tak obszerną odpowiedź.
Właśnie co do routingu nie jestem pewien - iptables to jak na razie dla mnie prostsza sprawa.
route -n daje mi wynik:
Kod: Zaznacz cały
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
217.173.195.XXX 0.0.0.0 255.255.255.248 U 0 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth4
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
0.0.0.0 XXX.XXX.XXX.XXX 0.0.0.0 UG 100 0 0 eth0
Kod: Zaznacz cały
route
Kod: Zaznacz cały
192.168.4.0 XXX.XXX.XXX.XXX 255.255.255.0 U 0 0 0 eth3
Docelowo ma dojść jeszcze jeden VLAN ID 2, z którego ma być dostęp do 192.168.3.0, ale odwrotnie już nie może być wejścia.
Edit: dodam jeszcze, że wszystkie sieci wpadają do jednej maszynki, która pełni rolę routera dla każdej sieci.
Pozdrawiam i dziękuję za zainteresowanie.
Grzegorz.
- kolszak
- Sędziwy Jeż
- Posty: 33
- Rejestracja: 14 gru 2005, 22:25
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: Fluxbox
- Architektura: x86_64
- Kontakt:
Re: Routing dwóch podsieci.
Nie ma czegoś takiego, że podsieci wpadają do 0.0.0.0.grzesp pisze:
route -n daje mi wynik:
Nie jestem dobry w manewrach poleceniemKod: Zaznacz cały
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 217.173.195.XXX 0.0.0.0 255.255.255.248 U 0 0 0 eth0 192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3 192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth4 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 0.0.0.0 XXX.XXX.XXX.XXX 0.0.0.0 UG 100 0 0 eth0
, ale WYDAJE mi się, że jeżeli wszystkie podsieci wpadają do GW 0.0.0.0 to nie jest tak jak być powinno. Jednak tak jak piszę: WYDAJE mi się. Na moje oko jeżeli 192.168.4.0 nie powinna mieć dostępu do wewnątrz za wyjątkiem jednego komputera to wszystko z 4.0 powinno iść od razu w świat, czyli wpis powinien być, imho, taki:Kod: Zaznacz cały
route
Poczytaj o routingu iptables tu naprawdę nie ma nic do gadania (tym możesz kierować, filtrować, kształtować itp ruch). Pakiet najpierw jest wysyłany do sieci o najniższej metryce. Zobacz, że dla Twojej domyślnej bramy masz metrykę 100. Podpowiem Ci jeszcze raz, zrób sobie najpierw zwykły forwarding pakietów między vlanami, jak już to zrobisz to pomyślisz o regułkach jak wyfiltrować ten ruch.
-
- Zakręcona Traszka
- Posty: 574
- Rejestracja: 25 maja 2011, 10:17
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
Re: Routing dwóch podsieci.
Routing i iptables to dwie rozne rzeczy.
Jesli nie ma wlasciwego routingu to iptables moze wygrywac serenady bo i tak do niego nie dotrze zaden pakiet a jesli nawet dotrze i przejdzie - odpowiedz niekoniecznie znajdzie droge powrotna. Przy czym jak zawsze - do tanga trzeba dwojga, routing musi prawidlowy NA OBU maszynach czy sieciach.
Jesli nie ma wlasciwego routingu to iptables moze wygrywac serenady bo i tak do niego nie dotrze zaden pakiet a jesli nawet dotrze i przejdzie - odpowiedz niekoniecznie znajdzie droge powrotna. Przy czym jak zawsze - do tanga trzeba dwojga, routing musi prawidlowy NA OBU maszynach czy sieciach.
-
- Piegowaty Guziec
- Posty: 11
- Rejestracja: 17 maja 2009, 13:13
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.10
- Środowisko graficzne: Xfce
- Architektura: x86_64
Re: Routing dwóch podsieci.
Witam, zacząłem wprowadzać próbnie to, co powyżej napisałeś, ale nie wiem dlaczego nie działa mi to. Tzn trochę zmieniłem na swoje potrzeby i niestety brak dostępu do internetu.
Sieciówka eth3 - na niej działa sieć 192.168.4.0
Sieciówka eth0 - wyjście na świat.
Na chwilę obecną to jest cały skrypt, nie ma w nim nic więcej.
EDIT: działa jednak. BARDZO przepraszam za zamieszanie.
Pozdrawiam ciepło,
Grzesiek
Kod: Zaznacz cały
#!/bin/bash
#wlaczenie forwardowania w kernelu
/bin/echo "1" > /proc/sys/net/ipv4/ip_forward
# czyszczenie starych reguł
iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
iptables -t mangle -F
iptables -t mangle -X
# ustawienie domyslnej polityki
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# utrzymanie połączeń nawiązanych
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
# localhost
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#udostepnianie internetu w sieci VLAN ID 4 - WiFi
iptables -A FORWARD -i eth3 -p tcp -s 192.168.4.0/24 -o eth0 -m state --state NEW,ESTABLISHED,RELATED
iptables -A FORWARD -i eth0 -p tcp -o eth3 -m multiport --dport 1:1024 -j DROP
iptables -A FORWARD -i eth0 -p tcp -o eth3 -s 192.168.4.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source XXX.XXX.XXX.XXX
Sieciówka eth0 - wyjście na świat.
Na chwilę obecną to jest cały skrypt, nie ma w nim nic więcej.
EDIT: działa jednak. BARDZO przepraszam za zamieszanie.
Pozdrawiam ciepło,
Grzesiek
-
- Piegowaty Guziec
- Posty: 9
- Rejestracja: 08 lis 2011, 22:41
- Płeć: Mężczyzna
- Architektura: x86_64
Re: Routing dwóch podsieci.
Czesc,
Fajnie, że działa teraz jeszcze jakies 100 linijek i bedzie całkiem nieźle
Z tym routingiem to dobrze kombinujesz adres podsieci na jakąś brame na drugim routerze zapis przeciwny dla ruchu w drugą stronę i działa. Masz racje takie rozwiązania świetnie sie sprawdzają przy definiowaniu statycznych tras na stałe ale w sytuacji gdy masz kilka routerów. Każdy z nich spina swoją sieć a one same też "wyżej" są spięte. Wtedy na każdym z nich określasz trasy do innych routerów (podsieci). Jeśli gdzieś tego nie zrobisz nie będą się widzieć.
Ty masz jeden router i na dodatek wyjątek który chcesz obsłużyć. Mam na myśli tego jednego kompa który ma mieć możliwość łączyć się z konkretnym pc w sieci .3.0. Nie strzelajmy z armaty do komara routing w tej postaci jak teraz masz jest wystarczający. Wszystkie ograniczenia ruchu jakie będziesz potrzebował wprowadzić można zrealizować iptablesami. Zaglądałeś do projektu apf-firewall ? Jest w repo ubuntu choć to z centosa instaluje się jakoś czyteniej. Kilka rzeczy fajnie jest tam zrobione.
Pozdrawiam,
Jacek
Fajnie, że działa teraz jeszcze jakies 100 linijek i bedzie całkiem nieźle

Z tym routingiem to dobrze kombinujesz adres podsieci na jakąś brame na drugim routerze zapis przeciwny dla ruchu w drugą stronę i działa. Masz racje takie rozwiązania świetnie sie sprawdzają przy definiowaniu statycznych tras na stałe ale w sytuacji gdy masz kilka routerów. Każdy z nich spina swoją sieć a one same też "wyżej" są spięte. Wtedy na każdym z nich określasz trasy do innych routerów (podsieci). Jeśli gdzieś tego nie zrobisz nie będą się widzieć.
Ty masz jeden router i na dodatek wyjątek który chcesz obsłużyć. Mam na myśli tego jednego kompa który ma mieć możliwość łączyć się z konkretnym pc w sieci .3.0. Nie strzelajmy z armaty do komara routing w tej postaci jak teraz masz jest wystarczający. Wszystkie ograniczenia ruchu jakie będziesz potrzebował wprowadzić można zrealizować iptablesami. Zaglądałeś do projektu apf-firewall ? Jest w repo ubuntu choć to z centosa instaluje się jakoś czyteniej. Kilka rzeczy fajnie jest tam zrobione.
Pozdrawiam,
Jacek
-
- Piegowaty Guziec
- Posty: 11
- Rejestracja: 17 maja 2009, 13:13
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.10
- Środowisko graficzne: Xfce
- Architektura: x86_64
Re: Routing dwóch podsieci.
Witam serdecznie,
w przypadku poniższej regułki co nie powinno działać? Pytam, ponieważ pingi latają z sieci 4.0 do 0.1 co chyba nie powinno działać. Chyba, że coś w niej jest nie tak.
I tak lamersko zapytam: czym różni się zapis 192.168.4.0/24 od 192.168.4.1-192.168.4.255?
A tak mnie naszło: czy dla pingów nie powinienem wskazać jako -p icmp chociaż nie ma to chyba sensu bo mam zapis -p all?
EDIT: za dużo siedzę nad tym, już widzę błędy, po 1: powinno być eth3 a nie eth4 a druga sprawa to taka, że miałem na początku skryptu:
tym sposobem chciałem blokować coś, na co pozwalałem...heh. Przepraszam za mieszanie.
Nie zaglądałem do apf-firewall zainteresuję się nim, ale najpierw chciałbym ujarzmić wszystko to, czego jeszcze nie rozgryzłem.
Pozdrawiam,
Grzesiek
w przypadku poniższej regułki co nie powinno działać? Pytam, ponieważ pingi latają z sieci 4.0 do 0.1 co chyba nie powinno działać. Chyba, że coś w niej jest nie tak.
I tak lamersko zapytam: czym różni się zapis 192.168.4.0/24 od 192.168.4.1-192.168.4.255?
Kod: Zaznacz cały
iptables -A FORWARD -i eth4 -p all -s 192.168.4.0/24 -m iprange --dst-range 192.168.0.1-192.168.0.255 -o eth2 -j DROP
EDIT: za dużo siedzę nad tym, już widzę błędy, po 1: powinno być eth3 a nie eth4 a druga sprawa to taka, że miałem na początku skryptu:
Kod: Zaznacz cały
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 50/sec -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m length --length 200: -j DROP
iptables -A FORWARD -p icmp --icmp-type echo-reply -m limit --limit 50/sec -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-reply -m length --length 200: -j DROP
Nie zaglądałem do apf-firewall zainteresuję się nim, ale najpierw chciałbym ujarzmić wszystko to, czego jeszcze nie rozgryzłem.
Pozdrawiam,
Grzesiek
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 8 gości