IPsec Manual Keying: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
Zeile 61: Zeile 61:
 
</pre>
 
</pre>
  
=Alternative=
+
==Anmerkung==
*https://gist.github.com/vishvananda/7094676
+
Diese Konfiguration ist aus Sicherheitstechnischer Sicht bedenklich und sollte in der praktischen Anwendung nicht verwendet werden. Sie kann jedoch zu Demonstrationszwecken eingesetzt werden, etwa um vorzuführen wie eine VPN gehackt und entschlüsselt werden kann.
  
*/usr/local/sbin/tunnel.sh
+
Siehe hierzu:
<pre>
+
[https://www.xinux.net/index.php?title=Wireshark_VPN_entschlüsseln Wireshark VPN entschlüsseln]
#!/bin/bash
 
  
if [ "$4" == "" ]; then
 
    echo "usage: $0 <local_ip> <remote_ip> <new_local_ip> <new_remote_ip>"
 
    echo "creates an ipsec tunnel between two machines"
 
    exit 1
 
fi
 
  
SRC="$1"; shift
+
=Alternative=
DST="$1"; shift
+
*[[IP Utils Esp]]
LOCAL="$1"; shift
 
REMOTE="$1"; shift
 
 
 
KEY1=0x`dd if=/dev/urandom count=32 bs=1 2> /dev/null| xxd -p -c 64`
 
KEY2=0x`dd if=/dev/urandom count=32 bs=1 2> /dev/null| xxd -p -c 64`
 
echo KEY1 = $KEY1
 
echo KEY2 = $KEY2
 
ID=0x`dd if=/dev/urandom count=4 bs=1 2> /dev/null| xxd -p -c 8`
 
 
 
echo "spdflush; flush;" | sudo setkey -c
 
echo ip xfrm state add src $SRC dst $DST proto esp spi $ID reqid $ID mode tunnel auth sha256 $KEY1 enc aes $KEY2
 
sudo ip xfrm state add src $SRC dst $DST proto esp spi $ID reqid $ID mode tunnel auth sha256 $KEY1 enc aes $KEY2
 
echo ip xfrm state add src $DST dst $SRC proto esp spi $ID reqid $ID mode tunnel auth sha256 $KEY1 enc aes $KEY2
 
sudo ip xfrm state add src $DST dst $SRC proto esp spi $ID reqid $ID mode tunnel auth sha256 $KEY1 enc aes $KEY2
 
echo ip xfrm policy add src $LOCAL dst $REMOTE dir out tmpl src $SRC dst $DST proto esp reqid $ID mode tunnel
 
sudo ip xfrm policy add src $LOCAL dst $REMOTE dir out tmpl src $SRC dst $DST proto esp reqid $ID mode tunnel
 
echo ip xfrm policy add src $REMOTE dst $LOCAL dir in tmpl src $DST dst $SRC proto esp reqid $ID mode tunnel
 
sudo ip xfrm policy add src $REMOTE dst $LOCAL dir in tmpl src $DST dst $SRC proto esp reqid $ID mode tunnel
 
#echo 5
 
#sudo ip addr add $LOCAL dev lo
 
#echo 6
 
#sudo ip route add $REMOTE dev eth0 src $LOCAL
 
 
 
 
 
ssh $DST /bin/bash << EOF
 
    echo "spdflush; flush;" | sudo setkey -c
 
    sudo ip xfrm state add src $SRC dst $DST proto esp spi $ID reqid $ID mode tunnel auth sha256 $KEY1 enc aes $KEY2
 
    sudo ip xfrm state add src $DST dst $SRC proto esp spi $ID reqid $ID mode tunnel auth sha256 $KEY1 enc aes $KEY2
 
    sudo ip xfrm policy add src $REMOTE dst $LOCAL dir out tmpl src $DST dst $SRC proto esp reqid $ID mode tunnel
 
    sudo ip xfrm policy add src $LOCAL dst $REMOTE dir in tmpl src $SRC dst $DST proto esp reqid $ID mode tunnel
 
#    sudo ip addr add $REMOTE dev lo
 
#    sudo ip route add $LOCAL dev eth0 src $REMOTE
 
EOF
 
</pre>
 

Aktuelle Version vom 10. Oktober 2016, 10:12 Uhr

Installation/Vorraussetzungen

Für diese Art der Verbindung wird das Programm "setkey" benötigt, dass im Paket "ipsec-tools" vorhanden ist

  • apt-get install ipsec-tools

Konfigurationsdatei erstellen

  • In einem beliebigen Verzeichnis eine Datei mit folgendem Inhalt erstellen
#!/usr/sbin/setkey -f
flush;
spdflush;


# ESP
add 192.168.244.2 192.168.242.1 esp 15701 -m tunnel
                        -E 3des-cbc "123456789012123456789012"
                        -A hmac-sha1 "this is the test key";

add 192.168.242.1 192.168.244.2 esp 24501 -m tunnel
                        -E 3des-cbc "123456789012123456789012"
                        -A hmac-sha1 "this is the test key";


spdadd 10.88.88.0/24 10.44.44.0/24 any -P out ipsec
           esp/tunnel/192.168.242.1-192.168.244.2/require;

spdadd 10.44.44.0/24 10.88.88.0/24 any -P in ipsec
           esp/tunnel/192.168.244.2-192.168.242.1/require;
  • Auf der Gegenseite muss die selbe Datei erstellt werden, lediglich die IP-Addressen müssen vertauscht werden

Starten

  • chmod + x /usr/local/sbin/tunnel.sh
  • ./ /usr/local/sbin/tunnel.sh

Überprüfung des Tunnels

  • setkey -D
192.168.242.1 192.168.244.2 
	esp mode=tunnel spi=24501(0x00005fb5) reqid=0(0x00000000)
	E: 3des-cbc  31323334 35363738 39303132 31323334 35363738 39303132
	A: hmac-sha1  74686973 20697320 74686520 74657374 206b6579
	seq=0x00000000 replay=0 flags=0x00000000 state=mature 
	created: Oct  5 09:31:55 2016	current: Oct  5 09:32:01 2016
	diff: 6(s)	hard: 0(s)	soft: 0(s)
	last:                     	hard: 0(s)	soft: 0(s)
	current: 0(bytes)	hard: 0(bytes)	soft: 0(bytes)
	allocated: 0	hard: 0	soft: 0
	sadb_seq=1 pid=15756 refcnt=0
192.168.244.2 192.168.242.1 
	esp mode=tunnel spi=15701(0x00003d55) reqid=0(0x00000000)
	E: 3des-cbc  31323334 35363738 39303132 31323334 35363738 39303132
	A: hmac-sha1  74686973 20697320 74686520 74657374 206b6579
	seq=0x00000000 replay=0 flags=0x00000000 state=mature 
	created: Oct  5 09:31:55 2016	current: Oct  5 09:32:01 2016
	diff: 6(s)	hard: 0(s)	soft: 0(s)
	last:                     	hard: 0(s)	soft: 0(s)
	current: 0(bytes)	hard: 0(bytes)	soft: 0(bytes)
	allocated: 0	hard: 0	soft: 0
	sadb_seq=0 pid=15756 refcnt=0

Anmerkung

Diese Konfiguration ist aus Sicherheitstechnischer Sicht bedenklich und sollte in der praktischen Anwendung nicht verwendet werden. Sie kann jedoch zu Demonstrationszwecken eingesetzt werden, etwa um vorzuführen wie eine VPN gehackt und entschlüsselt werden kann.

Siehe hierzu: Wireshark VPN entschlüsseln


Alternative