<?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>Linux Attitude&#187; planet-libre</title>
	<atom:link href="http://linux-attitude.fr/tag/planet-libre/feed" rel="self" type="application/rss+xml" />
	<link>http://linux-attitude.fr</link>
	<description>Le libre est un état d&#039;esprit</description>
	<lastBuildDate>Fri, 17 Feb 2012 08:00:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Strate NTP</title>
		<link>http://linux-attitude.fr/post/strate-ntp?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=strate-ntp</link>
		<comments>http://linux-attitude.fr/post/strate-ntp#comments</comments>
		<pubDate>Thu, 09 Feb 2012 08:10:35 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[planete-libre]]></category>
		<category><![CDATA[Serveur]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=1470</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: ntp.conf&#160;; fudge Pour vérifier le bon fonctionnement de votre démon ntp, vous êtes amené à taper la commande suivante qui liste les source de temps utilisées&#160;: $ ntpdc -p Cette commande met une étoile face à la source de référence utilisée pour la synchronisation. Le choix se fait entre autre en fonction [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;: ntp.conf&nbsp;; fudge</p>


<p>Pour vérifier le bon fonctionnement de votre démon ntp, vous êtes amené à taper la commande suivante qui liste les source de temps utilisées&nbsp;:</p>
<pre>
$ ntpdc -p
</pre>


<p>Cette commande met une étoile face à la source de référence utilisée pour la synchronisation. Le choix se fait entre autre en fonction du stratum de la source. Je rappelle que les serveurs NTP disposant d'une source de temps matérielle fiable (horloge atomique) ont pour stratum 1. Ceux qui se synchronisent sur eux, 2, et ainsi de suite.</p>


<p>Étant donné qu'il y a un grand nombre de serveurs publics de strate 2 et 3, vous devriez avoir accès à des serveurs de strate 4, ou au pire 5. Mais si le serveur a une strate plus élevée, il se peut que l'horloge choisie ne soit plus le serveur, mais l'horloge locale qui a une strate définie par défaut à 5 sur certaine distributions.</p>


<p>Et là c'est le drame, vous n'êtes plus synchronisés&nbsp;!</p>


<p>Pour résoudre ce problème, il y a plusieurs méthodes, se résumant toutes en la configuration des serveurs de temps&nbsp;:</p>
<pre>
# ntp.conf

# mettre l'option prefer sur le serveur voulu
serveur xxx.com prefer
# réduire la strate du serveur
fudge xxx.com stratum 4

# augmenter la strate de l'horloge locale
# 127.127 pour les horloges non réseau
# 1.0 pour l'horloge système
fudge 127.127.1.0 stratum 10
</pre>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/il-faut-laisser-le-temps-au-temps' rel='bookmark' title='Permanent Link: Il faut laisser le temps au temps'>Il faut laisser le temps au temps</a></li>
<li><a href='http://linux-attitude.fr/post/verrou-virtuel' rel='bookmark' title='Permanent Link: Verrou virtuel'>Verrou virtuel</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/planet-libre" title="planet-libre" rel="tag">planet-libre</a>, <a href="http://linux-attitude.fr/tag/planete-libre" title="planete-libre" rel="tag">planete-libre</a>, <a href="http://linux-attitude.fr/tag/serveur" title="Serveur" rel="tag">Serveur</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/strate-ntp/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Verrou virtuel</title>
		<link>http://linux-attitude.fr/post/verrou-virtuel?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=verrou-virtuel</link>
		<comments>http://linux-attitude.fr/post/verrou-virtuel#comments</comments>
		<pubDate>Mon, 06 Feb 2012 08:01:04 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Commande]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[planete-libre]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=1465</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: vlock; vlock -ns Vous avez vu apparaître dans l'article sur tmux, un petit outil pour verrouiller le terminal, il s'appelle vlock. Son unique fonctionnalité est le locker un terminal et de demander un mot de passe pour être débloqué. Mine de rien ça lui fait quand même deux cas d'usage&#160;: bloquer l'accès [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;: vlock; vlock -ns</p>


<p>Vous avez vu apparaître dans l'article sur <a href="http://linux-attitude.fr/post/configuration-de-tmux">tmux</a>, un petit outil pour verrouiller le terminal, il s'appelle <a href="http://cthulhu.c3d2.de/~toidinamai/vlock/vlock.html" hreflang="en">vlock</a>.</p>


<p>Son unique fonctionnalité est le locker un terminal et de demander un mot de passe pour être débloqué.</p>


<p>Mine de rien ça lui fait quand même deux cas d'usage&nbsp;:</p>
<ul>
<li>bloquer l'accès physique à une machine</li>
<li>bloquer l'accès virtuel à un shell</li>
</ul>

<h3>Virtuel</h3>

<p>Avec la commande suivante&nbsp;:</p>
<pre>
$ vlock
</pre>


<p>Vous bloquez votre terminal en cours, et seul un mot de passe peut le débloquer. C'est utile essentiellement lorsque vous êtes connecté en ssh à distance sur une machine.</p>


<h3>Physique</h3>


<p>L'option -a permet de locker toutes les consoles locales (ctrl-alt-Fx, ou alt-Fx), en pratique il locke la console en cours et empêche d'en changer. Il faut donc déjà être sur une console locale.</p>


<p>Si vous êtes sur X, vous êtes aussi sur une console locale (remarquez le ctrl-F7 pour y aller). Mais le shell qui va lancer votre commande ne l'est pas, il est dans le terminal virtuel de xterm, rxvt, konsole et consorts. Pour locker toutes les consoles, il faut donc utiliser l'option -n qui ouvre une nouvelle console (<a href="http://linux-attitude.fr/post/terminal-linux">avec openvt</a>) avant de continuer avec l'option -a.</p>


<p>Enfin notez que l'utilisateur local a en général accès aux <a href="http://linux-attitude.fr/post/les-mains-dans-la-noyau">magic keys</a>, et une de ces magic keys sert justement à tuer le processus en avant plan (alt-sysrq-k), par exemple pour garantir qu'il n'y a pas de keylogger. Si vous ne voulez pas vous faire tuer votre session par cette combinaison de touche vous pouvez utiliser l'option -s. C'est là qu'on voit que cette combinaison nommé SAK n'est pas si sécurisée que ça puisqu'elle peut être désactivée...</p>


<p>Donc je résume&nbsp;:</p>
<pre>
# en tant qu'utilisateur normal et seulement depuis une console texte
$ vlock -a
# en tant que root
$ vlock -sn
</pre>


<h3>Quand le lancer</h3>


<p>Et c'est là qu'est la difficulté, en toute logique le lancement doit se faire par le processus qui dispose du terminal à un instant donné, surtout dans le cas de blocage du terminal virtuel. La bonne solution est de le lancer après un certain temps d'inactivité, et seule l'application peut savoir quand le lancer. C'est donc à vous de trouver les settings spécifiques à l'application pour le faire.</p>


<p>Mon article précédent indique comment faire pour <a href="http://linux-attitude.fr/post/screen-killer">tmux</a>, malheureusement je n'ai pas trouvé de solution pour bash qui ne propose que la variable TMOUT qui termine complètement le shell.</p>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/login-dans-un-chroot' rel='bookmark' title='Permanent Link: Login dans un chroot'>Login dans un chroot</a></li>
<li><a href='http://linux-attitude.fr/post/poisson-de-janvier' rel='bookmark' title='Permanent Link: Poisson de janvier'>Poisson de janvier</a></li>
<li><a href='http://linux-attitude.fr/post/clavier-virtuel' rel='bookmark' title='Permanent Link: Clavier virtuel'>Clavier virtuel</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/commande" title="Commande" rel="tag">Commande</a>, <a href="http://linux-attitude.fr/tag/planet-libre" title="planet-libre" rel="tag">planet-libre</a>, <a href="http://linux-attitude.fr/tag/planete-libre" title="planete-libre" rel="tag">planete-libre</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/verrou-virtuel/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Screen killer</title>
		<link>http://linux-attitude.fr/post/screen-killer?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=screen-killer</link>
		<comments>http://linux-attitude.fr/post/screen-killer#comments</comments>
		<pubDate>Mon, 23 Jan 2012 08:00:52 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Commande]]></category>
		<category><![CDATA[planet-libre]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=1320</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: tmux Aujourd'hui tout le monde connaît et utilise screen. Miracle de la technologie, il permet de survivre aux déconnexions, de lancer des commandes longues sans avoir peur, de faire passer tous ses shells dans une seule connexion et on le trouve souvent associé à l'indémodable irssi. Comme vous le savez peut-être screen [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;: tmux</p>


<p>Aujourd'hui tout le monde connaît et utilise screen. Miracle de la technologie, il permet de survivre aux déconnexions, de lancer des commandes longues sans avoir peur, de faire passer tous ses shells dans une seule connexion et on le trouve souvent associé à l'indémodable irssi.</p>


<p>Comme vous le savez peut-être screen n'est plus maintenu. Ayant un code un difficile à lire et à maintenir, des développeurs ont choisi lui faire un concurrent plutôt que de le reprendre.</p>


<p>Ce concurrent se nomme tmux. Il dispose de la plupart des fonctionnalités de screen et d'autres en plus. Comme vous le verrez, votre problème sera essentiellement de vous adapter aux nouveaux raccourcis. Pour le reste c'est tout bon.</p>


<p>Tmux dispose de presque toutes les fonctionnalités de screen sauf la communication par port série (rapport choucroute, toussa).</p>


<p>Commençons par le lancement&nbsp;:</p>
<pre>
# lancer un nouveau multiplexeur
$ screen 
$ tmux
# s'attacher à un multiplexeur existant 
$ screen -d -r
$ tmux attach
</pre>


<p>Les raccourcis&nbsp;:</p>
<ul>
<li>Nouvelle fenêtre
<ul>
<li>screen&nbsp;: ctrl-a ctrl-c</li>
<li>tmux&nbsp;: ctrl-b c</li>
</ul></li>
<li>Se détacher&nbsp;:
<ul>
<li>screen&nbsp;: ctrl-a d</li>
<li>tmux&nbsp;: ctrl-b d</li>
</ul></li>
<li>Passer à la fenêtre suivante
<ul>
<li>screen&nbsp;: ctrl-a &lt;espace&gt;</li>
<li>tmux&nbsp;: ctrl-b n</li>
</ul></li>
</ul>

<p>Je dois dire que ça y est je suis passé entièrement à tmux, le mélange ctrl-a ctrl-b entre screen et tmux commençait à être difficile. A propos d'adaptation, j'ai eu une seule difficulté c'est de m'habituer au nouveau scrollback. Il n'est pas possible de le faire à la souris, comme dans screen avec l'astuce du termcapinfo. Remarquez, c'est plus propre car du coup il n'y a pas de mélange des bufffer de scrollback entre les différents terminaux. Donc la méthode propre dans tmux c'est <strong>ctrl-b</strong> suivi de <strong>pgUp</strong> et là vous êtes en mode copy (qui permet entre autre le scrollback), vous pouvez alors naviguer avec <strong>pgUp</strong>, <strong>pgDown</strong> ou les touches directionnelles. Et pour Revenir au mode normal, <strong>Esc</strong> tout simplement.</p>



<p>Dans un prochain article nous verrons comment changer la <a href="http://linux-attitude.fr/post/configuration-de-tmux">configuration de tmux</a>, même si les valeurs par défaut sont plutôt bonnes.</p>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/screen-et-irssi' rel='bookmark' title='Permanent Link: Screen et irssi'>Screen et irssi</a></li>
<li><a href='http://linux-attitude.fr/post/configuration-de-tmux' rel='bookmark' title='Permanent Link: Configuration de tmux'>Configuration de tmux</a></li>
<li><a href='http://linux-attitude.fr/post/geek-et-partage' rel='bookmark' title='Permanent Link: Geek et partage'>Geek et partage</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/commande" title="Commande" rel="tag">Commande</a>, <a href="http://linux-attitude.fr/tag/planet-libre" title="planet-libre" rel="tag">planet-libre</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/screen-killer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Network grep</title>
		<link>http://linux-attitude.fr/post/network-grep?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=network-grep</link>
		<comments>http://linux-attitude.fr/post/network-grep#comments</comments>
		<pubDate>Wed, 18 Jan 2012 20:23:27 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Réseau]]></category>
		<category><![CDATA[planet-libre]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=1439</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: ngrep I'm back&#160;! Ça faisait longtemps&#160;! Vous m'avez manqué. J'ai quelques petits articles pour vous. Oui c'est vraiment la reprise, même si c'est pas encore du triple A. Aujourd'hui ngrep. Ngrep est un pote de tcpdump, il sait utiliser les mêmes filtres que tcpdump et stocker les paquets dans un format pcap [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;: ngrep</p>


<p>I'm back&nbsp;! Ça faisait longtemps&nbsp;! Vous m'avez manqué.</p>


<p>J'ai quelques petits articles pour vous. Oui c'est vraiment la reprise, même si c'est pas encore du triple A.</p>


<p>Aujourd'hui <a href="http://sourceforge.net/projects/ngrep/" hreflang="en">ngrep</a>.
Ngrep est un pote de <a href="http://linux-attitude.fr/post/analyse-reseau">tcpdump</a>, il sait utiliser les mêmes filtres que tcpdump et stocker les paquets dans un format pcap lisible par wireshark si besoin. Mais son intérêt principal est qu'il sait matcher le contenu des paquets.</p>


<p>Là où en tcpdump vous feriez&nbsp;:</p>
<pre>
$ tcpdump host 10.0.0.1 and port 80
</pre>


<p>Vous pouvez utiliser ngrep récupérer un paquet particulier&nbsp;:</p>
<pre>
$ ngrep 'GET' 'host 10.0.0.1 and port 80'
</pre>


<p>Dans les options les plus utiles on trouve&nbsp;:</p>
<ul>
<li>-O pour sauvegarder les paquets et les analyser ensuite, par exemple avec wireshark</li>
<li>-x pour dumper la version hexadécimale du paquet (pratique pour un protocole binaire)</li>
<li>-X pour matcher sur la version hexadécimale du paquet (pratique pour un protocole binaire)</li>
<li>-K1 pour tuer la connexion en envoyant un paquet RST à la source du paquet en question (pas de garantie 100% avec cette méthode :)</li>
</ul>

<p>Et un exemple pour la route pour couper la connexion de celui qui dirait du mal de vous sur un serveur irc&nbsp;:</p>
<pre>
$ ngrep -K1 'peck sux' 'dst 10.0.0.1 and dst port 6667'
</pre>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/lire-dans-les-paquets' rel='bookmark' title='Permanent Link: Lire dans les paquets'>Lire dans les paquets</a></li>
<li><a href='http://linux-attitude.fr/post/analyse-reseau' rel='bookmark' title='Permanent Link: Analyse réseau'>Analyse réseau</a></li>
<li><a href='http://linux-attitude.fr/post/espionner-son-android' rel='bookmark' title='Permanent Link: Espionner son android'>Espionner son android</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/planet-libre" title="planet-libre" rel="tag">planet-libre</a>, <a href="http://linux-attitude.fr/tag/reseau" title="Réseau" rel="tag">Réseau</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/network-grep/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lire un flux SSL</title>
		<link>http://linux-attitude.fr/post/lire-un-flux-ssl?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lire-un-flux-ssl</link>
		<comments>http://linux-attitude.fr/post/lire-un-flux-ssl#comments</comments>
		<pubDate>Fri, 17 Jun 2011 07:24:34 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Réseau]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[planete-libre]]></category>
		<category><![CDATA[Savoir-faire]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=1400</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: tcpdump ssl&#160;; ptrace&#160;; ltrace Vous attendez la suite de mon article sur ce qui passe par les oreilles d'un android&#160;? Hé bien vous allez attendre encore un peu ... Lorsque vous récupérez via tcpdump un flux SSL (au hasard du https), il est chiffré et c'est justement l'intérêt du SSL de vous [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;: tcpdump ssl&nbsp;; ptrace&nbsp;; ltrace</p>


<p>Vous attendez la suite de mon article sur ce qui passe par les <a href="http://linux-attitude.fr/post/espionner-son-android">oreilles d'un android</a>&nbsp;? Hé bien vous allez attendre encore un peu ...</p>


<p>Lorsque vous récupérez via <strong>tcpdump</strong> un flux <strong>SSL</strong> (au hasard du https), il est chiffré et c'est justement l'intérêt du SSL de vous empêcher de lire ce flux.</p>


<p>Mais si si vous maitrisez une des deux extrémités, il devrait être normal que vous puissiez lire ce flux. C'est pourquoi nous allons le faire.</p>


<h3>Côté serveur</h3>

<p>Dans le cas où vous maitrisez le côté serveur, il suffit d'ouvrir la trace tcpdump (sauvegardée avec l'option -s0 -w file) sous wireshark et de le configurer pour qu'il utilise la clé serveur pour déchiffrer le flux :<a href="http://people.apache.org/~dirkx/settings.png">comme ici</a> et de choisir de <a href="http://people.apache.org/~dirkx/ssl.png">suivre le flux ssl</a> au lieu du flux TCP.</p>


