<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog sur les technologies réseau et sécurité &#187; IPSEC</title>
	<atom:link href="http://bmigette.fr/tag/ipsec/feed/" rel="self" type="application/rss+xml" />
	<link>http://bmigette.fr</link>
	<description>Blog de Bastien Migette sur les technologies réseau et sécurité, particulièrement cisco.</description>
	<lastBuildDate>Mon, 21 Nov 2011 22:12:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>IPSEC High Availability Stateful Failover avec VTI</title>
		<link>http://bmigette.fr/2011/03/15/ipsec-high-availability-stateful-failover-avec-vti/</link>
		<comments>http://bmigette.fr/2011/03/15/ipsec-high-availability-stateful-failover-avec-vti/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 21:05:32 +0000</pubDate>
		<dc:creator>Bastien Migette</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[Sécurité réseau]]></category>
		<category><![CDATA[failover]]></category>
		<category><![CDATA[ha]]></category>
		<category><![CDATA[high availability]]></category>
		<category><![CDATA[hsrp]]></category>
		<category><![CDATA[ipc]]></category>
		<category><![CDATA[IPSEC]]></category>
		<category><![CDATA[stateful]]></category>
		<category><![CDATA[VTI]]></category>

		<guid isPermaLink="false">http://bmigette.fr/?p=561</guid>
		<description><![CDATA[Un petit article sur le failover stateful IPSEC en utilisant des interface VTI. Pourquoi ? parce que c&#8217;est cool les VTIs !!! Plus que les crypto maps Ah oui pour le fun j&#8217;ai mis du nat aussi (CCIE approchant, j&#8217;éssaie toujours de rajouter une petite touche de techno qui peut faire tout foirer histoire de [...]]]></description>
			<content:encoded><![CDATA[<p>Un petit article sur le failover stateful IPSEC en utilisant des interface VTI. Pourquoi ? parce que c&#8217;est cool les VTIs !!! Plus que les crypto maps <img src='http://bmigette.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Ah oui pour le fun j&#8217;ai mis du nat aussi (CCIE approchant, j&#8217;éssaie toujours de rajouter une petite touche de techno qui peut faire tout foirer histoire de troubleshooter).</p>
<p>R4 est le routeur qui fait du NAT. Il faut Imaginer que la liaison entre R4 et R5 est une connexion internet (d&#8217;où l&#8217;adressage en IP publique, les malins l&#8217;auront remarqué). Soit R1-R4 = Site1 et R5 = Site2</p>
<p>Ici, R2 et R3 vont avoir une IP Virtuelle HSRP qui va être nattée et servir de point de terminaison pour la connexion VPN.</p>
<div id="attachment_562" class="wp-caption aligncenter" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2011/03/topo.png"><img class="size-medium wp-image-562" title="Topologie" src="http://bmigette.fr/wp-content/uploads/2011/03/topo-300x133.png" alt="Topologie" width="300" height="133" /></a><p class="wp-caption-text">Topologie</p></div>
<p><span id="more-561"></span></p>
<h1>Configurations initiales (routage &amp; co)</h1>
<h2>R1</h2>
<pre>!
hostname R1
!
interface FastEthernet1/0
 ip address 192.168.2.2 255.255.255.0
 duplex auto
 speed auto
 !
!
interface FastEthernet1/1
 ip address 192.168.1.2 255.255.255.0
 duplex auto
 speed auto
 !
!
!
router eigrp 65000
 network 192.168.0.0 0.0.255.255
!</pre>
<h2>R2</h2>
<pre>!
hostname R2
!
interface FastEthernet1/0
 ip address 192.168.0.1 255.255.255.0
 duplex auto
 speed auto
 standby 1 ip 192.168.0.254
 standby 1 priority 120
 standby 1 preempt
 <span style="color: #ff0000;">standby 1 name <strong><span style="color: #0000ff;">ha</span></strong></span> <span style="color: #ff0000;">! Le name est important ici</span>
 !                 <span style="color: #ff0000;">! Il sera référencé par la suite</span>
!
interface FastEthernet1/1
 ip address 192.168.1.1 255.255.255.0
 duplex auto
 speed auto
 !
!
!
router eigrp 65000
 network 192.168.0.0 0.0.255.255
!</pre>
<h2>R3</h2>
<pre>!
hostname R3
!
interface FastEthernet1/0
 ip address 192.168.0.2 255.255.255.0
 duplex auto
 speed auto
 standby 1 ip 192.168.0.254
 standby 1 preempt!
 <span style="color: #ff0000;">standby 1 name <span style="color: #0000ff;"><strong>ha</strong></span></span> <span style="color: #ff0000;">! Le name est important ici</span>
 !                 <span style="color: #ff0000;">! Il sera référencé par la suite</span>
!
interface FastEthernet1/1
 ip address 192.168.2.1 255.255.255.0
 duplex auto
 speed auto
 !
!
!
router eigrp 65000
 network 192.168.0.0 0.0.255.255
!</pre>
<h2>R4</h2>
<pre>!
hostname R4
!
interface FastEthernet1/0
 ip address 192.168.0.3 255.255.255.0
 ip nat inside
 ip virtual-reassembly
 duplex auto
 speed auto
 !
!
interface FastEthernet1/1
 ip address 80.0.0.1 255.255.255.0
 ip nat outside
 ip virtual-reassembly
 duplex auto
 speed auto
 !
!
!
router eigrp 65000
 network 192.168.0.0 0.0.255.255
 redistribute static metric 20000 2 255 10 1500
!
ip nat inside source static udp 192.168.0.254 500 80.0.0.1 500 extendable<span style="color: #ff0000;"> !UDP500 = ISAKMP</span>
ip nat inside source static udp 192.168.0.254 4500 80.0.0.1 4500 extendable <span style="color: #ff0000;">!UDP 4500 = IPSEC Nat Traversal</span>
ip route 0.0.0.0 0.0.0.0 80.0.0.2
!
!</pre>
<h2>R5</h2>
<pre>!
hostname R5
!
interface FastEthernet1/0
 ip address 80.0.0.2 255.255.255.0
 duplex auto
 speed auto
 !
!
router eigrp 65000
 network 192.168.0.0 0.0.255.255
!
</pre>
<h1>Configuration IPSEC sur R2/R3/R5</h1>
<p>Ici, on configure une policy isakmp et un profile IPSEC que l&#8217;ont va appliquer sur le tunnel. Les deux choses importantes sont que l&#8217;on va mapper le groupe HSRP dans le profile IPSEC ce qui permettras à IPSEC de savoir quand initier le failover, et en tunnel source, nous utiliseront l&#8217;IP virtuelle HSRP (sinon ça marchera pas).</p>
<p>Il est important que les 2 tunnels aient des IP différente, car ici nous n&#8217;utilisons pas de reverse route comme avec une crypto map. Ce qu&#8217;il va se passer, c&#8217;est que lors du failover, le router standby HSRP va prendre le relai, il aura déjà toute les SA car elles sont synchronisée, et le premier voisin EIGRP va être down, et le second va devenir UP, ce qui va remplacer les routes au niveau de R5. C&#8217;est ce processus qui va mettre un peu de délai dans le failover et qui pourrais être accéléré via routes statiques, modification des timers eigrp, &#8230;</p>
<h2>R2</h2>
<pre>!
crypto isakmp policy 1
 authentication pre-share
crypto isakmp key cisco address 0.0.0.0 0.0.0.0 ! la flemme
!
!
crypto ipsec transform-set <span style="color: #ff0000;"><strong>TS1</strong> </span>esp-aes
 mode transport
!
crypto ipsec profile <span style="color: #993366;"><strong>pf1</strong></span>
 set transform-set <span style="color: #ff0000;"><strong>TS1 </strong></span>
 redundancy <strong>ha </strong>stateful
!
interface Tunnel0
 ip address <span style="color: #ff0000;">192.168.10.1</span> 255.255.255.0
 tunnel source 192.168.0.254 ! IP HSRP
 tunnel mode ipsec ipv4
 tunnel destination 80.0.0.2 ! IP R5
 tunnel protection ipsec profile <span style="color: #800080;"><strong>pf1</strong></span>
 !
!</pre>
<h2>R3</h2>
<pre>!
crypto isakmp policy 1
 authentication pre-share
crypto isakmp key cisco address 0.0.0.0 0.0.0.0 ! la flemme
!
!
crypto ipsec transform-set <strong><span style="color: #ff0000;">TS1</span></strong> esp-aes
 mode transport
!
crypto ipsec profile <span style="color: #800080;"><strong>pf1</strong></span>
 set transform-set <strong><span style="color: #ff0000;">TS1 </span></strong>
 redundancy <strong><span style="color: #0000ff;">ha </span></strong>stateful
!
interface Tunnel0
 ip address <span style="color: #ff0000;">192.168.10.2</span> 255.255.255.0
 tunnel source 192.168.0.254 <span style="color: #ff0000;">! IP HSRP</span>
 tunnel mode ipsec ipv4
 tunnel destination 80.0.0.2 <span style="color: #ff0000;">! IP R5</span>
 tunnel protection ipsec profile <span style="color: #800080;"><strong>pf1</strong></span>
 !
!</pre>
<h2>R5</h2>
<pre>crypto isakmp policy 1
 authentication pre-share
crypto isakmp key cisco address 0.0.0.0 0.0.0.0
!
!
crypto ipsec transform-set <strong><span style="color: #ff0000;">TS1 </span></strong>esp-aes
 mode transport
!
crypto ipsec profile <span style="color: #800080;"><strong>pf1</strong></span>
 set transform-set <strong><span style="color: #ff0000;">TS1 </span></strong>
!
!
!
!
!
!
!
interface Tunnel0
 ip address 192.168.10.3 255.255.255.0
 tunnel source FastEthernet1/0
 tunnel mode ipsec ipv4
 tunnel destination 80.0.0.1 !IP Public R4
 tunnel protection ipsec profile <span style="color: #800080;"><strong>pf1</strong></span>
 !
!</pre>
<h1>Configuration pour le stateful failover</h1>
<p>On va ici utiliser ipc (inter process communication).<br />
Je vais pas trop détailler les commandes car cela me parait assez évident en gros on active le failover inter équipement, puis on créé une association entre nos deux routeurs, ou l&#8217;on définit IP Locale/Distante, ainsi que le port.<br />
On mappe aussi ce failover au groupe HSRP. C&#8217;est HSRP qui sera le &laquo;&nbsp;trigger&nbsp;&raquo; pour initier le failover (quand le routeur active passe standby et vice versa les routeurs seront que l&#8217;état à changé).</p>
<p>Notez que l&#8217;on peut sécuriser l&#8217;échange IPC via IPSEC, ce qui n&#8217;est pas une mauvaise chose. Il est aussi intelligent d&#8217;utiliser une interface dédiée pour la transmission IPC (juste un lien entre les deux routeurs avec un subnet dédié, et on ajuste les local/remote ip dans la conf IPC).</p>
<p><strong><span style="color: #ff0000;">NOTE: Il faut redémarrer les routeurs après avoir défini le stateful failover via IPC</span></strong></p>
<h2>R2</h2>
<pre>!
ipc zone default
 association 1
 no shutdown
 protocol sctp
 local-port 5000
 local-ip 192.168.0.1
 retransmit-timeout 300 10000
 path-retransmit 10
 assoc-retransmit 10
 remote-port 5000
 remote-ip 192.168.0.2 !IP R3
!
redundancy inter-device
 scheme standby <strong><span style="color: #0000ff;">ha</span></strong>
!</pre>
<h2>R3</h2>
<pre>!
ipc zone default
 association 1
 no shutdown
 protocol sctp
 local-port 5000
 local-ip 192.168.0.2
 retransmit-timeout 300 10000
 path-retransmit 10
 assoc-retransmit 10
 remote-port 5000
 remote-ip 192.168.0.1
!
redundancy inter-device
 scheme standby <strong><span style="color: #0000ff;">ha</span></strong>
!
</pre>
<h1>Petite démo live &amp; debugs/show</h1>
<pre style="text-align: justify;"><span style="color: #ff0000;">R2</span>#sh redundancy inter-device
Redundancy inter-device state: RF_INTERDEV_STATE_ACT
 Scheme: Standby
 Groupname: ha Group State: <span style="color: #ff0000;">Active</span>
 Peer present: RF_INTERDEV_PEER_COMM
 Security: Not configured

<span style="color: #ff0000;">R3</span>#sh redundancy inter-device
Redundancy inter-device state: RF_INTERDEV_STATE_STDBY
 Scheme: Standby
 Groupname: ha Group State: <span style="color: #ff0000;">Standby</span>
 Peer present: RF_INTERDEV_PEER_COMM
 Security: Not configured

R5#ping 192.168.1.2 repeat 1000

Type escape sequence to abort.
Sending 1000, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!!!!!.. <span style="color: #ff0000;">!//Ici je fait un shut sur F1/0 de R2 pour tout casser</span>
*Mar 15 21:52:57.095: %DUAL-5-NBRCHANGE: EIGRP-IPv4 65000: Neighbor <span style="color: #ff0000;">192.168.10.2</span> (Tunnel0) is up: new adjacency <span style="color: #ff0000;">!un voisin tombe</span>
....
*Mar 15 21:53:04.227: %DUAL-5-NBRCHANGE: EIGRP-IPv4 65000: Neighbor <span style="color: #ff0000;">192.168.10.1 </span>(Tunnel0) is down: holding time expired <span style="color: #ff0000;">!l'autre passe up</span>
..!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! <span style="color: #ff0000;">!//et le ping repart !</span>
!!!!!

R3#sh redundancy inter-device
Redundancy inter-device state: RF_INTERDEV_STATE_ACT
 Scheme: Standby
 Groupname: ha Group State: <span style="color: #ff0000;">Active</span>
 Peer present: <span style="color: #ff0000;">RF_INTERDEV_PEER_NO_COMM</span> ! No comm car R2 est dead
 Security: Not configured
R3#
</pre>
<p>Rallumons R2</p>
<pre>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.......!! <span style="color: #ff0000;">!//ça tombe, et ça repart !</span>
*Mar 15 21:57:09.435: %DUAL-5-NBRCHANGE: EIGRP-IPv4 65000: Neighbor 192.168.10.1 (Tunnel0) is up: new adjacency!!!!!!!!!!!!!!!
</pre>
<h1>Conclusion</h1>
<p>Voici un article sur la haute disponibilité IPSEC avec du stateful failover.</p>
<p>On noteras qu&#8217;ici le plus la durée de failover est due aux timers HSRP. La partie routage pourrais donc être améliorée pour accélérer la transition.</p>
<p>Topologie GNS et config finales: <a href="http://bmigette.fr/wp-content/uploads/2011/03/ipsec_ha.zip">ipsec_ha.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bmigette.fr/2011/03/15/ipsec-high-availability-stateful-failover-avec-vti/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Présentation de l&#8217;IOS Get VPN</title>
		<link>http://bmigette.fr/2009/03/04/presentation-de-lios-get-vpn/</link>
		<comments>http://bmigette.fr/2009/03/04/presentation-de-lios-get-vpn/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 19:27:07 +0000</pubDate>
		<dc:creator>Bastien Migette</dc:creator>
				<category><![CDATA[CCSP]]></category>
		<category><![CDATA[Sécurité réseau]]></category>
		<category><![CDATA[SNRS]]></category>
		<category><![CDATA[GET]]></category>
		<category><![CDATA[IOS]]></category>
		<category><![CDATA[IPSEC]]></category>
		<category><![CDATA[sans tunnel]]></category>
		<category><![CDATA[tunneless]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://bmigette.fr/?p=243</guid>
		<description><![CDATA[Voici une petite présentation des fonctionnalités de l&#8217;IOS Get VPN. Nous ne verrons pas de configuration, puisque vous avez un bon exemple ici: http://www.ipflow.utc.fr/index.php/GET-VPN_Introduction Donc le GET VPN C&#8217;est quoi ? GET = Group Encrypted Transport, donc pour faire simple on vas chiffrer au niveau de la couche 4 par groupes, c&#8217;est à dire qu&#8217;on [...]]]></description>
			<content:encoded><![CDATA[<p>Voici une petite présentation des fonctionnalités de l&#8217;IOS Get VPN.<br />
Nous ne verrons pas de configuration, puisque vous avez un bon exemple ici:</p>
<p><a href="http://www.ipflow.utc.fr/index.php/GET-VPN_Introduction" target="_blank">http://www.ipflow.utc.fr/index.php/GET-VPN_Introduction</a></p>
<p>Donc le GET VPN C&#8217;est quoi ? GET = Group Encrypted Transport, donc pour faire simple on vas chiffrer au niveau de la couche 4 par groupes, c&#8217;est à dire qu&#8217;on vas utiliser un protocole (GDOI, qui se base sur ISAKMP) et un Key Server qui aura pour rôle d&#8217;envoyer les configuration aux équipements distants (group members). Les group members vont établir une SA vers le KS qui vas leur envoyer les paramètres de chiffrement de manière sécurisée. Ensuite, chaque group members, lorsqu&#8217;il voudra communiquer avec un autre, vas chiffrer uniquement à partir de la couche 4, c&#8217;est à dire que l&#8217;en tête IP n&#8217;est jamais modifiée. En gros, immaginons que l&#8217;on a un réseau non sécurisé avec du routage entre nos différents sites. J&#8217;ajoute les fonctionnalités GETVPN à mon réseau, et les échanges seront maintenant sécurisés sans l&#8217;utilisations de tunnels. Cela prend donc tout son intérêt dans le cadre du MPLS, le transport paquets du client étant gérés par le FAI.</p>
<p>Le principe est que le FAI doit acheminer des paquets de l&#8217;adressage privé du client entre les différents site, sans quoi le client devrait utiliser des tunnels. Le client est ensuite libre d&#8217;implémenter une solution GET VPN pour sécuriser son traffic transitant par son fournisseur d&#8217;accès.</p>
<p>Il faut bien comprendre que l&#8217;adressage privé/publique n&#8217;a rien à voir avec GETVPN, on pourrait très bien utilisé des connexions WAN dédiée, et implémenter GETVPN sur les routeurs des différents sites, mais il faudrait utiliser un protocole de tunneling pour que les paquets d&#8217;un réseau local soient transportable sur internet.</p>
<p>Le gros avantage de cette solution est de permettre du chiffrement any to any (tous les sites vers tous les sites), sans avoir d&#8217;interface tunnel, ce qui est couteux en terme de performance (encapsulation/décapsulation), et qui obligerait à avoir autant de tunnel vers les différents site (imaginons que l&#8217;on ait 10 sites, chaque site devrait avoir 10 tunnels&#8230;) , ou dans le cas d&#8217;une topologie hub and spoke, avoir un routeur qui fait tout le routage&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://bmigette.fr/2009/03/04/presentation-de-lios-get-vpn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparatif des differentes solution de VPN cisco</title>
		<link>http://bmigette.fr/2009/03/03/comparatif-des-differentes-solution-de-vpn-cisco/</link>
		<comments>http://bmigette.fr/2009/03/03/comparatif-des-differentes-solution-de-vpn-cisco/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 16:12:38 +0000</pubDate>
		<dc:creator>Bastien Migette</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[comparatif]]></category>
		<category><![CDATA[IPSEC]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://bmigette.fr/?p=209</guid>
		<description><![CDATA[C&#8217;est ici que ça se passe: http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6586/ps6635/ps7180/prod_brochure0900aecd80582078.pdf Vous trouverez comment les configurer pour la plupart ici: http://bmigette.fr/tag/vpn/]]></description>
			<content:encoded><![CDATA[<p>C&#8217;est ici que ça se passe:</p>
<p><a href="http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6586/ps6635/ps7180/prod_brochure0900aecd80582078.pdf" target="_blank">http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6586/ps6635/ps7180/prod_brochure0900aecd80582078.pdf</a></p>
<p>Vous trouverez comment les configurer pour la plupart ici:</p>
<p><a href="http://bmigette.fr/tag/vpn/" target="_blank">http://bmigette.fr/tag/vpn/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bmigette.fr/2009/03/03/comparatif-des-differentes-solution-de-vpn-cisco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remote Access VPN + Radius</title>
		<link>http://bmigette.fr/2009/02/05/remote-access-vpn-radius/</link>
		<comments>http://bmigette.fr/2009/02/05/remote-access-vpn-radius/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 16:32:40 +0000</pubDate>
		<dc:creator>Bastien Migette</dc:creator>
				<category><![CDATA[CCSP]]></category>
		<category><![CDATA[Sécurité réseau]]></category>
		<category><![CDATA[SNRS]]></category>
		<category><![CDATA[aaa]]></category>
		<category><![CDATA[acs]]></category>
		<category><![CDATA[IPSEC]]></category>
		<category><![CDATA[local]]></category>
		<category><![CDATA[radius]]></category>
		<category><![CDATA[remote]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://bmigette.fr/?p=159</guid>
		<description><![CDATA[Un petit exemple de remote VPN avec authentification/Authorization via Radius. Voici la topologie dynagen que j&#8217;utilise: ghostios = True sparsemem = True [localhost] [[2621XM]] image = ../images/C2600-AD.BIN ram = 96 idlepc = 0x81691494 #on créé un routeur virtuel nommé R1 [[ROUTER VPNGATE]] model = 2621XM F0/0 = NIO_gen_eth:\Device\NPF_{XXXXXXX} #loopback, client vpn F0/1 = NIO_gen_eth:\Device\NPF_{XXXXXXX} #vmnet1, [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_160" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/02/topo.png"><img class="size-medium wp-image-160" title="Topologie" src="http://bmigette.fr/wp-content/uploads/2009/02/topo-300x225.png" alt="Topologie" width="300" height="225" /></a><p class="wp-caption-text">Topologie</p></div>
<p>Un petit exemple de remote VPN avec authentification/Authorization via Radius.<br />
Voici la topologie dynagen que j&#8217;utilise:</p>
<pre>ghostios = True
sparsemem = True

[localhost]

	[[2621XM]]
		image = ../images/C2600-AD.BIN
		ram = 96
		idlepc = 0x81691494

	#on créé un routeur virtuel nommé R1
	[[ROUTER VPNGATE]]
		model = 2621XM
		F0/0 = NIO_gen_eth:\Device\NPF_{XXXXXXX} #loopback, client vpn
		F0/1 = NIO_gen_eth:\Device\NPF_{XXXXXXX} #vmnet1, serveur ACS</pre>
<p><span id="more-159"></span></p>
<p>Configuration des IP et du nom d&#8217;hôte</p>
<pre>Router(config)#hostname VPNGATE
VPNGATE(config)#int f0/1
VPNGATE(config-if)#ip address 192.168.254.1 255.255.255.0
VPNGATE(config-if)#no shut
VPNGATE(config-if)#int f0/0
VPNGATE(config-if)#ip add 80.80.80.80 255.255.255.0
VPNGATE(config-if)#no shut
VPNGATE(config-if)#int loop1
VPNGATE(config-if)#ip address 192.168.1.1 255.255.255.0</pre>
<p>Ping vers le serveur radius:</p>
<pre>VPNGATE#ping 192.168.254.10

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.254.10, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/6/16 ms</pre>
<p>Configuration du remote VPN:</p>
<p>Voici les différentes étapes à suivre:</p>
<ul>
<li>Configuration des politiques de groupes utilisée par le VPN (aaa)</li>
<li>Configuration ISAKMP et IPSEC</li>
<li>Configuration du client VPN Cisco</li>
<li>Optionnel: Ajout de l&#8217;authentification XAuth</li>
</ul>
<h3>Configuration des politiques de groupes utilisée par le VPN (aaa)</h3>
<p>Dans cette première partie, nous allons indiquer comment la configuration des utilisateurs va être appliquée par le VPN. Je vais créer un groupe local, et un groupe sur mon serveur radius.</p>
<h4>Configuration AAA</h4>
<pre>VPNGATE(config)#aaa new-model
VPNGATE(config)#aaa authorization network <span style="color: #0000ff;"><strong>Remote_VPN_Author</strong></span> group radius local
VPNGATE(config)#aaa authentication login <span style="color: #00ff00;"><strong>Remote_VPN_Authen</strong></span> group radius local</pre>
<h4>Configuration du group local</h4>
<p>Je vais créer un groupe d&#8217;administrateur de secour de manière à ce que si le serveur radius tombe en panne, le VPN soit encore accessible.<br />
Il faut définir un pool d&#8217;adresse qui sera utilisé, puis configurer le groupe avec une clé pré partagée ainsi que les diverses options du groupe (serveur wins, DNS&#8230;).<br />
On vas aussi créer un utilisateur LocalAdmin</p>
<pre>VPNGATE(config)#ip local pool <span style="color: #ff0000;"><strong>Remote_VPN_Pool</strong></span> 192.168.100.1 192.168.100.254
VPNGATE(config)#crypto isakmp client configuration group <span style="color: #ffff99;"><strong>VPN_Admins</strong></span>
VPNGATE(config-isakmp-group)#key <span style="color: #ffff99;"><strong>4dm!nVPNP4$$</strong></span>
VPNGATE(config-isakmp-group)#pool <span style="color: #ff0000;"><strong>Remote_VPN_Pool</strong></span>
VPNGATE(config-isakmp-group)#domain mynetwork.lan
VPNGATE(config-isakmp-group)#exit</pre>
<h4>Configuration du serveur radius</h4>
<p>Sur le routeur:</p>
<pre>VPNGATE(config)#radius-server host 192.168.254.10 key R4d!usK3y</pre>
<p>Sur le serveur ACS:</p>
<p>Note: Ne pas oublier de changer l&#8217;adresse IP dans Network Configurations / AAA Servers et redémarrez le serveur radius (CSRadius)</p>
<p><span style="color: #ff0000;"><strong><em>NOTE: Pour les groupes ISAKMP Avec radius, il faut créer un utilisateur portant le nom du groupe, et l&#8217;associer à son groupe, avec le mot de pase cisco qui est un mot de passe spécial !</em></strong></span><br />
Je penses qu&#8217;il faut faire cela car le protocol radius n&#8217;accepte pas que l&#8217;on lui passe un groupe en paramètre, on utilisera donc un utilisateur pour authentifier le groupe. A vérifier<br />
Source:  <a href="http://www.cisco.com/en/US/docs/ios/12_2t/12_2t8/feature/guide/ftunity.html#wp1191206" target="_blank">http://www.cisco.com/en/US/docs/ios/12_2t/12_2t8/feature/guide/ftunity.html#wp1191206</a> et <a href="http://www.cisco.com/en/US/docs/ios/12_2t/12_2t8/feature/guide/ftunity.html#wp1045273" target="_blank">http://www.cisco.com/en/US/docs/ios/12_2t/12_2t8/feature/guide/ftunity.html#wp1045273</a></p>
<p>Dans le menu Network configuration, dans AAA Clients, cliquez sur add entry et mettez ces paramètres:<br />
Hostname: VPNGATE<br />
AAA Client IP: 192.168.254.1<br />
Shared Secret: R4d!usK3y<br />
Authenticate using: RADIUS (CISCO IOS/PIX)</p>
<p>Puis cliquez sur submit+apply</p>
<div id="attachment_163" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/02/screen_network.png"><img class="size-medium wp-image-163" title="Screenshot configuration AAA Client" src="http://bmigette.fr/wp-content/uploads/2009/02/screen_network-300x223.png" alt="Screenshot configuration AAA Client" width="300" height="223" /></a><p class="wp-caption-text">Screenshot configuration AAA Client</p></div>
<p>Allez ensuite dans Interface configuration, puis RADIUS (Cisco IOS/PIX 6.0), et vérifiez que &laquo;&nbsp;026/009/001] cisco-av-pair&nbsp;&raquo; est coché (première ligne), puis submit.</p>
<div id="attachment_164" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/02/interface_config.png"><img class="size-medium wp-image-164" title="interface configuration" src="http://bmigette.fr/wp-content/uploads/2009/02/interface_config-300x223.png" alt="interface configuration" width="300" height="223" /></a><p class="wp-caption-text">interface configuration</p></div>
<p>Dans group Setup, choisissez le groupe 1, renommez le en <span style="color: #ff99cc;"><strong>VPN_USERS</strong></span> (optionnel), puis cliquez sur edit settings.</p>
<p>Dans la partie &laquo;&nbsp;Cisco IOS/PIX 6.x RADIUS Attributes&nbsp;&raquo; cochez &laquo;&nbsp;[009\001] cisco-av-pair&nbsp;&raquo; et mettez ceci:</p>
<pre>ipsec:key-exchange=ike
<span class="content">ipsec:key-exchange=preshared-key </span>
addr-pool=VPN_Users_Pool
ipsec:default-domain=myNetwork.lan</pre>
<p>Note: le pool VPN_Users_Pool Doit exister sur le router:</p>
<pre>VPNGATE(config)#ip local pool VPN_Users_Pool 192.168.101.1 192.168.101.254</pre>
<p>Cocher aussi ces attributs dans Radius IETF (s&#8217;ils n&#8217;apparaissent pas, aller dans Interface configuration, RADIUS IETF, puis cochez les)</p>
<ul>
<li>Attribute 6: Service-Type=Outbound</li>
<li>Attribute 64: Tunnel-Type=IP ESP</li>
<li>Attribute 69: Tunnel-Password=<span style="color: #ff99cc;"><strong>U$3rVPNP4$$</strong></span></li>
</ul>
<div id="attachment_165" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/02/radius_group1.png"><img class="size-medium wp-image-165" title="Configuration Radius 1" src="http://bmigette.fr/wp-content/uploads/2009/02/radius_group1-300x223.png" alt="Configuration Radius 1" width="300" height="223" /></a><p class="wp-caption-text">Configuration Radius 1</p></div>
<div id="attachment_166" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/02/radius_group2.png"><img class="size-medium wp-image-166" title="Configuration Radius 2" src="http://bmigette.fr/wp-content/uploads/2009/02/radius_group2-300x223.png" alt="Configuration Radius 2" width="300" height="223" /></a><p class="wp-caption-text">Configuration Radius 2</p></div>
<p>Cliquez sur Submit+Restart</p>
<p>Je n&#8217;ai pas trouvé la liste exhaustive des attributs supportés, je me suis inspiré de ceux ci:<br />
<a href="http://www.cisco.com/en/US/docs/ios/12_2t/12_2t8/feature/guide/ftunity.html#wp1058287" target="_blank">http://www.cisco.com/en/US/docs/ios/12_2t/12_2t8/feature/guide/ftunity.html#wp1058287</a></p>
<p><strong><span style="color: #ff0000;">AJOUT DE L&#8217;UTILISATEUR DU GROUPE !!</span></strong></p>
<p>ajouter un utilsateur<strong> <span style="color: #ff99cc;">VPN_USERS</span> </strong>avec le mot de passe cisco (cisco et pas un autre mot de passe, voir note au début de ce point). Dans la partie Client IP Address Assignment, mettez &laquo;&nbsp;No IP address assignment&nbsp;&raquo;</p>
<div id="attachment_171" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/02/group_user.png"><img class="size-medium wp-image-171" title="Ajout de l'utilsateur du groupe" src="http://bmigette.fr/wp-content/uploads/2009/02/group_user-300x223.png" alt="Ajout de l'utilsateur du groupe" width="300" height="223" /></a><p class="wp-caption-text">Ajout de l&#39;utilsateur du groupe</p></div>
<p>Ajoutez un utilisateur dans le serveur radius (cliquez sur User setup, entrez un nom d&#8217;utilisateur puis cliquez sur add/edit et mettez les paramètres sur screenshot).</p>
<div id="attachment_167" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/02/add_user.png"><img class="size-medium wp-image-167" title="Ajout utilisateur 1" src="http://bmigette.fr/wp-content/uploads/2009/02/add_user-300x223.png" alt="Ajout utilisateur 1" width="300" height="223" /></a><p class="wp-caption-text">Ajout utilisateur 1</p></div>
<div id="attachment_168" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/02/add_user2.png"><img class="size-medium wp-image-168" title="Ajout utilisateur 2" src="http://bmigette.fr/wp-content/uploads/2009/02/add_user2-300x223.png" alt="Ajout utilisateur 2" width="300" height="223" /></a><p class="wp-caption-text">Ajout utilisateur 2</p></div>
<p>j&#8217;ai créé l&#8217;utilisateur vpnuser avec le mot de passe cisco (ici le mot de passe cisco n&#8217;est pas obligatoire, vous pouvez mettre ce que vous voulez). Testons les paramètres sur le routeur:</p>
<pre>VPNGATE#test aaa group radius vpnuser cisco legacy
Attempting authentication test to server-group radius using radius
User was successfully authenticated.</pre>
<h3>Configuration ISAKMP et IPSEC</h3>
<p>Configuration ISAKMP: Hash md5, Authentification PSK, Diffie-Hellman Group 2, et encryption DES</p>
<pre>VPNGATE(config)#crypto isakmp policy 1
VPNGATE(config-isakmp)#hash md5
VPNGATE(config-isakmp)#authentication pre-share
VPNGATE(config-isakmp)#group 2
VPNGATE(config-isakmp)#encryption des
VPNGATE(config-isakmp)#exit</pre>
<p>Note: La clé pré partagée IKE sera celle du groupe.</p>
<p>Il faut maintenant créer un transform set, et une crypto map dynamic. Les crypto map dynamiques sont des crypto map dont l&#8217;ensemble des paramètres n&#8217;est pas connu, par exemple en l&#8217;occurence le peer distant n&#8217;est pas static, on ne connait pas les adresses IP qui vont se connecter en remote VPN.<br />
Creation d&#8217;un transform set et d&#8217;une crypto map dynamiques. La fonction reverse-route permet d&#8217;intégrer une route /32 avec l&#8217;adresse du client dans la table de routage et donc de la propager aux autres routeurs via des mises à jour (RIP, EIGRP, OSPF&#8230;) afin qu&#8217;il soit connu des autres routeur du réseau.<br />
Note: Les numéros 1 et 10 des crypto map correspondent au numéros de séquence, ce qui permet d&#8217;avoir plusieurs profiles. Le numero le plus petit est prioritaire, car il sera traité en premier.</p>
<pre>VPNGATE(config)#crypto ipsec transform-set Remote_VPN_TSet esp-3des esp-Md5-hmac
VPNGATE(cfg-crypto-trans)#exit
VPNGATE(config)#crypto dynamic-map <span style="color: #99ccff;"><strong>Remote_VPN_Dynmap</strong></span> 1
VPNGATE(config-crypto-map)#set transform-set Remote_VPN_TSet
VPNGATE(config-crypto-map)#reverse-route</pre>
<p>Nous allons maintenant creer la crypto map qui indiquera comment est déclenchée la connexion client, ainsi que les paramètres d&#8217;authorization</p>
<pre>VPNGATE(config)#crypto map <span style="color: #ffcc99;"><strong>Remote_VPN_Map</strong></span> isakmp authorization list <span style="color: #0000ff;"><strong>Remote_VPN_Author</strong></span>
!connexion déclenchée par le client
VPNGATE(config)#crypto map <span style="color: #ffcc99;"><strong>Remote_VPN_Map</strong></span> client configuration address respond
VPNGATE(config)#crypto map <span style="color: #ffcc99;"><strong>Remote_VPN_Map</strong></span> 10 ipsec-isakmp dynamic <span style="color: #99ccff;"><strong>Remote_VPN_Dynmap  </strong></span></pre>
<p>Note: Les numéros 1 et 10 des crypto map correspondent au numéros de séquence, ce qui permet d&#8217;avoir plusieurs profiles. Le numero le plus petit est prioritaire, car il sera traité en premier.</p>
<p>Il ne reste plus qu&#8217;a appliquer notre crypto map au l&#8217;interface par laquelle vont se connecter les clients et ça doit marcher (suspens)</p>
<pre>VPNGATE(config)#interface FastEthernet 0/0
VPNGATE(config-if)#crypto map Remote_VPN_Map</pre>
<h3>Configuration du client VPN Cisco</h3>
<p>Dans le client VPN Cisco, cliquez sur new:</p>
<div id="attachment_169" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/02/vpn_client_1.png"><img class="size-medium wp-image-169" title="New entry" src="http://bmigette.fr/wp-content/uploads/2009/02/vpn_client_1-300x173.png" alt="New entry" width="300" height="173" /></a><p class="wp-caption-text">New entry</p></div>
<p>Dans la fenêtre utilisez ces paramètres (ou ceux que vous avez spécifier pour votre groupe local à l&#8217;étape 1).:<br />
Group : <span style="color: #ffff99;"><strong>VPN_Admins</strong></span><br />
Password: <span style="color: #ffff99;"><strong>4dm!nVPNP4$$</strong></span></p>
<div id="attachment_170" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/02/vpn_client_add_entry_1.png"><img class="size-medium wp-image-170" title="Ajouter group VPN_Admins" src="http://bmigette.fr/wp-content/uploads/2009/02/vpn_client_add_entry_1-300x272.png" alt="Ajouter group VPN_Admins" width="300" height="272" /></a><p class="wp-caption-text">Ajouter group VPN_Admins</p></div>
<p>Refaire la même étape avec les paramètres du serveur Radius</p>
<p>Group: <strong><span style="color: #ff99cc;">VPN_USERS</span></strong><br />
Password:<span class="content"><span style="color: #ff99cc;"><strong>U$3rVPNP4$$</strong></span></span></p>
<p>ester la connexion VPN_USERS:</p>
<p>Sélectionnez la connexion dans le Client VPN, puis cliquez sur connect. Cela doit marcher.</p>
<p>Vérification de la reverse-route (80.80.80.1 est mon l&#8217;adresse publique du client).</p>
<pre>VPNGATE#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     80.0.0.0/24 is subnetted, 1 subnets
C       80.80.80.0 is directly connected, FastEthernet0/0
C    192.168.254.0/24 is directly connected, FastEthernet0/1
C    192.168.1.0/24 is directly connected, Loopback1
<strong><span style="text-decoration: underline;">     192.168.101.0/32 is subnetted, 1 subnets
S       192.168.101.1 [1/0] via 80.80.80.1
</span></strong></pre>
<p>Affichage des clients:</p>
<pre>VPNGATE#sh crypto isakmp peers
Peer: 80.80.80.1 Port: 3800 Local: 80.80.80.80
 Phase1 id: VPN_USERS

VPNGATE#sh crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst             src             state          conn-id slot status
80.80.80.80     80.80.80.1      QM_IDLE           1001    0 ACTIVE

IPv6 Crypto ISAKMP SA

VPNGATE#sh crypto session
Crypto session current status

Interface: FastEthernet0/0
Session status: UP-ACTIVE
Peer: 80.80.80.1 port 3800
  IKE SA: local 80.80.80.80/500 remote 80.80.80.1/3800 Active
  IPSEC FLOW: permit ip 0.0.0.0/0.0.0.0 host 192.168.101.1
        Active SAs: 2, origin: dynamic crypto map</pre>
<p>Et sur mon pc:</p>
<pre>Carte Ethernet Connexion au réseau local 8:

        Suffixe DNS propre à la connexion : myNetwork.lan
        Adresse IP. . . . . . . . . . . . : 192.168.101.2
        Masque de sous-réseau . . . . . . : 255.255.255.0
        Passerelle par défaut . . . . . . : 192.168.101.1</pre>
<p>Maintenant, désactivons le serveur radius (déconnecter, shutdown,&#8230;) pour tester le groupe admins. Si on ne faisait pas ça, le serveur radius répondrait par invalid user et on ne pourrais s&#8217;authentifier avec le groupe <span style="color: #ffff99;"><strong>VPN_Admins.<br />
</strong></span>Si l&#8217;on voulais que ce groupe soit quand même accessible, il aurait fallu le créer ET sur le routeur ET sur le serveur radius. Pour ma part je vais shutdown l&#8217;interface du radius.</p>
<p>Note: Cela ne marche pas car le temps qu&#8217;il y ait un timeout pour contacter le serveur radius, le client VPN annule la connexion. Par contre si je modifie la ligne</p>
<pre>VPNGATE(config)#aaa authorization network <span style="color: #0000ff;"><strong>Remote_VPN_Author</strong></span> group radius local
par
VPNGATE(config)#aaa authorization network <span style="color: #0000ff;"><strong>Remote_VPN_Author</strong></span> local</pre>
<p>Le groupe VPN_Admins fonctionne. On remarque bien un pool d&#8217;adresse différent:</p>
<pre>Carte Ethernet Connexion au réseau local 8:

        Suffixe DNS propre à la connexion : mynetwork.lan
        Adresse IP. . . . . . . . . . . . : 192.168.100.1
        Masque de sous-réseau . . . . . . : 255.255.255.0
        Passerelle par défaut . . . . . . : 192.168.100.2</pre>
<p>Il faudrait trouver un moyen d&#8217;augmenter le timeout pour le client VPN, ou de baisser celui du serveur radius sur le routeur. Bref on va plutot s&#8217;attaquer à l&#8217;XAUTH.</p>
<h3>Ajout de l&#8217;authentification XAuth</h3>
<p>XAuth c&#8217;est quoi? XAuth = eXtended Authentication. Oui mais encore ? Xauth est un processus entre les phase 1 et 2 IKE (parfois appelé phase IKE 1.5), permettant d&#8217;authentifier un utilisateur lorsqu&#8217;il se connecte en VPN. Les plus doué d&#8217;entre vous auront peut être remarqué que j&#8217;ai créé un utilisateur vpnuser avec le mot de passe cisco, et que j&#8217;ai ajouter une ligne dans la configuration du routeur qui ne nous a pas encore servie:</p>
<pre>VPNGATE(config)#aaa authentication login <span style="color: #00ff00;"><strong>Remote_VPN_Authen</strong></span> group radius local</pre>
<p>Bref, pour activer XAuth, ajouter une authentication list à la crypto map précédemment créée:</p>
<pre>VPNGATE(config)#crypto map <span style="color: #ffcc99;"><strong>Remote_VPN_Map</strong></span> client authentication list <span style="color: #00ff00;"><strong>Remote_VPN_Authen</strong></span></pre>
<p>Maintenant, il suffit de couper la connexion, et de la relance (VPN_USERS), et l&#8217;on va être amenés à se logguer. Nous utiliseront vpnuser/cisco (ou tout autre utilisateur que vous aurez créé). Libre à vous d&#8217;ajouter d&#8217;autres utilisateurs dans ACS. Pour les groupes locaux, il suffit d&#8217;utiliser les utilisateurs créé avec la commande username. (Ne pas oublier de remettre aaa authorization network Remote_VPN_Author group radius local si vous aviez enlevé radius pour testé le group local)</p>
<div id="attachment_175" class="wp-caption alignnone" style="width: 615px"><a href="http://bmigette.fr/wp-content/uploads/2009/02/xauth1.png"><img class="size-full wp-image-175" title="xauth" src="http://bmigette.fr/wp-content/uploads/2009/02/xauth1.png" alt="xauth" width="605" height="517" /></a><p class="wp-caption-text">xauth</p></div>
<p>Voila voila, j&#8217;espère que ceux qui sont arrivés à la fin de cet article sont des pro du remote VPN !</p>
<h3>Configuration finale:</h3>
<pre>VPNGATE#sh run
Building configuration...

Current configuration : 1785 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
<strong>hostname VPNGATE</strong>
!
boot-start-marker
boot-end-marker
!
!
aaa new-model
!
!
<strong>aaa authentication login Remote_VPN_Authen group radius local
aaa authorization network Remote_VPN_Author group radius local </strong>
!
aaa session-id common
!
resource policy
!
memory-size iomem 15
no network-clock-participate slot 1
no network-clock-participate wic 0
ip cef
!
!
!
!
!
!
!
!
<strong>username LocalAdmin privilege 15 secret 5 $1$tDWV$6NngMkxdNRufvvGGmZ68h1</strong>
!
!
!
<strong>crypto isakmp policy 1
 hash md5
 authentication pre-share
 group 2
!</strong>
<strong>crypto isakmp client configuration group VPN_Admins
 key 4dm!nVPNP4$$
 domain mynetwork.lan
 pool Remote_VPN_Pool
!
!
crypto ipsec transform-set Remote_VPN_TSet esp-3des esp-md5-hmac
!
crypto dynamic-map Remote_VPN_Dynmap 1
 set transform-set Remote_VPN_TSet
 reverse-route
!</strong>
!
<strong>crypto map Remote_VPN_Map client authentication list Remote_VPN_Authen
crypto map Remote_VPN_Map isakmp authorization list Remote_VPN_Author
crypto map Remote_VPN_Map client configuration address respond
crypto map Remote_VPN_Map 10 ipsec-isakmp dynamic Remote_VPN_Dynmap </strong>
!
!
!
!
<strong>interface Loopback1
 ip address 192.168.1.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 80.80.80.80 255.255.255.</strong>0
 duplex auto
 speed auto
<strong> crypto map Remote_VPN_Map</strong>
!
<strong>interface FastEthernet0/1
 ip address 192.168.254.1 255.255.255.0</strong>
 duplex auto
 speed auto
!
<strong>ip local pool Remote_VPN_Pool 192.168.100.1 192.168.100.254
ip local pool VPN_Users_Pool 192.168.101.1 192.168.101.254</strong>
!
!
ip http server
no ip http secure-server
!
!
!
!
<strong>radius-server host 192.168.254.10 auth-port 1645 acct-port 1646 key R4d!usK3y</strong>
!
control-plane
!
!
!
!
line con 0
line aux 0
line vty 0 4
!
!
end</pre>
]]></content:encoded>
			<wfw:commentRss>http://bmigette.fr/2009/02/05/remote-access-vpn-radius/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ISAKMP Pre-shared key par défaut</title>
		<link>http://bmigette.fr/2009/02/01/isakmp-pre-shared-key-par-defaut/</link>
		<comments>http://bmigette.fr/2009/02/01/isakmp-pre-shared-key-par-defaut/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 18:23:44 +0000</pubDate>
		<dc:creator>Bastien Migette</dc:creator>
				<category><![CDATA[astuces]]></category>
		<category><![CDATA[CCSP]]></category>
		<category><![CDATA[Divers]]></category>
		<category><![CDATA[Sécurité réseau]]></category>
		<category><![CDATA[IPSEC]]></category>
		<category><![CDATA[ISAKMP]]></category>
		<category><![CDATA[Pre-shared key]]></category>
		<category><![CDATA[SA]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://bmigette.fr/?p=157</guid>
		<description><![CDATA[Une petite astuce: Quand vous voulez établir des SA ISAKMP, il vous faut définir la cléf pré partagée avec l&#8217;hôtes distant. Si vous utilisez la même clé avec plusieurs peer distant, vous pouvez procéder comme ceci: crypto isakmp key isakmpPassword address 0.0.0.0 0.0.0.0 Bref la simplicité en plus, la sécurité en moins]]></description>
			<content:encoded><![CDATA[<p>Une petite astuce:</p>
<p>Quand vous voulez établir des SA ISAKMP, il vous faut définir la cléf pré partagée avec l&#8217;hôtes distant. Si vous utilisez la même clé avec plusieurs peer distant, vous pouvez procéder comme ceci:</p>
<pre>crypto isakmp key isakmpPassword address 0.0.0.0 0.0.0.0</pre>
<p>Bref la simplicité en plus, la sécurité en moins <img src='http://bmigette.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://bmigette.fr/2009/02/01/isakmp-pre-shared-key-par-defaut/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IPSec Tunnel mode VS GRE over IPSEC (GREoIPSEC)</title>
		<link>http://bmigette.fr/2009/01/16/ipsec-tunnel-mode-vs-gre-over-ipsec-greoipsec/</link>
		<comments>http://bmigette.fr/2009/01/16/ipsec-tunnel-mode-vs-gre-over-ipsec-greoipsec/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 15:44:19 +0000</pubDate>
		<dc:creator>Bastien Migette</dc:creator>
				<category><![CDATA[CCSP]]></category>
		<category><![CDATA[IINS (ccna security)]]></category>
		<category><![CDATA[Réseau Avancé]]></category>
		<category><![CDATA[Sécurité réseau]]></category>
		<category><![CDATA[SNRS]]></category>
		<category><![CDATA[AH]]></category>
		<category><![CDATA[ESP]]></category>
		<category><![CDATA[GRE]]></category>
		<category><![CDATA[IPSEC]]></category>
		<category><![CDATA[TUNNEL]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://bmigette.fr/?p=142</guid>
		<description><![CDATA[Petite mise au point sur la différence entre IPSEC tunnel mode, et Gre Over IPSEC, ainsi que comment configurer des tunnels VPN site to site&#8230; Introduction La grande difference entre Gre over IPSEC et IPSEC Tunnel mode, est que GRE vas accepter d&#8217;autre type de traffic que IP et va gérer le broadcast ainsi que [...]]]></description>
			<content:encoded><![CDATA[<p>Petite mise au point sur la différence entre IPSEC tunnel mode, et Gre Over IPSEC, ainsi que comment configurer des tunnels VPN site to site&#8230;</p>
<p><img class="alignnone size-full wp-image-144" title="vpn_s_to_s" src="http://bmigette.fr/wp-content/uploads/2009/01/vpn_s_to_s.png" alt="vpn_s_to_s" width="640" height="121" /></p>
<h2>Introduction</h2>
<p>La grande difference entre Gre over IPSEC et IPSEC Tunnel mode, est que GRE vas accepter d&#8217;autre type de traffic que IP et va gérer le broadcast ainsi que le multicast. Lorsque l&#8217;on configure un tunnel GREoIPSEC, IPSEC sera en mode transport, car les paquets IP vont être encapsulés en GRE, et IPSEC va transporter ces paquets GRE. IPSEC en mode tunnel fonctionnerait aussi mais cela créérait une entête IP supplémentaire, ce qui, a part réduire la quantité de donnée dans le payload et augmenter la charge des routeurs, ne présente aucun intérêt&#8230;</p>
<p>Nous considérons que le routage est déjà fait (je vais utiliser EIGRP)</p>
<p><span id="more-142"></span></p>
<h2>Configuration Tunnel IPSEC</h2>
<h3>Configuration ISAKMP</h3>
<p>Un tunnel IPSEC se monte en deux phase, appelées phases IKE. La phase 1 permet d&#8217;établir une session ISAKMP, qui va utiliser diffie hellman pour échanger une clef afin de crypter les données transitant par ce tunnel ISAKMP.</p>
<p>La Phase 2 permets d&#8217;utiliser le tunnel ISAKMP afin d&#8217;échanger de manière sécurisée les paramètres pour le tunnel IPSEC.</p>
<p>Pour configurer ISAKMP, utiliser les commandes suivantes:</p>
<pre>!activer ISAKMP
R1(config)#crypto isakmp enable
!Creer une politique ISAKMP: Plus petit est le nombre,
!plus prioritaire est la politique
!Il faut que les deux pair aient une politique avec les même paramètres
R1(config)#crypto isakmp policy 100
!DH Group 5
R1(config-isakmp)#group 5
!Chiffrement AES
R1(config-isakmp)#encryption aes
!Utiliser SHA pour l'auth
R1(config-isakmp)#hash sha
!Utilisation PSK
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#exit
!Renseigner le mot de passe pour la session ISAKMP pour le pair distant
R1(config)#crypto isakmp key 0 isakmpPassword address 80.0.0.2</pre>
<p>Effectuer la même chose sur R2 (en remplaçant l&#8217;ip dans la commande crypto map isakmp key)</p>
<h3>Configuration IPSEC</h3>
<p>Trois étapes: Création d&#8217;un transform set, indiquant les protocoles de sécurité à utiliser: AH Pour l&#8217;authentification, ESP pour le cryptage et/ou l&#8217;authentification. On peut utiliser AH, AH+ ESP ou ESP seulement.</p>
<p>Creation d&#8217;une access-list identifiant le traffic à chiffrer. Le traffic permit pas cette ACL sera chiffré dans le tunnel IPSEC, le reste non&#8230;</p>
<p>Creation d&#8217;une crypto-map spécifiant le pair distant, le transform set, et l&#8217;access list.</p>
<p>Commandes Sur R1:</p>
<pre>!Définition d'un transform set sans chiffrement
R1(config)#crypto ipsec transform-set <strong><span style="color: #ccffcc;">AH_NO_ESP</span></strong> ah-sha-hmac
R1(cfg-crypto-trans)#exit
!Creation de l'ACL
R1(config)#ip access-list extended <strong><span style="color: #ffcc99;">VPN</span></strong>
!uniquement le traffic entre mes 2 sites, à adapter selon ce qu'on veut chiffrer
R1(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
R1(config-ext-nacl)#exit
!creation d'une crypto map pour ipsec + isakmp.
!Le numero 1 permets d'avoir plusieurs paramètes dans une même crypto map
!Cela permet d'avoir par exemple plusieurs tunnels depuis une interface car
!on ne peut avoir plus d'une crypto map par interface
R1(config)#crypto map <strong><span style="color: #ff0000;">VPNMAP </span></strong>1 ipsec-isakmp
% NOTE: This new crypto map will remain disabled until a peer
        and a valid access list have been configured.
R1(config-crypto-map)#set peer 80.0.0.2
R1(config-crypto-map)#set transform-set <strong><span style="color: #ccffcc;">AH_NO_ESP</span></strong>
R1(config-crypto-map)#match address <strong><span style="color: #ffcc99;">VPN</span></strong>
R1(config-crypto-map)#exit
R1(config)#int S1/0
!application de la crypto map
R1(config-if)#crypto map <strong><span style="color: #ff0000;">VPNMAP</span></strong>
R1(config-if)#exit
*Mar  1 00:42:52.471: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON</pre>
<p>Même chose sur R2 en changeant l&#8217;adresse IP du peer, et bien sur l&#8217;ACL (permutter source et destination)</p>
<p>Maintenant, si je fait un PING entre R1 et R2, en ayant bien les adresses sources des réseaux 192.168.1.0, le traffic vas être sécurisé via IPSEC (utilisation de AH).</p>
<pre>R1#ping
Protocol [ip]:
*Mar  1 00:38:54.215: %SYS-5-CONFIG_I: Configured from console by console
Target IP address: 192.168.2.1
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 192.168.1.1
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/24/36 ms
R1#</pre>
<div id="attachment_146" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/01/ah1.png"><img class="size-medium wp-image-146" title="Capture AH" src="http://bmigette.fr/wp-content/uploads/2009/01/ah1-300x152.png" alt="AH" width="300" height="152" /></a><p class="wp-caption-text">Capture AH+ESP</p></div>
<p>On remarque que les IP source et de destination sont celle du ping. Cela est du au fait que AH ne permet pas le tunneling, il faut utiliser ESP:</p>
<pre>
R1(config)#crypto ipsec transform-set AH_ESP ah-sha-hmac esp-aes
R1(cfg-crypto-trans)#exit
R1(config)#crypto map VPNMAP 1 ipsec-isakmp
R1(config-crypto-map)#set transform-set AH_ESP</pre>
<p>A faire aussi sur R2</p>
<div id="attachment_147" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/01/ahesp.png"><img class="size-medium wp-image-147" title="ahesp" src="http://bmigette.fr/wp-content/uploads/2009/01/ahesp-300x121.png" alt="Capture AH+ESP" width="300" height="121" /></a><p class="wp-caption-text">Capture AH+ESP</p></div>
<p>On voit ici que ESP à encapsulé le paquet IP, et que les IP sources sont celles du tunnel.</p>
<p>Voila pour IPSEC Tunnel</p>
<h2>GRE Over IPSEC</h2>
<p>Penser à enlever la crypto map avant toute configuration</p>
<pre>R1(config)#int s1/0
R1(config-if)#no crypto map VPNMAP</pre>
<p>Création de l&#8217;interface tunnel:</p>
<pre>R1(config)#interface tunnel 0
R1(config-if)#tunnel source S1/0
R1(config-if)#tunnel destination 80.0.0.2
R1(config-if)#ip address 192.168.0.1 255.255.255.252</pre>
<p>Faire pareil sur R2 en changeant la destination et l&#8217;adresse ip (je vais utiliser 192.168.0.2 /30</p>
<p>Modifier EIGRP pour avoir les route passant par le tunnel:</p>
<pre>!avant
R1#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     80.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       80.0.0.0/24 is directly connected, Serial1/0
D       80.0.0.0/8 is a summary, 01:11:47, Null0
     192.168.0.0/30 is subnetted, 1 subnets
C       192.168.0.0 is directly connected, Tunnel0
C    192.168.1.0/24 is directly connected, Loopback1
D    192.168.2.0/24 [90/2297856] via 80.0.0.2, 01:08:04, <strong><span style="color: #ff0000;">Serial1/0</span></strong></pre>
<p>Modification (à faire également sur R2)</p>
<pre>R1(config)#router eigrp 65000
R1(config-router)#no network 80.0.0.0 0.0.0.255
!*Mar  1 01:25:49.679: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 65000: Neighbor 80.0.0.2 (Serial1/0) is down: interface downw
R1(config-router)#network 192.168.0.0 0.0.0.3
R1(config-router)#exit</pre>
<p>Après:</p>
<pre>*Mar  1 01:27:08.151: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 65000: Neighbor 192.168.0.2 (Tunnel0) is up: new adjacency
R1#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     80.0.0.0/24 is subnetted, 1 subnets
C       80.0.0.0 is directly connected, Serial1/0
     192.168.0.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.0.0/30 is directly connected, <span style="color: #ff0000;">Tunnel0</span>
D       192.168.0.0/24 is a summary, 00:01:56, Null0
C    192.168.1.0/24 is directly connected, Loopback1
D    192.168.2.0/24 [90/297372416] via 192.168.0.2, 00:00:45, <strong><span style="color: #ff0000;">Tunnel0</span></strong>
R1#</pre>
<p>Capture d&#8217;un ping:</p>
<div id="attachment_148" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/01/gre1.png"><img class="size-medium wp-image-148" title="gre1" src="http://bmigette.fr/wp-content/uploads/2009/01/gre1-300x75.png" alt="Capture d'un ping avec GRE" width="300" height="75" /></a><p class="wp-caption-text">Capture d&#39;un ping avec GRE</p></div>
<p>On a bien 2 entêtes IP. Créons un tunnel IPSec avec les mêmes commandes (l&#8217;access list fera un match sur le protocole gre, étant donné que les paquets seront encapsulés par GRE avant d&#8217;ête envoyés dans IPSEC).</p>
<pre>R1(config)#ip access-list extended <strong><span style="color: #ff0000;">VPNGRE</span></strong>
R1(config-ext-nacl)#permit GRE any any
R1(config-ext-nacl)#exit
R1(config)#crypto map <span style="color: #ffff99;"><strong>VPNMAPGRE </strong></span>1 ipsec-isakmp
% NOTE: This new crypto map will remain disabled until a peer
        and a valid access list have been configured.
R1(config-crypto-map)#set peer 80.0.0.2
!transform set créé précédement
R1(config-crypto-map)#set transform-set AH_ESP
R1(config-crypto-map)#match address <strong><span style="color: #ff0000;">VPNGRE</span></strong>
R1(config-crypto-map)#exit
R1(config)#int S1/0
R1(config-if)#crypto map <span style="color: #ffff99;"><strong>VPNMAPGRE</strong></span>
R1(config-if)#exit
R1(config)#</pre>
<p>Maintenant, je vais faire une capture du ping avec ip sec en mode tunnel, et en mode transport. Pour passer en mode transport, taper ces commandes sur R1 et R2:</p>
<p>Enter configuration commands, one per line.  End with CNTL/Z.</p>
<pre>R1(config)#crypto ipsec transform-set AH_ESP ah-sha-hmac esp-aes
R1(cfg-crypto-trans)#mode transport
R1(cfg-crypto-trans)#^Z
R1#clear crypto sa</pre>
<p>Mon ping fonctionne toujours</p>
<div id="attachment_149" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/01/greesp1.png"><img class="size-medium wp-image-149" title="GRE ESP Mode tunnel" src="http://bmigette.fr/wp-content/uploads/2009/01/greesp1-300x90.png" alt="GRE ESP Mode tunnel" width="300" height="90" /></a><p class="wp-caption-text">GRE ESP Mode tunnel</p></div>
<div id="attachment_150" class="wp-caption alignnone" style="width: 310px"><a href="http://bmigette.fr/wp-content/uploads/2009/01/greesp3.png"><img class="size-medium wp-image-150" title="greesp3" src="http://bmigette.fr/wp-content/uploads/2009/01/greesp3-300x74.png" alt="GRE ESP Mode transport" width="300" height="74" /></a><p class="wp-caption-text">GRE ESP Mode transport</p></div>
<p>Evidemment, on ne peut vérifier s&#8217;il y a 1 ou 2 entêtes IP dans le payload, étant donné qu&#8217;il est chiffré par ESP.</p>
<h2>Conclusion:</h2>
<p>J&#8217;espère que la configuration de tunnels VPN site to site avec IPSEC est maintenant un jeu d&#8217;enfant. Une petite remarque cepandant, si avec le tunnel ip sec j&#8217;avais mis un permit ip any any pour le match, il aurait fallu que je déclares des neighbor unicast à EIGRP, IPSEC ne gérant pas le multicast.</p>
<p>Un petit lien aussi (en anglais) pour faire des tunnels VPN sans crypto map, si vous n&#8217;aimez pas ça:</p>
<p><a href="http://www.ciscoblog.com/archives/2006/08/vpn_virtual_tun.html" target="_blank">http://www.ciscoblog.com/archives/2006/08/vpn_virtual_tun.html</a></p>
<p>Un article ou sont expliqué les différences entre le mode GREoIPSEC et IPSEC tunnel avec des schémas:</p>
<p><a href="http://www.nil.si/ipcorner/IPsecVPN2/" target="_blank">http://www.nil.si/ipcorner/IPsecVPN2/</a> (cliquer sur full article en bas à droite)</p>
]]></content:encoded>
			<wfw:commentRss>http://bmigette.fr/2009/01/16/ipsec-tunnel-mode-vs-gre-over-ipsec-greoipsec/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Configurer VPN Site to Site avec SDM</title>
		<link>http://bmigette.fr/2009/01/10/configurer-vpn-site-to-site-avec-sdm/</link>
		<comments>http://bmigette.fr/2009/01/10/configurer-vpn-site-to-site-avec-sdm/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 23:24:02 +0000</pubDate>
		<dc:creator>Bastien Migette</dc:creator>
				<category><![CDATA[CCSP]]></category>
		<category><![CDATA[IINS (ccna security)]]></category>
		<category><![CDATA[Réseau Avancé]]></category>
		<category><![CDATA[Sécurité réseau]]></category>
		<category><![CDATA[SNRS]]></category>
		<category><![CDATA[IPSEC]]></category>
		<category><![CDATA[SDM]]></category>
		<category><![CDATA[Site to Site]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://bmigette.fr/?p=132</guid>
		<description><![CDATA[Une petite vidéo permettant de configurer un VPN Site to Site via SDM. La vidéo rame un peu, la capture vidéo en 1600&#215;1200 c&#8217;est pas super Voir la vidéo]]></description>
			<content:encoded><![CDATA[<p>Une petite vidéo permettant de configurer un VPN Site to Site via SDM. La vidéo rame un peu, la capture vidéo en 1600&#215;1200 c&#8217;est pas super <img src='http://bmigette.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://bmigette.fr/videos/sdm_ipsec_site_to_site_vpn/sdm_ipsec_site_to_site_vpn.html" target="_blank">Voir la vidéo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bmigette.fr/2009/01/10/configurer-vpn-site-to-site-avec-sdm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

