https://wiki.opennet-initiative.de/w/api.php?action=feedcontributions&user=Zim&feedformat=atom
Opennet - Benutzerbeiträge [de]
2024-03-28T17:53:54Z
Benutzerbeiträge
MediaWiki 1.20.6
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-07-22T08:58:15Z
<p>Zim: </p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
----<br />
Update:<br />
Dem racoon-Paket liegt noch eine weiteres Tool racoon-tool bei. Damit lassen sich die ewig langen Configdateien auf ein Minimum zurecht stutzen. Beispiel für PSK-transport-Config:<br />
<br />
file: /etc/racoon/racoon-tool.conf<br />
connection(bezeichner):<br />
src_ip: loc-IP<br />
dst_ip: remote-IP<br />
authentication_algorithm: hmac_sha1<br />
admin_status: yes<br />
peer(remote-IP):<br />
passive:off<br />
verify_identifier: on<br />
lifetime: time 30 min<br />
hash_algorithm[0]: sha1<br />
encryption_algorithm[0]: aes<br />
my_identifier: address loc-IP<br />
peers_identifier: address remote-IP<br />
<br />
Das Gleiche mit getauschten IPs auf dem remote-Host und dann per 'racoon-tool start' anwenden. Fertig.<br />
<br />
----<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044::1 secret<br />
2001:6f8:1044::2 secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - preshared keys<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - preshared keys<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
----<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - certs<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - certs<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
----<br />
Roadwarrior-Config:<br />
<br />
Ziel: Verbindung von beliebigem Client (zb dynIP) zu Server<br />
<br />
Serversite:<br />
<br />
setkey.sh:<br />
- destIP in Bereicht (::/0) geaendert; level von 'require' nach 'use', damit hosts ohne ipsec auch verbinden koennen<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 ::/0 any -P out ipsec esp/transport//use;<br />
spdadd ::/0 2001:6f8:1044::1 any -P in ipsec esp/transport//use;<br />
<br />
racoon.conf:<br />
- statt feste IPs der client-site, nun "anonymous"; ausserdem auf 'passiv' damit versucht der Server keine Verbindung herzustellen, sondern nur auf eingehende antwortet<br />
<br />
#/etc/racoon/racoon.conf<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
remote anonymous<br />
{<br />
exchange_mode aggressive,main,base;<br />
my_identifier asn1dn;<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
ca_type x509 "cacert.cert";<br />
passive on;<br />
generate_policy on;<br />
proposal {<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
lifetime time 24 hour;<br />
}<br />
}<br />
sainfo anonymous<br />
{<br />
pfs_group 2;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
<br />
client-site:<br />
<br />
setkey.conf: kann so bleiben, evtl noch vereinfachbar<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P out ipsec esp/transport//require;<br />
<br />
racoon.conf:<br />
<br />
#/etc/racoon/racoon.conf<br />
path include "/etc/racoon";<br />
path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode aggressive,main,base;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo anonymous<br />
{<br />
pfs_group 2;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim
Benutzer:Zim
2009-03-06T12:35:12Z
<p>Zim: </p>
<hr />
<div>Informatikstudent<br />
<br />
[http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xF89E4A08 gpg-key]<br />
<br />
thawte.com WOT Notary<br />
<br />
Schwerpunkt:<br />
- Routing/Switching (CCNP)<br />
- IPv6<br />
<br />
OpenWRT:<br />
- Kamikaze fuer Linksys WRT54GL<br />
- AP, IPv6, aiccu, radvd<br />
- Kamikaze-nano fuer Linksys WRT54GS-V5 (2MB Flash)<br />
- grundlegende AP-Funktion, keine WebIF, (noch) kein OLSRd, kein OpenVPN<br />
<br />
<br />
Da es schon genug Leute im Verein gibt, die sich um Kamikaze-Port kuemmern, werd ich davon meine Finger lassen.<br />
* Es gibt aus meiner Sicht gewiss nicht genug Leute, eher zu wenige. --[[Benutzer:MathiasMahnke|Mathias]] 13:01, 13. Jun 2007 (CEST)<br />
<br />
<br />
07.02.2008:<br />
kamikaze 7.09<br />
- olsr: /etc/init.d/olsrd<br />
- USE_CONF_F=/etc/olsrd.conf<br />
<br />
mrd6:<br />
- debian-config funktioniert, default-log aendern...<br />
<br />
ahcp:<br />
- funktioniert<br />
- config folgt<br />
<br />
babel:<br />
- kein broadcast des default-gw<br />
<br />
ipv6-debian-mirror:<br />
- deb ftp://ftp.ipv6.debian.org/debian<br />
<br />
flashen:<br />
- fonera:<br />
- mtd -e vmlinux.bin.l7 write openwrt-atheros-vmlinux.lzma vmlinux.bin.l7<br />
- mtd -e rootfs write openwrt-atheros-root.squashfs rootfs<br />
- wrt54g per tftp<br />
- atftp --trace --option "timeout 1" --option "mode octet" --put --local-file bin/openwrt-brcm-.bin 192.168.1.1<br />
- wrt54g per console<br />
- mtd -r -e linux openwrt-brcm-.bin linux<br />
<br />
redboot:<br />
- flash reseten/formatieren:<br />
- fis init -f<br />
- datei per tftp laden:<br />
- load -r -v -b %{FREEMEMLO} <dateiname-auf-tftp-server><br />
- letzte geladene datei aus ram in flash schreiben:<br />
- fis create <partitionsname><br />
- freien speicher im flash bestimmen:<br />
- fis free<br />
- rootfs erstellen bzw. restlichen verfuegbaren speicher im flash dem rootfs zuordnen:<br />
- fis create -l <laenge des restlichen speichers> <partitionsname><br />
- freien speicher berechen:<br />
- fis free<br />
- eg: 0x50160000 .. 0x50fc0000<br />
- 0x50fc0000 - 0x50160000 = 0xe60000<br />
- laenge ist also 0xe60000<br />
- im obigen bsp: fis create -l 0x6e0000 <partitionsname><br />
<br />
avila:<br />
- problem mit ethernet<br />
- ursache: mac-adresse wird nicht erkannt/gesetzt<br />
- ifconfig <dev> hw ether <mac-address><br />
- in /etc/conif/network: option 'macaddress' 'xx:xx:xx:xx:xx:xx'<br />
- wrt -> network -> networks -> macadresse setzen<br />
<br />
soi:<br />
* [[Benutzer:Zim/ip6sec]]</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim
Benutzer:Zim
2009-02-11T16:14:40Z
<p>Zim: gpg-key</p>
<hr />
<div>Informatikstudent<br />
<br />
[http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xF89E4A08 gpg-key]<br />
<br />
Schwerpunkt:<br />
- Routing/Switching (CCNP)<br />
- IPv6<br />
<br />
OpenWRT:<br />
- Kamikaze fuer Linksys WRT54GL<br />
- AP, IPv6, aiccu, radvd<br />
- Kamikaze-nano fuer Linksys WRT54GS-V5 (2MB Flash)<br />
- grundlegende AP-Funktion, keine WebIF, (noch) kein OLSRd, kein OpenVPN<br />
<br />
<br />
Da es schon genug Leute im Verein gibt, die sich um Kamikaze-Port kuemmern, werd ich davon meine Finger lassen.<br />
* Es gibt aus meiner Sicht gewiss nicht genug Leute, eher zu wenige. --[[Benutzer:MathiasMahnke|Mathias]] 13:01, 13. Jun 2007 (CEST)<br />
<br />
<br />
07.02.2008:<br />
kamikaze 7.09<br />
- olsr: /etc/init.d/olsrd<br />
- USE_CONF_F=/etc/olsrd.conf<br />
<br />
mrd6:<br />
- debian-config funktioniert, default-log aendern...<br />
<br />
ahcp:<br />
- funktioniert<br />
- config folgt<br />
<br />
babel:<br />
- kein broadcast des default-gw<br />
<br />
ipv6-debian-mirror:<br />
- deb ftp://ftp.ipv6.debian.org/debian<br />
<br />
flashen:<br />
- fonera:<br />
- mtd -e vmlinux.bin.l7 write openwrt-atheros-vmlinux.lzma vmlinux.bin.l7<br />
- mtd -e rootfs write openwrt-atheros-root.squashfs rootfs<br />
- wrt54g per tftp<br />
- atftp --trace --option "timeout 1" --option "mode octet" --put --local-file bin/openwrt-brcm-.bin 192.168.1.1<br />
- wrt54g per console<br />
- mtd -r -e linux openwrt-brcm-.bin linux<br />
<br />
redboot:<br />
- flash reseten/formatieren:<br />
- fis init -f<br />
- datei per tftp laden:<br />
- load -r -v -b %{FREEMEMLO} <dateiname-auf-tftp-server><br />
- letzte geladene datei aus ram in flash schreiben:<br />
- fis create <partitionsname><br />
- freien speicher im flash bestimmen:<br />
- fis free<br />
- rootfs erstellen bzw. restlichen verfuegbaren speicher im flash dem rootfs zuordnen:<br />
- fis create -l <laenge des restlichen speichers> <partitionsname><br />
- freien speicher berechen:<br />
- fis free<br />
- eg: 0x50160000 .. 0x50fc0000<br />
- 0x50fc0000 - 0x50160000 = 0xe60000<br />
- laenge ist also 0xe60000<br />
- im obigen bsp: fis create -l 0x6e0000 <partitionsname><br />
<br />
avila:<br />
- problem mit ethernet<br />
- ursache: mac-adresse wird nicht erkannt/gesetzt<br />
- ifconfig <dev> hw ether <mac-address><br />
- in /etc/conif/network: option 'macaddress' 'xx:xx:xx:xx:xx:xx'<br />
- wrt -> network -> networks -> macadresse setzen<br />
<br />
soi:<br />
* [[Benutzer:Zim/ip6sec]]</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-10T16:25:29Z
<p>Zim: roadwarrior, finish</p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044::1 secret<br />
2001:6f8:1044::2 secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - preshared keys<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - preshared keys<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - certs<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - certs<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
Roadwarrior-Config:<br />
<br />
Ziel: Verbindung von beliebigem Client (zb dynIP) zu Server<br />
<br />
Serversite:<br />
<br />
setkey.sh:<br />
- destIP in Bereicht (::/0) geaendert; level von 'require' nach 'use', damit hosts ohne ipsec auch verbinden koennen<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 ::/0 any -P out ipsec esp/transport//use;<br />
spdadd ::/0 2001:6f8:1044::1 any -P in ipsec esp/transport//use;<br />
<br />
racoon.conf:<br />
- statt feste IPs der client-site, nun "anonymous"; ausserdem auf 'passiv' damit versucht der Server keine Verbindung herzustellen, sondern nur auf eingehende antwortet<br />
<br />
#/etc/racoon/racoon.conf<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
remote anonymous<br />
{<br />
exchange_mode aggressive,main,base;<br />
my_identifier asn1dn;<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
ca_type x509 "cacert.cert";<br />
passive on;<br />
generate_policy on;<br />
proposal {<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
lifetime time 24 hour;<br />
}<br />
}<br />
sainfo anonymous<br />
{<br />
pfs_group 2;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
<br />
client-site:<br />
<br />
setkey.conf: kann so bleiben, evtl noch vereinfachbar<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P out ipsec esp/transport//require;<br />
<br />
racoon.conf:<br />
<br />
#/etc/racoon/racoon.conf<br />
path include "/etc/racoon";<br />
path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode aggressive,main,base;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo anonymous<br />
{<br />
pfs_group 2;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-10T16:18:00Z
<p>Zim: roadwarrior, anfang</p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044::1 secret<br />
2001:6f8:1044::2 secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - preshared keys<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - preshared keys<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - certs<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - certs<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
Roadwarrior-Config:<br />
<br />
Ziel: Verbindung von beliebigem Client (zb dynIP) zu Server<br />
<br />
Serversite:<br />
<br />
setkey.sh:<br />
- destIP in Bereicht (::/0) geaendert; level von 'require' nach 'use', damit hosts ohne ipsec auch verbinden koennen<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 ::/0 any -P out ipsec esp/transport//use;<br />
spdadd ::/0 2001:6f8:1044::1 any -P in ipsec esp/transport//use;<br />
<br />
racoon.conf:<br />
- statt feste IPs der client-site, nun "anonymous"; ausserdem auf 'passiv' damit versucht der Server keine Verbindung herzustellen<br />
<br />
#/etc/racoon/racoon.conf<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
remote anonymous<br />
{<br />
exchange_mode aggressive,main,base;<br />
my_identifier asn1dn;<br />
certificate_type x509 "server.cert" "server.key";<br />
ca_type x509 "cacert.cert";<br />
passive on;<br />
generate_policy on;<br />
proposal {<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
lifetime time 24 hour;<br />
}<br />
}<br />
sainfo anonymous<br />
{<br />
pfs_group 2;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-09T14:05:18Z
<p>Zim: </p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044::1 secret<br />
2001:6f8:1044::2 secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - preshared keys<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - preshared keys<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - certs<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - certs<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
todo:<br />
- roadwarrior-mode</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_04_-_Workshop_IPv6
Openlab 04 - Workshop IPv6
2009-02-08T16:22:32Z
<p>Zim: ip6sec-link</p>
<hr />
<div>Wir möchten dich herzlich zum Openlab #4 einladen!<br />
<br />
== Openlab ==<br />
<br />
'''Idee''': Gemeinsames offenes Treffen für alle Interessierten, unabhängig von Opennet oder sonstiger Gruppenzugehörigkeit. Offene Plattform für Alle mit Affinität zu IT, Technik, Hacking gepaart mit Sozialem, Politisches und alles was sich ergibt. Einsteigergeeignet.<br />
<br />
'''Zukünftige Themen''': Vorschläge unter [[:Kategorie:Openlab]]<br />
<br />
== Workshop "IPv6" ==<br />
<br />
'''Thema''': ..<br />
<br />
'''Termin''': ..<br />
<br />
'''Ort''': voraussichtlich [[Frieda23]]<br />
<br />
'''Zeit''': Start 19.00 Uhr, Open End<br />
<br />
=== Inhalt ===<br />
<br />
{| {{Prettytable}}<br />
!Thema<br />
!Wer<br />
!Zeit<br />
|--<br />
|Einführung zu IP Protokoll Version 6<br />
|<br />
|<br />
|--<br />
|[[Openlab_04_-_Workshop_IPv6/Tunnelbroker|IPv6 Tunnelbroker & Einrichtung am PC/Server]]<br />
|<br />
|<br />
|--<br />
|[http://blog.leo34.net/2008/12/6mesh-oder-freifunk-20/ 6Mesh - Wireless Mesh IPv6 Transportnetz + SIIT IPv4]<br />
|<br />
|<br />
|--<br />
|IPv6 mit OpenVPN / IPSEC ([[Benutzer:Zim/ip6sec|IP6SEC]])<br />
|<br />
|<br />
|}<br />
<br />
=== Anmeldung ===<br />
<br />
(Max. ?? Teilnehmer)<br />
<br />
# [[Benutzer:MathiasMahnke|Mathias]]<br />
# [[Benutzer:mdbw|Ralph]]<br />
# [[Benutzer:zim|RobertE]]<br />
<br />
Bitte selbst eintragen oder eine kurze E-Mail an [[Benutzer:MathiasMahnke|Mathias]].<br />
<br />
=== Unterstützung ===<br />
<br />
* Raum: Beamer - ? , Schlüssel - ? <br />
* Getränke zum Selbstkostenpreis: <br />
** [http://www.club-mate.de/ Club-Mate] &middot; 1.50 EUR<br />
** Bier ([http://www.rostocker.de/ Rostocker Pils], Köstritzer, Alster) &middot; 1 EUR<br />
** Bionade &middot; 1 EUR<br />
** Cola (Coca Cola, Coca Cola Zero)<br />
** Mineralwasser, Tee/(Instant-)Kaffee<br />
* freier WLAN Zugang vorhanden<br />
<br />
=== Kommunikation ===<br />
<br />
* '''Feedback''': [[Diskussion:Openlab 04 - Workshop IPv6]]<br />
* '''IRC''': irc://irc.opennet-initiative.de/openlab<br />
<br />
[[Kategorie:Openlab]]<br />
[[Kategorie:Opennet Ereignisse]]</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_04_-_Workshop_IPv6
Openlab 04 - Workshop IPv6
2009-02-08T16:19:58Z
<p>Zim: /* Anmeldung */</p>
<hr />
<div>Wir möchten dich herzlich zum Openlab #4 einladen!<br />
<br />
== Openlab ==<br />
<br />
'''Idee''': Gemeinsames offenes Treffen für alle Interessierten, unabhängig von Opennet oder sonstiger Gruppenzugehörigkeit. Offene Plattform für Alle mit Affinität zu IT, Technik, Hacking gepaart mit Sozialem, Politisches und alles was sich ergibt. Einsteigergeeignet.<br />
<br />
'''Zukünftige Themen''': Vorschläge unter [[:Kategorie:Openlab]]<br />
<br />
== Workshop "IPv6" ==<br />
<br />
'''Thema''': ..<br />
<br />
'''Termin''': ..<br />
<br />
'''Ort''': voraussichtlich [[Frieda23]]<br />
<br />
'''Zeit''': Start 19.00 Uhr, Open End<br />
<br />
=== Inhalt ===<br />
<br />
{| {{Prettytable}}<br />
!Thema<br />
!Wer<br />
!Zeit<br />
|--<br />
|Einführung zu IP Protokoll Version 6<br />
|<br />
|<br />
|--<br />
|[[Openlab_04_-_Workshop_IPv6/Tunnelbroker|IPv6 Tunnelbroker & Einrichtung am PC/Server]]<br />
|<br />
|<br />
|--<br />
|[http://blog.leo34.net/2008/12/6mesh-oder-freifunk-20/ 6Mesh - Wireless Mesh IPv6 Transportnetz + SIIT IPv4]<br />
|<br />
|<br />
|--<br />
|IPv6 mit OpenVPN / IPSEC (IP6SEC)<br />
|<br />
|<br />
|}<br />
<br />
=== Anmeldung ===<br />
<br />
(Max. ?? Teilnehmer)<br />
<br />
# [[Benutzer:MathiasMahnke|Mathias]]<br />
# [[Benutzer:mdbw|Ralph]]<br />
# [[Benutzer:zim|RobertE]]<br />
<br />
Bitte selbst eintragen oder eine kurze E-Mail an [[Benutzer:MathiasMahnke|Mathias]].<br />
<br />
=== Unterstützung ===<br />
<br />
* Raum: Beamer - ? , Schlüssel - ? <br />
* Getränke zum Selbstkostenpreis: <br />
** [http://www.club-mate.de/ Club-Mate] &middot; 1.50 EUR<br />
** Bier ([http://www.rostocker.de/ Rostocker Pils], Köstritzer, Alster) &middot; 1 EUR<br />
** Bionade &middot; 1 EUR<br />
** Cola (Coca Cola, Coca Cola Zero)<br />
** Mineralwasser, Tee/(Instant-)Kaffee<br />
* freier WLAN Zugang vorhanden<br />
<br />
=== Kommunikation ===<br />
<br />
* '''Feedback''': [[Diskussion:Openlab 04 - Workshop IPv6]]<br />
* '''IRC''': irc://irc.opennet-initiative.de/openlab<br />
<br />
[[Kategorie:Openlab]]<br />
[[Kategorie:Opennet Ereignisse]]</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-08T16:02:55Z
<p>Zim: ips, again</p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044::1 secret<br />
2001:6f8:1044::2 secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - preshared keys<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - preshared keys<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - certs<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - certs<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:1044::1 any address 2001:6f8:1044::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
sainfo address 2001:6f8:1044::2 any address 2001:6f8:1044::1 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
todo:<br />
- roadwarrior-mode</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-08T16:01:16Z
<p>Zim: config-update</p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044::1 secret<br />
2001:6f8:1044::2 secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - preshared keys<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:900:8a6::2 any address 2001:6f8:1044::211:2fff:febe:666a any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
sainfo address 2001:6f8:1044::211:2fff:febe:666a any address 2001:6f8:900:8a6::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - preshared keys<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:900:8a6::2 any address 2001:6f8:1044::211:2fff:febe:666a any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
sainfo address 2001:6f8:1044::211:2fff:febe:666a any address 2001:6f8:900:8a6::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - certs<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:900:8a6::2 any address 2001:6f8:1044::211:2fff:febe:666a any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
sainfo address 2001:6f8:1044::211:2fff:febe:666a any address 2001:6f8:900:8a6::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - certs<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
sainfo address 2001:6f8:900:8a6::2 any address 2001:6f8:1044::211:2fff:febe:666a any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
sainfo address 2001:6f8:1044::211:2fff:febe:666a any address 2001:6f8:900:8a6::2 any<br />
{<br />
lifetime time 1 hour;<br />
encryption_algorithm aes;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
todo:<br />
- roadwarrior-mode</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-08T15:59:31Z
<p>Zim: 3des->aes, md5->sha1</p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044::1 secret<br />
2001:6f8:1044::2 secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - preshared keys<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - preshared keys<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - certs<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - certs<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm aes;<br />
hash_algorithm sha1;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
todo:<br />
- roadwarrior-mode</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-08T14:54:14Z
<p>Zim: </p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044::1 secret<br />
2001:6f8:1044::2 secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - preshared keys<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - preshared keys<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - certs<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - certs<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
todo:<br />
- roadwarrior-mode</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-08T14:50:46Z
<p>Zim: ips angepasst</p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044::2 secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:1044::1 2001:6f8:1044::2 any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::2 2001:6f8:1044::1 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - preshared keys<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - preshared keys<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - certs<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:1044::1;<br />
}<br />
<br />
remote 2001:6f8:1044::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - certs<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:1044::1;<br />
isakmp 2001:6f8:1044::2;<br />
}<br />
<br />
#remote 2001:6f8:1044::2<br />
remote 2001:6f8:1044::1<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
todo:<br />
- roadwarrior-mode</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim
Benutzer:Zim
2009-02-08T14:47:00Z
<p>Zim: soi</p>
<hr />
<div>Informatikstudent<br />
<br />
Schwerpunkt:<br />
- Routing/Switching (CCNP)<br />
- IPv6<br />
<br />
OpenWRT:<br />
- Kamikaze fuer Linksys WRT54GL<br />
- AP, IPv6, aiccu, radvd<br />
- Kamikaze-nano fuer Linksys WRT54GS-V5 (2MB Flash)<br />
- grundlegende AP-Funktion, keine WebIF, (noch) kein OLSRd, kein OpenVPN<br />
<br />
<br />
Da es schon genug Leute im Verein gibt, die sich um Kamikaze-Port kuemmern, werd ich davon meine Finger lassen.<br />
* Es gibt aus meiner Sicht gewiss nicht genug Leute, eher zu wenige. --[[Benutzer:MathiasMahnke|Mathias]] 13:01, 13. Jun 2007 (CEST)<br />
<br />
<br />
07.02.2008:<br />
kamikaze 7.09<br />
- olsr: /etc/init.d/olsrd<br />
- USE_CONF_F=/etc/olsrd.conf<br />
<br />
mrd6:<br />
- debian-config funktioniert, default-log aendern...<br />
<br />
ahcp:<br />
- funktioniert<br />
- config folgt<br />
<br />
babel:<br />
- kein broadcast des default-gw<br />
<br />
ipv6-debian-mirror:<br />
- deb ftp://ftp.ipv6.debian.org/debian<br />
<br />
flashen:<br />
- fonera:<br />
- mtd -e vmlinux.bin.l7 write openwrt-atheros-vmlinux.lzma vmlinux.bin.l7<br />
- mtd -e rootfs write openwrt-atheros-root.squashfs rootfs<br />
- wrt54g per tftp<br />
- atftp --trace --option "timeout 1" --option "mode octet" --put --local-file bin/openwrt-brcm-.bin 192.168.1.1<br />
- wrt54g per console<br />
- mtd -r -e linux openwrt-brcm-.bin linux<br />
<br />
redboot:<br />
- flash reseten/formatieren:<br />
- fis init -f<br />
- datei per tftp laden:<br />
- load -r -v -b %{FREEMEMLO} <dateiname-auf-tftp-server><br />
- letzte geladene datei aus ram in flash schreiben:<br />
- fis create <partitionsname><br />
- freien speicher im flash bestimmen:<br />
- fis free<br />
- rootfs erstellen bzw. restlichen verfuegbaren speicher im flash dem rootfs zuordnen:<br />
- fis create -l <laenge des restlichen speichers> <partitionsname><br />
- freien speicher berechen:<br />
- fis free<br />
- eg: 0x50160000 .. 0x50fc0000<br />
- 0x50fc0000 - 0x50160000 = 0xe60000<br />
- laenge ist also 0xe60000<br />
- im obigen bsp: fis create -l 0x6e0000 <partitionsname><br />
<br />
avila:<br />
- problem mit ethernet<br />
- ursache: mac-adresse wird nicht erkannt/gesetzt<br />
- ifconfig <dev> hw ether <mac-address><br />
- in /etc/conif/network: option 'macaddress' 'xx:xx:xx:xx:xx:xx'<br />
- wrt -> network -> networks -> macadresse setzen<br />
<br />
soi:<br />
- https://wiki.opennet-initiative.de/index.php/Benutzer:Zim/ip6sec</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-08T14:45:59Z
<p>Zim: todo-list</p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044:0:211:2fff:febe:666a secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - preshared keys<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
<br />
remote 2001:6f8:1044::211:2fff:febe:666a<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - preshared keys<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:900:8a6::2;<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
<br />
#remote 2001:6f8:1044::211:2fff:febe:666a<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - certs<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
<br />
remote 2001:6f8:1044::211:2fff:febe:666a<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - certs<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:900:8a6::2;<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
<br />
#remote 2001:6f8:1044::211:2fff:febe:666a<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
todo:<br />
- roadwarrior-mode</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-08T14:40:35Z
<p>Zim: </p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044:0:211:2fff:febe:666a secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - preshared keys<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
<br />
remote 2001:6f8:1044::211:2fff:febe:666a<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - preshared keys<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:900:8a6::2;<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
<br />
#remote 2001:6f8:1044::211:2fff:febe:666a<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - certs<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
<br />
remote 2001:6f8:1044::211:2fff:febe:666a<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - certs<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:900:8a6::2;<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
<br />
#remote 2001:6f8:1044::211:2fff:febe:666a<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-08T14:39:55Z
<p>Zim: desc</p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044:0:211:2fff:febe:666a secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - preshared keys<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
<br />
remote 2001:6f8:1044::211:2fff:febe:666a<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - preshared keys<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:900:8a6::2;<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
<br />
#remote 2001:6f8:1044::211:2fff:febe:666a<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host A - certs<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
<br />
remote 2001:6f8:1044::211:2fff:febe:666a<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc: racoon config for host B - certs<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:900:8a6::2;<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
<br />
#remote 2001:6f8:1044::211:2fff:febe:666a<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-08T14:38:23Z
<p>Zim: code formatiert</p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044:0:211:2fff:febe:666a secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc:<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
<br />
remote 2001:6f8:1044::211:2fff:febe:666a<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc:<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:900:8a6::2;<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
<br />
#remote 2001:6f8:1044::211:2fff:febe:666a<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc:<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
<br />
remote 2001:6f8:1044::211:2fff:febe:666a<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc:<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:900:8a6::2;<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
<br />
#remote 2001:6f8:1044::211:2fff:febe:666a<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-08T14:35:38Z
<p>Zim: dateinamen verallgemeinert</p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044:0:211:2fff:febe:666a secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc:<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
<br />
remote 2001:6f8:1044::211:2fff:febe:666a<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
# peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc:<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:900:8a6::2;<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
<br />
#remote 2001:6f8:1044::211:2fff:febe:666a<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
# peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc:<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
<br />
remote 2001:6f8:1044::211:2fff:febe:666a<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-A-cert.pem" "host-A-key.pem";<br />
peers_certfile x509 "host-B-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc:<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:900:8a6::2;<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
<br />
#remote 2001:6f8:1044::211:2fff:febe:666a<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "host-B-cert.pem" "host-B-key.pem";<br />
peers_certfile x509 "host-A-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-08T14:33:37Z
<p>Zim: certificate</p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044:0:211:2fff:febe:666a secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc:<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
<br />
remote 2001:6f8:1044::211:2fff:febe:666a<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "re01.dyndns.org-cert.pem" "re01.dyndns.org-key.pem";<br />
# peers_certfile x509 "ramiel-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc:<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:900:8a6::2;<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
<br />
#remote 2001:6f8:1044::211:2fff:febe:666a<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "ramiel-cert.pem" "ramiel-key.pem";<br />
# peers_certfile x509 "re01.dyndns.org-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
mode: transport<br />
keys: certificate<br />
<br />
desc: only change racoon.conf<br />
<br />
<br />
file: racoon.conf<br />
desc:<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
<br />
remote 2001:6f8:1044::211:2fff:febe:666a<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "re01.dyndns.org-cert.pem" "re01.dyndns.org-key.pem";<br />
peers_certfile x509 "ramiel-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc:<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
#path pre_shared_key "/etc/racoon/psk.txt";<br />
path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:900:8a6::2;<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
<br />
#remote 2001:6f8:1044::211:2fff:febe:666a<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode main;<br />
my_identifier asn1dn;<br />
peers_identifier asn1dn;<br />
<br />
certificate_type x509 "ramiel-cert.pem" "ramiel-key.pem";<br />
peers_certfile x509 "re01.dyndns.org-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
# authentication_method pre_shared_key;<br />
authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/ip6sec
Benutzer:Zim/ip6sec
2009-02-08T14:31:23Z
<p>Zim: start, pre-shared</p>
<hr />
<div>beispielconfig fuer ipsec/ipv6<br />
<br />
benoetigte pakete:<br />
- ipsec-tools<br />
- racoon (evtl schon in ipsec-tools enthalten)<br />
<br />
mode: transport<br />
keys: preshared<br />
<br />
file: psk.txt<br />
desc: enthaelt preshared keys<br />
host: A und B<br />
<br />
# /etc/racoon/psk.txt<br />
# IPv4/v6 addresses<br />
2001:6f8:1044:0:211:2fff:febe:666a secret<br />
#10.160.94.3 mekmitasdigoat<br />
#172.16.1.133 0x12345678<br />
#194.100.55.1 whatcertificatereally<br />
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat<br />
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat<br />
# USER_FQDN<br />
#foo@kame.net mekmitasdigoat<br />
# FQDN<br />
#foo.kame.net hoge<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: A<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P out ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P in ipsec esp/transport//require;<br />
<br />
file: setkey.txt<br />
desc: shellscript to set up spd-policies<br />
host: B<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
spdadd 2001:6f8:900:8a6::2 2001:6f8:1044::211:2fff:febe:666a any -P in ipsec esp/transport//require;<br />
spdadd 2001:6f8:1044::211:2fff:febe:666a 2001:6f8:900:8a6::2 any -P out ipsec esp/transport//require;<br />
<br />
file: racoon.conf<br />
desc:<br />
host: A<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
isakmp 2001:6f8:900:8a6::2;<br />
}<br />
<br />
remote 2001:6f8:1044::211:2fff:febe:666a<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "re01.dyndns.org-cert.pem" "re01.dyndns.org-key.pem";<br />
# peers_certfile x509 "ramiel-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
<br />
file: racoon.conf<br />
desc:<br />
host: B<br />
<br />
#<br />
path include "/etc/racoon";<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
#path certificate "/etc/racoon/certs";<br />
<br />
listen<br />
{<br />
# isakmp 2001:6f8:900:8a6::2;<br />
isakmp 2001:6f8:1044::211:2fff:febe:666a;<br />
}<br />
<br />
#remote 2001:6f8:1044::211:2fff:febe:666a<br />
remote 2001:6f8:900:8a6::2<br />
{<br />
exchange_mode main;<br />
# my_identifier asn1dn;<br />
# peers_identifier asn1dn;<br />
<br />
# certificate_type x509 "ramiel-cert.pem" "ramiel-key.pem";<br />
# peers_certfile x509 "re01.dyndns.org-cert.pem";<br />
<br />
lifetime time 24 hour;<br />
proposal<br />
{<br />
encryption_algorithm 3des;<br />
hash_algorithm md5;<br />
authentication_method pre_shared_key;<br />
# authentication_method rsasig;<br />
dh_group 2;<br />
}<br />
}</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_02_-_Workshop_Verschl%C3%BCsselung
Openlab 02 - Workshop Verschlüsselung
2009-02-03T15:50:25Z
<p>Zim: /* Anmeldung */</p>
<hr />
<div>Wir möchten dich herzlich zum Openlab #2 einladen!<br />
<br />
== Openlab ==<br />
<br />
'''Idee''': Gemeinsames offenes Treffen für alle Interessierten, unabhängig von Opennet oder sonstiger Gruppenzugehörigkeit. Offene Plattform für Alle mit Affinität zu IT, Technik, Hacking gepaart mit Sozialem, Politisches und alles was sich ergibt. Einsteigergeeignet.<br />
<br />
'''Zukünftige Themen''': Vorschläge unter [[:Kategorie:Openlab]]<br />
<br />
== Workshop "Verschlüsselung in der Praxis" ==<br />
<br />
'''Thema''': Sicherung sensitiver privater Daten durch Verschlüsselung<br />
<br />
'''Termin''': Dienstag 24.02.2009<br />
<br />
'''Ort''': [[Frieda23]] - Friedrichstr. 23, Rostock-KTV<br />
<br />
'''Raum''': Raum 3.8 - 2. OG linker Aufgang, Beschriftung "23"<br />
<br />
'''Zeit''': Start 19.00 Uhr, Open End<br />
<br />
=== Inhalt ===<br />
<br />
{| {{Prettytable}}<br />
!Thema<br />
!Wer<br />
!Zeit<br />
|--<br />
|Einleitung, Grundlagen, Vertrauen, Kryptografie, Überblick, Standards und Protokolle<br />
:Public Key Infrastructure und Certifying Authorities<br />
|[[Benutzer:thm|Thomas]]<br />
|20 Minuten<br />
|--<br />
|[[Openlab_02_-_Workshop_Verschlüsselung/SMIME|Einführung E-Mail Verschlüsselung/Signierung mit S/MIME]]<br />
|[[Benutzer:mdbw|Ralph]]<br />
|10 Minuten<br />
|--<br />
|Praxis 1: Zertifikats-Erzeugung auf verschiedenen Plattformen.<br />
|[[Benutzer:mdbw|Ralph]] [[Benutzer:thm|Thomas]]<br />
|10 Minuten<br />
|--<br />
|Praxis 2: E-Mail Verschlüsselung mit S/MIME<br />
:S/MIME wird von <s>fast</s> jedem E-Mail Client unterstützt. Die Anwendung ist kinderleicht.<br />
:Wer schon vorarbeiten will kann sich bei [http://www.thawte.com/secure-email/personal-email-certificates/index.html?click=main-nav-products-email Thawte] und/oder [http://www.cacert.org/ CAcert] schon mal einen Account anlegen.<br />
|[[Benutzer:mdbw|Ralph]]<br />
|10 Minuten<br />
|--<br />
|Praxis 3: Zeit für praktische Umsetzung, Ausstellen von S/MIME-Zertifikaten<br />
Signieren von CAcert / S/MIME / PGP <br />
|alle Anwesenden<br />
|offen<br />
|--<br />
|}<br />
<br />
=== Anmeldung ===<br />
<br />
(Max. 20 Teilnehmer)<br />
<br />
# [[Benutzer:mdbw|Ralph]]<br />
# [[Benutzer:thm|Thomas]]<br />
# [[Benutzer:Sorax|Robert M.]]<br />
# [[Benutzer:Sebastian|Sebastian]]<br />
# [[Benutzer:t68|Till]]<br />
# [[Benutzer:Ckuehl|Christoph]]<br />
# [[Benutzer:MathiasMahnke|Mathias]]<br />
# [[Benutzer:Dr.rp|Ralf]]<br />
# Dirk<br />
# [[Benutzer:Christianw|Christianw]]<br />
# [[Benutzer:Zim|RobertE]]<br />
<br />
Bitte selbst eintragen oder eine kurze E-Mail an [[Benutzer:mdbw|Ralph]].<br />
<br />
=== Unterstützung ===<br />
<br />
* Raum: Beamer - [[Benutzer:Dr.rp|Ralf]] (VGA/S-Video/FBAS), Schlüssel=? <br />
* Getränke zum Selbstkostenpreis: <br />
** [http://www.club-mate.de/ Club-Mate] &middot; 1.50 EUR<br />
** Bier ([http://www.rostocker.de/ Rostocker Pils], Köstritzer, Alster) &middot; 1 EUR<br />
** Bionade &middot; 1 EUR<br />
** Cola (Coca Cola, Coca Cola Zero)<br />
** Mineralwasser, Tee/(Instant-)Kaffee<br />
* freier WLAN Zugang vorhanden<br />
<br />
=== Kommunikation ===<br />
<br />
* '''Feedback''': [[Diskussion:Openlab 02 - Workshop Verschlüsselung]]<br />
* '''IRC''': irc://irc.opennet-initiative.de/openlab<br />
<br />
[[Kategorie:Openlab]]<br />
[[Kategorie:Opennet Ereignisse]]</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/UML_-_IPsec
Benutzer:Zim/UML - IPsec
2009-01-23T06:26:32Z
<p>Zim: </p>
<hr />
<div>Umgebung:<br />
<br />
Als Testumgebung kommt ein Verbund von UML-Instanzen zum Einsatz.<br />
<br />
2x Hosts (A, B)<br />
Dienen als Endgeraete die miteinander kommunizieren<br />
<br />
2x Router (Alpha, Bravo)<br />
Verbinden die beiden Endnetze<br />
<br />
3x UML-Switch (sw0, sw1, sw2)<br />
Ein Switch fuer die Verbindung Host <-> Router, einer zwischen Router <-> Router und ein Switch der die Router mit dem Hostsystem verbindet.<br />
<br />
<br />
Grafik folgt (irgendwann), dann wird das sicher etwas klarer.<br />
<br />
Host A:<br />
- 192.168.20.2/24<br />
<br />
Host B:<br />
- 192.168.30.2/24<br />
<br />
Router Alpha:<br />
- 192.168.20.1/24<br />
- Hostnetz<br />
- 192.168.0.11/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.1/24<br />
- Netz zum Router Bravo<br />
<br />
Router Bravo:<br />
- 192.168.30.1/24<br />
- Hostnetz<br />
- 192.168.0.12/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.2/24<br />
- Netz zum Router Bravo<br />
<br />
UML-Switch 0:<br />
- Hostsystem<br />
- Gateway ins "richtige Netz"<br />
<br />
UML-Switch 1:<br />
- Switch zwischen den Routern<br />
- gehubt ( -hub)<br />
- wireshark auf dem tap-dev des Hostsystems, um die Pakete zu beobachten<br />
<br />
UML-Switch 2:<br />
- Hostnetze<br />
<br />
Traffic beobachten:<br />
Ich hab dazu wireshark auf dem Hostsystem gestartet und es auf dem tap-device horchen lassen, dass dem Switch 1 gehoert. Deswegen ist der Switch auch ge"hub"t.<br />
<br />
Zum Traffic erzeugen nehm ich einfach "ping" oder spaeter zwischen den Hostnetzen netcat:<br />
<br />
Host A - client:<br />
<br />
# netcat 192.168.30.2 1234<br />
<br />
netcat macht eine tcp-verbindung zu 192.168.30.2 (host B) port 1234 auf<br />
<br />
<br />
<br />
Host B - server:<br />
<br />
# netcat -l -p 1234<br />
<br />
netcat oeffnet port 1234 und horcht darauf. Die Serverseite sollte man natuerlich vorher starten. Wenn die Verbindung steht, kann man in beiden netcats schreiben und es wird auf dem jeweils anderen host angezeigt. Wird die Verbindung beendet (ctrl-c), beendet sich die Gegenseite auch.<br />
<br />
<br />
Routing (optional):<br />
<br />
Auf den Routern (Alpha, Bravo) laeuft "quagga" mit ospf als routing-protocol. Kann man natuerlich auch mit statischen Routen machen, aber das waere ja langweilig.<br />
<br />
"quagga" koennen wir ja mal zu einem anderen Thema machen. Zusammen mit Routing.<br />
<br />
# echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
IPsec:<br />
<br />
AH oder ESP?<br />
<br />
AH steht fuer "Authentication Header", was nur eine Authentifizierung der Pakete bewirkt. Dagegen steht ESP "Encapsulating Security Payload", was neben der Authentifizierung auch die Pakete verschluesselt.<br />
<br />
Transport oder Tunnel?<br />
<br />
Transport ist fuer den Traffic zwischen zwei Host, die beide IPsec verstehen.<br />
Tunnel baut einen Tunnel, durch welchen Pakete zb von dahinter liegenden Hosts, geleitet werden.<br />
<br />
IKE oder Pre-Key<br />
<br />
Waerend bei Pre-Key die Schluessel haendisch eingegen werden, kuemmert sich bei IKE ein daemon um die Verwaltung der Schluessel ua auch die regelmaessige Aenderung dieser.<br />
<br />
Praxis:<br />
<br />
Transport zwischen den Routern:<br />
<br />
Auf beiden Routern werden "ipsec-tools" installiert. Diese Paket stellt die Anwendung "setkey" zur verfuegung.<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
add <local_ip> <remote_ip> <ah/esp> <SPI> <-A fuer AH (authentification), -E fuer ESP (encryption)> <key><br />
Die erste Zeile legt also einen key (128bit, 16*8bit) fuer AH fest, die zweite eine key (192bit, 168 + 24 parity) fuer ESP. Die dritte Zeile enthaelt eine policy, wie mit entsprechenden Traffic umgegangen werden soll.<br />
<br />
Damit die Paket von der Gegenseite entschluesselt/verifiziert werden koennen reichen auf Router Bravo folgende Zeilen:<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
Da wir fuer den zweiten Router keine policy angelegt haben, werden die Pakete von Alpha zwar entschluesselt, aber Antworten gehen unverschluesselt uebers Netz. Viel schliemmer ist aber, dass Bravo beliebige Pakete von Alpha annimmt. Damit die Pakete auch verschluesselt werden, fuegen wir noch eine policy hinzu:<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
sieht aus wie vom Router Alpha, allerdings wuerde das vorletzte Wort in der ersten Zeile geaendert out -> in. Bravo nimmt jetzt keine unverschluesselten Pakete mehr von Alpha an, sendet aber weiterhin unverschluesselt. Also kommt noch jeweils eine policy fuer die andere Richtung pro Router hinzu:<br />
<br />
Alpha:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Alpha<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
<br />
Bravo:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Bravo<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
Die configs sind gleich, bis auf die geaenderte Richtung in der jeweiligen policy. Das "flush" und "spdflush" wirft nur alte keys und policys raus. Tadaa, deine erste IPsec-Verbindung ist fertig!<br />
<br />
An dieser Stelle wuerde ich gern auf den Aufbau der config eingehen, damit sich jeder schnell selbst eine Loesung zusammenbauen kann. Die config unterscheided SAD "Security Association Database" und SPD "Security Policy Database". SAD sind die Zeilen mit dem "add" und SPD mit "spdadd".<br />
<br />
SAD:<br />
<br />
add [-46n] src dst protocol spi [extensions] algorithm ... ;<br />
<br />
add - fuegt ein SAD eintrag hinzu (es gibt noch get, delete und deleteall)<br />
<br />
[-46] - ipv4 oder ipv6 - optional<br />
<br />
src - quelle<br />
<br />
dst - ziel<br />
<br />
protocol - ah, ah-old, esp, esp-old, ipcomp, tcp - tcp-md5<br />
<br />
spi - Security Parameter Index, dient der Zuordnung, der Pakete, ist im paket zu sehen<br />
<br />
[extensions] - -mode - tunnel, transport, any - optional - es gibt noch mehr extensions, siehe setkey-manual<br />
<br />
algorithm - -E ealgo key, -A aalgo key - ealgo, aalgo sind verwendbar algorithmen zb: hmac_md5, hmac-sha512, 3des-cbc, twofish-cbc, <br />
aes-ctr - man unterscheided digest (authentification) und cipher (encryption), die ersten beiden sind digest und die letzten drei cipher<br />
<br />
SPD:<br />
<br />
spdadd [-46n] src_range dst_range upperspec label policy ;<br />
<br />
spdadd - fuegt ein SPD eintrag hinzu<br />
<br />
src_range, dst_range - address, address/prefixlen, address[port], address/prefixlen[port]<br />
<br />
upperspec - siehe /etc/protocols oder zb icmp6, ip4 oder any fuer alle<br />
<br />
label - bezeichner, der zb von SELinux ausgewertet werden kann<br />
<br />
policy - <br />
-P direction [priority specification] discard<br />
-P direction [priority specification] none<br />
-P direction [priority specification] ipsec<br />
protocol/mode/src-dst/level [...]<br />
<br />
directory - in, out, fwd<br />
<br />
priority - position in der SPD<br />
<br />
discard, none, ipsec - was die Regel macht, aehnlich dem target in iptables<br />
<br />
<br />
Tunnel<br />
<br />
Machen wir mal mit einem Tunnel weiter, der die beiden Hostnetze an den Routern miteinander verbindet.<br />
<br />
Wir nehmen mal die obere config und aendern die wichtigen Stellen:<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
7 # AH<br />
8 add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
9 add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
10<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
14<br />
15 spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
16 esp/transport//require<br />
17 ah/transport//require;<br />
18 spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
19 esp/transport//require<br />
20 ah/transport//require;<br />
<br />
Da wir nur verschluesseln wollen, werfen wir mal die zeilen fuer AH raus, fuegen dafuer die AH-parameter in die esp-zeilen ein!<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
14<br />
15 spdadd 192.168.20.0/24 192.168.30.0/24 any -P in ipsec<br />
16 esp/tunnel/192.168.10.1-192.168.10.2/require;<br />
18 spdadd 192.168.30.0/24 192.168.20.0/24 any -P out ipsec<br />
19 esp/tunnel/192.168.10.2-192.168.10.1/require;<br />
<br />
Zeile 12 und 13:<br />
+ -m tunnel -A hmac-md5 "1234567890123456"<br />
<br />
Zeile 15 und 18 - achtung, reichenfolge beachten!<br />
- 192.168.10.1 192.168.10.2 - IP adressen der Router<br />
+ 192.168.20.0/24 192.168.30.0/24 - IP bereich der hostnetze<br />
Zeile 16 und 18<br />
- transport<br />
+ tunnel<br />
+ 192.168.10.1-192.168.10.2 - IP adressen der Router<br />
<br />
Und schonwieder fertig! Aber Achtung, jetzt wird wiederum nur der Traffic zwischen den hostnetzen verschluesselt. Von Router zu Router oder Router zu Host ist wieder unverschluesselt.<br />
<br />
Sollte das Beispiel nicht funktionieren, schaut nach, ob ihr irgendwo eine IP falsch habt bzw ob sie an der richtigen Stelle local-ip vs remote-ip steht.<br />
<br />
Langsam zeichnet sich ab, dass eine komplexe Installation sehr umfassend werden wird. Deshalb kommt als naechster Punkt IKM zum automatisiertem Schluesseltausch.<br />
<br />
IKE:<br />
<br />
erstmal racoon:<br />
<br />
fuer racoon braucen wir zwei configs, /etc/racoon/psk.txt und /etc/racoon/racoon.conf.<br />
<br />
/etc/racoon/psk.txt enthaelt einen pre-shared key (spaeter machen wir da zertifikate rein) fuer jede gegenstelle:<br />
<br />
# /etc/racoon/psk.txt<br />
192.168.10.2 password2<br />
# USER_FQIN<br />
# foo@kame.net asdöfunrf<br />
# FQDN<br />
# foo.kame.net fqdnkey<br />
<br />
die eigentliche config ist racoon.conf<br />
<br />
# /etc/racoon/racoon.conf<br />
<br />
# file mit den pre-shared keys<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
<br />
# path certificate "/etc/racoon/certs";<br />
<br />
remote anonymous<br />
{<br />
exchange_mode aggressice,main;<br />
doi ipsec_doi;<br />
situation identity_only;<br />
<br />
my_identdifier address;<br />
<br />
lifetime time 2 min;<br />
initial_contact on;<br />
proposal_check obay;<br />
<br />
proposal {<br />
encryption_algorithm 3des;<br />
bash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
sainfo anonymous<br />
{<br />
pfs_group 1;<br />
lifetime time 2 min;<br />
encryption_algorithm 3des;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
racoon uebernimmt nun die funktion der SAD. also brauchen wir noch policys:<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P in ipsec<br />
esp/transport//require;<br />
<br />
und wieder fertig! Achso, bevor ich es wieder vergesse: racoon benutzt port 500 fuer den schluesselaustausch.<br />
<br />
kommende themen:<br />
IKE, racoon, ikakmpd<br />
host mit dynamischer IP<br />
ipv6</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/UML_-_IPsec
Benutzer:Zim/UML - IPsec
2009-01-23T06:11:49Z
<p>Zim: </p>
<hr />
<div>Umgebung:<br />
<br />
Als Testumgebung kommt ein Verbund von UML-Instanzen zum Einsatz.<br />
<br />
2x Hosts (A, B)<br />
Dienen als Endgeraete die miteinander kommunizieren<br />
<br />
2x Router (Alpha, Bravo)<br />
Verbinden die beiden Endnetze<br />
<br />
3x UML-Switch (sw0, sw1, sw2)<br />
Ein Switch fuer die Verbindung Host <-> Router, einer zwischen Router <-> Router und ein Switch der die Router mit dem Hostsystem verbindet.<br />
<br />
<br />
Grafik folgt (irgendwann), dann wird das sicher etwas klarer.<br />
<br />
Host A:<br />
- 192.168.20.2/24<br />
<br />
Host B:<br />
- 192.168.30.2/24<br />
<br />
Router Alpha:<br />
- 192.168.20.1/24<br />
- Hostnetz<br />
- 192.168.0.11/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.1/24<br />
- Netz zum Router Bravo<br />
<br />
Router Bravo:<br />
- 192.168.30.1/24<br />
- Hostnetz<br />
- 192.168.0.12/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.2/24<br />
- Netz zum Router Bravo<br />
<br />
UML-Switch 0:<br />
- Hostsystem<br />
- Gateway ins "richtige Netz"<br />
<br />
UML-Switch 1:<br />
- Switch zwischen den Routern<br />
- gehubt ( -hub)<br />
- wireshark auf dem tap-dev des Hostsystems, um die Pakete zu beobachten<br />
<br />
UML-Switch 2:<br />
- Hostnetze<br />
<br />
Traffic beobachten:<br />
Ich hab dazu wireshark auf dem Hostsystem gestartet und es auf dem tap-device horchen lassen, dass dem Switch 1 gehoert. Deswegen ist der Switch auch ge"hub"t.<br />
<br />
Zum Traffic erzeugen nehm ich einfach "ping" oder spaeter zwischen den Hostnetzen netcat:<br />
<br />
Host A - client:<br />
<br />
# netcat 192.168.30.2 1234<br />
<br />
netcat macht eine tcp-verbindung zu 192.168.30.2 (host B) port 1234 auf<br />
<br />
<br />
<br />
Host B - server:<br />
<br />
# netcat -l -p 1234<br />
<br />
netcat oeffnet port 1234 und horcht darauf. Die Serverseite sollte man natuerlich vorher starten. Wenn die Verbindung steht, kann man in beiden netcats schreiben und es wird auf dem jeweils anderen host angezeigt. Wird die Verbindung beendet (ctrl-c), beendet sich die Gegenseite auch.<br />
<br />
<br />
Routing (optional):<br />
<br />
Auf den Routern (Alpha, Bravo) laeuft "quagga" mit ospf als routing-protocol. Kann man natuerlich auch mit statischen Routen machen, aber das waere ja langweilig.<br />
<br />
"quagga" koennen wir ja mal zu einem anderen Thema machen. Zusammen mit Routing.<br />
<br />
# echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
IPsec:<br />
<br />
AH oder ESP?<br />
<br />
AH steht fuer "Authentication Header", was nur eine Authentifizierung der Pakete bewirkt. Dagegen steht ESP "Encapsulating Security Payload", was neben der Authentifizierung auch die Pakete verschluesselt.<br />
<br />
Transport oder Tunnel?<br />
<br />
Transport ist fuer den Traffic zwischen zwei Host, die beide IPsec verstehen.<br />
Tunnel baut einen Tunnel, durch welchen Pakete zb von dahinter liegenden Hosts, geleitet werden.<br />
<br />
IKE oder Pre-Key<br />
<br />
Waerend bei Pre-Key die Schluessel haendisch eingegen werden, kuemmert sich bei IKE ein daemon um die Verwaltung der Schluessel ua auch die regelmaessige Aenderung dieser.<br />
<br />
Praxis:<br />
<br />
Transport zwischen den Routern:<br />
<br />
Auf beiden Routern werden "ipsec-tools" installiert. Diese Paket stellt die Anwendung "setkey" zur verfuegung.<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
add <local_ip> <remote_ip> <ah/esp> <SPI> <-A fuer AH (authentification), -E fuer ESP (encryption)> <key><br />
Die erste Zeile legt also einen key (128bit, 16*8bit) fuer AH fest, die zweite eine key (192bit, 168 + 24 parity) fuer ESP. Die dritte Zeile enthaelt eine policy, wie mit entsprechenden Traffic umgegangen werden soll.<br />
<br />
Damit die Paket von der Gegenseite entschluesselt/verifiziert werden koennen reichen auf Router Bravo folgende Zeilen:<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
Da wir fuer den zweiten Router keine policy angelegt haben, werden die Pakete von Alpha zwar entschluesselt, aber Antworten gehen unverschluesselt uebers Netz. Viel schliemmer ist aber, dass Bravo beliebige Pakete von Alpha annimmt. Damit die Pakete auch verschluesselt werden, fuegen wir noch eine policy hinzu:<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
sieht aus wie vom Router Alpha, allerdings wuerde das vorletzte Wort in der ersten Zeile geaendert out -> in. Bravo nimmt jetzt keine unverschluesselten Pakete mehr von Alpha an, sendet aber weiterhin unverschluesselt. Also kommt noch jeweils eine policy fuer die andere Richtung pro Router hinzu:<br />
<br />
Alpha:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Alpha<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
<br />
Bravo:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Bravo<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
Die configs sind gleich, bis auf die geaenderte Richtung in der jeweiligen policy. Das "flush" und "spdflush" wirft nur alte keys und policys raus. Tadaa, deine erste IPsec-Verbindung ist fertig!<br />
<br />
An dieser Stelle wuerde ich gern auf den Aufbau der config eingehen, damit sich jeder schnell selbst eine Loesung zusammenbauen kann. Die config unterscheided SAD "Security Association Database" und SPD "Security Policy Database". SAD sind die Zeilen mit dem "add" und SPD mit "spdadd".<br />
<br />
SAD:<br />
<br />
add [-46n] src dst protocol spi [extensions] algorithm ... ;<br />
<br />
add - fuegt ein SAD eintrag hinzu (es gibt noch get, delete und deleteall)<br />
<br />
[-46] - ipv4 oder ipv6 - optional<br />
<br />
src - quelle<br />
<br />
dst - ziel<br />
<br />
protocol - ah, ah-old, esp, esp-old, ipcomp, tcp - tcp-md5<br />
<br />
spi - Security Parameter Index, dient der Zuordnung, der Pakete, ist im paket zu sehen<br />
<br />
[extensions] - -mode - tunnel, transport, any - optional - es gibt noch mehr extensions, siehe setkey-manual<br />
<br />
algorithm - -E ealgo key, -A aalgo key - ealgo, aalgo sind verwendbar algorithmen zb: hmac_md5, hmac-sha512, 3des-cbc, twofish-cbc, <br />
aes-ctr - man unterscheided digest (authentification) und cipher (encryption), die ersten beiden sind digest und die letzten drei cipher<br />
<br />
SPD:<br />
<br />
spdadd [-46n] src_range dst_range upperspec label policy ;<br />
<br />
spdadd - fuegt ein SPD eintrag hinzu<br />
<br />
src_range, dst_range - address, address/prefixlen, address[port], address/prefixlen[port]<br />
<br />
upperspec - siehe /etc/protocols oder zb icmp6, ip4 oder any fuer alle<br />
<br />
label - bezeichner, der zb von SELinux ausgewertet werden kann<br />
<br />
policy - <br />
-P direction [priority specification] discard<br />
-P direction [priority specification] none<br />
-P direction [priority specification] ipsec<br />
protocol/mode/src-dst/level [...]<br />
<br />
directory - in, out, fwd<br />
<br />
priority - position in der SPD<br />
<br />
discard, none, ipsec - was die Regel macht, aehnlich dem target in iptables<br />
<br />
<br />
Tunnel<br />
<br />
Machen wir mal mit einem Tunnel weiter, der die beiden Hostnetze an den Routern miteinander verbindet.<br />
<br />
Wir nehmen mal die obere config und aendern die wichtigen Stellen:<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
7 # AH<br />
8 add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
9 add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
10<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
14<br />
15 spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
16 esp/transport//require<br />
17 ah/transport//require;<br />
18 spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
19 esp/transport//require<br />
20 ah/transport//require;<br />
<br />
Da wir nur verschluesseln wollen, werfen wir mal die zeilen fuer AH raus, fuegen dafuer die AH-parameter in die esp-zeilen ein!<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
14<br />
15 spdadd 192.168.20.0/24 192.168.30.0/24 any -P in ipsec<br />
16 esp/tunnel/192.168.10.1-192.168.10.2/require;<br />
18 spdadd 192.168.30.0/24 192.168.20.0/24 any -P out ipsec<br />
19 esp/tunnel/192.168.10.2-192.168.10.1/require;<br />
<br />
Zeile 12 und 13:<br />
+ -m tunnel -A hmac-md5 "1234567890123456"<br />
<br />
Zeile 15 und 18 - achtung, reichenfolge beachten!<br />
- 192.168.10.1 192.168.10.2 - IP adressen der Router<br />
+ 192.168.20.0/24 192.168.30.0/24 - IP bereich der hostnetze<br />
Zeile 16 und 18<br />
- transport<br />
+ tunnel<br />
+ 192.168.10.1-192.168.10.2 - IP adressen der Router<br />
<br />
Und schonwieder fertig! Aber Achtung, jetzt wird wiederum nur der Traffic zwischen den hostnetzen verschluesselt. Von Router zu Router oder Router zu Host ist wieder unverschluesselt.<br />
<br />
Sollte das Beispiel nicht funktionieren, schaut nach, ob ihr irgendwo eine IP falsch habt bzw ob sie an der richtigen Stelle local-ip vs remote-ip steht.<br />
<br />
Langsam zeichnet sich ab, dass eine komplexe Installation sehr umfassend werden wird. Deshalb kommt als naechster Punkt IKM zum automatisiertem Schluesseltausch.<br />
<br />
IKE:<br />
<br />
erstmal racoon:<br />
<br />
fuer racoon braucen wir zwei configs, /etc/racoon/psk.txt und /etc/racoon/racoon.conf.<br />
<br />
/etc/racoon/psk.txt enthaelt einen pre-shared key (spaeter machen wir da zertifikate rein) fuer jede gegenstelle:<br />
<br />
# /etc/racoon/psk.txt<br />
192.168.10.2 password2<br />
# USER_FQIN<br />
# foo@kame.net asdöfunrf<br />
# FQDN<br />
# foo.kame.net fqdnkey<br />
<br />
die eigentliche config ist racoon.conf<br />
<br />
# /etc/racoon/racoon.conf<br />
<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
# path certificate "/etc/racoon/certs";<br />
<br />
remote anonymous<br />
{<br />
exchange_mode aggressice,main;<br />
doi ipsec_doi;<br />
situation identity_only;<br />
<br />
my_identdifier address;<br />
<br />
lifetime time 2 min;<br />
initial_contact on;<br />
proposal_check obay;<br />
<br />
proposal {<br />
encryption_algorithm 3des;<br />
bash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
sainfo anonymous<br />
{<br />
pfs_group 1;<br />
lifetime time 2 min;<br />
encryption_algorithm 3des;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
racoon uebernimmt nun die funktion der SAD. also brauchen wir noch policys:<br />
<br />
#!/usr/sbin/setkey -f<br />
flush;<br />
spdflush;<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P in ipsec<br />
esp/transport//require;<br />
<br />
und wieder fertig! Achso, bevor ich es wieder vergesse: racoon benutzt port 500 fuer den schluesselaustausch.<br />
<br />
kommende themen:<br />
IKE, racoon, ikakmpd<br />
host mit dynamischer IP<br />
ipv6</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/UML_-_IPsec
Benutzer:Zim/UML - IPsec
2009-01-23T06:03:36Z
<p>Zim: </p>
<hr />
<div>Umgebung:<br />
<br />
Als Testumgebung kommt ein Verbund von UML-Instanzen zum Einsatz.<br />
<br />
2x Hosts (A, B)<br />
Dienen als Endgeraete die miteinander kommunizieren<br />
<br />
2x Router (Alpha, Bravo)<br />
Verbinden die beiden Endnetze<br />
<br />
3x UML-Switch (sw0, sw1, sw2)<br />
Ein Switch fuer die Verbindung Host <-> Router, einer zwischen Router <-> Router und ein Switch der die Router mit dem Hostsystem verbindet.<br />
<br />
<br />
Grafik folgt (irgendwann), dann wird das sicher etwas klarer.<br />
<br />
Host A:<br />
- 192.168.20.2/24<br />
<br />
Host B:<br />
- 192.168.30.2/24<br />
<br />
Router Alpha:<br />
- 192.168.20.1/24<br />
- Hostnetz<br />
- 192.168.0.11/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.1/24<br />
- Netz zum Router Bravo<br />
<br />
Router Bravo:<br />
- 192.168.30.1/24<br />
- Hostnetz<br />
- 192.168.0.12/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.2/24<br />
- Netz zum Router Bravo<br />
<br />
UML-Switch 0:<br />
- Hostsystem<br />
- Gateway ins "richtige Netz"<br />
<br />
UML-Switch 1:<br />
- Switch zwischen den Routern<br />
- gehubt ( -hub)<br />
- wireshark auf dem tap-dev des Hostsystems, um die Pakete zu beobachten<br />
<br />
UML-Switch 2:<br />
- Hostnetze<br />
<br />
Traffic beobachten:<br />
Ich hab dazu wireshark auf dem Hostsystem gestartet und es auf dem tap-device horchen lassen, dass dem Switch 1 gehoert. Deswegen ist der Switch auch ge"hub"t.<br />
<br />
Zum Traffic erzeugen nehm ich einfach "ping" oder spaeter zwischen den Hostnetzen netcat:<br />
<br />
Host A - client:<br />
<br />
# netcat 192.168.30.2 1234<br />
<br />
netcat macht eine tcp-verbindung zu 192.168.30.2 (host B) port 1234 auf<br />
<br />
<br />
<br />
Host B - server:<br />
<br />
# netcat -l -p 1234<br />
<br />
netcat oeffnet port 1234 und horcht darauf. Die Serverseite sollte man natuerlich vorher starten. Wenn die Verbindung steht, kann man in beiden netcats schreiben und es wird auf dem jeweils anderen host angezeigt. Wird die Verbindung beendet (ctrl-c), beendet sich die Gegenseite auch.<br />
<br />
<br />
Routing (optional):<br />
<br />
Auf den Routern (Alpha, Bravo) laeuft "quagga" mit ospf als routing-protocol. Kann man natuerlich auch mit statischen Routen machen, aber das waere ja langweilig.<br />
<br />
"quagga" koennen wir ja mal zu einem anderen Thema machen. Zusammen mit Routing.<br />
<br />
# echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
IPsec:<br />
<br />
AH oder ESP?<br />
<br />
AH steht fuer "Authentication Header", was nur eine Authentifizierung der Pakete bewirkt. Dagegen steht ESP "Encapsulating Security Payload", was neben der Authentifizierung auch die Pakete verschluesselt.<br />
<br />
Transport oder Tunnel?<br />
<br />
Transport ist fuer den Traffic zwischen zwei Host, die beide IPsec verstehen.<br />
Tunnel baut einen Tunnel, durch welchen Pakete zb von dahinter liegenden Hosts, geleitet werden.<br />
<br />
IKE oder Pre-Key<br />
<br />
Waerend bei Pre-Key die Schluessel haendisch eingegen werden, kuemmert sich bei IKE ein daemon um die Verwaltung der Schluessel ua auch die regelmaessige Aenderung dieser.<br />
<br />
Praxis:<br />
<br />
Transport zwischen den Routern:<br />
<br />
Auf beiden Routern werden "ipsec-tools" installiert. Diese Paket stellt die Anwendung "setkey" zur verfuegung.<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
add <local_ip> <remote_ip> <ah/esp> <SPI> <-A fuer AH (authentification), -E fuer ESP (encryption)> <key><br />
Die erste Zeile legt also einen key (128bit, 16*8bit) fuer AH fest, die zweite eine key (192bit, 168 + 24 parity) fuer ESP. Die dritte Zeile enthaelt eine policy, wie mit entsprechenden Traffic umgegangen werden soll.<br />
<br />
Damit die Paket von der Gegenseite entschluesselt/verifiziert werden koennen reichen auf Router Bravo folgende Zeilen:<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
Da wir fuer den zweiten Router keine policy angelegt haben, werden die Pakete von Alpha zwar entschluesselt, aber Antworten gehen unverschluesselt uebers Netz. Viel schliemmer ist aber, dass Bravo beliebige Pakete von Alpha annimmt. Damit die Pakete auch verschluesselt werden, fuegen wir noch eine policy hinzu:<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
sieht aus wie vom Router Alpha, allerdings wuerde das vorletzte Wort in der ersten Zeile geaendert out -> in. Bravo nimmt jetzt keine unverschluesselten Pakete mehr von Alpha an, sendet aber weiterhin unverschluesselt. Also kommt noch jeweils eine policy fuer die andere Richtung pro Router hinzu:<br />
<br />
Alpha:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Alpha<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
<br />
Bravo:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Bravo<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
Die configs sind gleich, bis auf die geaenderte Richtung in der jeweiligen policy. Das "flush" und "spdflush" wirft nur alte keys und policys raus. Tadaa, deine erste IPsec-Verbindung ist fertig!<br />
<br />
An dieser Stelle wuerde ich gern auf den Aufbau der config eingehen, damit sich jeder schnell selbst eine Loesung zusammenbauen kann. Die config unterscheided SAD "Security Association Database" und SPD "Security Policy Database". SAD sind die Zeilen mit dem "add" und SPD mit "spdadd".<br />
<br />
SAD:<br />
<br />
add [-46n] src dst protocol spi [extensions] algorithm ... ;<br />
<br />
add - fuegt ein SAD eintrag hinzu (es gibt noch get, delete und deleteall)<br />
<br />
[-46] - ipv4 oder ipv6 - optional<br />
<br />
src - quelle<br />
<br />
dst - ziel<br />
<br />
protocol - ah, ah-old, esp, esp-old, ipcomp, tcp - tcp-md5<br />
<br />
spi - Security Parameter Index, dient der Zuordnung, der Pakete, ist im paket zu sehen<br />
<br />
[extensions] - -mode - tunnel, transport, any - optional - es gibt noch mehr extensions, siehe setkey-manual<br />
<br />
algorithm - -E ealgo key, -A aalgo key - ealgo, aalgo sind verwendbar algorithmen zb: hmac_md5, hmac-sha512, 3des-cbc, twofish-cbc, <br />
aes-ctr - man unterscheided digest (authentification) und cipher (encryption), die ersten beiden sind digest und die letzten drei cipher<br />
<br />
SPD:<br />
<br />
spdadd [-46n] src_range dst_range upperspec label policy ;<br />
<br />
spdadd - fuegt ein SPD eintrag hinzu<br />
<br />
src_range, dst_range - address, address/prefixlen, address[port], address/prefixlen[port]<br />
<br />
upperspec - siehe /etc/protocols oder zb icmp6, ip4 oder any fuer alle<br />
<br />
label - bezeichner, der zb von SELinux ausgewertet werden kann<br />
<br />
policy - <br />
-P direction [priority specification] discard<br />
-P direction [priority specification] none<br />
-P direction [priority specification] ipsec<br />
protocol/mode/src-dst/level [...]<br />
<br />
directory - in, out, fwd<br />
<br />
priority - position in der SPD<br />
<br />
discard, none, ipsec - was die Regel macht, aehnlich dem target in iptables<br />
<br />
<br />
Tunnel<br />
<br />
Machen wir mal mit einem Tunnel weiter, der die beiden Hostnetze an den Routern miteinander verbindet.<br />
<br />
Wir nehmen mal die obere config und aendern die wichtigen Stellen:<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
7 # AH<br />
8 add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
9 add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
10<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
14<br />
15 spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
16 esp/transport//require<br />
17 ah/transport//require;<br />
18 spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
19 esp/transport//require<br />
20 ah/transport//require;<br />
<br />
Da wir nur verschluesseln wollen, werfen wir mal die zeilen fuer AH raus, fuegen dafuer die AH-parameter in die esp-zeilen ein!<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
14<br />
15 spdadd 192.168.20.0/24 192.168.30.0/24 any -P in ipsec<br />
16 esp/tunnel/192.168.10.1-192.168.10.2/require;<br />
18 spdadd 192.168.30.0/24 192.168.20.0/24 any -P out ipsec<br />
19 esp/tunnel/192.168.10.2-192.168.10.1/require;<br />
<br />
Zeile 12 und 13:<br />
+ -m tunnel -A hmac-md5 "1234567890123456"<br />
<br />
Zeile 15 und 18 - achtung, reichenfolge beachten!<br />
- 192.168.10.1 192.168.10.2 - IP adressen der Router<br />
+ 192.168.20.0/24 192.168.30.0/24 - IP bereich der hostnetze<br />
Zeile 16 und 18<br />
- transport<br />
+ tunnel<br />
+ 192.168.10.1-192.168.10.2 - IP adressen der Router<br />
<br />
Und schonwieder fertig! Aber Achtung, jetzt wird wiederum nur der Traffic zwischen den hostnetzen verschluesselt. Von Router zu Router oder Router zu Host ist wieder unverschluesselt.<br />
<br />
Sollte das Beispiel nicht funktionieren, schaut nach, ob ihr irgendwo eine IP falsch habt bzw ob sie an der richtigen Stelle local-ip vs remote-ip steht.<br />
<br />
Langsam zeichnet sich ab, dass eine komplexe Installation sehr umfassend werden wird. Deshalb kommt als naechster Punkt IKM zum automatisiertem Schluesseltausch.<br />
<br />
IKE:<br />
<br />
erstmal racoon:<br />
<br />
fuer racoon braucen wir zwei configs, /etc/racoon/psk.txt und /etc/racoon/racoon.conf.<br />
<br />
/etc/racoon/psk.txt enthaelt einen pre-shared key (spaeter machen wir da zertifikate rein) fuer jede gegenstelle:<br />
<br />
# /etc/racoon/psk.txt<br />
192.168.10.2 password2<br />
# USER_FQIN<br />
# foo@kame.net asdöfunrf<br />
# FQDN<br />
# foo.kame.net fqdnkey<br />
<br />
die eigentliche config ist racoon.conf<br />
<br />
# /etc/racoon/racoon.conf<br />
<br />
path pre_shared_key "/etc/racoon/psk.txt";<br />
# path certificate "/etc/racoon/certs";<br />
<br />
remote anonymous<br />
{<br />
exchange_mode aggressice,main;<br />
doi ipsec_doi;<br />
situation identity_only;<br />
<br />
my_identdifier address;<br />
<br />
lifetime time 2 min;<br />
initial_contact on;<br />
proposal_check obay;<br />
<br />
proposal {<br />
encryption_algorithm 3des;<br />
bash_algorithm sha1;<br />
authentication_method pre_shared_key;<br />
dh_group 2;<br />
}<br />
}<br />
<br />
sainfo anonymous<br />
{<br />
pfs_group 1;<br />
lifetime time 2 min;<br />
encryption_algorithm 3des;<br />
authentication_algorithm hmac_sha1;<br />
compression_algorithm deflate;<br />
}<br />
<br />
<br />
kommende themen:<br />
IKE, racoon, ikakmpd<br />
host mit dynamischer IP<br />
ipv6</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/UML_-_IPsec
Benutzer:Zim/UML - IPsec
2009-01-23T05:37:06Z
<p>Zim: ip_forward</p>
<hr />
<div>Umgebung:<br />
<br />
Als Testumgebung kommt ein Verbund von UML-Instanzen zum Einsatz.<br />
<br />
2x Hosts (A, B)<br />
Dienen als Endgeraete die miteinander kommunizieren<br />
<br />
2x Router (Alpha, Bravo)<br />
Verbinden die beiden Endnetze<br />
<br />
3x UML-Switch (sw0, sw1, sw2)<br />
Ein Switch fuer die Verbindung Host <-> Router, einer zwischen Router <-> Router und ein Switch der die Router mit dem Hostsystem verbindet.<br />
<br />
<br />
Grafik folgt (irgendwann), dann wird das sicher etwas klarer.<br />
<br />
Host A:<br />
- 192.168.20.2/24<br />
<br />
Host B:<br />
- 192.168.30.2/24<br />
<br />
Router Alpha:<br />
- 192.168.20.1/24<br />
- Hostnetz<br />
- 192.168.0.11/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.1/24<br />
- Netz zum Router Bravo<br />
<br />
Router Bravo:<br />
- 192.168.30.1/24<br />
- Hostnetz<br />
- 192.168.0.12/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.2/24<br />
- Netz zum Router Bravo<br />
<br />
UML-Switch 0:<br />
- Hostsystem<br />
- Gateway ins "richtige Netz"<br />
<br />
UML-Switch 1:<br />
- Switch zwischen den Routern<br />
- gehubt ( -hub)<br />
- wireshark auf dem tap-dev des Hostsystems, um die Pakete zu beobachten<br />
<br />
UML-Switch 2:<br />
- Hostnetze<br />
<br />
Traffic beobachten:<br />
Ich hab dazu wireshark auf dem Hostsystem gestartet und es auf dem tap-device horchen lassen, dass dem Switch 1 gehoert. Deswegen ist der Switch auch ge"hub"t.<br />
<br />
Zum Traffic erzeugen nehm ich einfach "ping" oder spaeter zwischen den Hostnetzen netcat:<br />
<br />
Host A - client:<br />
<br />
# netcat 192.168.30.2 1234<br />
<br />
netcat macht eine tcp-verbindung zu 192.168.30.2 (host B) port 1234 auf<br />
<br />
<br />
<br />
Host B - server:<br />
<br />
# netcat -l -p 1234<br />
<br />
netcat oeffnet port 1234 und horcht darauf. Die Serverseite sollte man natuerlich vorher starten. Wenn die Verbindung steht, kann man in beiden netcats schreiben und es wird auf dem jeweils anderen host angezeigt. Wird die Verbindung beendet (ctrl-c), beendet sich die Gegenseite auch.<br />
<br />
<br />
Routing (optional):<br />
<br />
Auf den Routern (Alpha, Bravo) laeuft "quagga" mit ospf als routing-protocol. Kann man natuerlich auch mit statischen Routen machen, aber das waere ja langweilig.<br />
<br />
"quagga" koennen wir ja mal zu einem anderen Thema machen. Zusammen mit Routing.<br />
<br />
# echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
IPsec:<br />
<br />
AH oder ESP?<br />
<br />
AH steht fuer "Authentication Header", was nur eine Authentifizierung der Pakete bewirkt. Dagegen steht ESP "Encapsulating Security Payload", was neben der Authentifizierung auch die Pakete verschluesselt.<br />
<br />
Transport oder Tunnel?<br />
<br />
Transport ist fuer den Traffic zwischen zwei Host, die beide IPsec verstehen.<br />
Tunnel baut einen Tunnel, durch welchen Pakete zb von dahinter liegenden Hosts, geleitet werden.<br />
<br />
IKE oder Pre-Key<br />
<br />
Waerend bei Pre-Key die Schluessel haendisch eingegen werden, kuemmert sich bei IKE ein daemon um die Verwaltung der Schluessel ua auch die regelmaessige Aenderung dieser.<br />
<br />
Praxis:<br />
<br />
Transport zwischen den Routern:<br />
<br />
Auf beiden Routern werden "ipsec-tools" installiert. Diese Paket stellt die Anwendung "setkey" zur verfuegung.<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
add <local_ip> <remote_ip> <ah/esp> <SPI> <-A fuer AH (authentification), -E fuer ESP (encryption)> <key><br />
Die erste Zeile legt also einen key (128bit, 16*8bit) fuer AH fest, die zweite eine key (192bit, 168 + 24 parity) fuer ESP. Die dritte Zeile enthaelt eine policy, wie mit entsprechenden Traffic umgegangen werden soll.<br />
<br />
Damit die Paket von der Gegenseite entschluesselt/verifiziert werden koennen reichen auf Router Bravo folgende Zeilen:<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
Da wir fuer den zweiten Router keine policy angelegt haben, werden die Pakete von Alpha zwar entschluesselt, aber Antworten gehen unverschluesselt uebers Netz. Viel schliemmer ist aber, dass Bravo beliebige Pakete von Alpha annimmt. Damit die Pakete auch verschluesselt werden, fuegen wir noch eine policy hinzu:<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
sieht aus wie vom Router Alpha, allerdings wuerde das vorletzte Wort in der ersten Zeile geaendert out -> in. Bravo nimmt jetzt keine unverschluesselten Pakete mehr von Alpha an, sendet aber weiterhin unverschluesselt. Also kommt noch jeweils eine policy fuer die andere Richtung pro Router hinzu:<br />
<br />
Alpha:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Alpha<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
<br />
Bravo:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Bravo<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
Die configs sind gleich, bis auf die geaenderte Richtung in der jeweiligen policy. Das "flush" und "spdflush" wirft nur alte keys und policys raus. Tadaa, deine erste IPsec-Verbindung ist fertig!<br />
<br />
An dieser Stelle wuerde ich gern auf den Aufbau der config eingehen, damit sich jeder schnell selbst eine Loesung zusammenbauen kann. Die config unterscheided SAD "Security Association Database" und SPD "Security Policy Database". SAD sind die Zeilen mit dem "add" und SPD mit "spdadd".<br />
<br />
SAD:<br />
<br />
add [-46n] src dst protocol spi [extensions] algorithm ... ;<br />
<br />
add - fuegt ein SAD eintrag hinzu (es gibt noch get, delete und deleteall)<br />
<br />
[-46] - ipv4 oder ipv6 - optional<br />
<br />
src - quelle<br />
<br />
dst - ziel<br />
<br />
protocol - ah, ah-old, esp, esp-old, ipcomp, tcp - tcp-md5<br />
<br />
spi - Security Parameter Index, dient der Zuordnung, der Pakete, ist im paket zu sehen<br />
<br />
[extensions] - -mode - tunnel, transport, any - optional - es gibt noch mehr extensions, siehe setkey-manual<br />
<br />
algorithm - -E ealgo key, -A aalgo key - ealgo, aalgo sind verwendbar algorithmen zb: hmac_md5, hmac-sha512, 3des-cbc, twofish-cbc, <br />
aes-ctr - man unterscheided digest (authentification) und cipher (encryption), die ersten beiden sind digest und die letzten drei cipher<br />
<br />
SPD:<br />
<br />
spdadd [-46n] src_range dst_range upperspec label policy ;<br />
<br />
spdadd - fuegt ein SPD eintrag hinzu<br />
<br />
src_range, dst_range - address, address/prefixlen, address[port], address/prefixlen[port]<br />
<br />
upperspec - siehe /etc/protocols oder zb icmp6, ip4 oder any fuer alle<br />
<br />
label - bezeichner, der zb von SELinux ausgewertet werden kann<br />
<br />
policy - <br />
-P direction [priority specification] discard<br />
-P direction [priority specification] none<br />
-P direction [priority specification] ipsec<br />
protocol/mode/src-dst/level [...]<br />
<br />
directory - in, out, fwd<br />
<br />
priority - position in der SPD<br />
<br />
discard, none, ipsec - was die Regel macht, aehnlich dem target in iptables<br />
<br />
<br />
Tunnel<br />
<br />
Machen wir mal mit einem Tunnel weiter, der die beiden Hostnetze an den Routern miteinander verbindet.<br />
<br />
Wir nehmen mal die obere config und aendern die wichtigen Stellen:<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
7 # AH<br />
8 add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
9 add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
10<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
14<br />
15 spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
16 esp/transport//require<br />
17 ah/transport//require;<br />
18 spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
19 esp/transport//require<br />
20 ah/transport//require;<br />
<br />
Da wir nur verschluesseln wollen, werfen wir mal die zeilen fuer AH raus, fuegen dafuer die AH-parameter in die esp-zeilen ein!<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
14<br />
15 spdadd 192.168.20.0/24 192.168.30.0/24 any -P in ipsec<br />
16 esp/tunnel/192.168.10.1-192.168.10.2/require;<br />
18 spdadd 192.168.30.0/24 192.168.20.0/24 any -P out ipsec<br />
19 esp/tunnel/192.168.10.2-192.168.10.1/require;<br />
<br />
Zeile 12 und 13:<br />
+ -m tunnel -A hmac-md5 "1234567890123456"<br />
<br />
Zeile 15 und 18 - achtung, reichenfolge beachten!<br />
- 192.168.10.1 192.168.10.2 - IP adressen der Router<br />
+ 192.168.20.0/24 192.168.30.0/24 - IP bereich der hostnetze<br />
Zeile 16 und 18<br />
- transport<br />
+ tunnel<br />
+ 192.168.10.1-192.168.10.2 - IP adressen der Router<br />
<br />
Und schonwieder fertig! Aber Achtung, jetzt wird wiederum nur der Traffic zwischen den hostnetzen verschluesselt. Von Router zu Router oder Router zu Host ist wieder unverschluesselt.<br />
<br />
Sollte das Beispiel nicht funktionieren, schaut nach, ob ihr irgendwo eine IP falsch habt bzw ob sie an der richtigen Stelle local-ip vs remote-ip steht.<br />
<br />
Langsam zeichnet sich ab, dass eine komplexe Installation sehr umfassend werden wird. Deshalb kommt als naechster Punkt IKM zum automatisiertem Schluesseltausch.<br />
<br />
<br />
kommende themen:<br />
IKE, racoon, ikakmpd<br />
host mit dynamischer IP<br />
ipv6</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/UML_-_IPsec
Benutzer:Zim/UML - IPsec
2009-01-22T22:20:53Z
<p>Zim: </p>
<hr />
<div>Umgebung:<br />
<br />
Als Testumgebung kommt ein Verbund von UML-Instanzen zum Einsatz.<br />
<br />
2x Hosts (A, B)<br />
Dienen als Endgeraete die miteinander kommunizieren<br />
<br />
2x Router (Alpha, Bravo)<br />
Verbinden die beiden Endnetze<br />
<br />
3x UML-Switch (sw0, sw1, sw2)<br />
Ein Switch fuer die Verbindung Host <-> Router, einer zwischen Router <-> Router und ein Switch der die Router mit dem Hostsystem verbindet.<br />
<br />
<br />
Grafik folgt (irgendwann), dann wird das sicher etwas klarer.<br />
<br />
Host A:<br />
- 192.168.20.2/24<br />
<br />
Host B:<br />
- 192.168.30.2/24<br />
<br />
Router Alpha:<br />
- 192.168.20.1/24<br />
- Hostnetz<br />
- 192.168.0.11/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.1/24<br />
- Netz zum Router Bravo<br />
<br />
Router Bravo:<br />
- 192.168.30.1/24<br />
- Hostnetz<br />
- 192.168.0.12/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.2/24<br />
- Netz zum Router Bravo<br />
<br />
UML-Switch 0:<br />
- Hostsystem<br />
- Gateway ins "richtige Netz"<br />
<br />
UML-Switch 1:<br />
- Switch zwischen den Routern<br />
- gehubt ( -hub)<br />
- wireshark auf dem tap-dev des Hostsystems, um die Pakete zu beobachten<br />
<br />
UML-Switch 2:<br />
- Hostnetze<br />
<br />
Traffic beobachten:<br />
Ich hab dazu wireshark auf dem Hostsystem gestartet und es auf dem tap-device horchen lassen, dass dem Switch 1 gehoert. Deswegen ist der Switch auch ge"hub"t.<br />
<br />
Zum Traffic erzeugen nehm ich einfach "ping" oder spaeter zwischen den Hostnetzen netcat:<br />
<br />
Host A - client:<br />
<br />
# netcat 192.168.30.2 1234<br />
<br />
netcat macht eine tcp-verbindung zu 192.168.30.2 (host B) port 1234 auf<br />
<br />
<br />
<br />
Host B - server:<br />
<br />
# netcat -l -p 1234<br />
<br />
netcat oeffnet port 1234 und horcht darauf. Die Serverseite sollte man natuerlich vorher starten. Wenn die Verbindung steht, kann man in beiden netcats schreiben und es wird auf dem jeweils anderen host angezeigt. Wird die Verbindung beendet (ctrl-c), beendet sich die Gegenseite auch.<br />
<br />
<br />
Routing (optional):<br />
<br />
Auf den Routern (Alpha, Bravo) laeuft "quagga" mit ospf als routing-protocol. Kann man natuerlich auch mit statischen Routen machen, aber das waere ja langweilig.<br />
<br />
"quagga" koennen wir ja mal zu einem anderen Thema machen. Zusammen mit Routing.<br />
<br />
<br />
IPsec:<br />
<br />
AH oder ESP?<br />
<br />
AH steht fuer "Authentication Header", was nur eine Authentifizierung der Pakete bewirkt. Dagegen steht ESP "Encapsulating Security Payload", was neben der Authentifizierung auch die Pakete verschluesselt.<br />
<br />
Transport oder Tunnel?<br />
<br />
Transport ist fuer den Traffic zwischen zwei Host, die beide IPsec verstehen.<br />
Tunnel baut einen Tunnel, durch welchen Pakete zb von dahinter liegenden Hosts, geleitet werden.<br />
<br />
IKE oder Pre-Key<br />
<br />
Waerend bei Pre-Key die Schluessel haendisch eingegen werden, kuemmert sich bei IKE ein daemon um die Verwaltung der Schluessel ua auch die regelmaessige Aenderung dieser.<br />
<br />
Praxis:<br />
<br />
Transport zwischen den Routern:<br />
<br />
Auf beiden Routern werden "ipsec-tools" installiert. Diese Paket stellt die Anwendung "setkey" zur verfuegung.<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
add <local_ip> <remote_ip> <ah/esp> <SPI> <-A fuer AH (authentification), -E fuer ESP (encryption)> <key><br />
Die erste Zeile legt also einen key (128bit, 16*8bit) fuer AH fest, die zweite eine key (192bit, 168 + 24 parity) fuer ESP. Die dritte Zeile enthaelt eine policy, wie mit entsprechenden Traffic umgegangen werden soll.<br />
<br />
Damit die Paket von der Gegenseite entschluesselt/verifiziert werden koennen reichen auf Router Bravo folgende Zeilen:<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
Da wir fuer den zweiten Router keine policy angelegt haben, werden die Pakete von Alpha zwar entschluesselt, aber Antworten gehen unverschluesselt uebers Netz. Viel schliemmer ist aber, dass Bravo beliebige Pakete von Alpha annimmt. Damit die Pakete auch verschluesselt werden, fuegen wir noch eine policy hinzu:<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
sieht aus wie vom Router Alpha, allerdings wuerde das vorletzte Wort in der ersten Zeile geaendert out -> in. Bravo nimmt jetzt keine unverschluesselten Pakete mehr von Alpha an, sendet aber weiterhin unverschluesselt. Also kommt noch jeweils eine policy fuer die andere Richtung pro Router hinzu:<br />
<br />
Alpha:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Alpha<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
<br />
Bravo:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Bravo<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
Die configs sind gleich, bis auf die geaenderte Richtung in der jeweiligen policy. Das "flush" und "spdflush" wirft nur alte keys und policys raus. Tadaa, deine erste IPsec-Verbindung ist fertig!<br />
<br />
An dieser Stelle wuerde ich gern auf den Aufbau der config eingehen, damit sich jeder schnell selbst eine Loesung zusammenbauen kann. Die config unterscheided SAD "Security Association Database" und SPD "Security Policy Database". SAD sind die Zeilen mit dem "add" und SPD mit "spdadd".<br />
<br />
SAD:<br />
<br />
add [-46n] src dst protocol spi [extensions] algorithm ... ;<br />
<br />
add - fuegt ein SAD eintrag hinzu (es gibt noch get, delete und deleteall)<br />
<br />
[-46] - ipv4 oder ipv6 - optional<br />
<br />
src - quelle<br />
<br />
dst - ziel<br />
<br />
protocol - ah, ah-old, esp, esp-old, ipcomp, tcp - tcp-md5<br />
<br />
spi - Security Parameter Index, dient der Zuordnung, der Pakete, ist im paket zu sehen<br />
<br />
[extensions] - -mode - tunnel, transport, any - optional - es gibt noch mehr extensions, siehe setkey-manual<br />
<br />
algorithm - -E ealgo key, -A aalgo key - ealgo, aalgo sind verwendbar algorithmen zb: hmac_md5, hmac-sha512, 3des-cbc, twofish-cbc, <br />
aes-ctr - man unterscheided digest (authentification) und cipher (encryption), die ersten beiden sind digest und die letzten drei cipher<br />
<br />
SPD:<br />
<br />
spdadd [-46n] src_range dst_range upperspec label policy ;<br />
<br />
spdadd - fuegt ein SPD eintrag hinzu<br />
<br />
src_range, dst_range - address, address/prefixlen, address[port], address/prefixlen[port]<br />
<br />
upperspec - siehe /etc/protocols oder zb icmp6, ip4 oder any fuer alle<br />
<br />
label - bezeichner, der zb von SELinux ausgewertet werden kann<br />
<br />
policy - <br />
-P direction [priority specification] discard<br />
-P direction [priority specification] none<br />
-P direction [priority specification] ipsec<br />
protocol/mode/src-dst/level [...]<br />
<br />
directory - in, out, fwd<br />
<br />
priority - position in der SPD<br />
<br />
discard, none, ipsec - was die Regel macht, aehnlich dem target in iptables<br />
<br />
<br />
Tunnel<br />
<br />
Machen wir mal mit einem Tunnel weiter, der die beiden Hostnetze an den Routern miteinander verbindet.<br />
<br />
Wir nehmen mal die obere config und aendern die wichtigen Stellen:<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
7 # AH<br />
8 add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
9 add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
10<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
14<br />
15 spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
16 esp/transport//require<br />
17 ah/transport//require;<br />
18 spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
19 esp/transport//require<br />
20 ah/transport//require;<br />
<br />
Da wir nur verschluesseln wollen, werfen wir mal die zeilen fuer AH raus, fuegen dafuer die AH-parameter in die esp-zeilen ein!<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
14<br />
15 spdadd 192.168.20.0/24 192.168.30.0/24 any -P in ipsec<br />
16 esp/tunnel/192.168.10.1-192.168.10.2/require;<br />
18 spdadd 192.168.30.0/24 192.168.20.0/24 any -P out ipsec<br />
19 esp/tunnel/192.168.10.2-192.168.10.1/require;<br />
<br />
Zeile 12 und 13:<br />
+ -m tunnel -A hmac-md5 "1234567890123456"<br />
<br />
Zeile 15 und 18 - achtung, reichenfolge beachten!<br />
- 192.168.10.1 192.168.10.2 - IP adressen der Router<br />
+ 192.168.20.0/24 192.168.30.0/24 - IP bereich der hostnetze<br />
Zeile 16 und 18<br />
- transport<br />
+ tunnel<br />
+ 192.168.10.1-192.168.10.2 - IP adressen der Router<br />
<br />
Und schonwieder fertig! Aber Achtung, jetzt wird wiederum nur der Traffic zwischen den hostnetzen verschluesselt. Von Router zu Router oder Router zu Host ist wieder unverschluesselt.<br />
<br />
Sollte das Beispiel nicht funktionieren, schaut nach, ob ihr irgendwo eine IP falsch habt bzw ob sie an der richtigen Stelle local-ip vs remote-ip steht.<br />
<br />
Langsam zeichnet sich ab, dass eine komplexe Installation sehr umfassend werden wird. Deshalb kommt als naechster Punkt IKM zum automatisiertem Schluesseltausch.<br />
<br />
<br />
kommende themen:<br />
IKE, racoon, ikakmpd<br />
host mit dynamischer IP<br />
ipv6</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung/UML
Openlab 01 - Workshop Virtualisierung/UML
2009-01-22T21:12:38Z
<p>Zim: </p>
<hr />
<div>< [[Openlab 01 - Workshop Virtualisierung]]<br />
<br />
=UML - Usermode Linux=<br />
<br />
==Hostsystem==<br />
<br />
Am Hostsystem muss man keine Aenderungen vornehmen. Aber es gibts zwei Punkte die man erwaehnen sollte.<br />
<br />
===SKAS-Patch===<br />
<br />
Der SKAS3-Patch wird auf den Kernel des Hostsystems angewant und bringt eine deutlich Geschwindigkeitssteigerung.<br />
<br />
# wget http://www.finnie.org/software/uml/2.6.28-skas3.patch<br />
# patch -p0 < 2.6.28-skas3.patch<br />
<br />
===TUN-Device===<br />
<br />
Damit sich das UML-System auch mit der Aussenwelt unterhalten kann, bietet sich eine Anbindung per TAP-Device an. Falls Euer Kernel keine TUN/TAP-Devices unterstuetzt, kann dies unter:<br />
<br />
- Device Drivers -> Network device support -> Universal TUN/TAP device driver support<br />
<br />
aktiviert werden. <br />
<br />
==Guestsystem==<br />
<br />
Das Gastsystem besteht aus zwei Teilen, dem UML-Kernel und einem Dateisystem. UML wird in Linux als eigenstaendige Architektur gehandelt und so ist dies beim compilen mit zu uebergeben.<br />
<br />
===Kernel===<br />
<br />
Den Kernel fuer das Guestsystem kann man aus den gleichen Quellen bauen, wie auch fuer das Hostsystem. Wichtig ist das Parameter "ARCH=um" beim compilen.<br />
<br />
Kernel downloaden<br />
# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2<br />
<br />
Archiv entpacken<br />
# tar xvfj linux-2.6.28.tar.bz2<br />
<br />
evtl. vorhandene vorherige Compilereste loeschen<br />
# make mrproper ARCH=um<br />
<br />
ncurses-menu zur Konfiguration<br />
# make menuconfig ARCH=um<br />
<br />
Den Kernel compilen<br />
# make linux ARCH=um<br />
<br />
Module compilen<br />
# make modules ARCH=um<br />
<br />
Kernel "strippen", 25M -> 2M<br />
# strip vmlinux<br />
<br />
Module in "root_fs" installieren<br />
# make modules_install ARCH=um INSTALL_MOD_PATH=../root_fs<br />
<br />
===Filesystem===<br />
<br />
Als Dateisystem kommt der Einfach halt wegen ext2 zum Einsatz. Mit entsprechendem Support im Kernel kann man natuerlich auch ein anderes FS nehmen. Statt ext2 bietet sich auch ext3 an, um das Dateisystem bei einem Absturz nicht zu gefaehrden.<br />
<br />
Wir erzeugen eine Datei "disk.img" mit der Groesse von 1GB.<br />
# dd if=dev/zero of=disk.img bs=1024 count=$[1024 * 1024]<br />
<br />
Darauf legen wir ein Ext2-Dateisystem an<br />
# mke2fs -Fq disk.img<br />
<br />
Ein Ordner zum FS mounten<br />
# mkdir root_fs<br />
<br />
"disk.img" nach "root_fs" mounten<br />
# mount -o loop disk.img root_fs<br />
<br />
debootstrap erzeugt in "root_fs" eine Installation von Debian etch<br />
# debootstrap etch root_fs<br />
<br />
Die fstab editieren und die entsprechenden Dateisysteme mit mountpoints eintragen<br />
# vi root_fs/etc/fstab<br />
# /dev/ubd0 / ext2 defaults 0 0<br />
# proc /proc proc defaults 0 0<br />
<br />
Falls nicht vorhanden, die "source.list" erzeugen<br />
# touch /etc/apt/source.list<br />
<br />
====SWAP====<br />
<br />
Eine Swappartition ist optional, muss aber nicht sein.<br />
<br />
swap-Datei erzeugen (doppelte RAM-Groesse)<br />
# dd if=/dev/zero of=swap bs=1024 count=$[2 * 256 * 1024]<br />
<br />
In UML:<br />
# mkswap /dev/ubdb<br />
# swapon /dev/ubdb<br />
<br />
Falls es das ubdb-Device nicht gibt:<br />
# mknod /dev/ubdb b 98 16<br />
<br />
====COW - Copy-On-Write====<br />
<br />
COW ist eine Technik, mit der ein einziges UML-Image von mehreren Instanzen benutzt werden kann. Aenderungen werden dann in eine separate Datei geschrieben.<br />
<br />
# ./vmlinux ubd0=<cow-file>,<rootfs-file> ...<br />
<br />
Damit kann man zum Beispiel Aenderungen am System vornehmen, um ihre Auswirkungen zu testen. Wuenscht man spaeter, die Aenderungen aus der cow-file in das rootfs-Image zu uebernehmen, dann steht dazu "uml_moo" aus den "uml-utilities" bereit:<br />
<br />
# uml_moo <cow-file> <new-rootfs-file><br />
<br />
Es wird also ein neues Image angelegt. Sollte man die beiden Dateien einfach so kombinieren wollen, dann reicht ein:<br />
<br />
# uml_moo -d <cow-file><br />
<br />
Die Datei mit dem rootfs braucht nicht angegeben werden, da alle relevanten Daten im Header der cow-Datei vorliegen.<br />
<br />
Beim Arbeiten mit cow-Datei muss man sehr vorsichtig sein. Kopieren darf man die Datei mit dem rootfs nur, wenn man den Zeitstempel beibehaelt (zb. mit -p).<br />
<br />
====Host-FS====<br />
<br />
Um auf das Host-FS zuzugreifen kann innerhalb von UML folgendes benutzt werden:<br />
# mount none /host -t hostfs<br />
<br />
oder ein einzelnes Verzeichnis (eg. /home/user):<br />
# mount none /host -t hostfs -o /home/user<br />
<br />
===UML starten===<br />
<br />
UML wird wie ein normales Program aufgerufen.<br />
<br />
# ./vmlinux mem=256M ubd0=disk.img ubdb=swap eth0=tuntap,,,IP<br />
<br />
<br />
==Network==<br />
<br />
Zum Netzwerken kommt TUN/TAP zu Einsatz<br />
<br />
===Hostsystem===<br />
<br />
Auf dem Hostsystem sicherstellen, dass TUN/TAP-Support vorhanden ist.<br />
<br />
Das TAP-Device dem Nutzer <uml-user> zuweisen<br />
# tunctl -u <uml-user><br />
<br />
UML im nachhinein (hotplug) eine Netzwerkkarte unterschieben<br />
# uml_mconsole UMID config eth0=tuntap,,,IP<br />
<br />
Wenn UML als non-root gestartet wird, muessen die Netzwerkeinstellungen per Hand gemacht werden:<br />
# ifconfig tap0 192.168.1.16 netmask 255.255.255.255 up<br />
# bash -c echo 1 > /proc/sys/net/ipv4/ip_forward<br />
# route add -host 192.168.1.17 dev tap0<br />
# bash -c echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp<br />
# arp -Ds 192.168.1.17 eth2 pub<br />
<br />
===Guestsystem===<br />
<br />
eth0 mit einer IP im Netzwerk hochfahren<br />
# ifconfig eth0 IP+1 up<br />
<br />
Defaultroute eintragen<br />
# route add default gw IP<br />
<br />
===UML-Switch===<br />
Das Paket "uml-utilities" enthaelt ein Tool uml-switch, mit dem ein virtueller Switch erzeugt wird.<br />
<br />
# uml-switch -tap <tap-device> [-hup] [-unix <file>]<br />
<br />
Das Parameter "-hup" verwandelt den Switch in einen Hub und mit "-unix" kann man die Datei angeben, die der uml-switch benutzen soll, was sinnvoll ist, wenn man mehrere Instanzen startet.<br />
<br />
Dem Switch wird im Hostsystem eine IP aus dem gewuenschten Bereich zugewiesen und kann so auch per NAT ein Weg ins reale Netz bieten.<br />
<br />
==Anwendung==<br />
<br />
[[Benutzer:Zim/UML_-_IPsec|IPsec unter UML]]</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/UML_-_IPsec
Benutzer:Zim/UML - IPsec
2009-01-22T21:08:26Z
<p>Zim: </p>
<hr />
<div>Umgebung:<br />
<br />
Als Testumgebung kommt ein Verbund von UML-Instanzen zum Einsatz.<br />
<br />
2x Hosts (A, B)<br />
Dienen als Endgeraete die miteinander kommunizieren<br />
<br />
2x Router (Alpha, Bravo)<br />
Verbinden die beiden Endnetze<br />
<br />
3x UML-Switch (sw0, sw1, sw2)<br />
Ein Switch fuer die Verbindung Host <-> Router, einer zwischen Router <-> Router und ein Switch der die Router mit dem Hostsystem verbindet.<br />
<br />
<br />
Grafik folgt (irgendwann), dann wird das sicher etwas klarer.<br />
<br />
Host A:<br />
- 192.168.20.2/24<br />
<br />
Host B:<br />
- 192.168.30.2/24<br />
<br />
Router Alpha:<br />
- 192.168.20.1/24<br />
- Hostnetz<br />
- 192.168.0.11/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.1/24<br />
- Netz zum Router Bravo<br />
<br />
Router Bravo:<br />
- 192.168.30.1/24<br />
- Hostnetz<br />
- 192.168.0.12/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.2/24<br />
- Netz zum Router Bravo<br />
<br />
UML-Switch 0:<br />
- Hostsystem<br />
- Gateway ins "richtige Netz"<br />
<br />
UML-Switch 1:<br />
- Switch zwischen den Routern<br />
- gehubt ( -hub)<br />
- wireshark auf dem tap-dev des Hostsystems, um die Pakete zu beobachten<br />
<br />
UML-Switch 2:<br />
- Hostnetze<br />
<br />
Traffic beobachten:<br />
Ich hab dazu wireshark auf dem Hostsystem gestartet und es auf dem tap-device horchen lassen, dass dem Switch 1 gehoert. Deswegen ist der Switch auch ge"hub"t.<br />
<br />
Zum Traffic erzeugen nehm ich einfach "ping" oder spaeter zwischen den Hostnetzen netcat:<br />
<br />
Host A - client:<br />
<br />
# netcat 192.168.30.2 1234<br />
<br />
netcat macht eine tcp-verbindung zu 192.168.30.2 (host B) port 1234 auf<br />
<br />
<br />
<br />
Host B - server:<br />
<br />
# netcat -l -p 1234<br />
<br />
netcat oeffnet port 1234 und horcht darauf. Die Serverseite sollte man natuerlich vorher starten. Wenn die Verbindung steht, kann man in beiden netcats schreiben und es wird auf dem jeweils anderen host angezeigt. Wird die Verbindung beendet (ctrl-c), beendet sich die Gegenseite auch.<br />
<br />
<br />
Routing (optional):<br />
<br />
Auf den Routern (Alpha, Bravo) laeuft "quagga" mit ospf als routing-protocol. Kann man natuerlich auch mit statischen Routen machen, aber das waere ja langweilig.<br />
<br />
"quagga" koennen wir ja mal zu einem anderen Thema machen. Zusammen mit Routing.<br />
<br />
<br />
IPsec:<br />
<br />
AH oder ESP?<br />
<br />
AH steht fuer "Authentication Header", was nur eine Authentifizierung der Pakete bewirkt. Dagegen steht ESP "Encapsulating Security Payload", was neben der Authentifizierung auch die Pakete verschluesselt.<br />
<br />
Transport oder Tunnel?<br />
<br />
Transport ist fuer den Traffic zwischen zwei Host, die beide IPsec verstehen.<br />
Tunnel baut einen Tunnel, durch welchen Pakete zb von dahinter liegenden Hosts, geleitet werden.<br />
<br />
IKE oder Pre-Key<br />
<br />
Waerend bei Pre-Key die Schluessel haendisch eingegen werden, kuemmert sich bei IKE ein daemon um die Verwaltung der Schluessel ua auch die regelmaessige Aenderung dieser.<br />
<br />
Praxis:<br />
<br />
Transport zwischen den Routern:<br />
<br />
Auf beiden Routern werden "ipsec-tools" installiert. Diese Paket stellt die Anwendung "setkey" zur verfuegung.<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
add <local_ip> <remote_ip> <ah/esp> <SPI> <-A fuer AH (authentification), -E fuer ESP (encryption)> <key><br />
Die erste Zeile legt also einen key (128bit, 16*8bit) fuer AH fest, die zweite eine key (192bit, 168 + 24 parity) fuer ESP. Die dritte Zeile enthaelt eine policy, wie mit entsprechenden Traffic umgegangen werden soll.<br />
<br />
Damit die Paket von der Gegenseite entschluesselt/verifiziert werden koennen reichen auf Router Bravo folgende Zeilen:<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
Da wir fuer den zweiten Router keine policy angelegt haben, werden die Pakete von Alpha zwar entschluesselt, aber Antworten gehen unverschluesselt uebers Netz. Viel schliemmer ist aber, dass Bravo beliebige Pakete von Alpha annimmt. Damit die Pakete auch verschluesselt werden, fuegen wir noch eine policy hinzu:<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
sieht aus wie vom Router Alpha, allerdings wuerde das vorletzte Wort in der ersten Zeile geaendert out -> in. Bravo nimmt jetzt keine unverschluesselten Pakete mehr von Alpha an, sendet aber weiterhin unverschluesselt. Also kommt noch jeweils eine policy fuer die andere Richtung pro Router hinzu:<br />
<br />
Alpha:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Alpha<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
<br />
Bravo:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Bravo<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
Die configs sind gleich, bis auf die geaenderte Richtung in der jeweiligen policy. Das "flush" und "spdflush" wirft nur alte keys und policys raus. Tadaa, deine erste IPsec-Verbindung ist fertig!<br />
<br />
An dieser Stelle wuerde ich gern auf den Aufbau der config eingehen, damit sich jeder schnell selbst eine Loesung zusammenbauen kann. Die config unterscheided SAD "Security Association Database" und SPD "Security Policy Database". SAD sind die Zeilen mit dem "add" und SPD mit "spdadd".<br />
<br />
SAD:<br />
<br />
add [-46n] src dst protocol spi [extensions] algorithm ... ;<br />
<br />
add - fuegt ein SAD eintrag hinzu (es gibt noch get, delete und deleteall)<br />
<br />
[-46] - ipv4 oder ipv6 - optional<br />
<br />
src - quelle<br />
<br />
dst - ziel<br />
<br />
protocol - ah, ah-old, esp, esp-old, ipcomp, tcp - tcp-md5<br />
<br />
spi - Security Parameter Index, dient der Zuordnung, der Pakete, ist im paket zu sehen<br />
<br />
[extensions] - -mode - tunnel, transport, any - optional - es gibt noch mehr extensions, siehe setkey-manual<br />
<br />
algorithm - -E ealgo key, -A aalgo key - ealgo, aalgo sind verwendbar algorithmen zb: hmac_md5, hmac-sha512, 3des-cbc, twofish-cbc, <br />
aes-ctr - man unterscheided digest (authentification) und cipher (encryption), die ersten beiden sind digest und die letzten drei cipher<br />
<br />
SPD:<br />
<br />
spdadd [-46n] src_range dst_range upperspec label policy ;<br />
<br />
spdadd - fuegt ein SPD eintrag hinzu<br />
<br />
src_range, dst_range - address, address/prefixlen, address[port], address/prefixlen[port]<br />
<br />
upperspec - siehe /etc/protocols oder zb icmp6, ip4 oder any fuer alle<br />
<br />
label - bezeichner, der zb von SELinux ausgewertet werden kann<br />
<br />
policy - <br />
-P direction [priority specification] discard<br />
-P direction [priority specification] none<br />
-P direction [priority specification] ipsec<br />
protocol/mode/src-dst/level [...]<br />
<br />
directory - in, out, fwd<br />
<br />
priority - position in der SPD<br />
<br />
discard, none, ipsec - was die Regel macht, aehnlich dem target in iptables<br />
<br />
<br />
Tunnel<br />
<br />
Machen wir mal mit einem Tunnel weiter, der die beiden Hostnetze an den Routern miteinander verbindet.<br />
<br />
Wir nehmen mal die obere config und aendern die wichtigen Stellen:<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
7 # AH<br />
8 add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
9 add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
10<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
14<br />
15 spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
16 esp/transport//require<br />
17 ah/transport//require;<br />
18 spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
19 esp/transport//require<br />
20 ah/transport//require;<br />
<br />
Da wir nur verschluesseln wollen, werfen wir mal die zeilen fuer AH raus, fuegen dafuer die AH-parameter in die esp-zeilen ein!<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
14<br />
15 spdadd 192.168.20.0/24 192.168.30.0/24 any -P in ipsec<br />
16 esp/tunnel/192.168.10.1-192.168.10.2/require;<br />
18 spdadd 192.168.30.0/24 192.168.20.0/24 any -P out ipsec<br />
19 esp/tunnel/192.168.10.2-192.168.10.1/require;<br />
<br />
Zeile 12 und 13:<br />
+ -m tunnel -A hmac-md5 "1234567890123456"<br />
<br />
Zeile 15 und 18 - achtung, reichenfolge beachten!<br />
- 192.168.10.1 192.168.10.2 - IP adressen der Router<br />
+ 192.168.20.0/24 192.168.30.0/24 - IP bereich der hostnetze<br />
Zeile 16 und 18<br />
- transport<br />
+ tunnel<br />
+ 192.168.10.1-192.168.10.2 - IP adressen der Router<br />
<br />
Und schonwieder fertig! Aber Achtung, jetzt wird wiederum nur der Traffic zwischen den hostnetzen verschluesselt. Von Router zu Router oder Router zu Host ist wieder unverschluesselt.<br />
<br />
Sollte das Beispiel nicht funktionieren, schaut nach, ob ihr irgendwo eine IP falsch habt bzw ob sie an der richtigen Stelle local-ip vs remote-ip steht.<br />
<br />
Langsam zeichnet sich ab, dass eine komplexe Installation sehr umfassend werden wird. Deshalb kommt als naechster Punkt IKM zum automatisiertem Schluesseltausch.</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/UML_-_IPsec
Benutzer:Zim/UML - IPsec
2009-01-22T21:04:34Z
<p>Zim: </p>
<hr />
<div>Umgebung:<br />
<br />
Als Testumgebung kommt ein Verbund von UML-Instanzen zum Einsatz.<br />
<br />
2x Hosts (A, B)<br />
Dienen als Endgeraete die miteinander kommunizieren<br />
<br />
2x Router (Alpha, Bravo)<br />
Verbinden die beiden Endnetze<br />
<br />
3x UML-Switch (sw0, sw1, sw2)<br />
Ein Switch fuer die Verbindung Host <-> Router, einer zwischen Router <-> Router und ein Switch der die Router mit dem Hostsystem verbindet.<br />
<br />
<br />
Grafik folgt (irgendwann), dann wird das sicher etwas klarer.<br />
<br />
Host A:<br />
- 192.168.20.2/24<br />
<br />
Host B:<br />
- 192.168.30.2/24<br />
<br />
Router Alpha:<br />
- 192.168.20.1/24<br />
- Hostnetz<br />
- 192.168.0.11/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.1/24<br />
- Netz zum Router Bravo<br />
<br />
Router Bravo:<br />
- 192.168.30.1/24<br />
- Hostnetz<br />
- 192.168.0.12/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.2/24<br />
- Netz zum Router Bravo<br />
<br />
UML-Switch 0:<br />
- Hostsystem<br />
- Gateway ins "richtige Netz"<br />
<br />
UML-Switch 1:<br />
- Switch zwischen den Routern<br />
- gehubt ( -hub)<br />
- wireshark auf dem tap-dev des Hostsystems, um die Pakete zu beobachten<br />
<br />
UML-Switch 2:<br />
- Hostnetze<br />
<br />
Traffic beobachten:<br />
Ich hab dazu wireshark auf dem Hostsystem gestartet und es auf dem tap-device horchen lassen, dass dem Switch 1 gehoert. Deswegen ist der Switch auch ge"hub"t.<br />
<br />
Zum Traffic erzeugen nehm ich einfach "ping" oder spaeter zwischen den Hostnetzen netcat:<br />
<br />
Host A - client:<br />
<br />
# netcat 192.168.30.2 1234<br />
<br />
netcat macht eine tcp-verbindung zu 192.168.30.2 (host B) port 1234 auf<br />
<br />
<br />
<br />
Host B - server:<br />
<br />
# netcat -l -p 1234<br />
<br />
netcat oeffnet port 1234 und horcht darauf. Die Serverseite sollte man natuerlich vorher starten. Wenn die Verbindung steht, kann man in beiden netcats schreiben und es wird auf dem jeweils anderen host angezeigt. Wird die Verbindung beendet (ctrl-c), beendet sich die Gegenseite auch.<br />
<br />
<br />
Routing (optional):<br />
<br />
Auf den Routern (Alpha, Bravo) laeuft "quagga" mit ospf als routing-protocol. Kann man natuerlich auch mit statischen Routen machen, aber das waere ja langweilig.<br />
<br />
"quagga" koennen wir ja mal zu einem anderen Thema machen. Zusammen mit Routing.<br />
<br />
<br />
IPsec:<br />
<br />
AH oder ESP?<br />
<br />
AH steht fuer "Authentication Header", was nur eine Authentifizierung der Pakete bewirkt. Dagegen steht ESP "Encapsulating Security Payload", was neben der Authentifizierung auch die Pakete verschluesselt.<br />
<br />
Transport oder Tunnel?<br />
<br />
Transport ist fuer den Traffic zwischen zwei Host, die beide IPsec verstehen.<br />
Tunnel baut einen Tunnel, durch welchen Pakete zb von dahinter liegenden Hosts, geleitet werden.<br />
<br />
IKE oder Pre-Key<br />
<br />
Waerend bei Pre-Key die Schluessel haendisch eingegen werden, kuemmert sich bei IKE ein daemon um die Verwaltung der Schluessel ua auch die regelmaessige Aenderung dieser.<br />
<br />
Praxis:<br />
<br />
Transport zwischen den Routern:<br />
<br />
Auf beiden Routern werden "ipsec-tools" installiert. Diese Paket stellt die Anwendung "setkey" zur verfuegung.<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
add <local_ip> <remote_ip> <ah/esp> <SPI> <-A fuer AH (authentification), -E fuer ESP (encryption)> <key><br />
Die erste Zeile legt also einen key (128bit, 16*8bit) fuer AH fest, die zweite eine key (192bit, 168 + 24 parity) fuer ESP. Die dritte Zeile enthaelt eine policy, wie mit entsprechenden Traffic umgegangen werden soll.<br />
<br />
Damit die Paket von der Gegenseite entschluesselt/verifiziert werden koennen reichen auf Router Bravo folgende Zeilen:<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
Da wir fuer den zweiten Router keine policy angelegt haben, werden die Pakete von Alpha zwar entschluesselt, aber Antworten gehen unverschluesselt uebers Netz. Viel schliemmer ist aber, dass Bravo beliebige Pakete von Alpha annimmt. Damit die Pakete auch verschluesselt werden, fuegen wir noch eine policy hinzu:<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
sieht aus wie vom Router Alpha, allerdings wuerde das vorletzte Wort in der ersten Zeile geaendert out -> in. Bravo nimmt jetzt keine unverschluesselten Pakete mehr von Alpha an, sendet aber weiterhin unverschluesselt. Also kommt noch jeweils eine policy fuer die andere Richtung pro Router hinzu:<br />
<br />
Alpha:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Alpha<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
<br />
Bravo:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Bravo<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
Die configs sind gleich, bis auf die geaenderte Richtung in der jeweiligen policy. Das "flush" und "spdflush" wirft nur alte keys und policys raus. Tadaa, deine erste IPsec-Verbindung ist fertig!<br />
<br />
An dieser Stelle wuerde ich gern auf den Aufbau der config eingehen, damit sich jeder schnell selbst eine Loesung zusammenbauen kann. Die config unterscheided SAD "Security Association Database" und SPD "Security Policy Database". SAD sind die Zeilen mit dem "add" und SPD mit "spdadd".<br />
<br />
SAD:<br />
<br />
add [-46n] src dst protocol spi [extensions] algorithm ... ;<br />
<br />
add - fuegt ein SAD eintrag hinzu (es gibt noch get, delete und deleteall)<br />
<br />
[-46] - ipv4 oder ipv6 - optional<br />
<br />
src - quelle<br />
<br />
dst - ziel<br />
<br />
protocol - ah, ah-old, esp, esp-old, ipcomp, tcp - tcp-md5<br />
<br />
spi - Security Parameter Index, dient der Zuordnung, der Pakete, ist im paket zu sehen<br />
<br />
[extensions] - -mode - tunnel, transport, any - optional - es gibt noch mehr extensions, siehe setkey-manual<br />
<br />
algorithm - -E ealgo key, -A aalgo key - ealgo, aalgo sind verwendbar algorithmen zb: hmac_md5, hmac-sha512, 3des-cbc, twofish-cbc, <br />
aes-ctr - man unterscheided digest (authentification) und cipher (encryption), die ersten beiden sind digest und die letzten drei cipher<br />
<br />
SPD:<br />
<br />
spdadd [-46n] src_range dst_range upperspec label policy ;<br />
<br />
spdadd - fuegt ein SPD eintrag hinzu<br />
<br />
src_range, dst_range - address, address/prefixlen, address[port], address/prefixlen[port]<br />
<br />
upperspec - siehe /etc/protocols oder zb icmp6, ip4 oder any fuer alle<br />
<br />
label - bezeichner, der zb von SELinux ausgewertet werden kann<br />
<br />
policy - <br />
-P direction [priority specification] discard<br />
-P direction [priority specification] none<br />
-P direction [priority specification] ipsec<br />
protocol/mode/src-dst/level [...]<br />
<br />
directory - in, out, fwd<br />
<br />
priority - position in der SPD<br />
<br />
discard, none, ipsec - was die Regel macht, aehnlich dem target in iptables<br />
<br />
<br />
Tunnel<br />
<br />
Machen wir mal mit einem Tunnel weiter, der die beiden Hostnetze an den Routern miteinander verbindet.<br />
<br />
Wir nehmen mal die obere config und aendern die wichtigen Stellen:<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
7 # AH<br />
8 add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
9 add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
10<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
14<br />
15 spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
16 esp/transport//require<br />
17 ah/transport//require;<br />
18 spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
19 esp/transport//require<br />
20 ah/transport//require;<br />
<br />
Da wir nur verschluesseln wollen, werfen wir mal die zeilen fuer AH raus, fuegen dafuer die AH-parameter in die esp-zeilen ein!<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
14<br />
15 spdadd 192.168.20.0/24 192.168.30.0/24 any -P in ipsec<br />
16 esp/tunnel/192.168.10.1-192.168.10.2/require;<br />
18 spdadd 192.168.30.0/24 192.168.20.0/24 any -P out ipsec<br />
19 esp/tunnel/192.168.10.2-192.168.10.1/require;<br />
<br />
Zeile 12 und 13:<br />
+ -m tunnel -A hmac-md5 "1234567890123456"<br />
<br />
Zeile 15 und 18 - achtung, reichenfolge beachten!<br />
- 192.168.10.1 192.168.10.2 - IP adressen der Router<br />
+ 192.168.20.0/24 192.168.30.0/24 - IP bereich der hostnetze<br />
Zeile 16 und 18<br />
- transport<br />
+ tunnel<br />
+ 192.168.10.1-192.168.10.2 - IP adressen der Router<br />
<br />
Und schonwieder fertig! Aber Achtung, jetzt wird wiederum nur der Traffic zwischen den hostnetzen verschluesselt. Von Router zu Router oder Router zu Host ist wieder unverschluesselt.<br />
<br />
Sollte das Beispiel nicht funktionieren, schaut nach, ob ihr irgendwo eine IP falsch habt bzw ob sie an der richtigen Stelle local-ip vs remote-ip steht.<br />
<br />
Langsam zeichnet sich ab, dass eine komplexe Installation sehr umfassend werden wird. Deshalb kommt als naechster Punkt IKM zum automatisiertem Schluesseltausch.</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/UML_-_IPsec
Benutzer:Zim/UML - IPsec
2009-01-22T21:02:18Z
<p>Zim: </p>
<hr />
<div>Umgebung:<br />
<br />
Als Testumgebung kommt ein Verbund von UML-Instanzen zum Einsatz.<br />
<br />
2x Hosts (A, B)<br />
Dienen als Endgeraete die miteinander kommunizieren<br />
<br />
2x Router (Alpha, Bravo)<br />
Verbinden die beiden Endnetze<br />
<br />
3x UML-Switch (sw0, sw1, sw2)<br />
Ein Switch fuer die Verbindung Host <-> Router, einer zwischen Router <-> Router und ein Switch der die Router mit dem Hostsystem verbindet.<br />
<br />
<br />
Grafik folgt (irgendwann), dann wird das sicher etwas klarer.<br />
<br />
Host A:<br />
- 192.168.20.2/24<br />
<br />
Host B:<br />
- 192.168.30.2/24<br />
<br />
Router Alpha:<br />
- 192.168.20.1/24<br />
- Hostnetz<br />
- 192.168.0.11/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.1/24<br />
- Netz zum Router Bravo<br />
<br />
Router Bravo:<br />
- 192.168.30.1/24<br />
- Hostnetz<br />
- 192.168.0.12/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.2/24<br />
- Netz zum Router Bravo<br />
<br />
UML-Switch 0:<br />
- Hostsystem<br />
- Gateway ins "richtige Netz"<br />
<br />
UML-Switch 1:<br />
- Switch zwischen den Routern<br />
- gehubt ( -hub)<br />
- wireshark auf dem tap-dev des Hostsystems, um die Pakete zu beobachten<br />
<br />
UML-Switch 2:<br />
- Hostnetze<br />
<br />
Traffic beobachten:<br />
Ich hab dazu wireshark auf dem Hostsystem gestartet und es auf dem tap-device horchen lassen, dass dem Switch 1 gehoert. Deswegen ist der Switch auch ge"hub"t.<br />
<br />
Zum Traffic erzeugen nehm ich einfach "ping" oder spaeter zwischen den Hostnetzen netcat:<br />
<br />
Host A - client:<br />
<br />
# netcat 192.168.30.2 1234<br />
<br />
netcat macht eine tcp-verbindung zu 192.168.30.2 (host B) port 1234 auf<br />
<br />
<br />
<br />
Host B - server:<br />
<br />
# netcat -l -p 1234<br />
<br />
netcat oeffnet port 1234 und horcht darauf. Die Serverseite sollte man natuerlich vorher starten. Wenn die Verbindung steht, kann man in beiden netcats schreiben und es wird auf dem jeweils anderen host angezeigt. Wird die Verbindung beendet (ctrl-c), beendet sich die Gegenseite auch.<br />
<br />
<br />
Routing (optional):<br />
<br />
Auf den Routern (Alpha, Bravo) laeuft "quagga" mit ospf als routing-protocol. Kann man natuerlich auch mit statischen Routen machen, aber das waere ja langweilig.<br />
<br />
"quagga" koennen wir ja mal zu einem anderen Thema machen. Zusammen mit Routing.<br />
<br />
<br />
IPsec:<br />
<br />
AH oder ESP?<br />
<br />
AH steht fuer "Authentication Header", was nur eine Authentifizierung der Pakete bewirkt. Dagegen steht ESP "Encapsulating Security Payload", was neben der Authentifizierung auch die Pakete verschluesselt.<br />
<br />
Transport oder Tunnel?<br />
<br />
Transport ist fuer den Traffic zwischen zwei Host, die beide IPsec verstehen.<br />
Tunnel baut einen Tunnel, durch welchen Pakete zb von dahinter liegenden Hosts, geleitet werden.<br />
<br />
IKE oder Pre-Key<br />
<br />
Waerend bei Pre-Key die Schluessel haendisch eingegen werden, kuemmert sich bei IKE ein daemon um die Verwaltung der Schluessel ua auch die regelmaessige Aenderung dieser.<br />
<br />
Praxis:<br />
<br />
Transport zwischen den Routern:<br />
<br />
Auf beiden Routern werden "ipsec-tools" installiert. Diese Paket stellt die Anwendung "setkey" zur verfuegung.<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
add <local_ip> <remote_ip> <ah/esp> <SPI> <-A fuer AH (authentification), -E fuer ESP (encryption)> <key><br />
Die erste Zeile legt also einen key (128bit, 16*8bit) fuer AH fest, die zweite eine key (192bit, 168 + 24 parity) fuer ESP. Die dritte Zeile enthaelt eine policy, wie mit entsprechenden Traffic umgegangen werden soll.<br />
<br />
Damit die Paket von der Gegenseite entschluesselt/verifiziert werden koennen reichen auf Router Bravo folgende Zeilen:<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
Da wir fuer den zweiten Router keine policy angelegt haben, werden die Pakete von Alpha zwar entschluesselt, aber Antworten gehen unverschluesselt uebers Netz. Viel schliemmer ist aber, dass Bravo beliebige Pakete von Alpha annimmt. Damit die Pakete auch verschluesselt werden, fuegen wir noch eine policy hinzu:<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
sieht aus wie vom Router Alpha, allerdings wuerde das vorletzte Wort in der ersten Zeile geaendert out -> in. Bravo nimmt jetzt keine unverschluesselten Pakete mehr von Alpha an, sendet aber weiterhin unverschluesselt. Also kommt noch jeweils eine policy fuer die andere Richtung pro Router hinzu:<br />
<br />
Alpha:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Alpha<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
<br />
Bravo:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Bravo<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
Die configs sind gleich, bis auf die geaenderte Richtung in der jeweiligen policy. Das "flush" und "spdflush" wirft nur alte keys und policys raus. Tadaa, deine erste IPsec-Verbindung ist fertig!<br />
<br />
An dieser Stelle wuerde ich gern auf den Aufbau der config eingehen, damit sich jeder schnell selbst eine Loesung zusammenbauen kann. Die config unterscheided SAD "Security Association Database" und SPD "Security Policy Database". SAD sind die Zeilen mit dem "add" und SPD mit "spdadd".<br />
<br />
SAD:<br />
<br />
add [-46n] src dst protocol spi [extensions] algorithm ... ;<br />
<br />
add - fuegt ein SAD eintrag hinzu (es gibt noch get, delete und deleteall)<br />
<br />
[-46] - ipv4 oder ipv6 - optional<br />
<br />
src - quelle<br />
<br />
dst - ziel<br />
<br />
protocol - ah, ah-old, esp, esp-old, ipcomp, tcp - tcp-md5<br />
<br />
spi - Security Parameter Index, dient der Zuordnung, der Pakete, ist im paket zu sehen<br />
<br />
[extensions] - -mode - tunnel, transport, any - optional - es gibt noch mehr extensions, siehe setkey-manual<br />
<br />
algorithm - -E ealgo key, -A aalgo key - ealgo, aalgo sind verwendbar algorithmen zb: hmac_md5, hmac-sha512, 3des-cbc, twofish-cbc, <br />
aes-ctr - man unterscheided digest (authentification) und cipher (encryption), die ersten beiden sind digest und die letzten drei cipher<br />
<br />
SPD:<br />
<br />
spdadd [-46n] src_range dst_range upperspec label policy ;<br />
<br />
spdadd - fuegt ein SPD eintrag hinzu<br />
<br />
src_range, dst_range - address, address/prefixlen, address[port], address/prefixlen[port]<br />
<br />
upperspec - siehe /etc/protocols oder zb icmp6, ip4 oder any fuer alle<br />
<br />
label - bezeichner, der zb von SELinux ausgewertet werden kann<br />
<br />
policy - <br />
-P direction [priority specification] discard<br />
-P direction [priority specification] none<br />
-P direction [priority specification] ipsec<br />
protocol/mode/src-dst/level [...]<br />
<br />
directory - in, out, fwd<br />
<br />
priority - position in der SPD<br />
<br />
discard, none, ipsec - was die Regel macht, aehnlich dem target in iptables<br />
<br />
<br />
Tunnel<br />
<br />
Machen wir mal mit einem Tunnel weiter, der die beiden Hostnetze an den Routern miteinander verbindet.<br />
<br />
Wir nehmen mal die obere config und aendern die wichtigen Stellen:<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
7 # AH<br />
8 add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
9 add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
10<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
14<br />
15 spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
16 esp/transport//require<br />
17 ah/transport//require;<br />
18 spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
19 esp/transport//require<br />
20 ah/transport//require;<br />
<br />
Da wir nur verschluesseln wollen, werfen wir mal die zeilen fuer AH raus, fuegen dafuer die AH-parameter in die esp-zeilen ein!<br />
<br />
1 #!/usr/sbin/setkey -f<br />
2 # config Router Bravo<br />
3<br />
4 flush;<br />
5 spdflush;<br />
6<br />
11 # ESP<br />
12 add 192.168.10.1 192.168.10.2 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
13 add 192.168.10.2 192.168.10.1 esp 24501 -m tunnel -E 3des-cbc "123456789012123456789012" -A hmac-md5 "1234567890123456";<br />
14<br />
15 spdadd 192.168.20.0/24 192.168.30.0/24 any -P in ipsec<br />
16 esp/tunnel/192.168.10.1-192.168.10.2/require;<br />
18 spdadd 192.168.30.0/24 192.168.20.0/24 any -P out ipsec<br />
19 esp/tunnel/192.168.10.2-192.168.10.1/require;<br />
<br />
Zeile 12 und 13:<br />
+ -m tunnel -A hmac-md5 "1234567890123456"<br />
<br />
Zeile 15 und 18 - achtung, reichenfolge beachten!<br />
- 192.168.10.1 192.168.10.2 - IP adressen der Router<br />
+ 192.168.20.0/24 192.168.30.0/24 - IP bereich der hostnetze<br />
Zeile 16 und 18<br />
- transport<br />
+ tunnel<br />
+ 192.168.10.1-192.168.10.2 - IP adressen der Router<br />
<br />
Und schonwieder fertig! Aber Achtung, jetzt wird wiederum nur der Traffic zwischen den hostnetzen verschluesselt. Von Router zu Router oder Router zu Host ist wieder unverschluesselt.<br />
<br />
Langsam zeichnet sich ab, dass eine komplexe Installation sehr umfassend werden wird. Deshalb kommt als naechster Punkt IKM zum automatisiertem Schluesseltausch.</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/UML_-_IPsec
Benutzer:Zim/UML - IPsec
2009-01-22T20:48:23Z
<p>Zim: </p>
<hr />
<div>Umgebung:<br />
<br />
Als Testumgebung kommt ein Verbund von UML-Instanzen zum Einsatz.<br />
<br />
2x Hosts (A, B)<br />
Dienen als Endgeraete die miteinander kommunizieren<br />
<br />
2x Router (Alpha, Bravo)<br />
Verbinden die beiden Endnetze<br />
<br />
3x UML-Switch (sw0, sw1, sw2)<br />
Ein Switch fuer die Verbindung Host <-> Router, einer zwischen Router <-> Router und ein Switch der die Router mit dem Hostsystem verbindet.<br />
<br />
<br />
Grafik folgt (irgendwann), dann wird das sicher etwas klarer.<br />
<br />
Host A:<br />
- 192.168.20.2/24<br />
<br />
Host B:<br />
- 192.168.30.2/24<br />
<br />
Router Alpha:<br />
- 192.168.20.1/24<br />
- Hostnetz<br />
- 192.168.0.11/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.1/24<br />
- Netz zum Router Bravo<br />
<br />
Router Bravo:<br />
- 192.168.30.1/24<br />
- Hostnetz<br />
- 192.168.0.12/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.2/24<br />
- Netz zum Router Bravo<br />
<br />
UML-Switch 0:<br />
- Hostsystem<br />
- Gateway ins "richtige Netz"<br />
<br />
UML-Switch 1:<br />
- Switch zwischen den Routern<br />
- gehubt ( -hub)<br />
- wireshark auf dem tap-dev des Hostsystems, um die Pakete zu beobachten<br />
<br />
UML-Switch 2:<br />
- Hostnetze<br />
<br />
Traffic beobachten:<br />
Ich hab dazu wireshark auf dem Hostsystem gestartet und es auf dem tap-device horchen lassen, dass dem Switch 1 gehoert. Deswegen ist der Switch auch ge"hub"t.<br />
<br />
Zum Traffic erzeugen nehm ich einfach "ping" oder spaeter zwischen den Hostnetzen netcat:<br />
<br />
Host A - client:<br />
<br />
# netcat 192.168.30.2 1234<br />
<br />
netcat macht eine tcp-verbindung zu 192.168.30.2 (host B) port 1234 auf<br />
<br />
<br />
<br />
Host B - server:<br />
<br />
# netcat -l -p 1234<br />
<br />
netcat oeffnet port 1234 und horcht darauf. Die Serverseite sollte man natuerlich vorher starten. Wenn die Verbindung steht, kann man in beiden netcats schreiben und es wird auf dem jeweils anderen host angezeigt. Wird die Verbindung beendet (ctrl-c), beendet sich die Gegenseite auch.<br />
<br />
<br />
Routing (optional):<br />
<br />
Auf den Routern (Alpha, Bravo) laeuft "quagga" mit ospf als routing-protocol. Kann man natuerlich auch mit statischen Routen machen, aber das waere ja langweilig.<br />
<br />
"quagga" koennen wir ja mal zu einem anderen Thema machen. Zusammen mit Routing.<br />
<br />
<br />
IPsec:<br />
<br />
AH oder ESP?<br />
<br />
AH steht fuer "Authentication Header", was nur eine Authentifizierung der Pakete bewirkt. Dagegen steht ESP "Encapsulating Security Payload", was neben der Authentifizierung auch die Pakete verschluesselt.<br />
<br />
Transport oder Tunnel?<br />
<br />
Transport ist fuer den Traffic zwischen zwei Host, die beide IPsec verstehen.<br />
Tunnel baut einen Tunnel, durch welchen Pakete zb von dahinter liegenden Hosts, geleitet werden.<br />
<br />
IKE oder Pre-Key<br />
<br />
Waerend bei Pre-Key die Schluessel haendisch eingegen werden, kuemmert sich bei IKE ein daemon um die Verwaltung der Schluessel ua auch die regelmaessige Aenderung dieser.<br />
<br />
Praxis:<br />
<br />
Transport zwischen den Routern:<br />
<br />
Auf beiden Routern werden "ipsec-tools" installiert. Diese Paket stellt die Anwendung "setkey" zur verfuegung.<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
add <local_ip> <remote_ip> <ah/esp> <SPI> <-A fuer AH (authentification), -E fuer ESP (encryption)> <key><br />
Die erste Zeile legt also einen key (128bit, 16*8bit) fuer AH fest, die zweite eine key (192bit, 168 + 24 parity) fuer ESP. Die dritte Zeile enthaelt eine policy, wie mit entsprechenden Traffic umgegangen werden soll.<br />
<br />
Damit die Paket von der Gegenseite entschluesselt/verifiziert werden koennen reichen auf Router Bravo folgende Zeilen:<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
Da wir fuer den zweiten Router keine policy angelegt haben, werden die Pakete von Alpha zwar entschluesselt, aber Antworten gehen unverschluesselt uebers Netz. Viel schliemmer ist aber, dass Bravo beliebige Pakete von Alpha annimmt. Damit die Pakete auch verschluesselt werden, fuegen wir noch eine policy hinzu:<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
sieht aus wie vom Router Alpha, allerdings wuerde das vorletzte Wort in der ersten Zeile geaendert out -> in. Bravo nimmt jetzt keine unverschluesselten Pakete mehr von Alpha an, sendet aber weiterhin unverschluesselt. Also kommt noch jeweils eine policy fuer die andere Richtung pro Router hinzu:<br />
<br />
Alpha:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Alpha<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
<br />
Bravo:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Bravo<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
Die configs sind gleich, bis auf die geaenderte Richtung in der jeweiligen policy. Das "flush" und "spdflush" wirft nur alte keys und policys raus. Tadaa, deine erste IPsec-Verbindung ist fertig!<br />
<br />
An dieser Stelle wuerde ich gern auf den Aufbau der config eingehen, damit sich jeder schnell selbst eine Loesung zusammenbauen kann. Die config unterscheided SAD "Security Association Database" und SPD "Security Policy Database". SAD sind die Zeilen mit dem "add" und SPD mit "spdadd".<br />
<br />
SAD:<br />
<br />
add [-46n] src dst protocol spi [extensions] algorithm ... ;<br />
<br />
add - fuegt ein SAD eintrag hinzu (es gibt noch get, delete und deleteall)<br />
<br />
[-46] - ipv4 oder ipv6 - optional<br />
<br />
src - quelle<br />
<br />
dst - ziel<br />
<br />
protocol - ah, ah-old, esp, esp-old, ipcomp, tcp - tcp-md5<br />
<br />
spi - Security Parameter Index, dient der Zuordnung, der Pakete, ist im paket zu sehen<br />
<br />
[extensions] - -mode - tunnel, transport, any - optional - es gibt noch mehr extensions, siehe setkey-manual<br />
<br />
algorithm - -E ealgo key, -A aalgo key - ealgo, aalgo sind verwendbar algorithmen zb: hmac_md5, hmac-sha512, 3des-cbc, twofish-cbc, <br />
aes-ctr - man unterscheided digest (authentification) und cipher (encryption), die ersten beiden sind digest und die letzten drei cipher<br />
<br />
SPD:<br />
<br />
spdadd [-46n] src_range dst_range upperspec label policy ;<br />
<br />
spdadd - fuegt ein SPD eintrag hinzu<br />
<br />
src_range, dst_range - address, address/prefixlen, address[port], address/prefixlen[port]<br />
<br />
upperspec - siehe /etc/protocols oder zb icmp6, ip4 oder any fuer alle<br />
<br />
label - bezeichner, der zb von SELinux ausgewertet werden kann<br />
<br />
policy - <br />
-P direction [priority specification] discard<br />
-P direction [priority specification] none<br />
-P direction [priority specification] ipsec<br />
protocol/mode/src-dst/level [...]<br />
<br />
directory - in, out, fwd<br />
<br />
priority - position in der SPD<br />
<br />
discard, none, ipsec - was die Regel macht, aehnlich dem target in iptables<br />
Machen wir mal mit einem Tunnel weiter, der die beiden Hostnetze an den Routern miteinander verbindet.</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/UML_-_IPsec
Benutzer:Zim/UML - IPsec
2009-01-22T19:53:29Z
<p>Zim: </p>
<hr />
<div>Umgebung:<br />
<br />
Als Testumgebung kommt ein Verbund von UML-Instanzen zum Einsatz.<br />
<br />
2x Hosts (A, B)<br />
Dienen als Endgeraete die miteinander kommunizieren<br />
<br />
2x Router (Alpha, Bravo)<br />
Verbinden die beiden Endnetze<br />
<br />
3x UML-Switch (sw0, sw1, sw2)<br />
Ein Switch fuer die Verbindung Host <-> Router, einer zwischen Router <-> Router und ein Switch der die Router mit dem Hostsystem verbindet.<br />
<br />
<br />
Grafik folgt (irgendwann), dann wird das sicher etwas klarer.<br />
<br />
Host A:<br />
- 192.168.20.2/24<br />
<br />
Host B:<br />
- 192.168.30.2/24<br />
<br />
Router Alpha:<br />
- 192.168.20.1/24<br />
- Hostnetz<br />
- 192.168.0.11/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.1/24<br />
- Netz zum Router Bravo<br />
<br />
Router Bravo:<br />
- 192.168.30.1/24<br />
- Hostnetz<br />
- 192.168.0.12/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.2/24<br />
- Netz zum Router Bravo<br />
<br />
UML-Switch 0:<br />
- Hostsystem<br />
- Gateway ins "richtige Netz"<br />
<br />
UML-Switch 1:<br />
- Switch zwischen den Routern<br />
- gehubt ( -hub)<br />
- wireshark auf dem tap-dev des Hostsystems, um die Pakete zu beobachten<br />
<br />
UML-Switch 2:<br />
- Hostnetze<br />
<br />
<br />
Routing (optional):<br />
<br />
Auf den Routern (Alpha, Bravo) laeuft "quagga" mit ospf als routing-protocol. Kann man natuerlich auch mit statischen Routen machen, aber das waere ja langweilig.<br />
<br />
Config spar ich mir hier, da das den Rahmen sprengen wuerde.<br />
<br />
<br />
IPsec:<br />
<br />
AH oder ESP?<br />
<br />
AH steht fuer "Authentication Header", was nur eine Authentifizierung der Pakete bewirkt. Dagegen steht ESP "Encapsulating Security Payload", was neben der Authentifizierung auch die Pakete verschluesselt.<br />
<br />
Transport oder Tunnel?<br />
<br />
Transport ist fuer den Traffic zwischen zwei Host, die beide IPsec verstehen.<br />
Tunnel baut einen Tunnel, durch welchen Pakete zb von dahinter liegenden Hosts, geleitet werden.<br />
<br />
IKE oder Pre-Key<br />
<br />
Waerend bei Pre-Key die Schluessel haendisch eingegen werden, kuemmert sich bei IKE ein daemon um die Verwaltung der Schluessel ua auch die regelmaessige Aenderung dieser.<br />
<br />
Praxis:<br />
<br />
Transport zwischen den Routern:<br />
<br />
Auf beiden Routern werden "ipsec-tools" installiert. Diese Paket stellt die Anwendung "setkey" zur verfuegung.<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
add <local_ip> <remote_ip> <ah/esp> <SPI> <-A fuer AH (authentification), -E fuer ESP (encryption)> <key><br />
Die erste Zeile legt also einen key (128bit, 16*8bit) fuer AH fest, die zweite eine key (192bit) fuer ESP. Die dritte Zeile enthaelt eine policy, wie mit entsprechenden Traffic umgegangen werden soll.<br />
<br />
Damit die Paket von der Gegenseite entschluesselt/verifiziert werden koennen reichen auf Router Bravo folgende Zeilen:<br />
<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
Da wir fuer den zweiten Router keine policy angelegt haben, werden die Pakete von Alpha zwar entschluesselt, aber Antworten gehen unverschluesselt uebers Netz. Viel schliemmer ist aber, dass Bravo beliebige Pakete von Alpha annimmt. Damit die Pakete auch verschluesselt werden, fuegen wir noch eine policy hinzu:<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
sieht aus wie vom Router Alpha, allerdings wuerde das vorletzte Wort in der ersten Zeile geaendert out -> in. Bravo nimmt jetzt keine unverschluesselten Pakete mehr von Alpha an, sendet aber weiterhin unverschluesselt. Also kommt noch jeweils eine policy fuer die andere Richtung pro Router hinzu:<br />
<br />
Alpha:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Alpha<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
<br />
Bravo:<br />
<br />
#!/usr/sbin/setkey -f<br />
# config Router Bravo<br />
<br />
flush;<br />
spdflush;<br />
<br />
# AH<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456";<br />
add 192.168.10.2 192.168.10.1 ah 24500 -A hmac-md5 "1234567890123456";<br />
<br />
# ESP<br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
add 192.168.10.2 192.168.10.1 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P in ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
spdadd 192.168.10.2 192.168.10.1 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
Die configs sind gleich, bis auf die geaenderte Richtung in der jeweiligen policy. Das "flush" und "spdflush" wirft nur alte keys und policys raus. Tadaa, deine erste IPsec-Verbindung ist fertig!</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim/UML_-_IPsec
Benutzer:Zim/UML - IPsec
2009-01-22T19:34:48Z
<p>Zim: </p>
<hr />
<div>Umgebung:<br />
<br />
Als Testumgebung kommt ein Verbund von UML-Instanzen zum Einsatz.<br />
<br />
2x Hosts (A, B)<br />
Dienen als Endgeraete die miteinander kommunizieren<br />
<br />
2x Router (Alpha, Bravo)<br />
Verbinden die beiden Endnetze<br />
<br />
3x UML-Switch (sw0, sw1, sw2)<br />
Ein Switch fuer die Verbindung Host <-> Router, einer zwischen Router <-> Router und ein Switch der die Router mit dem Hostsystem verbindet.<br />
<br />
<br />
Grafik folgt (irgendwann), dann wird das sicher etwas klarer.<br />
<br />
Host A:<br />
- 192.168.20.2/24<br />
<br />
Host B:<br />
- 192.168.30.2/24<br />
<br />
Router Alpha:<br />
- 192.168.20.1/24<br />
- Hostnetz<br />
- 192.168.0.11/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.1/24<br />
- Netz zum Router Bravo<br />
<br />
Router Bravo:<br />
- 192.168.30.1/24<br />
- Hostnetz<br />
- 192.168.0.12/24<br />
- Netz zum Hostsystem, Gateway<br />
- 192.168.10.2/24<br />
- Netz zum Router Bravo<br />
<br />
UML-Switch 0:<br />
- Hostsystem<br />
- Gateway ins "richtige Netz"<br />
<br />
UML-Switch 1:<br />
- Switch zwischen den Routern<br />
- gehubt ( -hub)<br />
- wireshark auf dem tap-dev des Hostsystems, um die Pakete zu beobachten<br />
<br />
UML-Switch 2:<br />
- Hostnetze<br />
<br />
<br />
Routing (optional):<br />
<br />
Auf den Routern (Alpha, Bravo) laeuft "quagga" mit ospf als routing-protocol. Kann man natuerlich auch mit statischen Routen machen, aber das waere ja langweilig.<br />
<br />
Config spar ich mir hier, da das den Rahmen sprengen wuerde.<br />
<br />
<br />
IPsec:<br />
<br />
AH oder ESP?<br />
<br />
AH steht fuer "Authentication Header", was nur eine Authentifizierung der Pakete bewirkt. Dagegen steht ESP "Encapsulating Security Payload", was neben der Authentifizierung auch die Pakete verschluesselt.<br />
<br />
Transport oder Tunnel?<br />
<br />
Transport ist fuer den Traffic zwischen zwei Host, die beide IPsec verstehen.<br />
Tunnel baut einen Tunnel, durch welchen Pakete zb von dahinter liegenden Hosts, geleitet werden.<br />
<br />
IKE oder Pre-Key<br />
<br />
Waerend bei Pre-Key die Schluessel haendisch eingegen werden, kuemmert sich bei IKE ein daemon um die Verwaltung der Schluessel ua auch die regelmaessige Aenderung dieser.<br />
<br />
Praxis:<br />
<br />
Transport zwischen den Routern:<br />
<br />
Auf beiden Routern werden "ipsec-tools" installiert. Diese Paket stellt die Anwendung "setkey" zur verfuegung.<br />
<br />
# config Router Alpha<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
spdadd 192.168.10.1 192.168.10.2 any -P out ipsec<br />
esp/transport//require<br />
ah/transport//require;<br />
<br />
add <local_ip> <remote_ip> <ah/esp> <SPI> <-A fuer AH (authentification), -E fuer ESP (encryption)> <key><br />
Die erste Zeile legt also einen key (128bit, 16*8bit) fuer AH fest, die zweite eine key (192bit) fuer ESP. Die dritte Zeile enthaelt eine policy, wie mit entsprechenden Traffic umgegangen werden soll.<br />
<br />
Damit die Paket von der Gegenseite entschluesselt/verifiziert werden koennen reichen auf Router Bravo folgende Zeilen:<br />
<br />
# config Router Bravo<br />
#!/usr/sbin/setkey -f<br />
add 192.168.10.1 192.168.10.2 ah 24500 -A hmac-md5 "1234567890123456"; <br />
add 192.168.10.1 192.168.10.2 esp 24501 -E 3des-cbc "123456789012123456789012";<br />
<br />
Da wir fuer den zweiten Router keine policy angelegt haben, werden die Pakete von Alpha zwar entschluesselt, aber Antworten gehen unverschluesselt uebers Netz. Viel schliemmer ist aber, dass Bravo beliebige Pakete von Alpha annimmt. Damit die Pakete auch verschluesselt werden, fuegen wir noch eine policy hinzu:</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung/UML
Openlab 01 - Workshop Virtualisierung/UML
2009-01-22T15:55:23Z
<p>Zim: cow</p>
<hr />
<div>< [[Openlab 01 - Workshop Virtualisierung]]<br />
<br />
=UML - Usermode Linux=<br />
<br />
==Hostsystem==<br />
<br />
Am Hostsystem muss man keine Aenderungen vornehmen. Aber es gibts zwei Punkte die man erwaehnen sollte.<br />
<br />
===SKAS-Patch===<br />
<br />
Der SKAS3-Patch wird auf den Kernel des Hostsystems angewant und bringt eine deutlich Geschwindigkeitssteigerung.<br />
<br />
# wget http://www.finnie.org/software/uml/2.6.28-skas3.patch<br />
# patch -p0 < 2.6.28-skas3.patch<br />
<br />
===TUN-Device===<br />
<br />
Damit sich das UML-System auch mit der Aussenwelt unterhalten kann, bietet sich eine Anbindung per TAP-Device an. Falls Euer Kernel keine TUN/TAP-Devices unterstuetzt, kann dies unter:<br />
<br />
- Device Drivers -> Network device support -> Universal TUN/TAP device driver support<br />
<br />
aktiviert werden. <br />
<br />
==Guestsystem==<br />
<br />
Das Gastsystem besteht aus zwei Teilen, dem UML-Kernel und einem Dateisystem. UML wird in Linux als eigenstaendige Architektur gehandelt und so ist dies beim compilen mit zu uebergeben.<br />
<br />
===Kernel===<br />
<br />
Den Kernel fuer das Guestsystem kann man aus den gleichen Quellen bauen, wie auch fuer das Hostsystem. Wichtig ist das Parameter "ARCH=um" beim compilen.<br />
<br />
Kernel downloaden<br />
# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2<br />
<br />
Archiv entpacken<br />
# tar xvfj linux-2.6.28.tar.bz2<br />
<br />
evtl. vorhandene vorherige Compilereste loeschen<br />
# make mrproper ARCH=um<br />
<br />
ncurses-menu zur Konfiguration<br />
# make menuconfig ARCH=um<br />
<br />
Den Kernel compilen<br />
# make linux ARCH=um<br />
<br />
Module compilen<br />
# make modules ARCH=um<br />
<br />
Kernel "strippen", 25M -> 2M<br />
# strip vmlinux<br />
<br />
Module in "root_fs" installieren<br />
# make modules_install ARCH=um INSTALL_MOD_PATH=../root_fs<br />
<br />
===Filesystem===<br />
<br />
Als Dateisystem kommt der Einfach halt wegen ext2 zum Einsatz. Mit entsprechendem Support im Kernel kann man natuerlich auch ein anderes FS nehmen. Statt ext2 bietet sich auch ext3 an, um das Dateisystem bei einem Absturz nicht zu gefaehrden.<br />
<br />
Wir erzeugen eine Datei "disk.img" mit der Groesse von 1GB.<br />
# dd if=dev/zero of=disk.img bs=1024 count=$[1024 * 1024]<br />
<br />
Darauf legen wir ein Ext2-Dateisystem an<br />
# mke2fs -Fq disk.img<br />
<br />
Ein Ordner zum FS mounten<br />
# mkdir root_fs<br />
<br />
"disk.img" nach "root_fs" mounten<br />
# mount -o loop disk.img root_fs<br />
<br />
debootstrap erzeugt in "root_fs" eine Installation von Debian etch<br />
# debootstrap etch root_fs<br />
<br />
Die fstab editieren und die entsprechenden Dateisysteme mit mountpoints eintragen<br />
# vi root_fs/etc/fstab<br />
# /dev/ubd0 / ext2 defaults 0 0<br />
# proc /proc proc defaults 0 0<br />
<br />
Falls nicht vorhanden, die "source.list" erzeugen<br />
# touch /etc/apt/source.list<br />
<br />
====SWAP====<br />
<br />
Eine Swappartition ist optional, muss aber nicht sein.<br />
<br />
swap-Datei erzeugen (doppelte RAM-Groesse)<br />
# dd if=/dev/zero of=swap bs=1024 count=$[2 * 256 * 1024]<br />
<br />
In UML:<br />
# mkswap /dev/ubdb<br />
# swapon /dev/ubdb<br />
<br />
Falls es das ubdb-Device nicht gibt:<br />
# mknod /dev/ubdb b 98 16<br />
<br />
====COW - Copy-On-Write====<br />
<br />
COW ist eine Technik, mit der ein einziges UML-Image von mehreren Instanzen benutzt werden kann. Aenderungen werden dann in eine separate Datei geschrieben.<br />
<br />
# ./vmlinux ubd0=<cow-file>,<rootfs-file> ...<br />
<br />
Damit kann man zum Beispiel Aenderungen am System vornehmen, um ihre Auswirkungen zu testen. Wuenscht man spaeter, die Aenderungen aus der cow-file in das rootfs-Image zu uebernehmen, dann steht dazu "uml_moo" aus den "uml-utilities" bereit:<br />
<br />
# uml_moo <cow-file> <new-rootfs-file><br />
<br />
Es wird also ein neues Image angelegt. Sollte man die beiden Dateien einfach so kombinieren wollen, dann reicht ein:<br />
<br />
# uml_moo -d <cow-file><br />
<br />
Die Datei mit dem rootfs braucht nicht angegeben werden, da alle relevanten Daten im Header der cow-Datei vorliegen.<br />
<br />
Beim Arbeiten mit cow-Datei muss man sehr vorsichtig sein. Kopieren darf man die Datei mit dem rootfs nur, wenn man den Zeitstempel beibehaelt (zb. mit -p).<br />
<br />
====Host-FS====<br />
<br />
Um auf das Host-FS zuzugreifen kann innerhalb von UML folgendes benutzt werden:<br />
# mount none /host -t hostfs<br />
<br />
oder ein einzelnes Verzeichnis (eg. /home/user):<br />
# mount none /host -t hostfs -o /home/user<br />
<br />
===UML starten===<br />
<br />
UML wird wie ein normales Program aufgerufen.<br />
<br />
# ./vmlinux mem=256M ubd0=disk.img ubdb=swap eth0=tuntap,,,IP<br />
<br />
<br />
==Network==<br />
<br />
Zum Netzwerken kommt TUN/TAP zu Einsatz<br />
<br />
===Hostsystem===<br />
<br />
Auf dem Hostsystem sicherstellen, dass TUN/TAP-Support vorhanden ist.<br />
<br />
Das TAP-Device dem Nutzer <uml-user> zuweisen<br />
# tunctl -u <uml-user><br />
<br />
UML im nachhinein (hotplug) eine Netzwerkkarte unterschieben<br />
# uml_mconsole UMID config eth0=tuntap,,,IP<br />
<br />
Wenn UML als non-root gestartet wird, muessen die Netzwerkeinstellungen per Hand gemacht werden:<br />
# ifconfig tap0 192.168.1.16 netmask 255.255.255.255 up<br />
# bash -c echo 1 > /proc/sys/net/ipv4/ip_forward<br />
# route add -host 192.168.1.17 dev tap0<br />
# bash -c echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp<br />
# arp -Ds 192.168.1.17 eth2 pub<br />
<br />
===Guestsystem===<br />
<br />
eth0 mit einer IP im Netzwerk hochfahren<br />
# ifconfig eth0 IP+1 up<br />
<br />
Defaultroute eintragen<br />
# route add default gw IP<br />
<br />
===UML-Switch===<br />
Das Paket "uml-utilities" enthaelt ein Tool uml-switch, mit dem ein virtueller Switch erzeugt wird.<br />
<br />
# uml-switch -tap <tap-device> [-hup] [-unix <file>]<br />
<br />
Das Parameter "-hup" verwandelt den Switch in einen Hub und mit "-unix" kann man die Datei angeben, die der uml-switch benutzen soll, was sinnvoll ist, wenn man mehrere Instanzen startet.<br />
<br />
Dem Switch wird im Hostsystem eine IP aus dem gewuenschten Bereich zugewiesen und kann so auch per NAT ein Weg ins reale Netz bieten.</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung/UML
Openlab 01 - Workshop Virtualisierung/UML
2009-01-22T08:33:14Z
<p>Zim: FS, swap</p>
<hr />
<div>< [[Openlab 01 - Workshop Virtualisierung]]<br />
<br />
=UML - Usermode Linux=<br />
<br />
==Hostsystem==<br />
<br />
Am Hostsystem muss man keine Aenderungen vornehmen. Aber es gibts zwei Punkte die man erwaehnen sollte.<br />
<br />
===SKAS-Patch===<br />
<br />
Der SKAS3-Patch wird auf den Kernel des Hostsystems angewant und bringt eine deutlich Geschwindigkeitssteigerung.<br />
<br />
# wget http://www.finnie.org/software/uml/2.6.28-skas3.patch<br />
# patch -p0 < 2.6.28-skas3.patch<br />
<br />
===TUN-Device===<br />
<br />
Damit sich das UML-System auch mit der Aussenwelt unterhalten kann, bietet sich eine Anbindung per TAP-Device an. Falls Euer Kernel keine TUN/TAP-Devices unterstuetzt, kann dies unter:<br />
<br />
- Device Drivers -> Network device support -> Universal TUN/TAP device driver support<br />
<br />
aktiviert werden. <br />
<br />
==Guestsystem==<br />
<br />
Das Gastsystem besteht aus zwei Teilen, dem UML-Kernel und einem Dateisystem. UML wird in Linux als eigenstaendige Architektur gehandelt und so ist dies beim compilen mit zu uebergeben.<br />
<br />
===Kernel===<br />
<br />
Den Kernel fuer das Guestsystem kann man aus den gleichen Quellen bauen, wie auch fuer das Hostsystem. Wichtig ist das Parameter "ARCH=um" beim compilen.<br />
<br />
Kernel downloaden<br />
# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2<br />
<br />
Archiv entpacken<br />
# tar xvfj linux-2.6.28.tar.bz2<br />
<br />
evtl. vorhandene vorherige Compilereste loeschen<br />
# make mrproper ARCH=um<br />
<br />
ncurses-menu zur Konfiguration<br />
# make menuconfig ARCH=um<br />
<br />
Den Kernel compilen<br />
# make linux ARCH=um<br />
<br />
Module compilen<br />
# make modules ARCH=um<br />
<br />
Kernel "strippen", 25M -> 2M<br />
# strip vmlinux<br />
<br />
Module in "root_fs" installieren<br />
# make modules_install ARCH=um INSTALL_MOD_PATH=../root_fs<br />
<br />
===Filesystem===<br />
<br />
Als Dateisystem kommt der Einfach halt wegen ext2 zum Einsatz. Mit entsprechendem Support im Kernel kann man natuerlich auch ein anderes FS nehmen. Statt ext2 bietet sich auch ext3 an, um das Dateisystem bei einem Absturz nicht zu gefaehrden.<br />
<br />
Wir erzeugen eine Datei "disk.img" mit der Groesse von 1GB.<br />
# dd if=dev/zero of=disk.img bs=1024 count=$[1024 * 1024]<br />
<br />
Darauf legen wir ein Ext2-Dateisystem an<br />
# mke2fs -Fq disk.img<br />
<br />
Ein Ordner zum FS mounten<br />
# mkdir root_fs<br />
<br />
"disk.img" nach "root_fs" mounten<br />
# mount -o loop disk.img root_fs<br />
<br />
debootstrap erzeugt in "root_fs" eine Installation von Debian etch<br />
# debootstrap etch root_fs<br />
<br />
Die fstab editieren und die entsprechenden Dateisysteme mit mountpoints eintragen<br />
# vi root_fs/etc/fstab<br />
# /dev/ubd0 / ext2 defaults 0 0<br />
# proc /proc proc defaults 0 0<br />
<br />
Falls nicht vorhanden, die "source.list" erzeugen<br />
# touch /etc/apt/source.list<br />
<br />
====SWAP====<br />
<br />
Eine Swappartition ist optional, muss aber nicht sein.<br />
<br />
swap-Datei erzeugen (doppelte RAM-Groesse)<br />
# dd if=/dev/zero of=swap bs=1024 count=$[2 * 256 * 1024]<br />
<br />
In UML:<br />
# mkswap /dev/ubdb<br />
# swapon /dev/ubdb<br />
<br />
Falls es das ubdb-Device nicht gibt:<br />
# mknod /dev/ubdb b 98 16<br />
<br />
====COW - Copy-On-Write====<br />
<br />
COW ist eine Technik, mit der ein einziges UML-Image von mehreren Instanzen benutzt werden kann. Aenderungen werden dann in eine separate Datei geschrieben.<br />
<br />
====Host-FS====<br />
<br />
Um auf das Host-FS zuzugreifen kann innerhalb von UML folgendes benutzt werden:<br />
# mount none /host -t hostfs<br />
<br />
oder ein einzelnes Verzeichnis (eg. /home/user):<br />
# mount none /host -t hostfs -o /home/user<br />
<br />
===UML starten===<br />
<br />
UML wird wie ein normales Program aufgerufen.<br />
<br />
# ./vmlinux mem=256M ubd0=disk.img ubdb=swap eth0=tuntap,,,IP<br />
<br />
<br />
==Network==<br />
<br />
Zum Netzwerken kommt TUN/TAP zu Einsatz<br />
<br />
===Hostsystem===<br />
<br />
Auf dem Hostsystem sicherstellen, dass TUN/TAP-Support vorhanden ist.<br />
<br />
Das TAP-Device dem Nutzer <uml-user> zuweisen<br />
# tunctl -u <uml-user><br />
<br />
UML im nachhinein (hotplug) eine Netzwerkkarte unterschieben<br />
# uml_mconsole UMID config eth0=tuntap,,,IP<br />
<br />
Wenn UML als non-root gestartet wird, muessen die Netzwerkeinstellungen per Hand gemacht werden:<br />
# ifconfig tap0 192.168.1.16 netmask 255.255.255.255 up<br />
# bash -c echo 1 > /proc/sys/net/ipv4/ip_forward<br />
# route add -host 192.168.1.17 dev tap0<br />
# bash -c echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp<br />
# arp -Ds 192.168.1.17 eth2 pub<br />
<br />
===Guestsystem===<br />
<br />
eth0 mit einer IP im Netzwerk hochfahren<br />
# ifconfig eth0 IP+1 up<br />
<br />
Defaultroute eintragen<br />
# route add default gw IP<br />
<br />
===UML-Switch===<br />
Das Paket "uml-utilities" enthaelt ein Tool uml-switch, mit dem ein virtueller Switch erzeugt wird.<br />
<br />
# uml-switch -tap <tap-device> [-hup] [-unix <file>]<br />
<br />
Das Parameter "-hup" verwandelt den Switch in einen Hub und mit "-unix" kann man die Datei angeben, die der uml-switch benutzen soll, was sinnvoll ist, wenn man mehrere Instanzen startet.<br />
<br />
Dem Switch wird im Hostsystem eine IP aus dem gewuenschten Bereich zugewiesen und kann so auch per NAT ein Weg ins reale Netz bieten.</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung/UML
Openlab 01 - Workshop Virtualisierung/UML
2009-01-22T08:31:08Z
<p>Zim: </p>
<hr />
<div>< [[Openlab 01 - Workshop Virtualisierung]]<br />
<br />
=UML - Usermode Linux=<br />
<br />
==Hostsystem==<br />
<br />
Am Hostsystem muss man keine Aenderungen vornehmen. Aber es gibts zwei Punkte die man erwaehnen sollte.<br />
<br />
===SKAS-Patch===<br />
<br />
Der SKAS3-Patch wird auf den Kernel des Hostsystems angewant und bringt eine deutlich Geschwindigkeitssteigerung.<br />
<br />
# wget http://www.finnie.org/software/uml/2.6.28-skas3.patch<br />
# patch -p0 < 2.6.28-skas3.patch<br />
<br />
===TUN-Device===<br />
<br />
Damit sich das UML-System auch mit der Aussenwelt unterhalten kann, bietet sich eine Anbindung per TAP-Device an. Falls Euer Kernel keine TUN/TAP-Devices unterstuetzt, kann dies unter:<br />
<br />
- Device Drivers -> Network device support -> Universal TUN/TAP device driver support<br />
<br />
aktiviert werden. <br />
<br />
==Guestsystem==<br />
<br />
Das Gastsystem besteht aus zwei Teilen, dem UML-Kernel und einem Dateisystem. UML wird in Linux als eigenstaendige Architektur gehandelt und so ist dies beim compilen mit zu uebergeben.<br />
<br />
===Kernel===<br />
<br />
Den Kernel fuer das Guestsystem kann man aus den gleichen Quellen bauen, wie auch fuer das Hostsystem. Wichtig ist das Parameter "ARCH=um" beim compilen.<br />
<br />
Kernel downloaden<br />
# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2<br />
<br />
Archiv entpacken<br />
# tar xvfj linux-2.6.28.tar.bz2<br />
<br />
evtl. vorhandene vorherige Compilereste loeschen<br />
# make mrproper ARCH=um<br />
<br />
ncurses-menu zur Konfiguration<br />
# make menuconfig ARCH=um<br />
<br />
Den Kernel compilen<br />
# make linux ARCH=um<br />
<br />
Module compilen<br />
# make modules ARCH=um<br />
<br />
Kernel "strippen", 25M -> 2M<br />
# strip vmlinux<br />
<br />
Module in "root_fs" installieren<br />
# make modules_install ARCH=um INSTALL_MOD_PATH=../root_fs<br />
<br />
===Filesystem===<br />
<br />
Als Dateisystem kommt der Einfach halt wegen ext2 zum Einsatz. Mit entsprechendem Support im Kernel kann man natuerlich auch ein anderes FS nehmen.<br />
<br />
Wir erzeugen eine Datei "disk.img" mit der Groesse von 1GB.<br />
# dd if=dev/zero of=disk.img bs=1024 count=$[1024 * 1024]<br />
<br />
Darauf legen wir ein Ext2-Dateisystem an<br />
# mke2fs -Fq disk.img<br />
<br />
Ein Ordner zum FS mounten<br />
# mkdir root_fs<br />
<br />
"disk.img" nach "root_fs" mounten<br />
# mount -o loop disk.img root_fs<br />
<br />
debootstrap erzeugt in "root_fs" eine Installation von Debian etch<br />
# debootstrap etch root_fs<br />
<br />
Die fstab editieren und die entsprechenden Dateisysteme mit mountpoints eintragen<br />
# vi root_fs/etc/fstab<br />
# /dev/ubd0 / ext2 defaults 0 0<br />
# proc /proc proc defaults 0 0<br />
<br />
Falls nicht vorhanden, die "source.list" erzeugen<br />
# touch /etc/apt/source.list<br />
<br />
====SWAP====<br />
<br />
swap-partition erzeugen<br />
<br />
swap-Datei erzeugen (doppelte RAM-Groesse)<br />
# dd if=/dev/zero of=swap bs=1024 count=$[2 * 256 * 1024]<br />
<br />
In UML:<br />
# mkswap /dev/ubdb<br />
# swapon /dev/ubdb<br />
<br />
Falls es das ubdb-Device nicht gibt:<br />
# mknod /dev/ubdb b 98 16<br />
<br />
====COW - Copy-On-Write====<br />
<br />
COW ist eine Technik, mit der ein einziges UML-Image von mehreren Instanzen benutzt werden kann. Aenderungen werden dann in eine separate Datei geschrieben.<br />
<br />
====Host-FS====<br />
<br />
Um auf das Host-FS zuzugreifen kann innerhalb von UML folgendes benutzt werden:<br />
# mount none /host -t hostfs<br />
<br />
oder ein einzelnes Verzeichnis (eg. /home/user):<br />
# mount none /host -t hostfs -o /home/user<br />
<br />
===UML starten===<br />
<br />
UML wird wie ein normales Program aufgerufen.<br />
<br />
# ./vmlinux mem=256M ubd0=disk.img ubdb=swap eth0=tuntap,,,IP<br />
<br />
<br />
==Network==<br />
<br />
Zum Netzwerken kommt TUN/TAP zu Einsatz<br />
<br />
===Hostsystem===<br />
<br />
Auf dem Hostsystem sicherstellen, dass TUN/TAP-Support vorhanden ist.<br />
<br />
Das TAP-Device dem Nutzer <uml-user> zuweisen<br />
# tunctl -u <uml-user><br />
<br />
UML im nachhinein (hotplug) eine Netzwerkkarte unterschieben<br />
# uml_mconsole UMID config eth0=tuntap,,,IP<br />
<br />
Wenn UML als non-root gestartet wird, muessen die Netzwerkeinstellungen per Hand gemacht werden:<br />
# ifconfig tap0 192.168.1.16 netmask 255.255.255.255 up<br />
# bash -c echo 1 > /proc/sys/net/ipv4/ip_forward<br />
# route add -host 192.168.1.17 dev tap0<br />
# bash -c echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp<br />
# arp -Ds 192.168.1.17 eth2 pub<br />
<br />
===Guestsystem===<br />
<br />
eth0 mit einer IP im Netzwerk hochfahren<br />
# ifconfig eth0 IP+1 up<br />
<br />
Defaultroute eintragen<br />
# route add default gw IP<br />
<br />
===UML-Switch===<br />
Das Paket "uml-utilities" enthaelt ein Tool uml-switch, mit dem ein virtueller Switch erzeugt wird.<br />
<br />
# uml-switch -tap <tap-device> [-hup] [-unix <file>]<br />
<br />
Das Parameter "-hup" verwandelt den Switch in einen Hub und mit "-unix" kann man die Datei angeben, die der uml-switch benutzen soll, was sinnvoll ist, wenn man mehrere Instanzen startet.<br />
<br />
Dem Switch wird im Hostsystem eine IP aus dem gewuenschten Bereich zugewiesen und kann so auch per NAT ein Weg ins reale Netz bieten.</div>
Zim
https://wiki.opennet-initiative.de/wiki/Diskussion:Openlab_01_-_Workshop_Virtualisierung
Diskussion:Openlab 01 - Workshop Virtualisierung
2009-01-22T04:31:19Z
<p>Zim: </p>
<hr />
<div>Wir freuen uns über eurer Feedback vor und nach der Veranstaltung. Allgemeines siehe [[:Kategorie:Openlab]].<br />
<br />
=== Infrastruktur ===<br />
<br />
Feedback zur Orga, Örtlichkeit, Ankündigung, Publikum.<br />
<br />
* war top! Strom, Netz, Beamer, Tische und Stuehle, was will man mehr.<br />
<br />
=== Inhalte ===<br />
<br />
Feedback zum Inhalt, Umfang, Fragen/Antworten...<br />
<br />
=== Wünsche ===<br />
<br />
Eure Meinung!? Gut/Schlecht??</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung/UML
Openlab 01 - Workshop Virtualisierung/UML
2009-01-21T16:12:32Z
<p>Zim: non-root-network</p>
<hr />
<div>< [[Openlab 01 - Workshop Virtualisierung]]<br />
<br />
=UML - Usermode Linux=<br />
<br />
==Hostsystem==<br />
<br />
Am Hostsystem muss man keine Aenderungen vornehmen. Aber es gibts zwei Punkte die man erwaehnen sollte.<br />
<br />
===SKAS-Patch===<br />
<br />
Der SKAS3-Patch wird auf den Kernel des Hostsystems angewant und bringt eine deutlich Geschwindigkeitssteigerung.<br />
<br />
# wget http://www.finnie.org/software/uml/2.6.28-skas3.patch<br />
# patch -p0 < 2.6.28-skas3.patch<br />
<br />
===TUN-Device===<br />
<br />
Damit sich das UML-System auch mit der Aussenwelt unterhalten kann, bietet sich eine Anbindung per TAP-Device an. Falls Euer Kernel keine TUN/TAP-Devices unterstuetzt, kann dies unter:<br />
<br />
- Device Drivers -> Network device support -> Universal TUN/TAP device driver support<br />
<br />
aktiviert werden. <br />
<br />
==Guestsystem==<br />
<br />
Das Gastsystem besteht aus zwei Teilen, dem UML-Kernel und einem Dateisystem. UML wird in Linux als eigenstaendige Architektur gehandelt und so ist dies beim compilen mit zu uebergeben.<br />
<br />
===Kernel===<br />
<br />
Den Kernel fuer das Guestsystem kann man aus den gleichen Quellen bauen, wie auch fuer das Hostsystem. Wichtig ist das Parameter "ARCH=um" beim compilen.<br />
<br />
Kernel downloaden<br />
# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2<br />
<br />
Archiv entpacken<br />
# tar xvfj linux-2.6.28.tar.bz2<br />
<br />
evtl. vorhandene vorherige Compilereste loeschen<br />
# make mrproper ARCH=um<br />
<br />
ncurses-menu zur Konfiguration<br />
# make menuconfig ARCH=um<br />
<br />
Den Kernel compilen<br />
# make linux ARCH=um<br />
<br />
Module compilen<br />
# make modules ARCH=um<br />
<br />
Kernel "strippen", 25M -> 2M<br />
# strip vmlinux<br />
<br />
Module in "root_fs" installieren<br />
# make modules_install ARCH=um INSTALL_MOD_PATH=../root_fs<br />
<br />
===Filesystem===<br />
<br />
Als Dateisystem kommt der Einfach halt wegen ext2 zum Einsatz. Mit entsprechendem Support im Kernel kann man natuerlich auch ein anderes FS nehmen.<br />
<br />
Wir erzeugen eine Datei "disk.img" mit der Groesse von 1GB.<br />
# dd if=dev/zero of=disk.img bs=1024 count=$[1024 * 1024]<br />
<br />
Darauf legen wir ein Ext2-Dateisystem an<br />
# mke2fs -Fq disk.img<br />
<br />
Ein Ordner zum FS mounten<br />
# mkdir root_fs<br />
<br />
"disk.img" nach "root_fs" mounten<br />
# mount -o loop disk.img root_fs<br />
<br />
debootstrap erzeugt in "root_fs" eine Installation von Debian etch<br />
# debootstrap etch root_fs<br />
<br />
Die fstab editieren und die entsprechenden Dateisysteme mit mountpoints eintragen<br />
# vi root_fs/etc/fstab<br />
# /dev/ubd0 / ext2 defaults 0 0<br />
# proc /proc proc defaults 0 0<br />
<br />
Falls nicht vorhanden, die "source.list" erzeugen<br />
# touch /etc/apt/source.list<br />
<br />
====SWAP====<br />
<br />
swap-partition erzeugen<br />
<br />
swap-Datei erzeugen (doppelte RAM-Groesse)<br />
# dd if=/dev/zero of=swap bs=1024 count=$[2 * 256 * 1024]<br />
<br />
In UML:<br />
# mkswap /dev/ubdb<br />
# swapon /dev/ubdb<br />
<br />
Falls es das ubdb-Device nicht gibt:<br />
# mknod /dev/ubdb b 98 16<br />
<br />
====COW - Copy-On-Write====<br />
<br />
COW ist eine Technik, mit der ein einziges UML-Image von mehreren Instanzen benutzt werden kann. Aenderungen werden dann in eine separate Datei geschrieben.<br />
<br />
====Host-FS====<br />
<br />
Um auf das Host-FS zuzugreifen kann innerhalb von UML folgendes benutzt werden:<br />
# mount none /host -t hostfs<br />
<br />
oder ein einzelnes Verzeichnis (eg. /home/user):<br />
# mount none /host -t hostfs -o /home/user<br />
<br />
===UML starten===<br />
<br />
UML wird wie ein normales Program aufgerufen.<br />
<br />
# ./vmlinux mem=256M ubd0=disk.img ubdb=swap eth0=tuntap,,,IP<br />
<br />
<br />
==Network==<br />
<br />
Zum Netzwerken kommt TUN/TAP zu Einsatz<br />
<br />
===Hostsystem===<br />
<br />
Auf dem Hostsystem sicherstellen, dass TUN/TAP-Support vorhanden ist.<br />
<br />
Das TAP-Device dem Nutzer <uml-user> zuweisen<br />
# tunctl -u <uml-user><br />
<br />
UML im nachhinein (hotplug) eine Netzwerkkarte unterschieben<br />
# uml_mconsole UMID config eth0=tuntap,,,IP<br />
<br />
Wenn UML als non-root gestartet wird, muessen die Netzwerkeinstellungen per Hand gemacht werden:<br />
# ifconfig tap0 192.168.1.16 netmask 255.255.255.255 up<br />
# bash -c echo 1 > /proc/sys/net/ipv4/ip_forward<br />
# route add -host 192.168.1.17 dev tap0<br />
# bash -c echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp<br />
# arp -Ds 192.168.1.17 eth2 pub<br />
<br />
===Guestsystem===<br />
<br />
eth0 mit einer IP im Netzwerk hochfahren<br />
# ifconfig eth0 IP+1 up<br />
<br />
Defaultroute eintragen<br />
# route add default gw IP</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung/UML
Openlab 01 - Workshop Virtualisierung/UML
2009-01-21T15:13:19Z
<p>Zim: host-fs mounten</p>
<hr />
<div>< [[Openlab 01 - Workshop Virtualisierung]]<br />
<br />
=UML - Usermode Linux=<br />
<br />
==Hostsystem==<br />
<br />
Am Hostsystem muss man keine Aenderungen vornehmen. Aber es gibts zwei Punkte die man erwaehnen sollte.<br />
<br />
===SKAS-Patch===<br />
<br />
Der SKAS3-Patch wird auf den Kernel des Hostsystems angewant und bringt eine deutlich Geschwindigkeitssteigerung.<br />
<br />
# wget http://www.finnie.org/software/uml/2.6.28-skas3.patch<br />
# patch -p0 < 2.6.28-skas3.patch<br />
<br />
===TUN-Device===<br />
<br />
Damit sich das UML-System auch mit der Aussenwelt unterhalten kann, bietet sich eine Anbindung per TAP-Device an. Falls Euer Kernel keine TUN/TAP-Devices unterstuetzt, kann dies unter:<br />
<br />
- Device Drivers -> Network device support -> Universal TUN/TAP device driver support<br />
<br />
aktiviert werden. <br />
<br />
==Guestsystem==<br />
<br />
Das Gastsystem besteht aus zwei Teilen, dem UML-Kernel und einem Dateisystem. UML wird in Linux als eigenstaendige Architektur gehandelt und so ist dies beim compilen mit zu uebergeben.<br />
<br />
===Kernel===<br />
<br />
Den Kernel fuer das Guestsystem kann man aus den gleichen Quellen bauen, wie auch fuer das Hostsystem. Wichtig ist das Parameter "ARCH=um" beim compilen.<br />
<br />
Kernel downloaden<br />
# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2<br />
<br />
Archiv entpacken<br />
# tar xvfj linux-2.6.28.tar.bz2<br />
<br />
evtl. vorhandene vorherige Compilereste loeschen<br />
# make mrproper ARCH=um<br />
<br />
ncurses-menu zur Konfiguration<br />
# make menuconfig ARCH=um<br />
<br />
Den Kernel compilen<br />
# make linux ARCH=um<br />
<br />
Module compilen<br />
# make modules ARCH=um<br />
<br />
Kernel "strippen", 25M -> 2M<br />
# strip vmlinux<br />
<br />
Module in "root_fs" installieren<br />
# make modules_install ARCH=um INSTALL_MOD_PATH=../root_fs<br />
<br />
===Filesystem===<br />
<br />
Als Dateisystem kommt der Einfach halt wegen ext2 zum Einsatz. Mit entsprechendem Support im Kernel kann man natuerlich auch ein anderes FS nehmen.<br />
<br />
Wir erzeugen eine Datei "disk.img" mit der Groesse von 1GB.<br />
# dd if=dev/zero of=disk.img bs=1024 count=$[1024 * 1024]<br />
<br />
Darauf legen wir ein Ext2-Dateisystem an<br />
# mke2fs -Fq disk.img<br />
<br />
Ein Ordner zum FS mounten<br />
# mkdir root_fs<br />
<br />
"disk.img" nach "root_fs" mounten<br />
# mount -o loop disk.img root_fs<br />
<br />
debootstrap erzeugt in "root_fs" eine Installation von Debian etch<br />
# debootstrap etch root_fs<br />
<br />
Die fstab editieren und die entsprechenden Dateisysteme mit mountpoints eintragen<br />
# vi root_fs/etc/fstab<br />
# /dev/ubd0 / ext2 defaults 0 0<br />
# proc /proc proc defaults 0 0<br />
<br />
Falls nicht vorhanden, die "source.list" erzeugen<br />
# touch /etc/apt/source.list<br />
<br />
====SWAP====<br />
<br />
swap-partition erzeugen<br />
<br />
swap-Datei erzeugen (doppelte RAM-Groesse)<br />
# dd if=/dev/zero of=swap bs=1024 count=$[2 * 256 * 1024]<br />
<br />
In UML:<br />
# mkswap /dev/ubdb<br />
# swapon /dev/ubdb<br />
<br />
Falls es das ubdb-Device nicht gibt:<br />
# mknod /dev/ubdb b 98 16<br />
<br />
====COW - Copy-On-Write====<br />
<br />
COW ist eine Technik, mit der ein einziges UML-Image von mehreren Instanzen benutzt werden kann. Aenderungen werden dann in eine separate Datei geschrieben.<br />
<br />
====Host-FS====<br />
<br />
Um auf das Host-FS zuzugreifen kann innerhalb von UML folgendes benutzt werden:<br />
# mount none /host -t hostfs<br />
<br />
oder ein einzelnes Verzeichnis (eg. /home/user):<br />
# mount none /host -t hostfs -o /home/user<br />
<br />
===UML starten===<br />
<br />
UML wird wie ein normales Program aufgerufen.<br />
<br />
# ./vmlinux mem=256M ubd0=disk.img ubdb=swap eth0=tuntap,,,IP<br />
<br />
<br />
==Network==<br />
<br />
Zum Netzwerken kommt TUN/TAP zu Einsatz<br />
<br />
===Hostsystem===<br />
<br />
Auf dem Hostsystem sicherstellen, dass TUN/TAP-Support vorhanden ist.<br />
<br />
Das TAP-Device dem Nutzer <uml-user> zuweisen<br />
# tunctl -u <uml-user><br />
<br />
UML im nachhinein (hotplug) eine Netzwerkkarte unterschieben<br />
# uml_mconsole UMID config eth0=tuntap,,,IP<br />
<br />
===Guestsystem===<br />
<br />
eth0 mit einer IP im Netzwerk hochfahren<br />
# ifconfig eth0 IP+1 up<br />
<br />
Defaultroute eintragen<br />
# route add default gw IP</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung/UML
Openlab 01 - Workshop Virtualisierung/UML
2009-01-21T15:10:37Z
<p>Zim: notiz zu strip</p>
<hr />
<div>< [[Openlab 01 - Workshop Virtualisierung]]<br />
<br />
=UML - Usermode Linux=<br />
<br />
==Hostsystem==<br />
<br />
Am Hostsystem muss man keine Aenderungen vornehmen. Aber es gibts zwei Punkte die man erwaehnen sollte.<br />
<br />
===SKAS-Patch===<br />
<br />
Der SKAS3-Patch wird auf den Kernel des Hostsystems angewant und bringt eine deutlich Geschwindigkeitssteigerung.<br />
<br />
# wget http://www.finnie.org/software/uml/2.6.28-skas3.patch<br />
# patch -p0 < 2.6.28-skas3.patch<br />
<br />
===TUN-Device===<br />
<br />
Damit sich das UML-System auch mit der Aussenwelt unterhalten kann, bietet sich eine Anbindung per TAP-Device an. Falls Euer Kernel keine TUN/TAP-Devices unterstuetzt, kann dies unter:<br />
<br />
- Device Drivers -> Network device support -> Universal TUN/TAP device driver support<br />
<br />
aktiviert werden. <br />
<br />
==Guestsystem==<br />
<br />
Das Gastsystem besteht aus zwei Teilen, dem UML-Kernel und einem Dateisystem. UML wird in Linux als eigenstaendige Architektur gehandelt und so ist dies beim compilen mit zu uebergeben.<br />
<br />
===Kernel===<br />
<br />
Den Kernel fuer das Guestsystem kann man aus den gleichen Quellen bauen, wie auch fuer das Hostsystem. Wichtig ist das Parameter "ARCH=um" beim compilen.<br />
<br />
Kernel downloaden<br />
# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2<br />
<br />
Archiv entpacken<br />
# tar xvfj linux-2.6.28.tar.bz2<br />
<br />
evtl. vorhandene vorherige Compilereste loeschen<br />
# make mrproper ARCH=um<br />
<br />
ncurses-menu zur Konfiguration<br />
# make menuconfig ARCH=um<br />
<br />
Den Kernel compilen<br />
# make linux ARCH=um<br />
<br />
Module compilen<br />
# make modules ARCH=um<br />
<br />
Kernel "strippen", 25M -> 2M<br />
# strip vmlinux<br />
<br />
Module in "root_fs" installieren<br />
# make modules_install ARCH=um INSTALL_MOD_PATH=../root_fs<br />
<br />
===Filesystem===<br />
<br />
Als Dateisystem kommt der Einfach halt wegen ext2 zum Einsatz. Mit entsprechendem Support im Kernel kann man natuerlich auch ein anderes FS nehmen.<br />
<br />
Wir erzeugen eine Datei "disk.img" mit der Groesse von 1GB.<br />
# dd if=dev/zero of=disk.img bs=1024 count=$[1024 * 1024]<br />
<br />
Darauf legen wir ein Ext2-Dateisystem an<br />
# mke2fs -Fq disk.img<br />
<br />
Ein Ordner zum FS mounten<br />
# mkdir root_fs<br />
<br />
"disk.img" nach "root_fs" mounten<br />
# mount -o loop disk.img root_fs<br />
<br />
debootstrap erzeugt in "root_fs" eine Installation von Debian etch<br />
# debootstrap etch root_fs<br />
<br />
Die fstab editieren und die entsprechenden Dateisysteme mit mountpoints eintragen<br />
# vi root_fs/etc/fstab<br />
# /dev/ubd0 / ext2 defaults 0 0<br />
# proc /proc proc defaults 0 0<br />
<br />
Falls nicht vorhanden, die "source.list" erzeugen<br />
# touch /etc/apt/source.list<br />
<br />
====SWAP====<br />
<br />
swap-partition erzeugen<br />
<br />
swap-Datei erzeugen (doppelte RAM-Groesse)<br />
# dd if=/dev/zero of=swap bs=1024 count=$[2 * 256 * 1024]<br />
<br />
In UML:<br />
# mkswap /dev/ubdb<br />
# swapon /dev/ubdb<br />
<br />
Falls es das ubdb-Device nicht gibt:<br />
# mknod /dev/ubdb b 98 16<br />
<br />
====COW - Copy-On-Write====<br />
<br />
COW ist eine Technik, mit der ein einziges UML-Image von mehreren Instanzen benutzt werden kann. Aenderungen werden dann in eine separate Datei geschrieben.<br />
<br />
===UML starten===<br />
<br />
UML wird wie ein normales Program aufgerufen.<br />
<br />
# ./vmlinux mem=256M ubd0=disk.img ubdb=swap eth0=tuntap,,,IP<br />
<br />
<br />
==Network==<br />
<br />
Zum Netzwerken kommt TUN/TAP zu Einsatz<br />
<br />
===Hostsystem===<br />
<br />
Auf dem Hostsystem sicherstellen, dass TUN/TAP-Support vorhanden ist.<br />
<br />
Das TAP-Device dem Nutzer <uml-user> zuweisen<br />
# tunctl -u <uml-user><br />
<br />
UML im nachhinein (hotplug) eine Netzwerkkarte unterschieben<br />
# uml_mconsole UMID config eth0=tuntap,,,IP<br />
<br />
===Guestsystem===<br />
<br />
eth0 mit einer IP im Netzwerk hochfahren<br />
# ifconfig eth0 IP+1 up<br />
<br />
Defaultroute eintragen<br />
# route add default gw IP</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung/UML
Openlab 01 - Workshop Virtualisierung/UML
2009-01-21T14:26:05Z
<p>Zim: COW</p>
<hr />
<div>< [[Openlab 01 - Workshop Virtualisierung]]<br />
<br />
=UML - Usermode Linux=<br />
<br />
==Hostsystem==<br />
<br />
Am Hostsystem muss man keine Aenderungen vornehmen. Aber es gibts zwei Punkte die man erwaehnen sollte.<br />
<br />
===SKAS-Patch===<br />
<br />
Der SKAS3-Patch wird auf den Kernel des Hostsystems angewant und bringt eine deutlich Geschwindigkeitssteigerung.<br />
<br />
# wget http://www.finnie.org/software/uml/2.6.28-skas3.patch<br />
# patch -p0 < 2.6.28-skas3.patch<br />
<br />
===TUN-Device===<br />
<br />
Damit sich das UML-System auch mit der Aussenwelt unterhalten kann, bietet sich eine Anbindung per TAP-Device an. Falls Euer Kernel keine TUN/TAP-Devices unterstuetzt, kann dies unter:<br />
<br />
- Device Drivers -> Network device support -> Universal TUN/TAP device driver support<br />
<br />
aktiviert werden. <br />
<br />
==Guestsystem==<br />
<br />
Das Gastsystem besteht aus zwei Teilen, dem UML-Kernel und einem Dateisystem. UML wird in Linux als eigenstaendige Architektur gehandelt und so ist dies beim compilen mit zu uebergeben.<br />
<br />
===Kernel===<br />
<br />
Den Kernel fuer das Guestsystem kann man aus den gleichen Quellen bauen, wie auch fuer das Hostsystem. Wichtig ist das Parameter "ARCH=um" beim compilen.<br />
<br />
Kernel downloaden<br />
# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2<br />
<br />
Archiv entpacken<br />
# tar xvfj linux-2.6.28.tar.bz2<br />
<br />
evtl. vorhandene vorherige Compilereste loeschen<br />
# make mrproper ARCH=um<br />
<br />
ncurses-menu zur Konfiguration<br />
# make menuconfig ARCH=um<br />
<br />
Den Kernel compilen<br />
# make linux ARCH=um<br />
<br />
Module compilen<br />
# make modules ARCH=um<br />
<br />
Kernel "strippen"<br />
# strip vmlinux<br />
<br />
Module in "root_fs" installieren<br />
# make modules_install ARCH=um INSTALL_MOD_PATH=../root_fs<br />
<br />
===Filesystem===<br />
<br />
Als Dateisystem kommt der Einfach halt wegen ext2 zum Einsatz. Mit entsprechendem Support im Kernel kann man natuerlich auch ein anderes FS nehmen.<br />
<br />
Wir erzeugen eine Datei "disk.img" mit der Groesse von 1GB.<br />
# dd if=dev/zero of=disk.img bs=1024 count=$[1024 * 1024]<br />
<br />
Darauf legen wir ein Ext2-Dateisystem an<br />
# mke2fs -Fq disk.img<br />
<br />
Ein Ordner zum FS mounten<br />
# mkdir root_fs<br />
<br />
"disk.img" nach "root_fs" mounten<br />
# mount -o loop disk.img root_fs<br />
<br />
debootstrap erzeugt in "root_fs" eine Installation von Debian etch<br />
# debootstrap etch root_fs<br />
<br />
Die fstab editieren und die entsprechenden Dateisysteme mit mountpoints eintragen<br />
# vi root_fs/etc/fstab<br />
# /dev/ubd0 / ext2 defaults 0 0<br />
# proc /proc proc defaults 0 0<br />
<br />
Falls nicht vorhanden, die "source.list" erzeugen<br />
# touch /etc/apt/source.list<br />
<br />
====SWAP====<br />
<br />
swap-partition erzeugen<br />
<br />
swap-Datei erzeugen (doppelte RAM-Groesse)<br />
# dd if=/dev/zero of=swap bs=1024 count=$[2 * 256 * 1024]<br />
<br />
In UML:<br />
# mkswap /dev/ubdb<br />
# swapon /dev/ubdb<br />
<br />
Falls es das ubdb-Device nicht gibt:<br />
# mknod /dev/ubdb b 98 16<br />
<br />
====COW - Copy-On-Write====<br />
<br />
COW ist eine Technik, mit der ein einziges UML-Image von mehreren Instanzen benutzt werden kann. Aenderungen werden dann in eine separate Datei geschrieben.<br />
<br />
===UML starten===<br />
<br />
UML wird wie ein normales Program aufgerufen.<br />
<br />
# ./vmlinux mem=256M ubd0=disk.img ubdb=swap eth0=tuntap,,,IP<br />
<br />
<br />
==Network==<br />
<br />
Zum Netzwerken kommt TUN/TAP zu Einsatz<br />
<br />
===Hostsystem===<br />
<br />
Auf dem Hostsystem sicherstellen, dass TUN/TAP-Support vorhanden ist.<br />
<br />
Das TAP-Device dem Nutzer <uml-user> zuweisen<br />
# tunctl -u <uml-user><br />
<br />
UML im nachhinein (hotplug) eine Netzwerkkarte unterschieben<br />
# uml_mconsole UMID config eth0=tuntap,,,IP<br />
<br />
===Guestsystem===<br />
<br />
eth0 mit einer IP im Netzwerk hochfahren<br />
# ifconfig eth0 IP+1 up<br />
<br />
Defaultroute eintragen<br />
# route add default gw IP</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung/UML
Openlab 01 - Workshop Virtualisierung/UML
2009-01-21T14:17:56Z
<p>Zim: </p>
<hr />
<div>< [[Openlab 01 - Workshop Virtualisierung]]<br />
<br />
=UML - Usermode Linux=<br />
<br />
==Hostsystem==<br />
<br />
Am Hostsystem muss man keine Aenderungen vornehmen. Aber es gibts zwei Punkte die man erwaehnen sollte.<br />
<br />
===SKAS-Patch===<br />
<br />
Der SKAS3-Patch wird auf den Kernel des Hostsystems angewant und bringt eine deutlich Geschwindigkeitssteigerung.<br />
<br />
# wget http://www.finnie.org/software/uml/2.6.28-skas3.patch<br />
# patch -p0 < 2.6.28-skas3.patch<br />
<br />
===TUN-Device===<br />
<br />
Damit sich das UML-System auch mit der Aussenwelt unterhalten kann, bietet sich eine Anbindung per TAP-Device an. Falls Euer Kernel keine TUN/TAP-Devices unterstuetzt, kann dies unter:<br />
<br />
- Device Drivers -> Network device support -> Universal TUN/TAP device driver support<br />
<br />
aktiviert werden. <br />
<br />
==Guestsystem==<br />
<br />
Das Gastsystem besteht aus zwei Teilen, dem UML-Kernel und einem Dateisystem. UML wird in Linux als eigenstaendige Architektur gehandelt und so ist dies beim compilen mit zu uebergeben.<br />
<br />
===Kernel===<br />
<br />
Den Kernel fuer das Guestsystem kann man aus den gleichen Quellen bauen, wie auch fuer das Hostsystem. Wichtig ist das Parameter "ARCH=um" beim compilen.<br />
<br />
Kernel downloaden<br />
# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2<br />
<br />
Archiv entpacken<br />
# tar xvfj linux-2.6.28.tar.bz2<br />
<br />
evtl. vorhandene vorherige Compilereste loeschen<br />
# make mrproper ARCH=um<br />
<br />
ncurses-menu zur Konfiguration<br />
# make menuconfig ARCH=um<br />
<br />
Den Kernel compilen<br />
# make linux ARCH=um<br />
<br />
Module compilen<br />
# make modules ARCH=um<br />
<br />
Kernel "strippen"<br />
# strip vmlinux<br />
<br />
Module in "root_fs" installieren<br />
# make modules_install ARCH=um INSTALL_MOD_PATH=../root_fs<br />
<br />
===Filesystem===<br />
<br />
Als Dateisystem kommt der Einfach halt wegen ext2 zum Einsatz. Mit entsprechendem Support im Kernel kann man natuerlich auch ein anderes FS nehmen.<br />
<br />
Wir erzeugen eine Datei "disk.img" mit der Groesse von 1GB.<br />
# dd if=dev/zero of=disk.img bs=1024 count=$[1024 * 1024]<br />
<br />
Darauf legen wir ein Ext2-Dateisystem an<br />
# mke2fs -Fq disk.img<br />
<br />
Ein Ordner zum FS mounten<br />
# mkdir root_fs<br />
<br />
"disk.img" nach "root_fs" mounten<br />
# mount -o loop disk.img root_fs<br />
<br />
debootstrap erzeugt in "root_fs" eine Installation von Debian etch<br />
# debootstrap etch root_fs<br />
<br />
Die fstab editieren und die entsprechenden Dateisysteme mit mountpoints eintragen<br />
# vi root_fs/etc/fstab<br />
# /dev/ubd0 / ext2 defaults 0 0<br />
# proc /proc proc defaults 0 0<br />
<br />
Falls nicht vorhanden, die "source.list" erzeugen<br />
# touch /etc/apt/source.list<br />
<br />
====SWAP====<br />
<br />
swap-partition erzeugen<br />
<br />
swap-Datei erzeugen (doppelte RAM-Groesse)<br />
# dd if=/dev/zero of=swap bs=1024 count=$[2 * 256 * 1024]<br />
<br />
In UML:<br />
# mkswap /dev/ubdb<br />
# swapon /dev/ubdb<br />
<br />
Falls es das ubdb-Device nicht gibt:<br />
# mknod /dev/ubdb b 98 16<br />
<br />
===UML starten===<br />
<br />
UML wird wie ein normales Program aufgerufen.<br />
<br />
# ./vmlinux mem=256M ubd0=disk.img ubdb=swap eth0=tuntap,,,IP<br />
<br />
<br />
==Network==<br />
<br />
Zum Netzwerken kommt TUN/TAP zu Einsatz<br />
<br />
===Hostsystem===<br />
<br />
Auf dem Hostsystem sicherstellen, dass TUN/TAP-Support vorhanden ist.<br />
<br />
Das TAP-Device dem Nutzer <uml-user> zuweisen<br />
# tunctl -u <uml-user><br />
<br />
UML im nachhinein (hotplug) eine Netzwerkkarte unterschieben<br />
# uml_mconsole UMID config eth0=tuntap,,,IP<br />
<br />
===Guestsystem===<br />
<br />
eth0 mit einer IP im Netzwerk hochfahren<br />
# ifconfig eth0 IP+1 up<br />
<br />
Defaultroute eintragen<br />
# route add default gw IP</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung/UML
Openlab 01 - Workshop Virtualisierung/UML
2009-01-21T14:08:44Z
<p>Zim: uml starten</p>
<hr />
<div>=UML - Usermode Linux=<br />
<br />
==Hostsystem==<br />
<br />
Am Hostsystem muss man keine Aenderungen vornehmen. Aber es gibts zwei Punkte die man erwaehnen sollte.<br />
<br />
===SKAS-Patch===<br />
<br />
Der SKAS3-Patch wird auf den Kernel des Hostsystems angewant und bringt eine deutlich Geschwindigkeitssteigerung.<br />
<br />
# wget http://www.finnie.org/software/uml/2.6.28-skas3.patch<br />
# patch -p0 < 2.6.28-skas3.patch<br />
<br />
===TUN-Device===<br />
<br />
Damit sich das UML-System auch mit der Aussenwelt unterhalten kann, bietet sich eine Anbindung per TAP-Device an. Falls Euer Kernel keine TUN/TAP-Devices unterstuetzt, kann dies unter:<br />
<br />
- Device Drivers -> Network device support -> Universal TUN/TAP device driver support<br />
<br />
aktiviert werden. <br />
<br />
==Guestsystem==<br />
<br />
Das Gastsystem besteht aus zwei Teilen, dem UML-Kernel und einem Dateisystem. UML wird in Linux als eigenstaendige Architektur gehandelt und so ist dies beim compilen mit zu uebergeben.<br />
<br />
===Kernel===<br />
<br />
Den Kernel fuer das Guestsystem kann man aus den gleichen Quellen bauen, wie auch fuer das Hostsystem. Wichtig ist das Parameter "ARCH=um" beim compilen.<br />
<br />
Kernel downloaden<br />
# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2<br />
<br />
Archiv entpacken<br />
# tar xvfj linux-2.6.28.tar.bz2<br />
<br />
evtl. vorhandene vorherige Compilereste loeschen<br />
# make mrproper ARCH=um<br />
<br />
ncurses-menu zur Konfiguration<br />
# make menuconfig ARCH=um<br />
<br />
Den Kernel compilen<br />
# make linux ARCH=um<br />
<br />
Module compilen<br />
# make modules ARCH=um<br />
<br />
Kernel "strippen"<br />
# strip vmlinux<br />
<br />
Module in "root_fs" installieren<br />
# make modules_install ARCH=um INSTALL_MOD_PATH=../root_fs<br />
<br />
===Filesystem===<br />
<br />
Als Dateisystem kommt der Einfach halt wegen ext2 zum Einsatz. Mit entsprechendem Support im Kernel kann man natuerlich auch ein anderes FS nehmen.<br />
<br />
Wir erzeugen eine Datei "disk.img" mit der Groesse von 1GB.<br />
# dd if=dev/zero of=disk.img bs=1024 count=$[1024 * 1024]<br />
<br />
Darauf legen wir ein Ext2-Dateisystem an<br />
# mke2fs -Fq disk.img<br />
<br />
Ein Ordner zum FS mounten<br />
# mkdir root_fs<br />
<br />
"disk.img" nach "root_fs" mounten<br />
# mount -o loop disk.img root_fs<br />
<br />
debootstrap erzeugt in "root_fs" eine Installation von Debian etch<br />
# debootstrap etch root_fs<br />
<br />
Die fstab editieren und die entsprechenden Dateisysteme mit mountpoints eintragen<br />
# vi root_fs/etc/fstab<br />
# /dev/ubd0 / ext2 defaults 0 0<br />
# proc /proc proc defaults 0 0<br />
<br />
Falls nicht vorhanden, die "source.list" erzeugen<br />
# touch /etc/apt/source.list<br />
<br />
===UML starten===<br />
<br />
UML wird wie ein normales Program aufgerufen.<br />
<br />
# ./vmlinux mem=256M ubd0=disk.img ubdb=swap eth0=tuntap,,,IP<br />
<br />
<br />
==Network==<br />
<br />
Zum Netzwerken kommt TUN/TAP zu Einsatz<br />
<br />
===Hostsystem===<br />
<br />
Auf dem Hostsystem sicherstellen, dass TUN/TAP-Support vorhanden ist.<br />
<br />
Das TAP-Device dem Nutzer <uml-user> zuweisen<br />
# tunctl -u <uml-user><br />
<br />
UML im nachhinein (hotplug) eine Netzwerkkarte unterschieben<br />
# uml_mconsole UMID config eth0=tuntap,,,IP<br />
<br />
===Guestsystem===<br />
<br />
eth0 mit einer IP im Netzwerk hochfahren<br />
# ifconfig eth0 IP+1 up<br />
<br />
Defaultroute eintragen<br />
# route add default gw IP</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung/UML
Openlab 01 - Workshop Virtualisierung/UML
2009-01-21T13:57:59Z
<p>Zim: Beschreigungen</p>
<hr />
<div>=UML - Usermode Linux=<br />
<br />
==Hostsystem==<br />
<br />
Am Hostsystem muss man keine Aenderungen vornehmen. Aber es gibts zwei Punkte die man erwaehnen sollte.<br />
<br />
===SKAS-Patch===<br />
<br />
Der SKAS3-Patch wird auf den Kernel des Hostsystems angewant und bringt eine deutlich Geschwindigkeitssteigerung.<br />
<br />
# wget http://www.finnie.org/software/uml/2.6.28-skas3.patch<br />
# patch -p0 < 2.6.28-skas3.patch<br />
<br />
===TUN-Device===<br />
<br />
Damit sich das UML-System auch mit der Aussenwelt unterhalten kann, bietet sich eine Anbindung per TAP-Device an. Falls Euer Kernel keine TUN/TAP-Devices unterstuetzt, kann dies unter:<br />
<br />
- Device Drivers -> Network device support -> Universal TUN/TAP device driver support<br />
<br />
aktiviert werden. <br />
<br />
==Guestsystem==<br />
<br />
Das Gastsystem besteht aus zwei Teilen, dem UML-Kernel und einem Dateisystem. UML wird in Linux als eigenstaendige Architektur gehandelt und so ist dies beim compilen mit zu uebergeben.<br />
<br />
===Kernel===<br />
<br />
Den Kernel fuer das Guestsystem kann man aus den gleichen Quellen bauen, wie auch fuer das Hostsystem. Wichtig ist das Parameter "ARCH=um" beim compilen.<br />
<br />
Kernel downloaden<br />
# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2<br />
<br />
Archiv entpacken<br />
# tar xvfj linux-2.6.28.tar.bz2<br />
<br />
evtl. vorhandene vorherige Compilereste loeschen<br />
# make mrproper ARCH=um<br />
<br />
ncurses-menu zur Konfiguration<br />
# make menuconfig ARCH=um<br />
<br />
Den Kernel compilen<br />
# make linux ARCH=um<br />
<br />
Module compilen<br />
# make modules ARCH=um<br />
<br />
Kernel "strippen"<br />
# strip vmlinux<br />
<br />
Module in "root_fs" installieren<br />
# make modules_install ARCH=um INSTALL_MOD_PATH=../root_fs<br />
<br />
===Filesystem===<br />
<br />
Als Dateisystem kommt der Einfach halt wegen ext2 zum Einsatz. Mit entsprechendem Support im Kernel kann man natuerlich auch ein anderes FS nehmen.<br />
<br />
Wir erzeugen eine Datei "disk.img" mit der Groesse von 1GB.<br />
# dd if=dev/zero of=disk.img bs=1024 count=$[1024 * 1024]<br />
<br />
Darauf legen wir ein Ext2-Dateisystem an<br />
# mke2fs -Fq disk.img<br />
<br />
Ein Ordner zum FS mounten<br />
# mkdir root_fs<br />
<br />
"disk.img" nach "root_fs" mounten<br />
# mount -o loop disk.img root_fs<br />
<br />
debootstrap erzeugt in "root_fs" eine Installation von Debian etch<br />
# debootstrap etch root_fs<br />
<br />
Die fstab editieren und die entsprechenden Dateisysteme mit mountpoints eintragen<br />
# vi root_fs/etc/fstab<br />
# /dev/ubd0 / ext2 defaults 0 0<br />
# proc /proc proc defaults 0 0<br />
<br />
Falls nicht vorhanden, die "source.list" erzeugen<br />
# touch /etc/apt/source.list<br />
<br />
<br />
==Network==<br />
<br />
Zum Netzwerken kommt TUN/TAP zu Einsatz<br />
<br />
===Hostsystem===<br />
<br />
Auf dem Hostsystem sicherstellen, dass TUN/TAP-Support vorhanden ist.<br />
<br />
Das TAP-Device dem Nutzer <uml-user> zuweisen<br />
# tunctl -u <uml-user><br />
<br />
UML im nachhinein (hotplug) eine Netzwerkkarte unterschieben<br />
# uml_mconsole UMID config eth0=tuntap,,,IP<br />
<br />
===Guestsystem===<br />
<br />
eth0 mit einer IP im Netzwerk hochfahren<br />
# ifconfig eth0 IP+1 up<br />
<br />
Defaultroute eintragen<br />
# route add default gw IP</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung/UML
Openlab 01 - Workshop Virtualisierung/UML
2009-01-21T13:43:16Z
<p>Zim: </p>
<hr />
<div>=UML - Usermode Linux=<br />
<br />
==Hostsystem==<br />
<br />
===SKAS-Patch===<br />
# wget http://www.finnie.org/software/uml/2.6.28-skas3.patch<br />
# patch -p0 < 2.6.28-skas3.patch<br />
<br />
===TUN-Device===<br />
<br />
Device Drivers -> Network device support -> Universal TUN/TAP device driver support<br />
<br />
==Guestsystem==<br />
<br />
===Kernel===<br />
# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2<br />
# tar xvfj linux-2.6.28.tar.bz2<br />
# make mrproper ARCH=um<br />
# make menuconfig ARCH=um<br />
# make linux ARCH=um<br />
# make modules ARCH=um<br />
# strip vmlinux<br />
# make modules_install ARCH=um INSTALL_MOD_PATH=../root_fs<br />
===Filesystem===<br />
# dd if=dev/zero of=disk.img bs=1024 count=$[1024 * 1024]<br />
# mke2fs -Fq disk.img<br />
# mkdir root_fs<br />
# mount -o loop disk.img root_fs<br />
# debootstrap etch root_fs<br />
# vi root_fs/etc/fstab<br />
# /dev/ubd0 / ext2 defaults 0 0<br />
# proc /proc proc defaults 0 0<br />
# touch /etc/apt/source.list<br />
<br />
<br />
==Network==<br />
<br />
===Hostsystem===<br />
# tunctl -u <uml-user><br />
# uml_mconsole UMID config eth0=tuntap,,,IP<br />
===Guestsystem===<br />
# ifconfig eth0 IP+1 up<br />
# route add default gw IP</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung
Openlab 01 - Workshop Virtualisierung
2009-01-20T19:56:12Z
<p>Zim: /* Anmeldung */</p>
<hr />
<div>Wir möchten dich herzlich zum Openlab #1 einladen!<br />
<br />
== Openlab ==<br />
<br />
'''Idee''': Gemeinsames offenes Treffen für alle Interessierten, unabhängig von Opennet oder sonstiger Gruppenzugehörigkeit. Offene Plattform für Alle mit Affinität zu IT, Technik, Hacking gepaart mit Sozialem, Politisches und alles was sich ergibt. Einsteigergeeignet.<br />
<br />
'''Zukünftige Themen''': Vorschläge unter [[:Kategorie:Openlab]]<br />
<br />
== Workshop "Virtualisierung" ==<br />
<br />
'''Thema''': Erfahrungsaustausch zum Thema Server- und Desktopvirtualisierung auf Basis freier Software<br />
<br />
'''Termin''': Mittwoch 21.01.2009<br />
<br />
'''Ort''': [[Frieda23]], Friedrichstr. 23, Rostock-KTV<br />
<br />
'''Raum''': Raum 3.8 - 2. OG linker Aufgang, Beschriftung "23"<br />
<br />
'''Zeit''': Start 19 Uhr, Open End<br />
<br />
=== Inhalt ===<br />
<br />
{| {{Prettytable}}<br />
!Thema<br />
!Wer<br />
!Zeit<br />
|--<br />
|Übersicht Desktop- und Server-Virtualisierung<br />
|[[Benutzer:Leo|Martin]]<br />
|ca. 10 min<br />
|--<br />
|Vorstellung [http://de.wikipedia.org/wiki/Kernel-based_Virtual_Machine KVM]/[http://de.wikipedia.org/wiki/QEMU QEmu]<br />
|N.N.<br />
|ca. 10 min<br />
|--<br />
|[[Openlab_01_-_Workshop_Virtualisierung/Xen|Vorstellung Xen & Linux vServer an einem praktischen Beispiel]]<br />
|[[Benutzer:mdbw|Ralph]]<br />
|ca. 10 min<br />
|--<br />
|Vorstellung [http://de.wikipedia.org/wiki/Vmware VMware] am [http://www.fbn-dummerstorf.de FBN] Beispiel<br />
|[[Benutzer:Dr.rp|Ralf]]<br />
|ca. 10 min<br />
|--<br />
|[[Openlab_01_-_Workshop_Virtualisierung/Virtualbox|Vorstellung und Demo VirtualBox]]<br />
|[[Benutzer:MathiasMahnke|Mathias]]<br />
|ca. 10 min<br />
|--<br />
|Zeit für praktische Umsetzung + v.a. Erfahrungsaustausch<br />
|alle Anwesenden<br />
|offen<br />
|--<br />
|}<br />
<br />
=== Anmeldung ===<br />
<br />
(Max. 20 Teilnehmer)<br />
<br />
# [[Benutzer:MathiasMahnke|Mathias]]<br />
# [http://aptgetupdate.de/ Oliver]<br />
# [[Benutzer:Dr.rp|Ralf]]<br />
# [[Benutzer:mdbw|Ralph]]<br />
# [http://blog.windfluechter.net/ Ingo]<br />
# [[Benutzer:Sebastian|Sebastian]]<br />
# [[Benutzer:Zim|Zim]]<br />
# Robert M.<br />
# Lars H.<br />
# [[Benutzer:Alexander pietsch|Alexander]]<br />
# [[Benutzer:age | Henning]]<br />
# [[Benutzer:Christianw|Christianw]]<br />
# [[Benutzer:Lars|Lars]]<br />
# [[Benutzer:Leo|Martin]]<br />
# Andreas K.<br />
# [[Benutzer:Nilsheine|Nils Heine]]<br />
# [[Benutzer:Ckuehl|Christoph Kühl]]<br />
# Till W.<br />
# Daniel D.<br />
<br />
Bitte selbst eintragen oder eine kurze E-Mail an [[Benutzer:MathiasMahnke|Mathias]].<br />
<br />
=== Unterstützung ===<br />
<br />
* Raum: Beamer - [[Benutzer:Dr.rp|Ralf]] (VGA/S-Video/FBAS), Schlüssel - [[Benutzer:MathiasMahnke|Mathias]]<br />
* Getränke zum Selbstkostenpreis: <br />
** [http://www.club-mate.de/ Club-Mate] &middot; 1.50 EUR<br />
** Bier ([http://www.rostocker.de/ Rostocker Pils], Köstritzer, Alster) &middot; 1 EUR<br />
** Bionade &middot; 1 EUR<br />
** Cola (Coca Cola, Coca Cola Zero)<br />
** Mineralwasser, Tee/(Instant-)Kaffee<br />
* freier WLAN Zugang vorhanden<br />
<br />
=== Kommunikation ===<br />
<br />
* '''Feedback''': [[Diskussion:Openlab 01 - Workshop Virtualisierung]]<br />
* '''IRC''': irc://irc.opennet-initiative.de/openlab<br />
<br />
=== Resourcen ===<br />
<br />
Es gibt eine [http://chaosradio.ccc.de/cre092.html CRE Folge] über Virtualisierung in der sich Tim mit André Przywara über Virtualisierung unterhält. Als Vorbereitung sehr zu empfehlen!<br />
<br />
[[Kategorie:Openlab]]<br />
[[Kategorie:Opennet Ereignisse]]</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung
Openlab 01 - Workshop Virtualisierung
2009-01-20T19:00:47Z
<p>Zim: /* Anmeldung */</p>
<hr />
<div>Wir möchten dich herzlich zum Openlab #1 einladen!<br />
<br />
== Openlab ==<br />
<br />
'''Idee''': Gemeinsames offenes Treffen für alle Interessierten, unabhängig von Opennet oder sonstiger Gruppenzugehörigkeit. Offene Plattform für Alle mit Affinität zu IT, Technik, Hacking gepaart mit Sozialem, Politisches und alles was sich ergibt. Einsteigergeeignet.<br />
<br />
'''Zukünftige Themen''': Vorschläge unter [[:Kategorie:Openlab]]<br />
<br />
== Workshop "Virtualisierung" ==<br />
<br />
'''Thema''': Erfahrungsaustausch zum Thema Server- und Desktopvirtualisierung auf Basis freier Software<br />
<br />
'''Termin''': Mittwoch 21.01.2009<br />
<br />
'''Ort''': [[Frieda23]], Friedrichstr. 23, Rostock-KTV<br />
<br />
'''Raum''': Raum 3.8 - 2. OG linker Aufgang, Beschriftung "23"<br />
<br />
'''Zeit''': Start 19 Uhr, Open End<br />
<br />
=== Inhalt ===<br />
<br />
{| {{Prettytable}}<br />
!Thema<br />
!Wer<br />
!Zeit<br />
|--<br />
|Übersicht Desktop- und Server-Virtualisierung<br />
|[[Benutzer:Leo|Martin]]<br />
|ca. 10 min<br />
|--<br />
|Vorstellung [http://de.wikipedia.org/wiki/Kernel-based_Virtual_Machine KVM]/[http://de.wikipedia.org/wiki/QEMU QEmu]<br />
|N.N.<br />
|ca. 10 min<br />
|--<br />
|[[Openlab_01_-_Workshop_Virtualisierung/Xen|Vorstellung Xen & Linux vServer an einem praktischen Beispiel]]<br />
|[[Benutzer:mdbw|Ralph]]<br />
|ca. 10 min<br />
|--<br />
|Vorstellung [http://de.wikipedia.org/wiki/Vmware VMware] am [http://www.fbn-dummerstorf.de FBN] Beispiel<br />
|[[Benutzer:Dr.rp|Ralf]]<br />
|ca. 10 min<br />
|--<br />
|[[Openlab_01_-_Workshop_Virtualisierung/Virtualbox|Vorstellung und Demo VirtualBox]]<br />
|[[Benutzer:MathiasMahnke|Mathias]]<br />
|ca. 10 min<br />
|--<br />
|Zeit für praktische Umsetzung + v.a. Erfahrungsaustausch<br />
|alle Anwesenden<br />
|offen<br />
|--<br />
|}<br />
<br />
=== Anmeldung ===<br />
<br />
(Max. 20 Teilnehmer)<br />
<br />
# [[Benutzer:MathiasMahnke|Mathias]]<br />
# [http://aptgetupdate.de/ Oliver]<br />
# [[Benutzer:Dr.rp|Ralf]]<br />
# [[Benutzer:mdbw|Ralph]]<br />
# [http://blog.windfluechter.net/ Ingo]<br />
# [[Benutzer:Sebastian|Sebastian]]<br />
# [[Benutzer:Zim|Zim]] +1.5<br />
# Robert M.<br />
# Lars H.<br />
# [[Benutzer:Alexander pietsch|Alexander]]<br />
# [[Benutzer:age | Henning]]<br />
# [[Benutzer:Christianw|Christianw]]<br />
# [[Benutzer:Lars|Lars]]<br />
# [[Benutzer:Leo|Martin]]<br />
# Andreas K.<br />
# [[Benutzer:Nilsheine|Nils Heine]]<br />
# [[Benutzer:Ckuehl|Christoph Kühl]]<br />
# Till W.<br />
<br />
Bitte selbst eintragen oder eine kurze E-Mail an [[Benutzer:MathiasMahnke|Mathias]].<br />
<br />
=== Unterstützung ===<br />
<br />
* Raum: Beamer - [[Benutzer:Dr.rp|Ralf]] (VGA/S-Video/FBAS), Schlüssel - [[Benutzer:MathiasMahnke|Mathias]]<br />
* Getränke zum Selbstkostenpreis: <br />
** [http://www.club-mate.de/ Club-Mate] &middot; 1.50 EUR<br />
** Bier ([http://www.rostocker.de/ Rostocker Pils], Köstritzer, Alster) &middot; 1 EUR<br />
** Bionade &middot; 1 EUR<br />
** Cola (Coca Cola, Coca Cola Zero)<br />
** Mineralwasser, Tee/(Instant-)Kaffee<br />
* freier WLAN Zugang vorhanden<br />
<br />
=== Kommunikation ===<br />
<br />
* '''Feedback''': [[Diskussion:Openlab 01 - Workshop Virtualisierung]]<br />
* '''IRC''': irc://irc.opennet-initiative.de/openlab<br />
<br />
=== Resourcen ===<br />
<br />
Es gibt eine [http://chaosradio.ccc.de/cre092.html CRE Folge] über Virtualisierung in der sich Tim mit André Przywara über Virtualisierung unterhält. Als Vorbereitung sehr zu empfehlen!<br />
<br />
[[Kategorie:Openlab]]<br />
[[Kategorie:Opennet Ereignisse]]</div>
Zim
https://wiki.opennet-initiative.de/wiki/Benutzer:Zim
Benutzer:Zim
2009-01-15T17:34:40Z
<p>Zim: </p>
<hr />
<div>Informatikstudent<br />
<br />
Schwerpunkt:<br />
- Routing/Switching (CCNP)<br />
- IPv6<br />
<br />
OpenWRT:<br />
- Kamikaze fuer Linksys WRT54GL<br />
- AP, IPv6, aiccu, radvd<br />
- Kamikaze-nano fuer Linksys WRT54GS-V5 (2MB Flash)<br />
- grundlegende AP-Funktion, keine WebIF, (noch) kein OLSRd, kein OpenVPN<br />
<br />
<br />
Da es schon genug Leute im Verein gibt, die sich um Kamikaze-Port kuemmern, werd ich davon meine Finger lassen.<br />
* Es gibt aus meiner Sicht gewiss nicht genug Leute, eher zu wenige. --[[Benutzer:MathiasMahnke|Mathias]] 13:01, 13. Jun 2007 (CEST)<br />
<br />
<br />
07.02.2008:<br />
kamikaze 7.09<br />
- olsr: /etc/init.d/olsrd<br />
- USE_CONF_F=/etc/olsrd.conf<br />
<br />
mrd6:<br />
- debian-config funktioniert, default-log aendern...<br />
<br />
ahcp:<br />
- funktioniert<br />
- config folgt<br />
<br />
babel:<br />
- kein broadcast des default-gw<br />
<br />
ipv6-debian-mirror:<br />
- deb ftp://ftp.ipv6.debian.org/debian<br />
<br />
flashen:<br />
- fonera:<br />
- mtd -e vmlinux.bin.l7 write openwrt-atheros-vmlinux.lzma vmlinux.bin.l7<br />
- mtd -e rootfs write openwrt-atheros-root.squashfs rootfs<br />
- wrt54g per tftp<br />
- atftp --trace --option "timeout 1" --option "mode octet" --put --local-file bin/openwrt-brcm-.bin 192.168.1.1<br />
- wrt54g per console<br />
- mtd -r -e linux openwrt-brcm-.bin linux<br />
<br />
redboot:<br />
- flash reseten/formatieren:<br />
- fis init -f<br />
- datei per tftp laden:<br />
- load -r -v -b %{FREEMEMLO} <dateiname-auf-tftp-server><br />
- letzte geladene datei aus ram in flash schreiben:<br />
- fis create <partitionsname><br />
- freien speicher im flash bestimmen:<br />
- fis free<br />
- rootfs erstellen bzw. restlichen verfuegbaren speicher im flash dem rootfs zuordnen:<br />
- fis create -l <laenge des restlichen speichers> <partitionsname><br />
- freien speicher berechen:<br />
- fis free<br />
- eg: 0x50160000 .. 0x50fc0000<br />
- 0x50fc0000 - 0x50160000 = 0xe60000<br />
- laenge ist also 0xe60000<br />
- im obigen bsp: fis create -l 0x6e0000 <partitionsname><br />
<br />
avila:<br />
- problem mit ethernet<br />
- ursache: mac-adresse wird nicht erkannt/gesetzt<br />
- ifconfig <dev> hw ether <mac-address><br />
- in /etc/conif/network: option 'macaddress' 'xx:xx:xx:xx:xx:xx'<br />
- wrt -> network -> networks -> macadresse setzen</div>
Zim
https://wiki.opennet-initiative.de/wiki/Opennet_Neujahrsbrunch_2009
Opennet Neujahrsbrunch 2009
2009-01-04T20:48:03Z
<p>Zim: /* Anmeldung */</p>
<hr />
<div>=== Einladung ===<br />
<br />
Wie in den letzten beiden Jahren, wollen wir auch 2009 das neue Jahr begrüßen und neuen Schwung beim gemeinsamen Brunchen aufnehmen. <br />
<br />
==== Termin ====<br />
<br />
Aktuell stehen im Forum folgende Termine zur Abstimmung:<br />
<br />
* Sa. 10.01.2009<br />
* So. 11.01.2009<br />
<br />
oder<br />
<br />
* Sa. 17.01.2009<br />
* So. 18.01.2009<br />
<br />
==== Ort ====<br />
<br />
Aktuell sind folgende Lokale vorgeschlagen:<br />
<br />
* Plan B<br />
* Cafe Lotte<br />
* Europa<br />
* Likörfabrik<br />
<br />
Es sind weitere Vorschläge sehr willkommen.<br />
<br />
==== Allgemeines ====<br />
<br />
Bitte nehmt die nächsten Tage an der im Forum laufenden Abstimmung über den<br />
Termin teil und gebt dort möglichst auch ein Lokal an, wo man gut Brunchen kann.<br />
<br />
Bitte gebt dort auch an, ob ihr ggf. mit Partner und Kindern kommen möchtet, um <br />
so die entsprechende Anzahl an Plätzen Reservieren zu können.<br />
<br />
Solltet ihr euch noch nicht sicher sein, ob ihr kommt und mit wie vielen ihr evtl.<br />
kommen wollt/könnt, tragt euch bitte dort trotzdem schon einmal ein. Plätze<br />
Stornieren können wir immer noch.<br />
<br />
=== Diskussionen: ===<br />
<br />
Weitere Diskussionen führt bitte im Forum unter:<br />
<br />
http://forum.opennet-initiative.de/thread.php?threadid=1762&sid=<br />
<br />
=== Anmeldung ===<br />
<br />
# [[Benutzer:Sebastian|Sebastian]]<br />
# [[Benutzer:MathiasMahnke|Mathias]] und<br />
# Grit<br />
# [[Benutzer:Moh|Marco]]<br />
# [[Benutzer:Dr.rp|Ralf]] (kann nur am 17.01./18.01.)<br />
# [[Benutzer:Zim|Zim]]<br />
<br />
=== Siehe auch ===<br />
<br />
* [[Opennet Neujahrsbrunch 2006]]<br />
* [[Opennet Neujahrsbrunch 2007]]<br />
* [[Opennet Neujahrsbrunch 2008]]<br />
<br />
[[Kategorie:Opennet Ereignisse]]</div>
Zim
https://wiki.opennet-initiative.de/wiki/Openlab_01_-_Workshop_Virtualisierung
Openlab 01 - Workshop Virtualisierung
2009-01-04T20:47:35Z
<p>Zim: /* Anmeldung */</p>
<hr />
<div>Wir möchten dich herzlich zum Openlab #1 für einen gemeinsamen Erfahrungsaustausch zum Thema Server- und Desktopvirtualisierung einladen!<br />
<br />
== Openlab ==<br />
<br />
'''Idee''': Gemeinsames offenes Treffen für alle Interessierten, unabhängig von Opennet oder sonstiger Gruppenzugehörigkeit. Offene Plattform für Alle mit Affinität zu IT, Technik, Hacking gepaart mit Sozialem, Politisches und alles was sich ergibt. Einsteigergeeignet.<br />
<br />
== Workshop "Virtualisierung" ==<br />
<br />
'''Termin''': 21.01.2009<br />
<br />
'''Ort''': [[Frieda23]], Raum wird aktuell organisiert - Friedrichstr. 23, Rostock-KTV<br />
<br />
'''Zeit''': Start 19 Uhr, Open End<br />
<br />
=== Inhalt ===<br />
<br />
{| {{Prettytable}}<br />
!Thema<br />
!Wer<br />
!Zeit<br />
|--<br />
|Übersicht Desktop- und Server-Virtualisierung<br />
|N.N.<br />
|ca. 10 min<br />
|--<br />
|Vorstellung KVM/QEmu<br />
|N.N.<br />
|ca. 15 min<br />
|--<br />
|Vorstellung Xen<br />
|[[Benutzer:mdbw|Ralph]]<br />
|5-7 Minuten<br />
|--<br />
|Vorstellung VMware am FBN Beispiel<br />
|[[Benutzer:Dr.rp|Ralf]]<br />
|5-7 Minuten<br />
|--<br />
|Demo OpenSolaris-Virtualiserung mit VirtualBox<br />
|[[Benutzer:MathiasMahnke|Mathias]]<br />
|ca. 10 min<br />
|--<br />
|Zeit für praktische Umsetzung + v.a. Erfahrungsaustausch<br />
|alle Anwesenden<br />
|offen<br />
|--<br />
|}<br />
<br />
=== Anmeldung ===<br />
<br />
# [[Benutzer:MathiasMahnke|Mathias]]<br />
# Oliver F.<br />
# [[Benutzer:Dr.rp|Ralf]]<br />
# [[Benutzer:mdbw|Ralph]]<br />
# Ingo J.<br />
# [[Benutzer:Sebastian|Sebastian]]<br />
# [[Benutzer:Zim|Zim]]<br />
<br />
Bitte selbst eintragen oder eine kurze E-Mail an [[Benutzer:MathiasMahnke|Mathias]].<br />
<br />
=== Unterstützung ===<br />
<br />
* Beamer bringt [[Benutzer:Dr.rp|Ralf]] mit <br />
* wer kann das Thema KVM/QEMU (moh?)<br />
* wer kann den Teil "Überblick" übernehmen?<br />
* weitere kurze Themenbeiträge?<br />
* sollten wir noch etwas ändern?<br />
* Getränkeversorgung?<br />
<br />
=== Kommunikation ===<br />
<br />
* '''Diskussion''': http://forum.opennet-initiative.de/thread.php?threadid=1757<br />
* '''IRC''': irc://irc.opennet-initiative.de/openlab<br />
<br />
[[Kategorie:Openlab]]<br />
[[Kategorie:Opennet Ereignisse]]</div>
Zim