<p>C'est simple et efficace.</p>


<h3>Côté client</h3>

<p>Maintenant si vous êtes côté client sans certificat client, vous êtes coincés. Et c'est là que j'ai une solution à vous proposer.</p>


<p>Il existe plusieurs moyen pour espionner vos processus, tout d'abord vous pouvez créer un wrapper autour de la lib SSL et utiliser LD_PRELOAD pour la charger avant le processus. C'est bien mais difficile à mettre en œuvre, surtout si le processus tourne déjà, je vous laisse explorer cette voie de votre côté.</p>


<p>La deuxième solution est d'utiliser <a href="http://linux.die.net/man/2/ptrace" hreflang="en">ptrace</a> pour espionner le processus. Techniquement complexe, cette méthode nous est grandement facilitée par l'outil <strong><a href="http://linux.die.net/man/1/ltrace" hreflang="en">ltrace</a></strong>.</p>


<p>Pour la suite je vais supposer que les services à espionner passent par openssl, mais rien ne vous empêche de faire la même chose avec gnutls.</p>


<h3>Espionner un processus</h3>


<p>C'est simple&nbsp;:</p>
<pre>
# vous le lancez directement : 
$  ltrace ma commande
# ou vous espionnez un processus qui tourne déjà 
$ ltrace -p pid
</pre>


