<?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>Mark As Read</title>
	<atom:link href="http://markasread.sn4ky.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://markasread.sn4ky.net</link>
	<description>Toutes nos commandes utiles</description>
	<lastBuildDate>Sun, 17 Nov 2013 12:30:48 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>ProFTPd, Fail2ban, locales</title>
		<link>http://markasread.sn4ky.net/proftpd-fail2ban-locales/</link>
		<comments>http://markasread.sn4ky.net/proftpd-fail2ban-locales/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 01:38:25 +0000</pubDate>
		<dc:creator>Sn4kY</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[locales]]></category>
		<category><![CDATA[probleme]]></category>
		<category><![CDATA[proftp]]></category>
		<category><![CDATA[protfpd]]></category>
		<category><![CDATA[regex]]></category>

		<guid isPermaLink="false">http://www.markasread.fr/?p=527</guid>
		<description><![CDATA[Fail2Ban, qu&#8217;on ne présente plus, est un outil bien utile. Encore faut-il que les regex soit bien configurées, et que les services (tels que ProFTPd) sortent un log qui est interprétable par ProFTPd. Il m&#8217;est arrivé de détecter que fail2ban ne faisait pas bien son job avec proftpd. En effet, un log comme suit : [...]]]></description>
				<content:encoded><![CDATA[<p>Fail2Ban, qu&rsquo;on ne présente plus, est un outil bien utile.<br />
Encore faut-il que les regex soit bien configurées, et que les services (tels que ProFTPd) sortent un log qui est interprétable par ProFTPd.</p>
<p>Il m&rsquo;est arrivé de détecter que fail2ban ne faisait pas bien son job avec proftpd.<br />
En effet, un log comme suit :</p>
<pre class="brush: bash; title: ; notranslate">déc. 08 04:26:16 xxx.sn4ky.net proftpd[20043] 127.0.0.1 (174.133.xxx.xxx[174.133.xxx.xxx]): USER Administrator: no such user found from 174.133.xxx.xxx [174.133.xxx.xxx] to 217.174.xxx.xxx:21</pre>
<p>n&rsquo;est pas correctement interprété par fail2ban (fail2ban ne parvient pas à &laquo;&nbsp;lire&nbsp;&raquo; le format de la date &#8211; date dont il se sert afin de déterminer la fréquence des tentatives de connexions).</p>
<p>Ceci n&rsquo;est pas un problème d&rsquo;une regex mal configurée, comme on peut le voir en utilisant l&rsquo;outil fail2ban-regex (qui permet de valider le bon fonctionnement d&rsquo;un filtre dans /etc/filter.d/profptd.conf) :</p>
<pre class="brush: bash; title: ; notranslate">fail2ban-regex /var/log/proftpd/proftpd.logbak /etc/fail2ban/filter.d/proftpd.conf
Found a match for 'd xxx.sn4ky.net proftpd[20043] 127.0.0.1 (174.133.xxx.xxx[174.133.xxx.xxx]): USER Administrator: no such user found from 174.133.xxx.xxx[174.133.xxx.xxx] to 217.174.xxx.xxx:21
' but no valid date/time found for 'éc. 08 04:26:16'. Please contact the author in order to get support for this format
</pre>
<p>Il apparaît que le démon proftpd démarre en utilisant la valeur de la variable d’environnement LANG, définie par la locale par défaut utilisée sur le système au moment du démarrage de celui-ci :</p>
<pre class="brush: bash; title: ; notranslate"># echo $LANG
fr_FR@euro
</pre>
<p>Une solution permet de contourner ce problème, modifier les locales afin d&rsquo;utiliser un environnement en Anglais, qui serai reconnu correctement par proftpd.<br />
MAIS, je n&rsquo;aime pas trop cette solution (bien qu&rsquo;efficace, changer sa locale par défaut peut parfois causer des soucis).</p>
<p>Une autre solution, beaucoup plus &laquo;&nbsp;soft&nbsp;&raquo; m&rsquo;es venue à l&rsquo;esprit :<br />
On va tout d&rsquo;abord ajouter une locale à notre système :</p>
<pre class="brush: bash; title: ; notranslate"># dpkg-reconfigure locales</pre>
<p>(on va ajouter une locale en anglais, par exemple en_US.UTF-8 &#8211; universelle en plus)<br />
On ne change pas la locale par défaut, par contre, on va éditer le fichier <code>/etc/default/proftpd.conf</code> et y rajouter la ligne suivante :</p>
<pre class="brush: bash; title: ; notranslate">export LANG=en_US.UTF-8</pre>
<p>Par la suite, il ne reste plus qu&rsquo;à redémarrer proftpd, puis constater, dans les logs :</p>
<pre class="brush: bash; title: ; notranslate">
déc. 10 01:50:32 xxx.sn4ky.net proftpd[8594] 127.0.0.1: ProFTPD 1.3.3a standalone mode SHUTDOWN
Dec 10 01:50:34 xxx.sn4ky.net proftpd[9237] 127.0.0.1: ProFTPD 1.3.3a (maint) (built Sun Nov 13 2011 22:40:44 UTC) standalone mode STARTUP
</pre>
<p>Miracle ! le format de sortie du log a changé !<br />
Et cette fois, il est lisible par Fail2ban (un fail2ban-regex pour s&rsquo;en convaincre, après avoir fait un petit coup de <code>sed -i.bak 's/déc\./Dec/g' /var/log/proftpd/proftpd.log</code> pour s&rsquo;en convaincre.</p>
<p>En espérant en avoir dépanné plus d&rsquo;un.</p>
]]></content:encoded>
			<wfw:commentRss>http://markasread.sn4ky.net/proftpd-fail2ban-locales/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Droits d&#8217;écriture par listes de contrôle d&#8217;accès (ACL)</title>
		<link>http://markasread.sn4ky.net/droits-decriture-par-listes-de-controle-dacces-acl/</link>
		<comments>http://markasread.sn4ky.net/droits-decriture-par-listes-de-controle-dacces-acl/#comments</comments>
		<pubDate>Fri, 24 Dec 2010 22:00:38 +0000</pubDate>
		<dc:creator>Sn4kY</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Site Web]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[777]]></category>
		<category><![CDATA[ACL]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[chmod]]></category>
		<category><![CDATA[droits unix]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://tools.inrage.fr/?p=297</guid>
		<description><![CDATA[Si vous hébergez plusieurs sites web sur un seul et même serveur dédié, vous avez probablement dû être confrontés à ce problème : Apache ne peut écrire dans un répertoire utilisateur (sauf permissions folkloriques 777 ou lancer le démon httpd en root:root&#8230;) Pour cela, on va utiliser ce qu&#8217;on appelle les ACL, les listes de [...]]]></description>
				<content:encoded><![CDATA[<p>Si vous hébergez plusieurs sites web sur un seul et même serveur dédié, vous avez probablement dû être confrontés à ce problème :<br />
Apache ne peut écrire dans un répertoire utilisateur (sauf permissions folkloriques 777 ou lancer le démon httpd en root:root&#8230;)</p>
<p>Pour cela, on va utiliser ce qu&rsquo;on appelle les ACL, les listes de contrôle d&rsquo;accès.</p>
<p>Avec votre gestionnaire de package préféré, installer les utilitaires fournis par le paquet &laquo;&nbsp;acl&nbsp;&raquo;</p>
<pre class="brush: bash; title: ; notranslate">aptitude install acl</pre>
<p>Remontez la partition que vous souhaitez contrôler avec les ACL, avec l&rsquo;option adéquate :</p>
<pre class="brush: bash; title: ; notranslate">mount -o remount,acl /home</pre>
<p>Dans le fstab, rajouter l&rsquo;option &lsquo;acl&rsquo; au point de montage<br />
Par exemple :</p>
<pre class="brush: bash; title: ; notranslate">cat /etc/fstab
/dev/sdb    /home    ext3    defaults,acl        0       2
</pre>
<p>Pour finir, appliquez les ACL sur le ou les répertoires concernés !</p>
<pre class="brush: bash; title: ; notranslate">setfacl -R -m u:sn4ky:rwX,u:www-data:rwX,d:u:sn4ky:rwX,d:u:www-data:rwX,g::r-X,o::r-X,d:g::r-X,d:o::r-X,m::rwX,d:m::rwX /home/sn4ky/public_html/blog/wp-content/</pre>
<p>Explications :</p>
<ul>
<li><em>setfacl</em> : le programme (installé avec acl)</li>
<li><em>-R</em> : récursif</li>
<li><em>-m</em> : modifier (ou créer) une ACL</li>
<li><em>u:sn4ky:rwx</em> : défini que l&rsquo;utilisateur <em>sn4ky</em> (moi) a les droits <em>rwx</em> sur les fichiers et dossiers existants</li>
<li><em>u:www-data:rwx</em> : défini que l&rsquo;utilisateur <em>www-data</em> (Apache) a les droits <em>rwx</em> sur les fichiers et dossiers existants</li>
<li><em>d:sn4ky:rwx</em> : défini les droits rwx sur tout fichier ou dossier nouvellement créé après la mise en place de l&rsquo;ACL (<em>d</em>efault)</li>
<li><em>d:www-data:rwx</em> : idem</li>
<li><em>m::rwx</em> : masque a appliquer sur tous fichiers et dossiers courants</li>
<li><em>d:m::rwX</em> : masque a appliquer pour toute future création de fichiers ou de dossiers</li>
<li><em>g::&#8212;,o::&#8212;</em> respectivement pour <em>group</em> et <em>other</em></li>
</ul>
<p><em>n.b. :</em> le flag <em>X</em> indique : excécution uniquement si l&rsquo;objet est un répertoire ou s&rsquo;il y a déjà les droits d&rsquo;exécution pour d&rsquo;autre utilisateurs (manpage : <em>execute only if the file is a directory or already has execute permission for some user</em>)</p>
]]></content:encoded>
			<wfw:commentRss>http://markasread.sn4ky.net/droits-decriture-par-listes-de-controle-dacces-acl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>htaccess dans répertoire virtuel</title>
		<link>http://markasread.sn4ky.net/htaccess-dans-repertoire-virtuel/</link>
		<comments>http://markasread.sn4ky.net/htaccess-dans-repertoire-virtuel/#comments</comments>
		<pubDate>Fri, 24 Dec 2010 21:27:13 +0000</pubDate>
		<dc:creator>Sn4kY</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[location]]></category>
		<category><![CDATA[url rewriting]]></category>

		<guid isPermaLink="false">http://tools.inrage.fr/?p=293</guid>
		<description><![CDATA[On connaît tous les méthodes pour appliquer une ou plusieurs règles de htaccess à un ou plusieurs répertoire (avec Directory), mais comment faire lorsque l&#8217;URL demandée par le navigateur est un virtuel (genre une alias ou de l&#8217;url rewriting) ? La réponse avec un exemple : Alors après, vous pouvez jouer de fantaisies diverses et [...]]]></description>
				<content:encoded><![CDATA[<p>On connaît tous les méthodes pour appliquer une ou plusieurs règles de htaccess à un ou plusieurs répertoire (avec Directory), mais comment faire lorsque l&rsquo;URL demandée par le navigateur est un virtuel (genre une alias ou de l&rsquo;url rewriting) ?</p>
<p>La réponse avec un exemple :</p>
<pre class="brush: bash; title: ; notranslate">
&lt;location ~ &quot;/(repertoire1|repertoire2)/.*&quot;&gt;
	Order Deny,Allow
	Deny from all
	allow from 91.121.12.183
&lt;/location&gt;
</pre>
<p>Alors après, vous pouvez jouer de fantaisies diverses et variées pour subvenir a vos besoins.</p>
]]></content:encoded>
			<wfw:commentRss>http://markasread.sn4ky.net/htaccess-dans-repertoire-virtuel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Authentification par clé RSA</title>
		<link>http://markasread.sn4ky.net/authentification-par-cle-rsa/</link>
		<comments>http://markasread.sn4ky.net/authentification-par-cle-rsa/#comments</comments>
		<pubDate>Fri, 24 Dec 2010 20:05:07 +0000</pubDate>
		<dc:creator>Sn4kY</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[authentification]]></category>
		<category><![CDATA[clé]]></category>
		<category><![CDATA[clef]]></category>
		<category><![CDATA[clefs]]></category>
		<category><![CDATA[clés]]></category>
		<category><![CDATA[dsa]]></category>
		<category><![CDATA[login automatique]]></category>
		<category><![CDATA[rsa]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.markasread.fr/?p=447</guid>
		<description><![CDATA[On néglige trop souvent la sécurité sur un serveur Internet, pourtant, il est vital de se protéger. Ici, nous aborderons un aspect un peu trop passé aux oubliettes, l&#8217;authentification par systèmes de clés privés/clés publiques RSA (la méthode pour DSA est strictement la même, juste changer RSA en DSA dans les étapes suivantes). On va [...]]]></description>
				<content:encoded><![CDATA[<p>On néglige trop souvent la sécurité sur un serveur Internet, pourtant, il est vital de se protéger.<br />
Ici, nous aborderons un aspect un peu trop passé aux oubliettes, l&rsquo;authentification par systèmes de clés privés/clés publiques RSA (la méthode pour DSA est strictement la même, juste changer RSA en DSA dans les étapes suivantes).<br />
On va même aller plus loin à la fin, désactiver complètement root (y compris via les clés) et l&rsquo;authentification par mot de passe (risqué)</p>
<p><span id="more-447"></span></p>
<h1>Configuration du serveur</h1>
<p>Ouvrez avec votre éditeur de texte favoris le fichier de configuration du démon SSH (/etc/ssh/sshd_config pour Debian par exemple) et ajoutez ces lignes :</p>
<pre class="brush: bash; title: ; notranslate">
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys
</pre>
<p>(La ligne AuthorizedKeysFile indique à sshd où aller chercher les clés publiques, %h représente le nom de l&rsquo;utilisateur local du système)<br />
Sauvegardez et fermez la config avant de relancer le démon SSH.<br />
(Trick : un
<pre class="brush: bash; title: ; notranslate">/etc/init.d/ssh restart</pre>
<p> ne kill pas la session SSH a partir duquel il aurait été lancé)</p>
<h1>Création des clés</h1>
<h2>Sous Windows</h2>
<p>Nous allons avoir besoin de l&rsquo;outil <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="blank">PuTTYgen</a> afin de générer les clés RSA.<br />
Lancez le, sélectionnez RSA, et une taille de clé (1024 bits est une bonne valeur, ne descendez pas en dessous de 512 bits), et cliquez sur &laquo;&nbsp;Generate&nbsp;&raquo;.<br />
Vous devez bouger votre souris dans le cadre prévu à cet effet, ce qui génèrera de l&rsquo;entropie, afin de s&rsquo;assurer que la clé sera unique.<br />
<a href="http://www.markasread.fr/wp-content/uploads/2010/12/rsa_1.jpg"><img class="aligncenter size-medium wp-image-448" title="rsa_1" src="http://www.markasread.fr/wp-content/uploads/2010/12/rsa_1-300x288.jpg" alt="" width="300" height="288" /></a><br />
Une fois le couple de clés crées, vous pourrez y rajouter un commentaire pour la clé (indispensable pour savoir à qui appartient la clé) et y mettre une passphrase. La passphrase va servir a encrypter la clé privée. Sans cette passphrase, impossible d&rsquo;utiliser la clé.<br />
<a href="http://www.markasread.fr/wp-content/uploads/2010/12/rsa_2.jpg"><img class="aligncenter size-medium wp-image-449" title="rsa_2" src="http://www.markasread.fr/wp-content/uploads/2010/12/rsa_2-300x288.jpg" alt="" width="300" height="288" /></a><br />
Puis enfin, on clique sur &laquo;&nbsp;Save Private Key&nbsp;&raquo; et &laquo;&nbsp;Save Public Key&nbsp;&raquo;.<br />
Veillez à bien ranger (voir protéger dans un répertoire Utilisateur crypté) votre clé Privée.</p>
<p>Les fichiers ressemblent à ça :<br />
<em>Clé privée</em></p>
<pre class="brush: bash; title: ; notranslate">PuTTY-User-Key-File-2: ssh-rsa
Encryption: aes256-cbc
Comment: user@machinelocale
Public-Lines: 4
AAAAB3NzaC1yc2EAAAABJQAAAIEAga67iAb6FCLKzQN5O/CMwj0tD341I/GkFVQO
MK/grigk8V/qrWO+ljiMsGgZrkJ3EPqqhq3kxp83xOTBk/93DeXtnJ3PFZEwwFed
RO3Fww3V2oMAa5mbLkxwHXEKPx4V+aRcuZWaTnz8Ej7dyMRk112udJjgYsNrzzuD
xtZ+5h0=
Private-Lines: 8
CQZH1dkFNNWdaGmG+tljnUDc1/0tFWoUQO9q5Cc8uIW3l17GTTeJuSZ8QRay3/T1
2z3YQhlqfdn5UEAAnIvAFLaL4HFBbNJaaVh//44v0fxXHDpdsLcdDdOEINFVWUAA
QaQ+yMHaBhYc864kouZlKJujhZEU7lj90zNZ24Vt0YnLSngNk/3Mvw3UwTXeBOZT
7PckIKpla5ZWINu/iIG8/a+LlRYT8QbDskC7eWKSSj0f5ZDgofcYzg+B8Bxwcasr
neg1sv7b4dM7RQe7+GJAeIeHzS2RMv+l9C/gVDL8/sVhX7QXTo2w39s0xcXvNKuh
cmvFn+EvFG0LHDbi8MQxhfN9bbJ6NAVKvPUIznM5XCWhVDHRjiytycHL9fpg42u0
Z/BDYNVdB4e06uotgcK8UbFS4rTLnSBBdT5A4AiiqvJoyX7mjcZMpLca542+Gdmq
axhr/FPSEUImNEC02u5/Dg==
Private-MAC: fed2e7a78bb4ed7e566c506701cf2b5d6f701a32
</pre>
<p><em>Clé publique</em></p>
<pre class="brush: bash; title: ; notranslate">
---- BEGIN SSH2 PUBLIC KEY ----
Comment: &quot;user@machinelocale&quot;
AAAAB3NzaC1yc2EAAAABJQAAAIEAga67iAb6FCLKzQN5O/CMwj0tD341I/GkFVQO
MK/grigk8V/qrWO+ljiMsGgZrkJ3EPqqhq3kxp83xOTBk/93DeXtnJ3PFZEwwFed
RO3Fww3V2oMAa5mbLkxwHXEKPx4V+aRcuZWaTnz8Ej7dyMRk112udJjgYsNrzzuD
xtZ+5h0=
---- END SSH2 PUBLIC KEY ----
</pre>
<p>(Vous noterez que la clé publique est contenue au début du fichier contenant la clé privée)</p>
<p>Afin de rentre compatible votre clé Publique générée, nous allons modifier quelques lignes.</p>
<ul>
<li>Copier le commentaire entre les guillemets, a la fin de la clé</li>
<li>ajouter &laquo;&nbsp;ssh-rsa&nbsp;&raquo; en début de clé</li>
<li>Supprimer les deux premières lignes</li>
<li>Supprimer la dernière ligne</li>
<li>Supprimer les retours à la ligne</li>
</ul>
<p>Vous devriez vous retrouver avec un fichier qui ressemble à celui-ci :</p>
<pre class="brush: bash; title: ; notranslate">ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAga67iAb6FCLKzQN5O/CMwj0tD341I/GkFVQOMK/grigk8/qrWO+ljiMsGgZrkJ3EPqqhq3kxp83xOTB/93DeXtnJ3PFZEwwFedRO3Fww3V2oMAa5mbLkxwHXEKPx4V+aRcuZWaTnz8Ej7dyMRk112udJjgYsNrzzuDxtZ+5h0= user@machinelocale</pre>
<p>Il ne reste qu&rsquo;à copier la clé publique dans le fichier &laquo;&nbsp;$HOME/.ssh/authorized_keys&nbsp;&raquo; de du compte utilisateur sur la machine distante (une clé publique par ligne du fichier) et configurer PuTTY :</p>
<p>Indiquez le host sur lequel se connecter, puis renseignez le chemin de la clé privée dans &laquo;&nbsp;<em>Con­nec­tion</em>&nbsp;&raquo; -> &laquo;&nbsp;<em>SSH</em>&nbsp;&raquo; -> &laquo;&nbsp;<em>Auth</em>&laquo;&nbsp;. Dans la rubrique &laquo;&nbsp;<em>Connection</em>&nbsp;&raquo; -> &laquo;&nbsp;<em>Data</em>&nbsp;&raquo; il est également possible de renseigner le login a utiliser automatique à la connexion. (même effet que de mettre login@host dans la case réservée au hostname)</p>
<p><a href="http://www.markasread.fr/wp-content/uploads/2010/12/rsa_4.jpg"><img src="http://www.markasread.fr/wp-content/uploads/2010/12/rsa_4-300x286.jpg" alt="" title="rsa_4" width="300" height="286" class="aligncenter size-medium wp-image-458" /></a></p>
<h2>Sous Linux</h2>
<p>Pour générer le couple de clés RSA, on va utiliser la commande ssh-keygen :</p>
<pre class="brush: bash; title: ; notranslate">ssh-keygen -t rsa -b 1024 -C test@machinelocale</pre>
<p>L&rsquo;option <em>-C</em> défini le commentaire qu&rsquo;on va attribuer à la clé publique.<br />
Le script demandera une éventuelle (fortement recommandée tout de même) PassPhrase.<br />
<a href="http://www.markasread.fr/wp-content/uploads/2010/12/rsa_3.jpg"><img src="http://www.markasread.fr/wp-content/uploads/2010/12/rsa_3-300x181.jpg" alt="" title="rsa_3" width="300" height="181" class="aligncenter size-medium wp-image-454" /></a><br />
Par défaut, les clés seront générées dans &lsquo;$HOME/.ssh/id_rsa&rsquo; et &lsquo;$HOME/.ssh/id_rsa.pub&rsquo; pour les clés privées et publiques. (On peut noter que la clé privée a un masque en 600)</p>
<p>Il ne reste qu&rsquo;à copier la clé publique dans le fichier &laquo;&nbsp;$HOME/.ssh/authorized_keys&nbsp;&raquo; de du compte utilisateur sur la machine distante (une clé publique par ligne du fichier).<br />
Si vous avez enregistré votre clé publique à l&rsquo;endroit par défaut, plus rien a configurer, sinon &laquo;&nbsp;ssh -i /path/to/rsa_key.pub&nbsp;&raquo;.</p>
<p>Désormais, lors de vos connexions à vos serveur favoris, le système vous demandera la passphrase (si vous en avez configuré une) plutôt que le mot de passe du compte Unix.</p>
<h1>Pour aller plus loin</h1>
<p>(parce que j&rsquo;aime bien pousser les choses un peu plus)</p>
<h2>N&rsquo;autoriser la clé que pour une IP en particulier</h2>
<p>Il est tout a fait possible de demander au serveur distant de n&rsquo;autoriser la connexion pour une clé a partir d&rsquo;une IP, il suffit de rajouter, devant <em>ssh-rsa</em> un champ supplémentaire : <em>from= &laquo;&nbsp;ip&nbsp;&raquo; </em>. Ainsi, on se retrouve avec :</p>
<pre class="brush: bash; title: ; notranslate">from=&quot;217.174.206.179&quot; ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAga67iAb6FCLKzQN5O/CMwj0tD341I/GkFVQOMK/grigk8/qrWO+ljiMsGgZrkJ3EPqqhq3kxp83xOTB/93DeXtnJ3PFZEwwFedRO3Fww3V2oMAa5mbLkxwHXEKPx4V+aRcuZWaTnz8Ej7dyMRk112udJjgYsNrzzuDxtZ+5h0= user@machinelocale</pre>
<h2>Désactivations</h2>
<ul>
<li> On peut désactiver la connexion root par SSH (enfin il est même nécessaire de désactiver root par SSH, mais activez sudo avant&#8230;) :</li>
<pre class="brush: bash; title: ; notranslate">aptitude install sudo
sudoedit /etc/sudoers
</pre>
<p>et rajoutez une ligne dans ce style (<em>my_secured_account</em> est bien sur le nom de votre compte shell) :</p>
<pre class="brush: bash; title: ; notranslate">
my_secured_account   ALL=(ALL) ALL
</pre>
<p>Puis connectez vous sur votre <em>my_secured_account</em> et tapez <em>sudo -s</em> (il vous demande un mot de passe la première fois, souvenez-vous en !!! et RTFM pour l&rsquo;utilisation de <em>sudo</em>, mais c&rsquo;est super simple.) pour obtenir un <em>privilège root</em> par exemple.<br />
Enfin, désactivez le login de <em>root</em> dans <em>sshd_config</em> :</p>
<pre class="brush: bash; title: ; notranslate">PermitRootLogin no</pre>
<li> On peut désactiver complètement la connexion par mot de passe : </li>
<pre class="brush: bash; title: ; notranslate">
PasswordAuthentication no
UsePAM no
</pre>
<p>ATTENTION ! Ce n&rsquo;est pas ma faute si vous n&rsquo;avez plus accès à votre serveur suite à ces deux dernières modifications (FACULTATIVES bien sur)
</ul>
<p>Source : <a href="http://anthony.desvernois.fr/tutorial/authentification-ssh-par-clef-rsa/">Anthony Desvernois</a></p>
]]></content:encoded>
			<wfw:commentRss>http://markasread.sn4ky.net/authentification-par-cle-rsa/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Désactiver l&#8217;attente sur l&#8217;installation d&#8217;un module Firefox</title>
		<link>http://markasread.sn4ky.net/desactiver-lattente-sur-linstallation-dun-module-firefox/</link>
		<comments>http://markasread.sn4ky.net/desactiver-lattente-sur-linstallation-dun-module-firefox/#comments</comments>
		<pubDate>Fri, 24 Dec 2010 11:34:35 +0000</pubDate>
		<dc:creator>Aki</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[attente]]></category>
		<category><![CDATA[delais]]></category>
		<category><![CDATA[désactiver]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[supprimer]]></category>

		<guid isPermaLink="false">http://www.markasread.fr/?p=426</guid>
		<description><![CDATA[Il est parfois très lourd d&#8217;attendre 4 secondes à chaque fois que vous voulez installer un module pour Firefox avec son message : &#171;&#160;N&#8217;installez que des modules complémentaires dont les auteurs ont votre confiance&#160;&#187;. Voici une petite astuce qui vous permettra de désactiver ce temps d&#8217;attente lorsque vous installez un module pour Firefox. 1) Allez [...]]]></description>
				<content:encoded><![CDATA[<p>Il est parfois très lourd d&rsquo;attendre <strong>4 secondes</strong> à chaque fois que vous voulez installer un module pour Firefox avec son message : <strong>&laquo;&nbsp;N&rsquo;installez que des modules complémentaires dont les auteurs ont votre confiance&nbsp;&raquo;</strong>.</p>
<p><span id="more-426"></span></p>
<p>Voici une petite astuce qui vous permettra de désactiver ce temps d&rsquo;attente lorsque vous installez un module pour Firefox.</p>
<p>1) Allez directement dans le &laquo;&nbsp;about:config&nbsp;&raquo;, pour cela ouvrez un nouvelle onglet et tapez <strong>about:config</strong>, un message va apparaitre, acceptez les risques.</p>
<p style="text-align: center;"><a href="http://www.markasread.fr/wp-content/uploads/2010/12/firefox011.jpg"><img class="aligncenter size-full wp-image-435" style="border: 1px solid black;" title="firefox01" src="http://www.markasread.fr/wp-content/uploads/2010/12/firefox011.jpg" alt="" width="600" height="136" /></a></p>
<p style="text-align: left;">Maintenant que vous êtes dans le about:config, recherchez <strong><code>security.dialog_enable_delay dans le case "Filtre :" comme ci-dessous : </code></strong></p>
<p style="text-align: left;"><strong><img class="aligncenter size-full wp-image-436" title="firefox02" src="http://www.markasread.fr/wp-content/uploads/2010/12/firefox02.jpg" alt="" width="333" height="26" /></strong></p>
<p style="text-align: left;">En dessous de &laquo;&nbsp;Valeur&nbsp;&raquo;, double cliquez et mettez-y 0 <em>(zéro)</em> comme ci-dessous :</p>
<p style="text-align: center;"><a href="http://www.markasread.fr/wp-content/uploads/2010/12/firefox03.jpg"><img class="aligncenter size-full wp-image-437" title="firefox03" src="http://www.markasread.fr/wp-content/uploads/2010/12/firefox03.jpg" alt="" width="600" height="136" /></a></p>
<p style="text-align: left;">
<p style="text-align: left;">Vous n&rsquo;êtes pas obligé de redémarrer Firefox, essayez simplement d&rsquo;installer un module et vous n&rsquo;aurez plus de temps d&rsquo;attente mais directement le message &laquo;&nbsp;Installer maintenant&nbsp;&raquo;.</p>
]]></content:encoded>
			<wfw:commentRss>http://markasread.sn4ky.net/desactiver-lattente-sur-linstallation-dun-module-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>find -delete avant ou après sur Linux ?</title>
		<link>http://markasread.sn4ky.net/find-delete-avant-ou-apres-sur-linux/</link>
		<comments>http://markasread.sn4ky.net/find-delete-avant-ou-apres-sur-linux/#comments</comments>
		<pubDate>Sat, 04 Dec 2010 14:29:02 +0000</pubDate>
		<dc:creator>Aki</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apres]]></category>
		<category><![CDATA[avant]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[delete]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[supprimer]]></category>
		<category><![CDATA[thumb.db]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.markasread.fr/?p=422</guid>
		<description><![CDATA[Pour faire une suppression avec la commande &#171;&#160;find&#160;&#187; sous linux, il y a une fonction très pratique, elle se nomme -delete. Suivant la documentation du man entre debian et ubuntu, il peut y avoir une très grosse erreur. Vous allez me dire que placer le -delete n&#8217;importe où dans la commande changera pas grand chose [...]]]></description>
				<content:encoded><![CDATA[<p>Pour faire une <strong>suppression </strong>avec la commande &laquo;&nbsp;<strong>find</strong>&nbsp;&raquo; sous <strong>linux</strong>, il y a une fonction très pratique, elle se nomme <strong>-delete</strong>. Suivant la <strong>documentation </strong>du <strong>man </strong>entre <strong>debian </strong>et <strong>ubuntu</strong>, il peut y avoir une très <strong>grosse erreur</strong>.</p>
<p><span id="more-422"></span>Vous allez me dire que placer le -delete n&rsquo;importe où dans la commande changera pas grand chose ! Et bien je vais vous répondre que si ! En fonction de l&rsquo;endroit où elle est placée, elle peut engendrer de très gros problèmes pour vos fichiers !</p>
<p>Voyons ensemble ce que nous dit la documentation de Debian et celle de Ubuntu :</p>
<p><span style="text-decoration: underline;">Debian</span> (e.g : version etch) :</p>
<pre class="brush: bash; title: ; notranslate">  -delete
         Delete  files; true if removal succeeded.
         If the removal failed, an error message is issued.
         Use of this action automatically turns on the '-depth' option.
</pre>
<p><span style="text-decoration: underline;">Ubuntu</span> :</p>
<pre class="brush: bash; title: ; notranslate"> -delete
    Delete files; true if removal succeeded.
    If the removal failed, an error message is issued.
    If -delete fails, find's exit status  will  be
    nonzero (when it eventually exits).
    Use of -delete automatically turns on the -depth option.

    Warnings:  Don't  forget  that  the  find  command line is evaluated as an expression,
    so putting -delete first will make find try to delete
    everything below the starting points you specified.  [...]
</pre>
<p>Et là on se rend vraiment compte de la gravité des choses ! Si vous le mettez en début de ligne, find va détruire récursivement tout ce qui se trouve sur son chemin. En gros, la commande va faire exactement la même chose que si vous aviez fait un &laquo;&nbsp;rm -rf *&nbsp;&raquo;.</p>
<p>En revanche si vous le placez à la fin, vous vous contentez de supprimer les fichiers qu&rsquo;il trouve selon les critères de recherche spécifiés&#8230;</p>
<p><span style="text-decoration: underline;">Moralité de l&rsquo;histoire</span> : au début ça défonce tout tandis qu&rsquo;à la fin ça fait son boulot !</p>
<p>Il semblerait que le problème soit résolu à partir de la version lenny, mais le souci c&rsquo;est que Debian est pas foutu de mettre à jour la documentation du &laquo;&nbsp;man&nbsp;&raquo;.</p>
<p>Et je vous conseille de ne pas utiliser le -delete devant sinon vous risqueriez de perdre tous les fichiers de votre serveur de production alors que vous cherchiez juste à supprimer les fichiers Thumbs.db de vos tux !)</p>
]]></content:encoded>
			<wfw:commentRss>http://markasread.sn4ky.net/find-delete-avant-ou-apres-sur-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysqldump en mode silencieux</title>
		<link>http://markasread.sn4ky.net/mysqldump-en-mode-silencieux/</link>
		<comments>http://markasread.sn4ky.net/mysqldump-en-mode-silencieux/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 11:40:32 +0000</pubDate>
		<dc:creator>Aki</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[mysqldump]]></category>
		<category><![CDATA[silent mode]]></category>
		<category><![CDATA[solution]]></category>

		<guid isPermaLink="false">http://www.markasread.fr/?p=405</guid>
		<description><![CDATA[mysqldump permet de sauvegarder en masse vos bases de données, le souci avec mysqldump, c&#8217;est qu&#8217;il écrit gentiment ce qu&#8217;il fait, et donc à chaque sauvegarde, on reçoit souvent un mail pour nous expliquant ce que mysqldump vient de faire. Malheureusement, il n&#8217;existe pas encore de commande magique comme &#8211;silent pour faire taire mysqldump&#8230; Nous [...]]]></description>
				<content:encoded><![CDATA[<p><strong>mysqldump </strong>permet de <strong>sauvegarder </strong>en masse vos <strong>bases de données</strong>, le souci avec mysqldump, c&rsquo;est qu&rsquo;il écrit gentiment ce qu&rsquo;il fait, et donc à chaque sauvegarde, on reçoit souvent un mail pour nous expliquant ce que mysqldump vient de faire. Malheureusement, il n&rsquo;existe pas encore de commande magique comme <strong>&#8211;silent</strong> pour faire taire mysqldump&#8230;</p>
<p>Nous allons voir ensemble comment exporter une base mysql et ensuite de la GZIP sans que mysqldump nous harcèle avec un mail pour nous dire tout ce qu&rsquo;il vient de faire.</p>
<pre class="brush: bash; title: ; notranslate">/usr/bin/mysqldump --lock-tables -v -h localhost -u root--password=1234 MABDD 2&gt; /dev/null | /bin/gzip &gt; /MONREP/backup_sql_20101129.sql.gz</pre>
<p><span style="color: #ff0000;"><strong>Aide :</strong></span><br />
<span style="text-decoration: underline;">-u root</span> : remplacer root par votre utilisateur<br />
<span style="text-decoration: underline;">&#8211;password=1234</span> : remplacer 1234 par votre mot de passe<br />
<span style="text-decoration: underline;">MABDD</span> : remplacer MABDD par la base que vous souhaitez sauvegarder<br />
<span style="text-decoration: underline;">&gt;2 /dev/null</span> : Sert à rediriger un contenu dont on a pas besoin, et qui ne doit pas être sauvegardé ni affiché à l&rsquo;écran.<br />
<span style="text-decoration: underline;">MONREP</span> : remplacer MONREP par la destination où vous souhaitez sauvegarder votre base.</p>
<p>Et voilà, pas de mail, le résultat de mysql tombe directement dans /dev/null.</p>
]]></content:encoded>
			<wfw:commentRss>http://markasread.sn4ky.net/mysqldump-en-mode-silencieux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Renommer plusieurs fichiers</title>
		<link>http://markasread.sn4ky.net/renommer-plusieurs-fichiers/</link>
		<comments>http://markasread.sn4ky.net/renommer-plusieurs-fichiers/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 21:11:46 +0000</pubDate>
		<dc:creator>Sn4kY</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[fichier]]></category>
		<category><![CDATA[fichiers]]></category>
		<category><![CDATA[masse]]></category>
		<category><![CDATA[multiple]]></category>
		<category><![CDATA[plusieurs]]></category>
		<category><![CDATA[renommer]]></category>

		<guid isPermaLink="false">http://tools.inrage.fr/?p=326</guid>
		<description><![CDATA[Voici comment faire pour renommer tout ces fichiers JPG en fichiers jpg (quand on a pas de Windows et de TheRenameProgram sous la main) et de manière générale, pour passer le nom de ses fichiers en minuscule : Supprimer les caractères accentués et les espaces dans le noms de vos fichiers :]]></description>
				<content:encoded><![CDATA[<p>Voici comment faire pour renommer tout ces fichiers JPG en fichiers jpg (quand on a pas de Windows et de TheRenameProgram sous la main)</p>
<pre class="brush: bash; title: ; notranslate">rename 's/\.JPG$/\.jpg/g' *.JPG</pre>
<p>et de manière générale, pour passer le nom de ses fichiers en minuscule :</p>
<pre class="brush: bash; title: ; notranslate">rename 'y/A-Z/a-z/' *</pre>
<p>Supprimer les caractères accentués et les espaces dans le noms de vos fichiers :</p>
<pre class="brush: bash; title: ; notranslate">find -type f -execdir rename 'y/éèêàâôî /eeeaaoi_/' {} \;</pre>
]]></content:encoded>
			<wfw:commentRss>http://markasread.sn4ky.net/renommer-plusieurs-fichiers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Supprimer des caractères en fin de ligne</title>
		<link>http://markasread.sn4ky.net/supprimer-des-caracteres-en-fin-de-ligne/</link>
		<comments>http://markasread.sn4ky.net/supprimer-des-caracteres-en-fin-de-ligne/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 20:54:43 +0000</pubDate>
		<dc:creator>Sn4kY</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[caractères]]></category>
		<category><![CDATA[fin]]></category>
		<category><![CDATA[ligne]]></category>
		<category><![CDATA[supprimer]]></category>

		<guid isPermaLink="false">http://tools.inrage.fr/?p=321</guid>
		<description><![CDATA[Voici comment faire pour supprimer un certain nombre de caractères (3 dans notre cas) à la fin d&#8217;une ligne : Ici voici ce que l&#8217;on opère : Calcule la taille de la chaine retourne la taille de la chaine soustrait de 3 retourne la chaine depuis le premier caractère (0) jusqu&#8217;au nombre calculé avant.]]></description>
				<content:encoded><![CDATA[<p>Voici comment faire pour supprimer un certain nombre de caractères (3 dans notre cas) à la fin d&rsquo;une ligne :</p>
<pre class="brush: bash; title: ; notranslate">message=&quot;taratata voici un message bien long&quot;
echo ${message:0:`echo $(( ${#message} - 3 ))`}</pre>
<p>Ici voici ce que l&rsquo;on opère :</p>
<pre class="brush: bash; title: ; notranslate">${#message}</pre>
<p>Calcule la taille de la chaine</p>
<pre class="brush: bash; title: ; notranslate">echo $(( ${#message} - 3 ))</pre>
<p>retourne la taille de la chaine soustrait de 3</p>
<pre class="brush: bash; title: ; notranslate">echo ${message:0:`echo $(( ${#message} - 3 ))`}</pre>
<p>retourne la chaine depuis le premier caractère (0) jusqu&rsquo;au nombre calculé avant.</p>
]]></content:encoded>
			<wfw:commentRss>http://markasread.sn4ky.net/supprimer-des-caracteres-en-fin-de-ligne/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rechercher les liens symboliques erronés</title>
		<link>http://markasread.sn4ky.net/rechercher-les-liens-symboliques-errones/</link>
		<comments>http://markasread.sn4ky.net/rechercher-les-liens-symboliques-errones/#comments</comments>
		<pubDate>Mon, 22 Nov 2010 10:05:42 +0000</pubDate>
		<dc:creator>Aki</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[erronés]]></category>
		<category><![CDATA[lien symbolique]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ln -s]]></category>

		<guid isPermaLink="false">http://tools.inrage.fr/?p=316</guid>
		<description><![CDATA[Une petite astuce qui vous permettra de rechercher tous les liens symboliques erronés de votre machine. Très pratique quand il y a des liens dans 1000 sous-répertoires un peu partout dans la machine. Juste après le find vous avez un &#171;&#160;/&#160;&#187;. Mettez le répertoire que vous voulez scanner.]]></description>
				<content:encoded><![CDATA[<p>Une petite astuce qui vous permettra de rechercher tous les liens symboliques erronés de votre machine. Très pratique quand il y a des liens dans 1000 sous-répertoires un peu partout dans la machine.</p>
<pre class="brush: bash; title: ; notranslate">find / -type l | perl -lne 'print if ! -e'</pre>
<p>Juste après le find vous avez un &laquo;&nbsp;/&nbsp;&raquo;. Mettez le répertoire que vous voulez scanner.</p>
]]></content:encoded>
			<wfw:commentRss>http://markasread.sn4ky.net/rechercher-les-liens-symboliques-errones/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
