[UPDATE]Debian GW VLANokkal

Fórumok

Üdv!

Mivel nem igazán vagyok járatos az iptables terén ezért fordulok ide.
Adott 4 db VLAN: 10,20,30,100. A 10,20,30-as vlan a diákoké, itt találhatóak a kliensek (tartományi számítógépek, 3 vlan - 3 tanterem). A 100-as vlanba találhatóak a szerverek (Két tartományvezérlő stb.)
Adott egy Debian átjáró két interfésszel (eth0, eth1). Az eth1 megy az internet fele, az eth0-án pedig a belső gépek lógnak (eth0.10, eth0.20, eth0.30, eth0.100)

A következőket szeretném megvalósítani, és ehhez kérném a segítséget:

  • A különböző vlanok között ne tudjanak kommunikálni, kivéve a 100-assal (Tehát 10-20, 20-30, 10-30 vlan ne tudja egymást elérni, megelőzve ezzel a Call of Duty lan partykat :) )
  • Az internetet a diákok ne tudják elérni (ip alapon) csak transzparens vagy normál proxyval kivédve ezzel annak kikerülését. (Squid már működik)
  • NAT (Túlterheléses)
  • A szerverek normálisan tudjanak kommunikálni a külvilággal.
  • Az internet felől ne lehessen elérni a belső hálót

Update:

DC1: AD, DNS, DHCP, IIS stb
DC2: AD, DNS, DHCP, IIS, WSUS, WDS stb

VLAN 10: 10.10.20.0/27
VLAN 20: 10.10.20.32/27
VLAN 30: 10.10.20.64/27
VLAN 100: 10.10.20.96/29

Ui.: Esetleg tudna valaki ajánlani hasznos leírást, ami alapján meglehet tanulni a tűzfalazást?
Előre is köszönöm!

Hozzászólások

tegyel fel valami tuzfal cuccot (pl shorewall), abban beallitod hogy mit merre _engedsz_, aztan az general majd neked iptables szabalyokat.

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

"de, ez a switch amit említett, nem tud ilyet ahogy nézem"
Konkrétan milyen dolgot kerestél amit nem tud, és szükséges lenne? Mert van "Configuration > 802.1Q VLAN fejezet. (Illetve ha más elv szerint szeretné rendezni, akkor a "Configuration > Asymmetric VLAN" is ide tartozhat.). DGS-1216T/1224T/1224TP/1248T Manual Web Smart Switch Version 3.20.

"vlanon nem is tudsz dhcpzni"
Mármint azt állítod, hogy a Debianon nem futtatható több (logikai) interfészen figyelő DHCP szerver? Vagy hogy a 802.1Q tagelt ethernet frame-ben nem megy át a DHCP kommunikáció? Alá tudnád ezt támasztani? Vagy arra gondoltál, hogy ha a DHCP szerver nem a Debianon, hanem a 100-as VLAN-ban lévő egyik szerveren futna? Akkor ugye a Debianon DHCP relayt állítasz be, és már kész is. Szóval nem értem, mire utaltál.

"ha a gyerkőcök átírják az ip-t, simán garázdálkodhatnak"
Két, egymástól L2-ben elszeparált hálózat között L3 gateway nélkül - azaz csak a DGS-1224T-n keresztül - miként lesz lehetséges az L3 kommunikáció, ha az L3 címet megváltoztatod? Tudnál erre példát adni? A szóban forgó DGS-1224T L2 switch, így a Debian feladata a két hálózat közötti routing és szűrés.

Ahogy 1soproni leírta, a jelenlegi topológia szerint a Debianon tűzfalszabályokkal lehet megfogni a forgalmat. Ezt a kérdező is jól sejtette.

iptables -P FORWARD DROP
majd engedélyezed, ami mehet.
A proxy úgyis az INPUT láncba fut bele, tehát azt sem kell felvenni FORWARD-ba.

Debiannak semmi köze az egészhez.
Az adott switchportokat tagged VLANra állítod, és rendre hozzárendeled a megfelelő fizikai portokhoz a 10 és 100, 20 és 100, 30 és 100 VLAN ID-ket. (Illetve amin a szerverek vannak, azokra 10,20,30,100-at.)
Tsókolom.
(Praktikusan a 100-ra nincs is szükség, csak abban az esetben, ha akarsz olyan forgalmat (is), ami sem a 10 sem a 20 sem a 30-ból ne legyen látható.)

Egyik korábbi hozzászólásod alapján a DHCP szerver a 100-as VLAN-ban van...

Csak kérdezem, hogy honnan fogja tudni a DHCP szerver, hogy honnan jött a kérés?
--
Debian Linux rulez... :D

( Dudu94 | 2013. május 2., csütörtök - 10:36 )

A DHCP szerver a vlan 100-ba van (debian gw-n isc-dhcp-relay-el)
100-as vlanba tartományvezérlők vannak + egyéb szerverek

A Debian átjáró is megkapja a kérést aztán az isc-dhcp-relay tovább dobja az általam megadottnak.
Ez olyasmi, mint cisco router-en az ip-helper parancs.