<p>Ça vous montre le fonctionnement, mais c'est aussi illisible qu'un strace.</p>


<h3>Espionner le SSL</h3>

<p>Ajoutons quelques options pour trier ce fouillis&nbsp;:</p>
<pre>
$ ltrace -l /usr/lib/libssl.so.0.9.8 -s 20000 -e SSL_read,SSL_write
</pre>


<p>Et voilà, la liste des appels&nbsp;! Mais ce n'est pas suffisant.</p>


<p>Ajoutons les lignes suivantes dans /etc/ltrace.conf (ou dans ~/.ltrace.conf)&nbsp;:</p>
<pre>
int SSL_read(addr,string[retval],int);
int SSL_write(addr,string[arg3],int);
</pre>


<p>On relance la commande et maintenant nous avons le contenu de la communication en clair.</p>


<p>Mais il y a un petit bug dans ltrace, string[retval] devrait couper les chaines de SSL_read en fonction de la valeur de retour, mails ne le fait pas.</p>


<p>Corrigeons cela avec un petit script de formatage et cette fois nous avons toute la communication en clair&nbsp;!</p>
<pre>
$ ltrace -l /usr/lib/libssl.so.0.9.8 -s 20000 -e SSL_read,SSL_write -p pid 2&gt; /tmp/trace
$ perl -pe 's/(SSL_read.*?, &quot;)(.*)(&quot;.*? )(\d+)$/$1.substr($2,0,$4).$3.$4/e' /tmp/trace | less
</pre>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/analyse-reseau' rel='bookmark' title='Permanent Link: Analyse réseau'>Analyse réseau</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/planet-libre" title="planet-libre" rel="tag">planet-libre</a>, <a href="http://linux-attitude.fr/tag/planete-libre" title="planete-libre" rel="tag">planete-libre</a>, <a href="http://linux-attitude.fr/tag/savoir-faire" title="Savoir-faire" rel="tag">Savoir-faire</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/lire-un-flux-ssl/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Espionner son android</title>
		<link>http://linux-attitude.fr/post/espionner-son-android?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=espionner-son-android</link>
		<comments>http://linux-attitude.fr/post/espionner-son-android#comments</comments>
		<pubDate>Tue, 14 Jun 2011 13:14:32 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[planete-libre]]></category>
		<category><![CDATA[Réseau]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=1383</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: tcpdump, wireshark Espionnage Tout le monde le sait, les téléphones nous espionnent. Mais que communiquent-ils&#160;? A qui communiquent-ils&#160;? Que peut-on y faire&#160;? Aujourd'hui nous somme armés d'une vraie distribution GNU. Nous pouvons donc utiliser des vrais outils. # on se connecte sur le téléphone $ ./adb shell # mettez votre debian dans [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;: tcpdump, wireshark</p>


<h3>Espionnage</h3>

<p>Tout le monde le sait, les téléphones nous espionnent. Mais que communiquent-ils&nbsp;? A qui communiquent-ils&nbsp;? Que peut-on y faire&nbsp;?</p>


<p>Aujourd'hui nous somme armés d'une vraie <a href="http://linux-attitude.fr/post/une-distribution-gnu-sur-android">distribution GNU</a>. Nous pouvons donc utiliser des vrais outils.</p>

<pre>
# on se connecte sur le téléphone
$ ./adb shell
# mettez votre debian dans ce $ROOT
$ chroot $ROOT
$ apt-get install tcpdump
$ nohup tcpdump -i any -s 0 -w /tmp/dump.`date +&quot;%Y-%d-%m&quot;` &amp;
</pre>


<p>maintenant déconnectez-vous et laissez tourner toute la journée dans son coin après avoir vérifié qu'il reste de la place sur le disque.</p>


<p>Quelque temps plus tard;&nbsp;:</p>
<pre>
# sur le téléphone
$ chroot debian
$ pkill tcpdump
# sur le pc
$ ./adb get $ROOT/tmp/dump.*
</pre>


<h3>Analyse</h3>


<p>Maintenant revenons à notre poste et regardons ce qui s'est passé. Pour cela on utilise <a href="http://www.wireshark.org/" hreflang="en">wireshark</a>.</p>


<p>On ouvre le fichier dump et c'est parti&nbsp;:</p>
<ul>
<li>on trie par protocole -&gt; LARQ, DNS, ipv6, http, https, ...</li>
<li>on trie par adresse -&gt; on a la liste de qui communique avec notre machine</li>
<li>on liste des requêtes dns -&gt; on a les noms des précédents</li>
</ul>

<h3>Ce que j'ai découvert pour l'instant</h3>

<p><strong>LARQ</strong> (limited automatic repeat request)&nbsp;: protocole utilisé pour la retransmission rapide de frame en cas de perte sur la couche de liaison. Très pratique pour améliorer la qualité des transmissions. On ne trouve quasiment pas d'infos sur le net à ce sujet, à part <a href="http://www.google.com/patents/about?id=9bd-AAAAEBAJ&amp;dq=3723653" hreflang="en">un brevet</a>.</p>


<p><strong>IPv6</strong>&nbsp;: il est activé par défaut chez moi, ouf</p>


<p><strong>DNS</strong>&nbsp;: il semble qu'android utilise le resolver public de google (pratique pour ne pas être embêté par les limitations de l'opérateur et les problèmes de configuration).</p>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/une-distribution-gnu-sur-android' rel='bookmark' title='Permanent Link: Une distribution GNU sur android'>Une distribution GNU sur android</a></li>
<li><a href='http://linux-attitude.fr/post/personnalisez-votre-android' rel='bookmark' title='Permanent Link: Personnalisez votre android'>Personnalisez votre android</a></li>
<li><a href='http://linux-attitude.fr/post/root-android' rel='bookmark' title='Permanent Link: Root d&#8217;android'>Root d&#8217;android</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/android-2" title="android" rel="tag">android</a>, <a href="http://linux-attitude.fr/tag/planet-libre" title="planet-libre" rel="tag">planet-libre</a>, <a href="http://linux-attitude.fr/tag/planete-libre" title="planete-libre" rel="tag">planete-libre</a>, <a href="http://linux-attitude.fr/tag/reseau" title="Réseau" rel="tag">Réseau</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/espionner-son-android/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Une distribution GNU sur android</title>
		<link>http://linux-attitude.fr/post/une-distribution-gnu-sur-android?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=une-distribution-gnu-sur-android</link>
		<comments>http://linux-attitude.fr/post/une-distribution-gnu-sur-android#comments</comments>
		<pubDate>Tue, 07 Jun 2011 16:56:37 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[i]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[planete-libre]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=1380</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: debootstrap --foreign&#160;; debian.apk Android is Not GNU Maintenant qu'on est root, on peut faire tout ce qu'on veut sur notre android. Mais il faut bien avouer que busybox est assez limitée pour les habitués des systèmes GNU que nous sommes. C'est pourquoi nous allons mettre un système GNU complet sur notre android. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;: debootstrap --foreign&nbsp;; debian.apk</p>


