[iptables] Block alles, behalve hops in route naar target

Pagina: 1
Acties:

  • icyx
  • Registratie: Januari 2007
  • Niet online

icyx

chown -R us ./base

Topicstarter
Voor een projectje ben ik bezig met een heel erg restrictieve iptables. Het doel is het toestaan van enkele blokken ip's, namelijk de private ranges, en, laten we zeggen, 85.159.112.0/30 (hier staat debian.nl, word verder in dit voorbeeld gebruikt).

Ik sta dus toe:
  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
  • 85.159.112.0/30
In theorie kan je nu de bovenstaande lijst toestaan, en de rest blokkeren. Nu zit ik echter met een probleem. Er is namelijk geen directe route naar 85.159.112.2, de route loopt onder andere via 195.69.144.189:

code:
1
2
3
4
5
6
7
8
traceroute to debian.nl (85.159.112.2), 30 hops max, 60 byte packets
 1  speedtouch.lan (192.168.1.254)  74.126 ms  73.662 ms  73.262 ms
 2  lo1.dr5.d12.xs4all.net (194.109.5.219)  15.063 ms  15.900 ms  18.310 ms
 3  0.ge-3-3-0.xr4.1d12.xs4all.net (194.109.7.157)  18.929 ms  21.467 ms  22.092 ms
 4  0.so-6-0-0.xr1.tc2.xs4all.net (194.109.5.10)  22.937 ms  23.533 ms  24.203 ms
 5  nikhef.openpeering.nl (195.69.144.189)  29.321 ms  29.861 ms  30.446 ms
 6  openpeering.nikhef.het.net (213.207.5.29)  28.371 ms  16.110 ms  16.067 ms
 7  server2.handelsweg8.nl (85.159.112.2)  14.376 ms  14.447 ms  16.578 ms


Nu zou het mooi zijn als ik dus kan zeggen: Blokker alles wat niet in de genoemde lijst staat, tenzij het alleen maar gebruikt word om overheen te lopen. De hierboven uitgevoerde traceroute zou dus mogelijk zijn, terwijl hetzelfde naar nixhef.openpeering.nl niet zou kunnen. 195.69.144.189 staat immers niet in de lijst.

Weet iemand of dit uberhaupt mogelijk is met IPTables? Ik krijg alles voor elkaar, behalve het 'gebruiken' van de tussenliggende hops. Ik kan namelijk niet van te voren weten hoe mijn route gaat lopen om die hops toe te voegen. Dingen als RELATED of ESTABLISHED zijn hier voor zover ik het begrijp niet van toepassing omdat dit over 'goed lopende connecties' gaat.

Hierbij het relevante stuk van mijn iptables:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh
IPTABLES=/sbin/iptables

# private
$IPTABLES -A INPUT -s 10.0.0.0/8 -j ACCEPT
$IPTABLES -A INPUT -s 172.16.0.0/12 -j ACCEPT
$IPTABLES -A INPUT -s 192.168.0.0/16 -j ACCEPT

$IPTABLES -A OUTPUT -d 10.0.0.0/8 -j ACCEPT
$IPTABLES -A OUTPUT -d 172.16.0.0/12 -j ACCEPT
$IPTABLES -A OUTPUT -d 192.168.0.0/16 -j ACCEPT

# Vereiste block. 
$IPTABLES -A INPUT -s 85.159.112.0/30 -j ACCEPT

# Loopback mag gebruikt worden.
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# Block alles.
$IPTABLES -A INPUT -j DROP
$IPTABLES -A OUTPUT -j DROP


Heeft iemand enig idee wat voor richting ik op moet om dit op te lossen?

When you think you’ve succeeded / but something’s missing / means you have been defeated / by greed, your weakness.


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Ik snap niet wat je nou precies wilt bereiken. Over welke hops een packet gerouteerd wordt is voor jouw filtering helemaal niet van belang, en ook niet iets waar je op kunt filteren. Het gaat jouw machine alleen om source en destination ip, respectivelijk jij en debian.

Of wil je juist wel kunnen tracerouten naar die destinations? De enige manier om dat toe te staan is uitgaand niets doen en inkomend alle ICMP ttl exceeded messages met een 'sessie' (is sessieloos, ik weet, maar NAT kan ze bij elkaar houden dus netfilter ws. ook wel) toestaan.

[ Voor 36% gewijzigd door CyBeR op 23-11-2009 19:53 . Reden: :X ]

All my posts are provided as-is. They come with NO WARRANTY at all.


  • icyx
  • Registratie: Januari 2007
  • Niet online

icyx

chown -R us ./base

Topicstarter
Na je reactie heb ik inderdaad eens zitten denken, en ik zat het ook een stuk ingewikkelder te maken dan het is. Ik was een beetje vaag aan het denken :p
For the record:
Nu laat ik al het uitgaande verkeer toe (prima, dat mag) en drop ik alles, tenzij het van die host x afkomt. Op deze manier werkt het prima :)
Zie dit topic maar als gesloten.

When you think you’ve succeeded / but something’s missing / means you have been defeated / by greed, your weakness.