Ok... Még mindig nem értem az értelmét...

Adott egyik oldalon 3 VLAN: 10,20,30 Ezekben a kliens gépek, amik IP címet a másik oldalról kapnak...

A másik oldalon a 100-as VLAN, ahol a DHCP szerver is van... (A gw-en meg a relay.)

Milyen IP címeket tudsz kiosztani a 10-es, 20-as, 30-as hálóknak, amikből mind látja a túloldalt?
Miért nem lehet a GW-en DHCP-zni?

--
Debian Linux rulez... :D

"Milyen IP címeket tudsz kiosztani a 10-es, 20-as, 30-as hálóknak, amikből mind látja a túloldalt?"
A VLAN10-ben lévő klienseknek a 10-es VLAN-ban lévő címtartományból, a VLAN20-ban lévő klienseknek a 20-as VLAN címtartományából, a VLAN30-ban lévő klienseknek a 30-as VLAN címtartományából. (Lásd még: giaddr). Nincs semmi mágia, mindenki a neki megfelelő poolból fog címet kapni.

"Miért nem lehet a GW-en DHCP-zni?"
Lehetne, de nem feltétlen szükséges. A relay segítségével is elérhető ugyanaz az eredmény - mármint tisztán a DHCP-s szempontokat figyelembe véve. Elképzelhető, hogy a DHCP szerver mást is csinál, vagy csak egyszerűen adminisztrációs szempontból a konkrét esetben célszerűbb a VLAN100-ban lévő szerveren futtatni a DHCP szervert.

A kérdezőnek nem DHCP-s problémája van, az működik neki jelenleg is. Tűzfalazási kérdése volt, amire megkapta a megerősítést, hogy az iptables a megfelelő eszköz a problémára. Konkrét tűzfalszabályt nem tudunk írni neki, mivel nincs a pontos igényre vonatkozó adat. A szokásos módon tud írni szabályokat.

Lenne egy kérdésem.

Ha van egy switch amin lóg 2db gép mégpedig ugyanabban a VLAN-ban. Akkor ahhoz hogy őket meggátold abban, hogy egymást lássák hiába teszel tűzfalat a GW-re vagy a VLAN-okat routoló eszközre, mert a switchen lezajlik a forgalom. Ahhoz hogy egymást lássák nincs szükség GW-re.
A tűzfalon azokat a csomagokat tudod szűrni amik kilépnek vlanból. Vagyis ha a switchen a két gép két külön vlanban van akkor áthalad a tűzfalon a csomag.
Tehát ahhoz hogy egymást se lássák, a korlátozásokat a switchen kellene ACl-el beállítani.

Rosszul gondolom?

Teljesen jól gondolod, hogy alapesetben az ugyanabban a VLAN-ban lévő eszközök közötti kommunikációhoz (itt most L2-ről beszélünk) nincs szükség gatewayre és routingra, az azonos VLAN-ba tartozó eszközök látják egymást. L3-ban azonos VLAN-ban lévő gépek esetén is szükséges (lehet) a gateway, ha a két host külön IP subnetben van.

"Tehát ahhoz hogy egymást se lássák, a korlátozásokat a switchen kellene ACl-el beállítani."
Így van (nem feltétlen ACL, de a rendes switchekben van ilyen jellegű funkció). Cisco switchekben ez protected port néven fut.

Viszont az eredeti kérdező nem ezt szeretné ("Tehát 10-20, 20-30, 10-30 vlan ne tudja egymást elérni"), hanem csak a különböző VLAN-ok közötti forgalmat szeretné korlátozni, amit célszerűen a gatewayen tűzfal segítségével tehet meg. Tehát a te felvetésed önmagában igaz, de nem vonatkozik az eredeti kérdésre.

"ami alapján meglehet tanulni a tűzfalazást"
Az első lépés legyen az, hogy össze tudd szedni, milyen forgalomtípusok fordulnak illetve fordulhatnak elő a hálózatodban. Ez igényli a telepített rendszerek által generált forgalmak ismeretét. Ezután meghatározod, hogy ezek közül melyek a szabályozandók, tehát milyen forgalmat akarsz engedélyezni illetve tiltani, milyen módon és milyen okból. Ennek megfelelően fel tudod írni a szabályokat a logikai sorrend betartása mellett. Végül ezeket a szabályokat a megfelelő eszköznek (Linux rendszerek alatt ez elsősorban az iptables) megfelelő formába öntöd.

És most a konkrét kérdéseidre:

0.) Ahogy 1soproni is javasolta, alapesetben mindent tiltunk, valamint stateful tűzfalat próbálunk írni, és az egyszerűség kedvéért ezt most egyben kezeljük:

  iptables -P FORWARD DROP
  iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

