<?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>Le Blog du grand loup Zeur &#187; grsec</title>
	<atom:link href="http://blog.gaetan-grigis.eu/tag/grsec/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gaetan-grigis.eu</link>
	<description>Le blog qui vous fait connaitre ce que vous savez déjà</description>
	<lastBuildDate>Tue, 17 Jan 2012 08:43:06 +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>Automatiser la récupération et la compilation du kernel et de son patch GrSec</title>
		<link>http://blog.gaetan-grigis.eu/systeme/administration/automatiser-la-recuperation-et-la-compilation-du-kernel-et-de-son-patch-grsec/</link>
		<comments>http://blog.gaetan-grigis.eu/systeme/administration/automatiser-la-recuperation-et-la-compilation-du-kernel-et-de-son-patch-grsec/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 22:43:36 +0000</pubDate>
		<dc:creator>Gaëtan</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[grsec]]></category>
		<category><![CDATA[grsecurity2]]></category>
		<category><![CDATA[patch]]></category>

		<guid isPermaLink="false">http://blog.gaetan-grigis.eu/?p=606</guid>
		<description><![CDATA[Plop à tous&#8230; Petit truc de geek &#8230; un script pour automatiser la récupération du dernier kernel stable depuis le site kernel.org puis le dernier patch grsecurity à appliquer sur le kernel en question (qui sort généralement un jour après la release du kernel). Sur ubuntu, il faut tout d&#8217;abord installer le paquet kernel-package : [...]]]></description>
			<content:encoded><![CDATA[<p>Plop à tous&#8230;</p>
<p>Petit truc de geek &#8230; un script pour automatiser la récupération du dernier kernel stable depuis le site kernel.org puis le dernier patch grsecurity à appliquer sur le kernel en question (qui sort généralement un jour après la release du kernel).<br />
Sur ubuntu, il faut tout d&#8217;abord installer le paquet kernel-package :</p>
<pre>
sudo apt-get install kernel-package
</pre>
<p>Puis récupérer le script suivant (nommé chez moi recupKernel.pl dans la commande qui suivra) :</p>
<div class="geshi no perl">
<ol>
<li class="li1">
<div class="de1"><span class="co1">#!/usr/bin/perl</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">require</span> HTTP::<span class="me2">Request</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">use</span> LWP::<span class="me2">UserAgent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">my</span> <span class="re0">$kernelUrl</span> = recupKernel<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">my</span> <span class="re0">$kernelVersion</span> = recupKernelVersion<span class="br0">&#40;</span><span class="re0">$kernelUrl</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">my</span> <span class="re0">$grsecUrl</span> = recupGrSec<span class="br0">&#40;</span><span class="re0">$kernelVersion</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">my</span> <span class="re0">$grsecName</span> = recupGrSecName<span class="br0">&#40;</span><span class="re0">$grsecUrl</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$kernelUrl</span> <span class="sy0">&amp;&amp;</span> <span class="re0">$grsecUrl</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">print</span> <span class="st0">&quot;Url du dernier kernel stable : $kernelUrl<span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">print</span> <span class="st0">&quot;Version du kernel : $kernelVersion<span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">print</span> <span class="st0">&quot;Url du dernier patch GrSec stable : $grsecUrl<span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">print</span> <span class="st0">&quot;Nom du Patch : $grsecName<span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">print</span> <span class="st0">&quot;Recuperation du kernel : <span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$rK</span> = `wget <span class="re0">$kernelUrl</span>`;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">print</span> <span class="st0">&quot;Recuperation du patch : <span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$rG</span> = `wget <span class="re0">$grsecUrl</span>`;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">print</span> <span class="st0">&quot;Extraction des données et compilation<span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$dT</span> = `tar -xjf <span class="sy0">*</span>.tar.bz2 <span class="sy0">&amp;&amp;</span> patch -p0 <span class="sy0">&gt;</span> <span class="re0">$grsecName</span>`;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sub</span> recupKernel</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$req</span> = HTTP::<span class="me2">Request</span>-<span class="sy0">&gt;</span><span class="me1">new</span><span class="br0">&#40;</span>GET =<span class="sy0">&gt;</span> <span class="st0">&quot;http://kernel.org/&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$ua</span> = LWP::<span class="me2">UserAgent</span>-<span class="sy0">&gt;</span><span class="me1">new</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">$ua</span>-<span class="sy0">&gt;</span><span class="me1">agent</span><span class="br0">&#40;</span><span class="st0">&quot;Firefox/4.0&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$res</span> = <span class="re0">$ua</span>-<span class="sy0">&gt;</span><span class="me1">request</span><span class="br0">&#40;</span><span class="re0">$req</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$res</span>-<span class="sy0">&gt;</span><span class="me1">is_success</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">my</span> <span class="re0">$text</span> = <span class="re0">$res</span>-<span class="sy0">&gt;</span><span class="me1">content</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">my</span> <span class="re0">$recherche</span> = <span class="st0">&#39;&lt;table id=&quot;brbtable([\n\t\r\W\w]*?)&lt;/table&gt;&#39;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$text</span> =~ <span class="kw3">m</span><span class="sy0">/</span><span class="br0">&#40;</span><span class="re0">$recherche</span><span class="br0">&#41;</span><span class="sy0">/</span>gm;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">return</span> recupHrefUrl<span class="br0">&#40;</span>$<span class="nu0">2</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">return</span> <span class="st0">&#39;&#39;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sub</span> recupHrefUrl</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$ret</span>=<span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$recherche</span> = <span class="st0">&#39;href=&quot;([^&quot;]*)&#39;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">$ret</span> =~ <span class="kw3">m</span><span class="sy0">/</span><span class="br0">&#40;</span><span class="re0">$recherche</span><span class="br0">&#41;</span><span class="sy0">/</span>gm;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">return</span> $<span class="nu0">2</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sub</span> recupKernelVersion</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$ret</span>=<span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$recherche</span> = <span class="st0">&#39;linux-([0-9]+.[0-9]+.[0-9]+.[0-9]+)&#39;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">$ret</span> =~ <span class="kw3">m</span><span class="sy0">/</span><span class="br0">&#40;</span><span class="re0">$recherche</span><span class="br0">&#41;</span><span class="sy0">/</span>gm;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">return</span> $<span class="nu0">2</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sub</span> recupGrSecName</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$ret</span>=<span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$recherche</span> = <span class="st0">&#39;/(grsecurity.*.patch)&#39;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">$ret</span> =~ <span class="kw3">m</span><span class="sy0">/</span><span class="br0">&#40;</span><span class="re0">$recherche</span><span class="br0">&#41;</span><span class="sy0">/</span>gm;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">return</span> $<span class="nu0">2</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sub</span> recupGrSec</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$kernelV</span> = <span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$req</span> = HTTP::<span class="me2">Request</span>-<span class="sy0">&gt;</span><span class="me1">new</span><span class="br0">&#40;</span>GET =<span class="sy0">&gt;</span> <span class="st0">&quot;http://www.grsecurity.net/test.php&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$ua</span> = LWP::<span class="me2">UserAgent</span>-<span class="sy0">&gt;</span><span class="me1">new</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">$ua</span>-<span class="sy0">&gt;</span><span class="me1">agent</span><span class="br0">&#40;</span><span class="st0">&quot;Firefox/4.0&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">my</span> <span class="re0">$res</span> = <span class="re0">$ua</span>-<span class="sy0">&gt;</span><span class="me1">request</span><span class="br0">&#40;</span><span class="re0">$req</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$res</span>-<span class="sy0">&gt;</span><span class="me1">is_success</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">my</span> <span class="re0">$text</span> = <span class="re0">$res</span>-<span class="sy0">&gt;</span><span class="me1">content</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">my</span> <span class="re0">$recherche</span> = <span class="st0">&quot;href=<span class="es0">\&quot;</span>(test/grsecurity-[.0-9]+-$kernelV-[0-9]+.patch)<span class="es0">\&quot;</span>&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$text</span> =~ <span class="kw3">m</span><span class="sy0">/</span><span class="br0">&#40;</span><span class="re0">$recherche</span><span class="br0">&#41;</span><span class="sy0">/</span>gm;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">return</span> <span class="st0">&quot;http://www.grsecurity.net/$2&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">return</span> <span class="st0">&#39;&#39;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Il suffit ensuite d&#8217;executer la commande suivante :</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">perl</span> recupKernel.pl <span class="sy0">&amp;&amp;</span> <span class="kw3">cd</span> linux-<span class="sy0">*</span> <span class="sy0">&amp;&amp;</span> <span class="kw2">make</span> menuconfig <span class="sy0">&amp;&amp;</span> make-kpkg clean <span class="sy0">&amp;&amp;</span> make-kpkg &#8211;initrd &#8211;append-to-version <span class="st0">&quot;LoupZeur-grsec&quot;</span> kernel_image</div>
</li>
</ol>
</div>
<p>Ce qui générera un fichier .deb qu&#8217;il faudra installer par un bon vieux dpkg -i.</p>
<p>PS: Lors de l&#8217;execution de la commande make menuconfig, une fenetre &laquo;&nbsp;bleu&nbsp;&raquo; apparaitra, il faudra selectionner la menu &laquo;&nbsp;security&nbsp;&raquo;, puis grsecurity et choisir le niveau de <a href="http://www.howtoforge.com/hardening-the-linux-kernel-with-grsecurity-debian" target="_blank">sécurité &laquo;&nbsp;HIGH&nbsp;&raquo;</a>.</p>
<p>PS2: Il faut aussi bien entendu selectionner ou deselectionner tout les modules inutiles (genre usb, support agp et &#8230; ).</p>

                            <div id="aspdf">
                                <a href="http://blog.gaetan-grigis.eu/wp-content/plugins/as-pdf/generate.php?post=606">
                                    <span>Télécharger l'article au format PDF</span>
                                </a>
                            </div>
                        <hr /><h2>Articles similaires : </h2><ul><li><a href="http://blog.gaetan-grigis.eu/mes-applicationsscripts/" rel="bookmark" title="Permanent Link: Mes Applications/Scripts">Mes Applications/Scripts</a></li><li><a href="http://blog.gaetan-grigis.eu/systeme/acl-avec-grsecurity2/" rel="bookmark" title="Permanent Link: ACL avec GRSecurity2">ACL avec GRSecurity2</a></li><li><a href="http://blog.gaetan-grigis.eu/ubuntu/tnt-em2882-et-mise-a-jour-du-kernel-dubuntu/" rel="bookmark" title="Permanent Link: TNT em2882 et Mise a jour du kernel d&#8217;ubuntu &#8230;">TNT em2882 et Mise a jour du kernel d&#8217;ubuntu &#8230;</a></li><li><a href="http://blog.gaetan-grigis.eu/android/compiler-android-sur-ubuntu-9-10/" rel="bookmark" title="Permanent Link: Compiler android sur ubuntu 9.10">Compiler android sur ubuntu 9.10</a></li><li><a href="http://blog.gaetan-grigis.eu/programmation/cpp/patch-correction-du-bug-error-retrieving-directory-system111-de-tortunnel/" rel="bookmark" title="Permanent Link: [PATCH] Correction du bug &laquo;&nbsp;Error Retrieving Directory: system:111&#8243; de tortunnel">[PATCH] Correction du bug &laquo;&nbsp;Error Retrieving Directory: system:111&#8243; de tortunnel</a></li></ul><hr /><small>Copyright &copy; 2008-2011 - Gaetan Grigis - <a href="http://blog.gaetan-grigis.eu">blog.gaetan-grigis.eu</a> </small>]]></content:encoded>
			<wfw:commentRss>http://blog.gaetan-grigis.eu/systeme/administration/automatiser-la-recuperation-et-la-compilation-du-kernel-et-de-son-patch-grsec/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