<h3>Android is Not GNU</h3>

<p>Maintenant qu'<a href="http://linux-attitude.fr/post/root-android">on est root</a>, on peut faire tout ce qu'on veut sur notre android. Mais il faut bien avouer que busybox est assez limitée pour les habitués des systèmes GNU que nous sommes.</p>


<p>C'est pourquoi nous allons mettre un système GNU complet sur notre android. Et de préférence sans influer sur la bonne marche du téléphone.</p>


<p>Pour cela, il faut laisser tourner l'android tel quel, et surtout garder son noyau. Mettre un 2e système sur un noyau qui tourne, on sait faire, dans sa version la plus simple ça s'appelle un <a href="http://linux-attitude.fr/post/chroot">chroot</a>, c'est disponible de base et c'est exactement ce dont on a besoin.</p>


<p>Notez que les commandes indiquées ici se basent sur un shell et les commandes fournies par busybox telles qu'installée dans <a href="http://linux-attitude.fr/post/root-android">l'article précédent</a>. Vous pouvez vous en passer, mais quelques adaptations seront nécessaires (par exemple -o bind à la place de --bind).</p>


<h3>Comment qu'on fait&nbsp;?</h3>


<p>Comment créer un chroot sans se presser&nbsp;?</p>


<p>Choisissons (au hasard) la distribution debian. Elle nous propose ... wait for it ... un créateur de chroot. Il s'appelle <a href="http://linux-attitude.fr/post/Chroot-toujours">debootstrap</a>.</p>