1.) "A különböző vlanok között ne tudjanak kommunikálni, kivéve a 100-assal (Tehát 10-20, 20-30, 10-30 vlan ne tudja egymást elérni, megelőzve ezzel a Call of Duty lan partykat :) )"

  iptables -A FORWARD -i eth0.10 -o eth0.100 -s 192.168.10.0/24 -d 192.168.100.0/24 -j ACCEPT
  iptables -A FORWARD -i eth0.20 -o eth0.100 -s 192.168.20.0/24 -d 192.168.100.0/24 -j ACCEPT
  iptables -A FORWARD -i eth0.30 -o eth0.100 -s 192.168.30.0/24 -d 192.168.100.0/24 -j ACCEPT

(Ezt a jelenlegi információk szerint meg lehetne oldani egyetlen sorral is, de így szebb, tisztább.)

2.) "Az internetet a diákok ne tudják elérni (ip alapon) csak transzparens vagy normál proxyval kivédve ezzel annak kikerülését. (Squid már működik)"
A default policy DROP, így ha explicite nem engeded ki, akkor nem fog kijutni.

3.) "NAT (Túlterheléses)"

  iptables -t nat -A POSTROUTING -o eth1 -s 192.168.100.0/24 -j MASQUERADE

4.) "A szerverek normálisan tudjanak kommunikálni a külvilággal."

  iptables -A FORWARD -i eth0.100 -o eth1 -s 192.168.100.0/24 -j ACCEPT

A natolást a 3.) pontban elintéztük.

5.) "Az internet felől ne lehessen elérni a belső hálót"
Lásd a 2. ponthoz írt megjegyzést.

Ne csak bemásold, hanem értsd is meg. Ebben segítség a man iptables, illetve a netfilter honlapján található leírások, beleértve a HOWTO, FAQ és Tutorial részeket is. A fenti sorok csak a vázát adják a tűzfaladnak, fontos hogy az igényeknek megfelelően bővítsd. Amiért nem lehet teljes a fenti szabályrendszer az az, hogy a VLAN ID-kon kívül nem ismerjük az IP subneteket, a szerverek által nyújtott szolgáltatásokat stb.

Alapvetően iránymutatás volt az előző hozzászólásom, és egy figyelmeztetés arra vonatkozóan, hogy a leírt iptables sorokat át kell szerkesztened. Most leírtad, hogy milyen hálózatok vannak a Debian VLAN interfészein. Ezeket értelemszerűen helyettesítsd be az általam írt 192.168.x.0/24-ek helyére.

A futtattott szolgáltatásokra vonatkozóan pedig arra utaltam, hogy a fenti hozzászólás szabálya a VLAN 100 felé a VLAN 10, 20, 30 felől mindent átenged. Ha ezt szigorítani akarod, akkor a futtatott szolgálatásoknak megfelelően szűkíts (pl.: DNS UDP/53, TCP/53; IIS web: TCP/80 és/vagy TCP/443 stb.).

Írd meg a szabályaidat, és ha valami nem működik, olvass utána egy kicsit, majd ezután kérdezz, válaszolni fogunk. De ne azt várd, hogy valaki távolról a te rendszeredre szabott, részletekig kidolgozott szabályrendszert írjon, amit csak be kell másolnod.

Ok, úgy látom nem voltam egyértelmű...

Gondoltam, hogy megfelelő tartományban lévő IP címeket oszt ki... :D És erre a giaddr nagyon jó segítség. Viszont:
1. SZERINTEM egy SMB-s hálózatban nem kellemetlen, ha a szerver ugyanabban a szubnetben van, mint a kliens... (broadcast-ek, stb.) És ha VLAN10 szubnetjében van a szerver (ami a VLAN100-ban van), akkor már nem lehet VLAN20-ban is... Azaz a VLAN10, VLAN20, VLAN30 és VLAN100 mind különböző szubnetek...
2. A jelenlegi felállásban a gateway szerintem felesleges feladatokat végez: route-ol, csomagokat továbbít... ha ez megáll, akkor az egész rendszer áll meg. De elég, ha csak leterheled... Mindenki lassulni fog...

Én csak a három felhasználói VLAN-t tartanám meg és a szervereket tenném bele mindháromba... Természetesen alapból (tudtommal) a szerverek nem forwardolnak a hálók között...
A gateway pedig megmaradna monjduk DHCP, DNS, proxy és tűzfal szervernek...
Ha ez leáll, attól még a hálók valamilyen szinten működhetnek maguktól... (Főleg ha DHCP és DNS marad a szervereken)
--
Debian Linux rulez... :D

De mi a baj a lanpartykkal? :)
--
#conf t
#int world
#no shut

En csak annyit tennek hozza, hogy en biztos nem igy alakitanam ki a vlan beli ip-ket.

Hanem igy:
VLAN 10: 10.10.10.0/24
VLAN 20: 10.10.20.0/24
VLAN 30: 10.10.30.0/24
VLAN 100: 10.10.100.00/24
Hiba kereses eseten csak megnezed az IP-t es mar tudod melyik VLAN-hoz tartozik, nem pedig szamolgatsz, hogy ez most akkor VLAN10 vagy VLAN20 estleg VLAN100