[freebsd] ipsec script/software ?

Pagina: 1
Acties:

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
het probleem:

elke keer als ik een IPsec tunnel opzet moet ik de volgende bestanden wijzigen
/etc/hosts.allow # wie heeft wel acces ;)
/etc/hosts # voor dns resolve etc
/sbin/giftunnel.sh # zelf geschreven scriptje wat gifconfig,route en ipsec policy edit
racoon.conf # ipsec encryptie prog
psk.txt # ipsec key file

en mijn firewall rules aanpassen.

nu is dat op dit moment voor mij nog wel te doen giftunnel.sh neemt veel voor zijn rekening en racoon gebruik ik niet waardoor de encryptie helaas niet werkt. Ik heb zelf een vast IP en de andere FreeBSD bak (beide 4.7 overgens) hebben weinig te veranderen 1maal per maand ofzo ..

nu is het probleem dat er 2 anderen mee willen doen misschien wel 4 .. en ze hebben allemaal een dynamisch IP :( wat de zaak alleen maar lastiger maakt. dus ik ben begonnen om een script te schrijven wat dyndns.org namen moet resolven naar IP en die in het script verwerkt zodat ik weinig moet aanpassen. Alleen deze taak is Inmens veel scripting dus ik vraag me af is er niet een persoon ? die het al gedaan heeft ? gescript of software geschreven ? het zou me zoveel tijd schelen.

Tja vanalles


  • Wilke
  • Registratie: December 2000
  • Laatst online: 19:57
Hoezo, een berg scripting? Dat valt toch ook wel weer mee?

code:
1
host blaat.dyndns.org | grep "address" | cut -d\  -f4

(met 2 spaties na cut -d\ !)

Of misschien kan dat nog wel wat netter, bij mij werkt dit in ieder geval. Start af en toe een cronjob die de IP's ophaalt, en als ze veranderd zijn de tunnel opnieuw maakt. Volgens mij valt dat qua scripting nog best mee.

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
IP adress is inderdaad makkelijk om der uit te halen , ik doe het zelf via ping www.whatever.com | grep ..... etc

het scripten is in zover bizar rottig omdat ik met dynamische IP's zit van de anderen, ik verwacht er 5 to 10 hosts incl mijn gateway.

voor de huidige 2/3 is het te doen. script + variable en dat werkt het snelst en efficientst . echter je moet er maar 1 tussen zitten die een instabiele verbinding tussen hebt en je bent het zaad, maar goed daar was dyndns voor.

een tunnel (zonder racoon,firewall,hosts, hosts.allow,psk.txt) eet 7 tot 10 regels. *uit het hoofd* het nadeel is dat je een voor de resterende zooi ook nog scripts moet schrijven wat natuurlijk geen probleem was als het Statische Ip's waren. :( de dynamische IP's nekken het me het meest omdat je bij een IPchange elk bestand zowat mag wijzigen, firewall rules aan mag passen etc .

wat ik geleerd heb door ervaring is dat batchscripten met teveel "externe variabelen" dat je met een grootscript soms lang kan wachten. (zonder foutmeldingen ofzo) dus ik heb ze onder moeten verdelen naar apararte subscripts. door loops etc te gebruiken kan je ook hier en daar weer inkorten maar toch .. tis meer werk, zit nu op 10 uur werk te kijken. en het is voor 10% af ?

Tja vanalles


  • Tomaat
  • Registratie: November 2001
  • Laatst online: 13-04 13:11
Euhm, als je 10uur bezig bent met een script te maken, doe je toch echt iets fout.. :/ Ik zat zo te denken; je kan 1 script maken die alle DynDns.org hosts resolved, deze ip's in een apart bestandje zet en ze aan een variabele knoopt, dan hoef je in je andere scripts alleen maar te refferen naar die variabel en is het net alsof je gewoon met statische ip's werkt..

correct me if i'm wrong.. :)

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
Tomaat schreef op 02 March 2003 @ 12:26:
Euhm, als je 10uur bezig bent met een script te maken, doe je toch echt iets fout.. :/ Ik zat zo te denken; je kan 1 script maken die alle DynDns.org hosts resolved, deze ip's in een apart bestandje zet en ze aan een variabele knoopt, dan hoef je in je andere scripts alleen maar te refferen naar die variabel en is het net alsof je gewoon met statische ip's werkt..

correct me if i'm wrong.. :)
omdat alles vanwege security reden per IP geregeld word in/outbound connecties moet ik bv 1 verbinding met tunnel config, firewall,racoon, hosts file opnieuw neer zetten/veranderen. dus you stand corrected. het is niet zo dat ik een reboot of alles neer wil halen om maar 1 v.d 4/5 opnieuw te laden. dus als er 1 wijzigt wil ik er 1 veranderen (op meerdere lokaties) goed dat IPresolve is al gebeurd gelukkig..

Tja vanalles


  • xzenor
  • Registratie: Maart 2001
  • Laatst online: 14-10-2022

xzenor

Ja doe maar. 1 klontje suiker.

ik snap je echt niet.. sorry
het enige wat je nodig hebt is gif, en that's all..
als je encrypty toch niet werkt heb je de rest niet nodig..
alleen je gif tunneltje..

dan kan je ook nog gewoon hostnames gebruiken in je firewall
gifconfig gif2 jouwip www.blaat.nl
dat werkt gewoon, dus dat moet ook gewoon werken dan lijkt mij...

wat wil je dan verder?
ik snap je niet? leg's uit.. (of iemand anders..)
't zal er wel aan liggen dat het maandagmorgen is misschien.......

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
ik wil/moet racoon gebruiken als ik met andere OS-en wil communiceren nv win2k,smoothwall cisco etc .
ben ook geen held op dit gebied hoor..
gif is idd wat ik gebruik ik wist niet dat het ook op DNS namen werkte, weer wat geleerd.

wat ik wil oftewel het probleem is:
ik wil giftunnels (met en zonder encryptie), veiligheid (firewall etc) ipforwarding. allemaal laten draaien zonder dat je veel merkt van een IP change van je eigen systeem of dat van een ander, dus automagisch.

als er een IP veranderd moet dat doorgevoerd worden in elk onderdeel o.a firewall,giftunnels en racoon of beter gezegd unload/delete de oude informatie en zet de nieuwe informatie neer

Tja vanalles


  • xzenor
  • Registratie: Maart 2001
  • Laatst online: 14-10-2022

xzenor

Ja doe maar. 1 klontje suiker.

ik kan het mis hebben, maar volgens mij is dit precies wat je zoekt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/sh
INTERFACE="gif0"
HOSTNAME="johndoe.dyndns.org"

EIGEN_IP="123.123.123.123"


OUD_IP=`ifconfig $INTERFACE |grep tunnel |awk '{print $5}'|head -n 1`
NIEUW_IP=`host $HOSTNAME |awk '{print $4}'|head -n 1`
if [ "$OUD_IP" != "$NIEUW_IP" ] 
then
/usr/sbin/gifconfig "$INTERFACE" "$EIGEN_IP" "$NIEUW_IP"
fi


Als je per tunnel een appart scriptje hiervoor maakt moet het werken.
dus per gif interface een scriptje, en die aanroepen vanuit de crontab
Dan kan je ook meerdere commando's en acties aanroepen per ip dat veranderd.. (bijv. omdat de 1 wel racoon nodig heeft en de ander niet)

je kan het ook aanpassen door de variablen te vervangen door $1 $2 $3 en $4 natuurlijk. dan kan je 1 script gebruiken en de ip's enzo meegeven op de commandline.
maar dat is maar wat je zelf het beste vind.

je kan ook boven het "fi" regeltje nog wat echo's neerzetten zodat dat vanuit de crontab naar root gemaild word zodra het ip veranderd.
of firewall rules ofzo..

Laat maar even weten of het een beetje nuttig is

[ Voor 23% gewijzigd door xzenor op 03-03-2003 21:39 ]


  • Rukapul
  • Registratie: Februari 2000
  • Laatst online: 20:55
vso schreef op 02 March 2003 @ 04:02:
het probleem:

elke keer als ik een IPsec tunnel opzet moet ik de volgende bestanden wijzigen
/etc/hosts.allow # wie heeft wel acces ;)
/etc/hosts # voor dns resolve etc
Access control kun je evt ook regelen dmv de ipsec policies en dus in je firewall UDP poort 500 en IPsec ESP en IPsec AH altijd doorlaten. Minimum voorwaarde is wel dat je dan IPsec ESP met authentication header gebruikt of IPsec AH. Je moet dan wel opletten dat je niet met iedereen zomaar een tunnel opzet natuurlijk, maar dat is met certificaten eenvoudig te fixed (zie onder). Let wel op dat je zo een DoS aanval op je IKE daemon riskeert (racoon, UDP 500).

Maargoed, deze twee files zorgen hooguit voor een paar regels script uitgaande van een IP nummer.
/sbin/giftunnel.sh # zelf geschreven scriptje wat gifconfig,route en ipsec policy edit
OK (hoewel ik nooit iets met giftunnels gedaan heb).
racoon.conf # ipsec encryptie prog
psk.txt # ipsec key file
Dit hoeft toch niet per host aangepast te worden? Racoon kent volgens mij wildcards. Dat je een shared key oplossing gebruikt dmv psk.txt wat telkens aanpassingen vergt volgt uit het feit dat je geen PKI gebaseerde oplossing gebruikt. Je zou racoon zo kunnen configureren dat hij een bepaald root certificaat gebruikt en alle certificaten die met de private key van dit certificaat zijn getekend accepteert.
Alleen deze taak is Inmens veel scripting dus ik vraag me af is er niet een persoon ? die het al gedaan heeft ? gescript of software geschreven ? het zou me zoveel tijd schelen.
Ik heb wel eens een applicatie geschreven die dynamisch IPsec tunnels opbouwt en afbreekt, maar dat is helaas niet standalone (en niet onderhouden / onderdeel van een groter geheel). Het zou me overigens verbazen als iemand een 3rd party tooltje daarvoor geschreven heeft, want zowel design als implementatie van de SPD (security policy database) is ondoorzichtig danwel slecht danwel buggy onder BSD (Kame stack).

Volgens mij wordt het geheel een stuk eenvoudiger als je racoon icm PKI/certificaten gaat gebruiken. Het instellen van de IPsec policies blijf je echter houden en daar zul je dus een scriptje voor moeten schrijven, wat echter vast makkelijker kan dan het gigantische werk dat je voorstelt.

IPsec policies beheren is overigens niet alleen een implementatie probleem zoals jij hier tegenkomt, maar een algemeen probleem wat in een boek over IPsec naar voren komt in een hoofdstuk met een titel in de richting van "IPsec Policy Management: the missing bits". Kan helaas even geen referentie vinden.

[ Voor 25% gewijzigd door Rukapul op 03-03-2003 21:50 ]


  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
rukapul:

je hebt hierop goeie punten ! ik zal ze zeker meenemen je input wordt zeer gewaardeerd

Tja vanalles

Pagina: 1