<p>Seul problème nous ne pouvons pas le lancer directement sur le téléphone. Il faut donc le lancer sur une autre machine. Et à moins d'avoir une machine arm sous le coude, nous ne serons pas sur la bonne architecture.</p>


<p>Heureusement debian est bien structuré et debootstrap a tout prévu. Nous allons le lancer 2 fois. La première fois sur notre machine habituelle&nbsp;:</p>
<pre>
$  debootstrap --foreign --arch armel wheezy mydebian 
</pre>


<p>Pour ceux qui n'ont pas debian, sachez qu'il est possible de télécharger et d'exécuter debootstrap sur n'importe quel autre linux.</p>


<p>Et pour ceux qui voudraient essayer une autre méthode, suivez ce lien&nbsp;: <a href="http://wiki.debian.org/EmDebian/CrossDebootstrap" title="http://wiki.debian.org/EmDebian/CrossDebootstrap">http://wiki.debian.org/EmDebian/Cro...</a></p>


<p><span id="more-1380"></span></p>


<p>Déplaçons tout ça sur le téléphone&nbsp;:</p>
<pre>
# toujours sur le pc
$ tar cf debian.tar mydebian 
$ adb push debian.tar /sdcard/debian.tar
</pre>


<p>Une debian basique est relativement petite, nous devrions pouvoir trouver une place sur le téléphone. Seule contrainte, il faut la déposer sur une partition qui utilise les droits posix (et donc pas sur /sdcard qui est en FAT). J'ai choisi /data/local/tmp</p>
<pre>
# sur l'android (avec busybox)
$ cd /data/local/tmp
$ tar xf /sdcard/debian.tar 
</pre>


