<?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; firewall</title>
	<atom:link href="http://bmigette.fr/tag/firewall/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>Sat, 19 May 2012 14:49:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Cisco IOS Zone Based Firewall</title>
		<link>http://bmigette.fr/2009/02/23/cisco-ios-zone-based-firewall/</link>
		<comments>http://bmigette.fr/2009/02/23/cisco-ios-zone-based-firewall/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 19:28:55 +0000</pubDate>
		<dc:creator>Bastien Migette</dc:creator>
				<category><![CDATA[CCSP]]></category>
		<category><![CDATA[IINS (ccna security)]]></category>
		<category><![CDATA[Sécurité réseau]]></category>
		<category><![CDATA[SNRS]]></category>
		<category><![CDATA[based]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[IOS]]></category>
		<category><![CDATA[service-policy]]></category>
		<category><![CDATA[type inspect]]></category>
		<category><![CDATA[zone]]></category>
		<category><![CDATA[zone-member]]></category>
		<category><![CDATA[zone-pair]]></category>

		<guid isPermaLink="false">http://bmigette.fr/?p=196</guid>
		<description><![CDATA[Un article sur le futur de CBAC (http://bmigette.fr/2008/09/26/configuration-cbac/), le Zone based firewall, qu&#8217;est-ce que c&#8217;est, à quoi ça sert, comment ça se configure &#8230; Pour l&#8217;exemple, nous utiliseront cette topologie: Topologie dynagen: hostios = True sparsemem = True [localhost] [[2621XM]] image = ../images/C2600-AD.BIN ram = 96 idlepc = 0x81691494 [[ROUTER R1]] model = 2621XM [[ROUTER [...]]]></description>
			<content:encoded><![CDATA[<p>Un article sur le futur de CBAC (<a href="http://bmigette.fr/2008/09/26/configuration-cbac/" target="_blank">http://bmigette.fr/2008/09/26/configuration-cbac/</a>), le Zone based firewall, qu&#8217;est-ce que c&#8217;est, à quoi ça sert, comment ça se configure &#8230;<br />
Pour l&#8217;exemple, nous utiliseront cette topologie:</p>
<div id="attachment_125" class="wp-caption alignnone" style="width: 472px"><a href="http://bmigette.fr/wp-content/uploads/2009/01/topo_parp.jpg"><img class="size-full wp-image-125" title="topologie" src="http://bmigette.fr/wp-content/uploads/2009/01/topo_parp.jpg" alt="Topologie" width="462" height="78" /></a><p class="wp-caption-text">Topologie</p></div>
<p><span id="more-196"></span></p>
<p>Topologie dynagen:</p>
<pre>hostios = True
sparsemem = True

[localhost]

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

	[[ROUTER R1]]
		model = 2621XM

	[[ROUTER R2]]
		model = 2621XM
		F0/1 = R1 F0/0
		F0/0 = R3 F0/1

	[[ROUTER R3]]
		model = 2621XM</pre>
<p>On prendra R2 comme étant le routeur Firewall.</p>
<h2>Introduction</h2>
<p>Sur l&#8217;ancien modèle de firewall (CBAC &#8211; IP INSPECT), il fallait définir des ACLs, et surtout autant d&#8217;ACL que l&#8217;on avait d&#8217;interface utilisées pour le firewall. De plus, on ne pouvait spécifier très précisément l&#8217;inspection protocolaire. Avec le nouveau modèle de firewall, le principe est de regrouper les interfaces sous forme de zones, et de spécifier quel type de trafic peut passer d&#8217;une zone à une autre. Cela utilise des service-policy et class map (cisco MQF).</p>
<h2>Principes:</h2>
<p>Ce qui est nouveau:</p>
<ul>
<li>Application des politiques de sécurité entre les zones, pas par interfaces (une zone peut être constituée d&#8217;une ou plusieurs interfaces)</li>
<li>Il y a une politiques deny all par défaut (donc pas besoin d&#8217;ACL).</li>
<li>On peut, via l&#8217;utilisation de classmap, spécifier des politiques différentes par host et par subnet, ou par protocoles</li>
</ul>
<p>Note: On peut utiliser conjointement l&#8217;IOS firewall classic, et le zone based, sur des interfaces différentes (une interface qui fait partie d&#8217;une zone ne pourra faire d&#8217;inspection).</p>
<p>Il faut configurer les zones avant d&#8217;y ajouter des interfaces. et une interface ne peut faire partie que d&#8217;une seule zone à la fois. Les commandes pour créer une zone et y affecter des interfaces sont:</p>
<pre>Router(config)#zone security zone_securisee
Router(config-sec-zone)#description zone securise!
Router(config-sec-zone)#exit
Router(config)#interface fastEthernet 0/1
Router(config-if)#zone-member security zone_securisee</pre>
<p>Par défaut, le trafic sera supprimé entre:</p>
<ul>
<li>Une interface membre d&#8217;une zone vers une interface membre d&#8217;une autre zone</li>
<li>Une interface membre d&#8217;une zone vers une interface non membre d&#8217;aucune zone: <span style="color: #ff0000;"><span style="text-decoration: underline;">Ce traffic ne pourra être autorisé, même avec des ACL ou des service-policy, une interface faisant partie d&#8217;une zone ne peux communiquer qu&#8217;avec des interfaces dans une zone selon la configuration</span></span></li>
</ul>
<p>Et le trafic sera autorisé entre:</p>
<ul>
<li>Deux interface d&#8217;une même zone</li>
<li>Deux interface ne faisant partie d&#8217;aucune zone (comportement normal, sauf ACL)</li>
<li>D&#8217;une interface membre d&#8217;une zone vers le routeur (= zone &laquo;&nbsp;<span style="text-decoration: underline;"><strong>self</strong></span>&laquo;&nbsp;, correspond aux paquets destinés aux interfaces du routeur : on peut utilisée cette zone spéciale pour modifier le comportement du routeur)</li>
</ul>
<p>Note: On peut configurer des interfaces dans différentes VRFs dans une même zone, sous peu que le routage soit correct.</p>
<p>D&#8217;une zone à l&#8217;autre, trois actions peuvent être prises:</p>
<ul>
<li>Pass: Le trafic est autorisé à transiter d&#8217;une zone à l&#8217;autre</li>
<li>Inspect: Autoriser le trafic et inspecter le trafic retour (= ip inspect)</li>
<li>Drop: Supprimer le trafic</li>
</ul>
<p>Ces actions peuvent bien sur être appliquée différemment selon le type de trafic (à régler par les class-map).</p>
<p>Pour réguler le trafic entre deux zones, il faut créer une zone-pair, que l&#8217;on va créer entre deux zone. Une zone pair est <span style="color: #ff0000;"><strong>unidirectionnelle</strong></span>, il faudra donc créer deux zone-pair pour autoriser le trafic dans les deux sens. Pour autoriser le trafic, on utilisera des service policy, qui utiliseront des class-maps.</p>
<p>Création d&#8217;une zone-pair (après création d&#8217;une seconde zone):</p>
<pre>Router(config)#zone security zone_non_securisee
Router(config-sec-zone)#exit
Router(config)#int f0/0
Router(config-if)#zone-member security zone_non_securisee
Router(config-if)#exit
Router(config)#zone-pair security secure_vers_unsecure source zone_securisee destination zone_non_securisee
Router(config-sec-zone-pair)#service-policy type inspect XXX
Router(config-sec-zone-pair)#exit</pre>
<p>On distinguera deux types de class-map, et donc de service-policy, les type protocole (couche 7), et les autres (couche 3 et 4). Les class-map et service policy de couche 7 contiennent des options spécifique au protocole, mais ne peuvent être appliquée directement, il faudra passer par une policy classique. Voici un exemple:</p>
<pre>Router(config)#class-map type inspect <strong><span style="text-decoration: underline;">http</span></strong> l7_http_class
Router(config-cmap)#match ?
  flow      Flow based QoS parameters
  req-resp  HTTP request or response
  request   HTTP request
  response  HTTP response

Router(config-cmap)#match request ?
  arg          HTTP arguments
  body         HTTP body
  header       HTTP Request or Response header
  method       HTTP method
  port-misuse  Violation of HTTP port
  uri          HTTP uri
Router(config-cmap)#match request uri length gt 500
Router(config-cmap)#exit
!Creation de la policy
Router(config)#policy-map type inspect <strong><span style="text-decoration: underline;">http</span></strong> l7_http_policy
Router(config-pmap)#class l7_http_class
Router(config-pmap-c)#?
Policy-map class configuration commands:
  allow  Allow the packet
  exit   Exit from class action configuration mode
  log    Generate log message
  no     Negate or set default values of a command
  reset  Reset the connection
  &lt;cr&gt;

Router(config-pmap-c)#reset
Router(config-pmap-c)#exit
Router(config-pmap)#exit</pre>
<p>le mot clé <strong><span style="text-decoration: underline;">http</span></strong> correspond au protocole, non au nom de la map.</p>
<p>Création maintenant d&#8217;une classe map applicable à une zone-pair</p>
<pre>Router(config)#class-map type inspect ALL_HTTP_TRAFFIC
Router(config-cmap)#match protocol http
Router(config-cmap)#exit
Router(config)#policy-map type inspect My_Policy
Router(config-pmap)#class ALL_HTTP_TRAFFIC
Router(config-pmap-c)#service-policy http l7_http_policy
%Please configure inspect action first

Router(config-pmap-c)#inspect
Router(config-pmap-c)#service-policy http l7_http_policy
Router(config-pmap-c)#exit
Router(config-pmap)#exit</pre>
<p>Si j&#8217;appliques la policy My_Policy sur une zone-pair (ou sur une interface d&#8217;ailleurs), cela aura pour effet d&#8217;inspecter tout le traffic HTTP et de supprimer les requête HTTP d&#8217;on l&#8217;URI fait plus de 500 caractères.</p>
<p>Voici l&#8217;erreur que j&#8217;aurai eu si j&#8217;avais tenté d&#8217;attacher la policy l7:</p>
<pre>Router(config-sec-zone-pair)#service-policy type inspect l7_http_policy
Inspect service-policy attachment failed</pre>
<h2>Etude de cas:</h2>
<p>En reprenant la topologie ci dessus (on considéreras que le routage est déjà fait), je vais créer une politique permettant d&#8217;autoriser ICMP a travers le firewall et d&#8217;autoriser le trafic HTTP et HTTPS a travers le routeur depuis la zone sécurisée vers la zone non sécurisée.<br />
<strong><span style="text-decoration: underline;">Note: pour les protocoles de routages, ils sont à destination de la zone self, et sont donc autorisés par défaut.</span></strong></p>
<p>Création des politiques de sécurité</p>
<pre>R2(config)#class-map type inspect match-any HTTP_TRAFFIC
R2(config-cmap)#match protocol http
R2(config-cmap)#match protocol https
R2(config-cmap)#exit
R2(config)#class-map type inspect ICMP_TRAFFIC
R2(config-cmap)#match protocol icmp
R2(config-cmap)#exit
R2(config)#policy-map type inspect http_icmp_policy
R2(config-pmap)#class HTTP_TRAFFIC
R2(config-pmap-c)#inspect
R2(config-pmap-c)#class ICMP_TRAFFIC
R2(config-pmap-c)#pass
R2(config-pmap-c)#exit
R2(config-pmap)#exit
R2(config)#policy-map type inspect icmp_policy
R2(config-pmap)#class ICMP_TRAFFIC
R2(config-pmap-c)#pass
R2(config-pmap-c)#exit
R2(config-pmap)#exit</pre>
<p>créations des zones de sécurité et affectation aux interfaces</p>
<pre>R2(config)#zone security SECURE
R2(config-sec-zone)#exit
R2(config)#zone security UNSECURE
R2(config-sec-zone)#exit
R2(config)#interface f0/1
R2(config-if)#zone-member security SECURE
R2(config-if)#interface f0/0
R2(config-if)#zone-member security UNSECURE
R2(config-if)#exit
R2(config)#</pre>
<p>Et affectation des politiques de sécurité aux zone-pair.</p>
<pre>R2(config)#zone-pair security SECURE_TO_UNSECURE source SECURE dest UNSECURE
R2(config-sec-zone-pair)#service-policy type inspect http_icmp_policy
R2(config-sec-zone-pair)#exit
R2(config)#zone-pair security UNSECURE_TO_SECURE source UNSECURE dest SECURE
R2(config-sec-zone-pair)#service-policy type inspect icmp_policy
R2(config-sec-zone-pair)#exit
R2(config)#</pre>
<p>Et on teste, sur R1:</p>
<pre>R1#ping 192.168.1.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/27/68 ms
R1#telnet 192.168.1.2 80 <strong><span style="text-decoration: underline;">!test HTTP</span>
</strong>Trying 192.168.1.2, 80 ... <strong><span style="text-decoration: underline;">Open</span></strong>
zz
HTTP/1.1 400 Bad Request
Date: Fri, 01 Mar 2002 02:00:22 GMT
Server: cisco-IOS
Accept-Ranges: none

400 Bad Request

[Connection to 192.168.1.2 closed by foreign host]
R1#telnet 192.168.1.2 443 <strong><span style="text-decoration: underline;">!test HTTPS</span>
</strong>Trying 192.168.1.2, 443 ... <strong><span style="text-decoration: underline;">Open</span></strong>
s
[Connection to 192.168.1.2 closed by foreign host]</pre>
<p>sur R2:</p>
<pre>R3#ping 192.168.0.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/11/16 ms
R3#telnet 192.168.0.1 80 <strong><span style="text-decoration: underline;">!test HTTP</span></strong>
Trying 192.168.0.1, 80 ...
<strong><span style="text-decoration: underline;">% Connection timed out</span></strong>; remote host not responding

R3#telnet 192.168.0.1 443 <strong><span style="text-decoration: underline;"><strong><span style="text-decoration: underline;">!test HTTPS</span></strong></span></strong>
Trying 192.168.0.1, 443 ...
<strong><span style="text-decoration: underline;">% Connection timed out</span></strong>; remote host not responding

R3#</pre>
<p>Et voila!</p>
]]></content:encoded>
			<wfw:commentRss>http://bmigette.fr/2009/02/23/cisco-ios-zone-based-firewall/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Configuration CBAC</title>
		<link>http://bmigette.fr/2008/09/26/configuration-cbac/</link>
		<comments>http://bmigette.fr/2008/09/26/configuration-cbac/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 23:06:19 +0000</pubDate>
		<dc:creator>Bastien Migette</dc:creator>
				<category><![CDATA[CCSP]]></category>
		<category><![CDATA[IINS (ccna security)]]></category>
		<category><![CDATA[Sécurité réseau]]></category>
		<category><![CDATA[SNRS]]></category>
		<category><![CDATA[vidéos]]></category>
		<category><![CDATA[CBAC]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[IOS]]></category>
		<category><![CDATA[statefull]]></category>

		<guid isPermaLink="false">http://bmigette.fr/?p=40</guid>
		<description><![CDATA[Vidéo montrant la configuration et l&#8217;utilité de la fonctionnalité CBAC (Context based access control), présent sur les IOS Sécurité. Cela transforme un routeur en un parefeu à état avancé (deep packet inspection firewall), inspection des protocoles applicatifs (couche 7). Commentaires audio en anglais. Voir la vidéo]]></description>
			<content:encoded><![CDATA[<p>Vidéo montrant la configuration et l&#8217;utilité de la fonctionnalité CBAC (Context based access control), présent sur les IOS Sécurité. Cela transforme un routeur en un parefeu à état avancé (deep packet inspection firewall), inspection des protocoles applicatifs (couche 7).<br />
Commentaires audio en anglais.<br />
<a href="/vid.php?video=CBAC_configuration/CBAC_configuration.swf" target="_blank">Voir la vidéo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bmigette.fr/2008/09/26/configuration-cbac/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

