[LINUX] Firewall/IPtables Probleem

Pagina: 1
Acties:

  • MikevanEngelen
  • Registratie: Mei 2001
  • Laatst online: 18-01 22:33
Beste mensen,

Ik gebruik op dit moment een Linux server (Mandrake 10.0) en de laaste
versie van IPtables.
Er is sprake van 2 gescheiden netwerken, en 1 internet verbinding. De Linux
server verdeelt het internet voor de 2 netwerken door middel van "Jay's
Firewall". Echter er is een klein probleem, de linux server "koppelt" de 2
netwerken alsnog. Dit is dus niet de bedoeling. In die firewall is het mogelijk om externe (extra) rules mee te geven door middel van een extra bestand.

Er zijn 3 interfaces in de server;
eth0 = internet interface
eth1 = netwerk #1
eth2 = netwerk #2
Men mag wel van netwerk 1 naar netwerk 2 (VOLLEDIG toegang), maar niet van netwerk 2 naar
netwerk 1 (volledig geblocked).

Ik heb zelf de volgende rules gemaakt:
iptables -t filter -A INPUT -s 192.168.90.0/8 -d 192.168.5.0/8 -j ACCEPT
iptables -t filter -A INPUT -s 192.168.5.0/8 -d 192.168.90.0/8 -j DROP

Dat werkt dus niet.
Toen heb ik de volgende regeltjes geprobeerd:
iptables -A FORWARD -i eth2 -o eth1 -j DROP
Dit werkt opzich goed, maar verkeer van netwerk eth1 wat gekoppeld zit kan helaas niet op het andere netwerk (eth2) komen.
Dus een regel toegevoegt
iptables -A FORWARD -I eth1 -o eth2 -j ACCEPT
Nog steeds werkt het niet :(

Heeft iemand een idee hoe ik dit op kan lossen, en toch dat de data van netwerk 1 > 2 geblocked wordt, en het andere netwerk gewoon toegang heb ?

EDIT: wil er even bijmelden dat die bak ook NAT gebruikt. Elk netwerk apart krijgt internet, dit werkt perfect !

[ Voor 6% gewijzigd door MikevanEngelen op 16-09-2004 13:57 ]


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Als er voordat je deze regels maakt al regels bestaan die dat verkeer expliciet toestaan, helpt een APPEND niet, omdat dat de regels achteraan toevoegt.

  • Buffy
  • Registratie: April 2002
  • Laatst online: 26-12-2024

Buffy

Fire bad, Tree pretty

MikevanEngelen schreef op 16 september 2004 @ 13:45:
Beste mensen,
[..]

Er zijn 3 interfaces in de server;
eth0 = internet interface
eth1 = netwerk #1
eth2 = netwerk #2
Men mag wel van netwerk 1 naar netwerk 2 (VOLLEDIG toegang), maar niet van netwerk 2 naar
netwerk 1 (volledig geblocked).

Ik heb zelf de volgende rules gemaakt:
iptables -t filter -A INPUT -s 192.168.90.0/8 -d 192.168.5.0/8 -j ACCEPT
iptables -t filter -A INPUT -s 192.168.5.0/8 -d 192.168.90.0/8 -j DROP

Dat werkt dus niet.
Met iptables wordt de INPUT chain alleen gebruikt voor verbindingen naar de router/firewall machine (in tegenstelling tot ipchains). De verbindingen tussen de twee interne netwerken gaan via de FORWARD chain.
Toen heb ik de volgende regeltjes geprobeerd:
iptables -A FORWARD -i eth2 -o eth1 -j DROP
Dit werkt opzich goed, maar verkeer van netwerk eth1 wat gekoppeld zit kan helaas niet op het andere netwerk (eth2) komen.
Dus een regel toegevoegt
iptables -A FORWARD -I eth1 -o eth2 -j ACCEPT
Nog steeds werkt het niet :(
Bij een verbinding wordt informatie (packets) in twee richtingen opgestuurd. Met de DROP regel blokeer je niet alleen nieuwe verbindingen van netwerk 2 naar 1 maar ook de terug communictie van verbindingen van 1 naar 2.
Je moet dus onderscheidt maken tussen packets van nieuwe verbindingen en packets van bestaande verbindingen. Dat kan het makkelijkst d.m.v. statefull filteren. (zie man iptables voor de --state optie).

En zo als blaataaps zegt, controleer ook de volgorde van de regels (iptables -n -v -L).

That which doesn't kill us, makes us stranger - Trevor (AEon FLux)
When a finger points at the moon, the imbecile looks at the finger (Chinese Proverb)


  • MikevanEngelen
  • Registratie: Mei 2001
  • Laatst online: 18-01 22:33
Dat controleren van die codes zelf wordt moeilijk, omdat dat die firewall software doet. En ik dat niet zo na kan controlleren (is een firewal gui), die het een en ander generate. Opzich werkt 't wel fijn.

Maar als ik het goed begrjp is het dus de iets als de volgende regel toevoegen:
iptables -A $i -m state --state ESTABLISHED,RELATED -j ACCEPT
waarbij $i een van de 2 netwerk interfaces moet zijn ?

  • Sendy
  • Registratie: September 2001
  • Niet online
Ja, maar dat is nog niet alles.

Je moet syn-pakketjes (--state NEW) toelaten van het ene netwerk naar het andere te gaan, maar niet andersom. Daarna sta je ESTABLISHED en RELATED verkeer toe en dan zou het kunnen werken.