<p>Profitons-en pour terminer le debootstrap (il faut être root sur l'android et il vaut mieux utiliser les commandes busybox)&nbsp;:</p>
<pre>
# on prépare le chroot
$ NEW=/data/local/tmp/mydebian
$ mount --bind /dev $NEW/dev
$ mount --bind /proc $NEW/proc
$ mount --bind /sys $NEW/sys
$ mount --bind /dev/pts $NEW/dev/pts
# et on termine debootstrap dedans
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
$ chroot $NEW/debian debootstrap --second-stage
</pre>


<p>Et voilà&nbsp;!</p>


<p>Vous pouvez compléter par&nbsp;:</p>
<ul>
<li>modifier /etc/hostname</li>
<li>modifier /etc/resolv.conf (nameserver 8.8.8.8 pour utiliser le resolver de google disponible partout)</li>
<li>... dites-moi ce que vous avez fait</li>
</ul>

<h3>Comment qu'on l'utilise&nbsp;?</h3>


<p>Maintenant que tout est prêt il faut pouvoir réutiliser ces commandes à tout moment. Pour ma part j'ai fait le petit script suivant qui me permet de rentrer dans le chroot&nbsp;:</p>
<pre>
ROOT=/data/local/tmp/mydebian
BB=/data/busybox/
if ! ls $ROOT/proc/1 &gt; /dev/null
then
    $BB/mount --bind /dev $ROOT/dev
    $BB/mount --bind /proc $ROOT/proc
    $BB/mount --bind /sys $ROOT/sys
    $BB/mount --bind /dev/pts $ROOT/dev/pts
fi
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
/system/bb/su -c &quot;$BB/chroot $ROOT /bin/bash&quot;
</pre>


<p>Et pour les gens qui aiment le tout réseau vous pouvez mettre un serveur ssh dans le chroot, ça vous le rendra accessible à distance. Pensez juste à vous connecter au chroot et à le relancer à chaque fois que le téléphone redémarre.</p>


<h3>Conclusion</h3>

<p>N'oubliez pas, votre téléphone continue de tourner, le chroot n'est qu'un moyen d'avoir accès aux commandes debian (dont apt-get install qui est une commande magnifique pour un android, plus besoin d'installer des machins à la main).</p>


<p>Mais même si votre shell tourne dans un chroot, le noyau reste le même et tous les services en dehors du chroot continuent leur vie comme d'habitude. Cela permet au téléphone de rester un vrai téléphone d'origine. Revenir en arrière consiste à rebooter et à supprimer le répertoire debian.</p>


<p>Amusez-vous bien&nbsp;!</p>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/espionner-son-android' rel='bookmark' title='Permanent Link: Espionner son android'>Espionner son android</a></li>
<li><a href='http://linux-attitude.fr/post/personnalisez-votre-android' rel='bookmark' title='Permanent Link: Personnalisez votre android'>Personnalisez votre android</a></li>
<li><a href='http://linux-attitude.fr/post/root-android' rel='bookmark' title='Permanent Link: Root d&#8217;android'>Root d&#8217;android</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/android-2" title="android" rel="tag">android</a>, <a href="http://linux-attitude.fr/tag/debian" title="Debian" rel="tag">Debian</a>, <a href="http://linux-attitude.fr/tag/i" title="i" rel="tag">i</a>, <a href="http://linux-attitude.fr/tag/planet-libre" title="planet-libre" rel="tag">planet-libre</a>, <a href="http://linux-attitude.fr/tag/planete-libre" title="planete-libre" rel="tag">planete-libre</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/une-distribution-gnu-sur-android/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (User agent is rejected)
Database Caching 28/64 queries in 0.171 seconds using apc
Object Caching 1870/1883 objects using apc
Content Delivery Network via N/A

Served from: linux-attitude.fr @ 2012-05-23 20:22:19 -->
