icmptx aan de praat krijgen

Amedee Van Gasse amedee op amedee.be
Ma mei 26 17:03:56 UTC 2008


On Mon, May 26, 2008 14:26, amedee wrote:
>
>
>
> On Tue, 29 Apr 2008 12:15:32 +0200 (CEST), "Amedee Van Gasse"
> <amedee op amedee.be> wrote:
>>
>> On Tue, April 29, 2008 11:53, Jens Timmerman wrote:
>>> Amedee Van Gasse wrote:
>>>> Hallo,
>>>>
>>>> Even een korte situatieschets: ik volg avondschool, en op maandag is
>> dat
>>>> op een andere vestiging dan op dinsdag en woensdag. Op de locatie van
>>>> di/wo is alles OK, maar 's maandags ben ik geconfronteerd met een
>>>> firewall
>>>> met anale retentie.
>>>> ssh: blocked
>>>> irc via mibbit: blocked
>>>> google query naar het keyword "proxy": blocked (!)
>>>> Zo kan ik uiteraard niet deftig werken, want voor de cursus VB.NET heb
>>>> ik
>>>> een svn repo opgezet op mijn server ten velde, en uiteraard wil ik
>>>> connecteren via ssh+svn. Gaat dus niet.
>>>>
>>>> Gelukkig kan ik wel naar mijn server pingen, dus icmptx to the rescue!
>>>> Ik volg deze beschrijving:
>>>> http://thomer.com/icmptx/
>>>>
>>>> Ik zit nu al zo ver dat de tunnel klaar staat op de client, ik moet
>>>> enkel
>>>> nog de route instellen.
>>>> Op de server staat de tunnel ook al klaar (denk ik - niet kunnen
>>>> testen),
>>>> maar ik heb zeker nog niet de noodzakelijke wijzigingen gedaan aan
>>>> iptables voor het forwarden.
>>>>
>>>> Hoe kan ik nu verder? Stel ik gewoon de route in op de client en zit
>>>> ik
>>>> dan al lokaal op de server te werken, zonder forwarding? Of moet ik
>>>> wachten tot ik weer normale connectiviteit heb?
>>>>
>>>> PS: client = Ubuntu 8.04
>>>> server = Debian stable
>>>>
>>>>
>>> Voor zover ik de tutorial goed gebrijp stel je met het instellen van
>>> route een andere gateway in, dus zal je client ipv iets door te sturen
>>> naar 192.168.1.1 het naar je server sturen over icmp.
>>>
>>> Dus wachten tot je trug connectiviteit hebt en dan proberen connectie
>>> te
>>> maken met je server (of andere dingen proberen die normaal geblokt
>>> zijn)
>>>
>>> Heb je geprobeerd of ssh over een andere poort (vb 2222) ook geblokeerd
>>> word?
>>> Het zou wss iets eenvoudiger zijn om je server naar een andere poort te
>>> laten luisteren...
>>>
>>>
>> He verdorie, dom van mij.
>> Ik kan met één regeltje in iptables een honeypot maken van mijn server,
>> dwz op alle poorten luisteren. Dan had ik met nmap naar buiten kunnen
>> scannen om te zien wat er open staat. En nu kan ik het uiteraard niet
>> testen, want ik ben daar enkel op maandagavond.
>>
>> Maar ik ben er quasi zeker van dat via TCP enkel poorten 80 en 443 open
>> staan. Pingen naar de server lukte, dus ICMP staat ook open.
>> Ik heb ssh over https geprobeerd, maar dat lukte niet. Vandaar dat ik
>> icmptx probeer.
>
> Goed nieuws: ik heb thuis ICMPTX aan de praat gekregen.
> Tunneltje werkte prima, traceroute naar google ging via 10.0.1.1 (ip-adres
> tunnel) ipv 192.168.2.1 (ip-adres gateway), en zowel vnstat als andere
> netwerk monitoring tools gaven duidelijk aan dat er verkeer over de
> pinglink ging.
> Ik heb zelfs lastfm gedraaid en dit ging heel vlot!
>
> Vanavond volgt de definitieve test. Ik heb de laptop mee en dan ga ik eens
> proberen of ik naar buiten geraak. Ik ga dan meteen ook wat speedtests
> doen.
>
> Ik heb ook een kort scriptje bijeen gehakt om de pingtunnel op te starten.
> Ik zet het wel eens online.
> Het is nu heel lelijk, ik wil het nog herschrijven naar een mooi
> /etc/init.d-scriptje.
>
> Ik stel me wel nog vragen bij authenticatie. Nu kan iedereen mijn pingding
> gebruiken.
> Wat doe ik best, dat pingding niet zomaar routeren? Ik zou er een VPN over
> kunnen draaien, en dan de VPN eindpunten routeren.
> Zorgen voor later...

Miljaar!!!
Indertussen hebben ze ICMP hier óók al op slot gedraaid. Ik kan niet naar
buiten pingen, en niet kunnen pingen == geen ICMPTX.
Nog maar één keer dat we in dit lokaal les hebben, en ik zie het als een
intellectuele uitdaging om die stomme firewall te kunnen overwinnen.


Ondertussen, de inhoud van mijn hackish scriptje, zoals beloofd:



#!/bin/bash

# setting variables
REMOTE_NAME=example.com
export REMOTE_IP=`/usr/bin/resolveip -s $REMOTE_NAME`
export GATEWAY=`/sbin/route -n | grep G | tail -n1 | cut -d' ' -f10`
TUN_IP_CLIENT=10.0.1.2
TUN_IP_SERVER=10.0.1.1
TUNDEVICE=tun0
ETHDEVICE=eth0

# start tunnel
/usr/local/sbin/icmptx -c $REMOTE_IP &

# configure tun device
/sbin/ifconfig $TUNDEVICE mtu 65535 up $TUN_IP_CLIENT netmask 255.255.255.0

# setting default routes
/sbin/route del default
/sbin/route add -host $REMOTE_IP gw $GATEWAY dev $ETHDEVICE
/sbin/route add default gw $TUN_IP_SERVER $TUNDEVICE


Lelijk, ik weet het, maar thuis werkt het.
Alle opmerkingen zijn welkom.

-- 
Amedee





Meer informatie over de Ubuntu-NL maillijst