

<?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>Site de Francis Hilaire étudiant à Supinfo Orléans : prometee-creation.com &#187; Tutoriels</title>
	<atom:link href="http://www.prometee-creation.com/pages/tutoriels/feed" rel="self" type="application/rss+xml" />
	<link>http://www.prometee-creation.com</link>
	<description>Bonjour et bienvenue sur le site Prometee-creation.com. Vous trouverez ici, le parcours de Francis Hilaire, ses créations, les actualités en tout genre, ainsi que quelques tutoriels élaborés par une équipe de passionnés</description>
	<lastBuildDate>Thu, 13 May 2010 18:00:20 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>OpenSSH Server avec Chroot Jail</title>
		<link>http://www.prometee-creation.com/tutoriels/openssh-server-avec-chroot-jail.html</link>
		<comments>http://www.prometee-creation.com/tutoriels/openssh-server-avec-chroot-jail.html#comments</comments>
		<pubDate>Mon, 25 May 2009 14:25:55 +0000</pubDate>
		<dc:creator>Francis Hilaire</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.prometee-creation.com/?p=352</guid>
		<description><![CDATA[Petit tutoriel pour expliquer la mise en place d&#8217;un Chroot Jail afin d&#8217;emprisonner un utilisateur SSH dans son home. Tout d&#8217;abords quelque préparations : il vous faudra openssh-server en version supérieur ou égale à 4.8p1 car l&#8217;option du fichier de configuration de sshd n&#8217;est pas présente avant cette version. Pour Ubuntu ou Debian cette version [...]]]></description>
			<content:encoded><![CDATA[<p>Petit tutoriel pour expliquer la mise en place d&#8217;un Chroot Jail afin d&#8217;emprisonner un utilisateur SSH dans son home.</p>
<p>Tout d&#8217;abords quelque préparations : il vous faudra openssh-server en <strong>version supérieur ou égale à 4.8p1</strong> car l&#8217;option du fichier de configuration de sshd n&#8217;est pas présente avant cette version. Pour Ubuntu ou Debian cette version est présente depuis au moins le troisième trimestre 2008.</p>
<p>Donc on installe openssh-server :</p>
<pre class="brush: bash">sudo aptitude install openssh-server openssh-client</pre>
<p><em>Rq : On installe ici aussi le client afin de faire des test en local.</em></p>
<p>Ensuite configurons sshd :</p>
<pre class="brush: bash">sudo nano /etc/ssh/sshd_config</pre>
<p>tout en bas du fichier (et j&#8217;ai bien dit tout en bas) ajouter ces quelques lignes :</p>
<pre class="brush: text">Match Group chrootssh
ChrootDirectory %h
AllowTcpForwarding no</pre>
<p>Expliquons un peu ces lignes :</p>
<ul>
<li><strong>Match Group chrootssh</strong> : on va dire ici que le groupe chrootssh va être configuré avec les règles supplémentaires suivantes.</li>
<li><strong>ChrootDirectory %h</strong> : Tous les utilisateurs faisant partie du groupe chrootssh seront chrooté dans leur home : ici et comme dans la configuration de samba %h signifie le dossier de l&#8217;utilisateur. Ainsi vous pouvez mettre par exemple /var/www/%u si vous voulez que vos utilisateurs soit chrooté dans un dossier portant leur nom dans /var/www</li>
<li><strong>AllowTcpForwarding no</strong> : on désactive tous ce qui est tunnel ssh, on veux pas que notre serveur serve de proxy socks ou autre au client qui se connecte.</li>
</ul>
<p>Pour plus de renseignement sur la configuration de sshd_config reportez vous au <strong>man sshd_config</strong> ou bien <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&amp;sektion=5">à cette page du manuel d&#8217;openssh</a></p>
<p>On y est, normalement le fichier de configuration est lu à chaque connexion d&#8217;un user donc pas besoin de reload le service ssh, mais si vous voulez en être sûre :</p>
<pre class="brush: bash">sudo invoke-rc.d ssh reload</pre>
<p><em>Rq : même si vous stoppé le service vos connexions en cours seront toujours &laquo;&nbsp;Alive&nbsp;&raquo; <img src='http://www.prometee-creation.com/wp-engine/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  jusqu&#8217;à ce que vous quittiez vos sessions bien sûr.</em></p>
<p>Ensuite passons aux choses sérieuses, la configuration d&#8217;un compte utilisateur Chrooté :</p>
<pre class="brush: bash">
#On créé le groupe chrootssh
sudo addgroup chrootssh
#on rajoute l&#039;utilisateur
sudo adduser monuserchrootssh
#on ajoute le user au groupe chrootssh
sudo adduser monuserchrootssh chrootssh</pre>
<p>Nous allons maintenant créé sont environnement en utilisant un petit script un poil modifié par mes soins mais qui vient tout droit du paquet libpam-chroot :<br />
<code></p>
<pre style="width: 100%; overflow: auto; border: 1px solid #000;">#!/bin/bash

# Here specify the apps you want into the enviroment
APPS="/usr/bin/env /usr/bin/wget /usr/bin/clear /usr/bin/ftp /usr/bin/traceroute /usr/bin/host /bin/sh /bin/grep /bin/cat /usr/bin/vi /bin/gzip /bin/gunzip /usr/bin/less /usr/bin/tail /usr/bin/nslookup /usr/bin/resolveip /bin/bash /bin/ls /bin/mkdir /bin/mv /bin/pwd /bin/rm /usr/bin/id /usr/bin/ssh /bin/ping /usr/bin/dircolors /usr/bin/screen /bin/ps /bin/uname /bin/sed"
USER_HOME="/home/$1"

# Sanity check
if [ -z "$1" ]; then
echo "&nbsp;&nbsp;&nbsp; Usage: $0 username"
exit
fi

# Obtain username and HomeDir
CHROOT_USERNAME=$1
HOMEDIR=`grep /etc/passwd -e "^$CHROOT_USERNAME:"&nbsp; | cut -d':' -f 6`
cd $HOMEDIR

mkdir etc bin lib usr usr/bin dev
# We need as many tty's as consoles
/bin/mknod -m 666 dev/tty&nbsp; c 5 0
/bin/mknod -m 644 dev/tty1 c 4 1
/bin/mknod -m 644 dev/tty2 c 4 2
/bin/mknod -m 644 dev/tty3 c 4 3
/bin/mknod -m 644 dev/tty4 c 4 4
/bin/mknod -m 644 dev/tty5 c 4 5
/bin/mknod -m 644 dev/tty6 c 4 6
#and pts
mkdir dev/pts
/bin/mknod -m 666 dev/pts/0&nbsp; c 136 0
/bin/mknod -m 666 dev/pts/1&nbsp; c 136 1
# Some special nodes, just for fun
/bin/mknod -m 444 dev/urandom c 1 9
/bin/mknod -m 666 dev/zero c 1 5
/bin/mknod -m 666 dev/null c 1 3

# Create short version to /usr/bin/groups
# On some system it requires /bin/sh, generally unnessesary in a chroot cage

echo "#!/bin/bash" &gt; usr/bin/groups
echo "id -Gn" &gt;&gt; usr/bin/groups

# Add some users to ./etc/paswd
grep /etc/passwd -e "^root:" -e "^$CHROOT_USERNAME:" &gt; etc/passwd
grep /etc/group -e "^root" -e "^$CHROOT_USERNAME:" &gt; etc/group

#Settings prompt
cp /etc/profile etc/profile
cp -R /etc/bash* etc
echo "export HOME=/" >> etc/profile

for prog in $APPS;&nbsp; do
&nbsp;&nbsp; &nbsp;cp $prog ./$prog
&nbsp;&nbsp; &nbsp;# obtain a list of related libraries
&nbsp;&nbsp; &nbsp;ldd $prog &gt; /dev/null
&nbsp;&nbsp; &nbsp;if [ "$?" = 0 ] ; then
&nbsp;&nbsp; &nbsp;LIBS=`ldd $prog`
&nbsp;&nbsp; &nbsp;for l in $LIBS; do
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if [ -f $l ]; then
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;mkdir -p .`dirname $l` &gt; /dev/null 2&gt;&amp;1
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;cp $l ./$l
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;fi
&nbsp;&nbsp; &nbsp;done
&nbsp;&nbsp; &nbsp;fi
done

# For strange reason, these 3 libraries are not in the ldd output, but without
# them some stuff will not work, like usr/bin/groups
cp /lib/libnss_compat.so.2 /lib/libnsl.so.1 /lib/libnss_files.so.2 /lib/ld-linux.so.2 /lib/libresolv.so.2 /lib/libnss_dns.so.2 ./lib/
chmod 755 usr/bin/groups

cp /etc/host.conf ./etc/
cp /etc/hosts ./etc/
cp /etc/nsswitch.conf ./etc/
cp /etc/localtime ./etc/
cp /etc/resolv.conf ./etc/
cp /etc/services ./etc/
cp /etc/protocols ./etc/
mkdir ./etc/terminfo/
cp -R /etc/terminfo/* ./etc/terminfo/

find . -type d -exec chown -R root:root {} \;
</pre>
<p></code></p>
<p>Si vous êtes sous architecture 64 bits une erreur peut apparaitre :<br />
<em>cp: cannot stat `/lib/ld-linux.so.2&#8242;: No such file or directory</em><br />
Copier donc votre librairie :</p>
<pre class="brush: bash">mkdir /home/monuserchrootssh/lib64
cp /lib64/ld-linux-x86-64.so.2 /home/monuserchrootssh/lib64</pre>
<p>Elle est nécessaire pour faire fonctionner bash par exemple <img src='http://www.prometee-creation.com/wp-engine/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Ligne 4 de ce fichier listez tous les exécutables que vous voulez donné à votre utilisateur, ici j&#8217;ai listez les plus courant dans une liste riquiqui.</p>
<p>Petit bémol mais peut être que quelqu&#8217;un pourra le résoudre : <strong>screen</strong> ne retrouve pas ses petits et ne peux pas démarré dans cette environnement, mais il semblerait qu&#8217;un mount &#8211;bind bien placé pour tous ce qui &laquo;&nbsp;pts&nbsp;&raquo; résoudrait l&#8217;affaire : a creuser donc&#8230;</p>
<p>il ne nous reste plus qu&#8217;à exécuter notre petit script. Donc vous avez bien sûre fait un :</p>
<pre class="brush: bash">cd
nano createchroot.sh
#on colle le contenu dans ce fichier
chmod +x ./createchroot.sh</pre>
<p>Enfin nous créons l&#8217;envirronnement à l&#8217;aide de ce script :</p>
<pre class="brush: bash">sudo ./createchroot.sh monuserchrootssh</pre>
<p>Si vous avez quelques erreurs disant que le programme n&#8217;existe pas c&#8217;est surement que l&#8217;un des exécutables donné dans la variable $APPS ligne 4 n&#8217;est pas installé, et que donc vous n&#8217;en avez pas besoin.</p>
<p>Si vous voulez controler que tout marche pour le mieux éxécuter sshd en mode devel :</p>
<pre class="brush: bash">sudo invoke-rc.d ssh stop
sudo /usr/sbin/sshd -d
#ctrl+c pour quitter</pre>
<p>Voilà on y est loggé l&#8217;utilisateur pour faire un test :</p>
<pre class="brush: bash">ssh monuserchrootssh@localhost</pre>
<p>Si vous avez pas d&#8217;erreur et un prompt faite :</p>
<pre class="brush: bash">pwd
#qui devrait affiché
# /
ls -al
#qui devrait vous afficher une petite arborescence tel que celle-ci:
#drwxr-xr-x 7 root root 4096 May 25 16:15 .
#drwxr-xr-x 7 root root 4096 May 25 16:15 ..
#-rw-r--r-- 1 root root  220 May 25 16:14 .bash_logout
#-rw-r--r-- 1 root root 3115 May 25 16:14 .bashrc
#-rw-r--r-- 1 root root  675 May 25 16:14 .profile
#drwxr-xr-x 2 root root 4096 May 25 16:15 bin
#drwxr-xr-x 2 root root 4096 May 25 16:15 dev
#drwxr-xr-x 3 root root 4096 May 25 16:15 etc
#drwxr-xr-x 4 root root 4096 May 25 16:15 lib
#drwxr-xr-x 4 root root 4096 May 25 16:15 usr</pre>
<p>Si quelqu&#8217;un trouve un petite technique pour avoir le bon prompt aussi ça serait cool <img src='http://www.prometee-creation.com/wp-engine/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  car là on a le prompt de bash par défaut, et le .bashrc ne s&#8217;exécute pas.</p>
<p>Je suis ouvert à tout commentaires afin d&#8217;enrichir cette article, posez vos questions dans les commentaires ci-dessous <img src='http://www.prometee-creation.com/wp-engine/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.prometee-creation.com/tutoriels/openssh-server-avec-chroot-jail.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Configuration d&#8217;un serveur DNS Bind9 sur un serveur dédié</title>
		<link>http://www.prometee-creation.com/tutoriels/configuration-dun-serveur-dns-bind9-sur-un-serveur-dedie.html</link>
		<comments>http://www.prometee-creation.com/tutoriels/configuration-dun-serveur-dns-bind9-sur-un-serveur-dedie.html#comments</comments>
		<pubDate>Fri, 15 May 2009 20:54:48 +0000</pubDate>
		<dc:creator>Francis Hilaire</dc:creator>
				<category><![CDATA[Dns]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.prometee-creation.com/?p=332</guid>
		<description><![CDATA[Après maintes essai sur deux serveurs dédiés : un kimsufi et une dedibox pro xl, j&#8217;ai enfin saisi le fonctionnement de la configuration de bind9. Il existe pas mal de tutos traitant de la façon de construire ces fichiers configurations, mais aucune ne se ressemble. Ce petit tutoriel va d&#8217;une part m&#8217;aider à garder une [...]]]></description>
			<content:encoded><![CDATA[<p>Après maintes essai sur deux serveurs dédiés : un kimsufi et une dedibox pro xl, j&#8217;ai enfin saisi le fonctionnement de la configuration de bind9. Il existe pas mal de tutos traitant de la façon de construire ces fichiers configurations, mais aucune ne se ressemble. Ce petit tutoriel va d&#8217;une part m&#8217;aider à garder une trace de mon expérience et d&#8217;autre part de peut être vous aider <img src='http://www.prometee-creation.com/wp-engine/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Chez dedibox il existe une interface de gestion des dns très simple qui vous permettra de configurer vos enregistrements très simplement, mais vous pouvez tout de même créer votre propre serveur DNS.</p>
<p>Tout d&#8217;abord, la plate forme utilisée sur ses deux serveurs était <a href="http://cdimage.ubuntu.com/releases/9.04/release/">Ubuntu 9.04 server (x86_64)</a>. Il m&#8217;a donc fallut installer bind9 :</p>
<pre class="brush: bash">sudo aptitude install bind9</pre>
<p>.</p>
<p>Un fois installé le paquet .deb aura mis en place les fichiers de configuration de bind9 dans <strong>/etc/bind9/</strong>. Dans ce dossier nous trouverons 3 fichiers nommés :</p>
<ul>
<li><strong>/etc/bind/named.conf</strong> : ce fichier stocke la configuration basique de bind comme quelque zone de local forward et les reverses zones.</li>
<li><strong>/etc/bind/named.conf.local</strong> : ce fichier contiendra vos propres zones</li>
<li><strong>/etc/bind/named.conf.options</strong> : ce fichier contient en autres les options par lesquelles vous allez pouvoir changer la façon dont votre serveur DNS réagit.</li>
</ul>
<p>Configurons donc <strong>/etc/bind/named.conf.options</strong> nous allons ici dire à bind d&#8217;écouter par toutes les adresses ipv4 et v6 qui se trouvent sur votre serveur. Voici le contenu de mon fichier :</p>
<pre class="brush: cpp">options {
directory &quot;/var/cache/bind&quot;;

// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk.  See http://www.kb.cert.org/vuls/id/800113

// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0&#039;s placeholder.

forwarders {
213.186.33.99;
};

auth-nxdomain no;    # conform to RFC1035
listen-on-v6 { any; };
listen-on { any; };
// Les adresses autorisées à interroger de façon récursive le serveur DNS
allow-recursion
{
127.0.0.1;
ip.de.votre.serveur;
};

// Autorise le transfert de zone uniquement pour ns.kimsufi.com pour notre cas
allow-transfer { 213.186.33.199; };

};
</pre>
<p>Ici pour votre configuration vous pouvez changer l&#8217;adresse ip du DNS secondaire dans la clause <a href="http://www.zytrax.com/books/dns/ch7/queries.html#forwarders"><strong>forwarders</strong></a>. Les autres options tel que <strong><a href="http://www.zytrax.com/books/dns/ch7/hkpng.html#listen-on-v6">listen-on-v6</a> </strong>et <strong><a href="http://www.zytrax.com/books/dns/ch7/hkpng.html#listen-on">listen-on</a> </strong>vous respectivement définir le fait que le serveur DNS doit écouter  les requètes DNS sur toutes les adresses possibles quelles soit ipv6 ou ipv4. Ce qui est d&#8217;ailleurs une condition impérative afin d&#8217;établir un serveur DNS internet, sinon celui-ci restera par défaut un serveur dns contrôlant des zones locales.</p>
<p>Ensuite passons à la configuration d&#8217;une zone. Editons le fichier <strong>/etc/bind/named.conf.local </strong>afin d&#8217;y renseigner nos zones.</p>
<pre class="brush: cpp">zone &quot;mon-site.tld&quot; {
type master;
allow-transfer { 213.186.33.199; };
file &quot;/etc/bind/mon-site.tld.hosts&quot;;
notify yes;
};</pre>
<p>Naturellement vous allez remplacer mon-site.tld par le site voulu, la clause file va indiquer ou es ce que l&#8217;on stockera la configuration de notre zone. Attention apparemment (c&#8217;est à vérifier)  pour les domaines en .fr il faut absolument spécifier <a href="http://www.zytrax.com/books/dns/ch7/xfer.html#allow-transfer"><strong>allow-transfer</strong></a> et spécifier le dns qui s&#8217;occupera des transferts. <strong>notify yes</strong> accélère la mise à jour.</p>
<p>Puis nous allons renseigner le fichier de notre zone : <strong>/etc/bind/mon-site.tld.hosts </strong>de cette façon :</p>
<pre class="brush: plain">$ttl 3H
mon-site.tld.    IN    SOA    ksxxxx.kimsufi.com. emailvalide.domaine.tld. (
2009051501  ;serial (version)
3600          ;refresh period
900           ;retry refresh this often
604800        ;expiration period
3600          ;minimum TTL
)

mon-site.tld.        IN    NS    ksxxxx.kimsufi.com.
mon-site.tld.        IN    NS    ns.kimsufi.com.
IN    A    123.234.1.2
mail                 IN    A    123.234.1.2
svn                  IN    A    123.234.1.2
www                  IN    CNAME    mon-site.tld.
mon-site.tld.        IN    MX      10    mail.mon-site.tld.
</pre>
<p>Quelques petites explications : tout d&#8217;abord les points après les noms de domaines ne sont pas là pour faire jolie, si vous savez comment marche DNS vous savez pourquoi, personnellement je crois me rappeler que ça correspond à la douzaine de serveurs DNS principaux répartis sur la surface du globe qui sont les pères de tous les dns existants sur la toile.<br />
Bon sinon pour la configuration nous avons &laquo;&nbsp;<strong>mon-site.tld.    IN    SOA    ksxxxx.kimsufi.com. emailvalide.domaine.tld.</strong>&nbsp;&raquo; :</p>
<ul>
<li><strong>IN</strong> : signifie internet, c&#8217;est à dire que la zone suivante est destiné à la toile <img src='http://www.prometee-creation.com/wp-engine/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li><strong>SOA</strong> : Star Of Authority indiquant que le prochain paramètre sera le serveur de nom faisant autorité c&#8217;est à dire votre DNS principal.</li>
<li><strong>ksxxxx.kimsufi.com. </strong>: DNS principal de votre domaine, si vous êtes chez un autre hébergeur vous pouvez utiliser le fqdn de votre serveur, par exemple chez dedibox : sd-xxxxx.dedibox.fr</li>
<li><strong>emailvalide.domaine.tld.</strong> : ici on renseigne une adresse email en remplaçant le @ par un point et on termine par un point bien sûr.</li>
</ul>
<p>Les paramètres peuvent ne pas être touchés sauf le serial : &laquo;&nbsp;<strong>2009051501  ;serial (version)</strong>&nbsp;&raquo; par defaut on établit ce serial en concatenant une date et une nombres de changement du fichier en cours (2009 05 15 01 correspond au 15 mai 2009 et le fichier a été modifié 1 fois), mais vous pouvez mettre une numéro que vous voulez.</p>
<p>Ensuite les choses se corsent :</p>
<ul>
<li><strong>mon-site.tld.    IN    NS    ksxxxx.kimsufi.com.</strong>
<ul>
<li><strong>mon-site.tld </strong>: le nom de votre site a définir dans le serveur de noms.</li>
<li><strong>IN</strong> : toujours internet.</li>
<li><strong>NS</strong> : Signifie que le prochain paramètre sera le sera de nom dans lequel on renseigne le site.</li>
<li><strong>ksxxxx.kimsufi.com. </strong>: le seveur de noms</li>
</ul>
</li>
<li><strong>IN    A </strong><strong>123.234.1.2</strong>
<ul>
<li>Il n&#8217;y a rien avant IN, c&#8217;est normal cette enregistrement va nous servir à accéder au site grace à son fqdn ici <strong>mon-site.tld</strong></li>
<li><strong>A</strong> : fait correspondre un nom d&#8217;hôte à une adresse IPv4 de 32 bits distribués sur quatre octets</li>
<li><strong>123.234.1.2</strong> : adresse ip surlaquel le site sera utilisé.</li>
</ul>
</li>
<li><strong>mail    IN    A    123.234.1.2</strong>
<ul>
<li><strong>mail </strong>: on définit ici un sous domaine</li>
<li>comme dans l&#8217;enregistrement précédent</li>
</ul>
</li>
<li><strong>www    IN    CNAME    mon-site.tld.</strong>
<ul>
<li><strong>CNAME</strong> : canonical name record qui permet de faire d&#8217;un domaine un alias vers un autre. Cet alias hérite de tous les sous-domaines de l&#8217;original. Ici on a créé un alias de www.mon-site.tld ver mon-site.tld</li>
</ul>
</li>
<li><strong>mon-site.tld.      IN  MX      10    mail.mon-site.tld.</strong>
<ul>
<li><strong>MX 10</strong> : Serveur de type mail exchange record qui définit les serveurs de courriel pour ce domaine, suivit de sa priorité plus le chiffre est bas plus le serveur est prioritaire.</li>
</ul>
</li>
</ul>
<p>Si vous voulez d&#8217;autres précisions sur les autres types d&#8217;enregistrements lisez <a href="http://fr.wikipedia.org/wiki/Domain_Name_System">l&#8217;article de wikipedia sur DNS</a> qui vous décrira les types comme AAAA destinés à IPv6, TXT pour un enregistrement de type commentaire, ou encore PTR qui est le contraire de A.</p>
<p>Voilà vous savez le minimum pour configurer ce type de fichiers. Un fois que vous avez terminer l&#8217;édition de ces fichiers n&#8217;oubliez pas de reloadé bind9 et de vérifier les logs :</p>
<pre class="brush: bash">
sudo invoke-rc.d bind9 reload</pre>
<pre class="brush: bash">
sudo tail -f -n 30 /var/log/daemon.log</pre>
<p>ou plus simplement :</p>
<pre class="brush: bash">named-checkconf -z</pre>
<p>Pour vérifier que votre serveur est bien comme il faut :</p>
<pre class="brush: bash">nslookup mon-site.tld
nslookup www.mon-site.tld
nslookup mail.mon-site.tld</pre>
<p>Et la même chose sur le DNS secondaire de votre provider :</p>
<pre class="brush: bash">nslookup mon-site.tld ns.kimsufi.com
nslookup www.mon-site.tld ns.kimsufi.com
nslookup mail.mon-site.tld ns.kimsufi.com</pre>
<p>A noter que la configuration des dns sur votre serveur peux prendre plusieurs heures voir jours à arriver jusqu&#8217;aux serveurs DNS de votre FAI de votre domicile.</p>
<p>N&#8217;hésitez pas à faire part de vos soucis ou remarques dans les commentaires, cette article n&#8217;est pas immuable et évoluera en fonction des expériences de chacun d&#8217;entre nous <img src='http://www.prometee-creation.com/wp-engine/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Liste complète des options disponible pour les fichiers de conf de BIND9 :<br />
<a href="http://ftp.isc.org/www/bind/arm95/Bv9ARM.ch06.html">http://ftp.isc.org/www/bind/arm95/Bv9ARM.ch06.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.prometee-creation.com/tutoriels/configuration-dun-serveur-dns-bind9-sur-un-serveur-dedie.html/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Bien intégrer du flash dans une page xHTML 1.0 strict</title>
		<link>http://www.prometee-creation.com/tutoriels/bien-integrer-du-flash-dans-une-page-html.html</link>
		<comments>http://www.prometee-creation.com/tutoriels/bien-integrer-du-flash-dans-une-page-html.html#comments</comments>
		<pubDate>Tue, 01 Jul 2008 10:13:02 +0000</pubDate>
		<dc:creator>Francis Hilaire</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.prometee-creation.com/?p=163</guid>
		<description><![CDATA[Afin de respecter au mieux les spécifications de la W3C ainsi que les règles basique de l&#8217;accéssibilité, je vous propose la règle d&#8217;intégration d&#8217;un élément flash dans une page xHTML 1.0 strict : &#60;div&#62; &#60;object type=&#34;application/x-shockwave-flash&#34; data=&#34;/chemin-vers-le-swf/votre.swf&#34; width=&#34;800px&#34; height=&#34;600px&#34;&#62; &#60;param name=&#34;movie&#34; value=&#34;/chemin-vers-le-swf/votre.swf&#34; /&#62; &#60;img src=&#34;/chemin-vers-image-de remplacement/votre.png&#34; alt=&#34;Vous ne disposez pas d&#039;un plugin flash&#34; /&#62; &#60;/object&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Afin de respecter au mieux les spécifications de la W3C ainsi que les règles basique de l&#8217;accéssibilité, je vous propose la règle d&#8217;intégration d&#8217;un élément flash dans une page xHTML 1.0 strict :</p>
<pre class="brush: html">&lt;div&gt;
&lt;object
type=&quot;application/x-shockwave-flash&quot;
data=&quot;/chemin-vers-le-swf/votre.swf&quot;
width=&quot;800px&quot;
height=&quot;600px&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;/chemin-vers-le-swf/votre.swf&quot; /&gt;
&lt;img src=&quot;/chemin-vers-image-de remplacement/votre.png&quot; alt=&quot;Vous ne disposez pas d&#039;un plugin flash&quot; /&gt;
&lt;/object&gt;
&lt;/div&gt;</pre>
<p>Ce code marche dans IE6-7, FF1-2-3, Opera 9 et sup, Safari 3.1, les autres navigateurs je n&#8217;ai pas pu tester, j&#8217;attends vos retour pour savoir si je peux allonger la liste.</p>
<p><em>RQ : Ce code peut vous éviter certains plantages inhérent à l&#8217;utilisation de la balise <strong>embed</strong> par exemple&#8230;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.prometee-creation.com/tutoriels/bien-integrer-du-flash-dans-une-page-html.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faire fonctionner les gaming leds de l&#8217;Asus G2S 7R023C</title>
		<link>http://www.prometee-creation.com/tutoriels/faire-fonctionner-les-gaming-leds-de-lasus-g2s-7r023c.html</link>
		<comments>http://www.prometee-creation.com/tutoriels/faire-fonctionner-les-gaming-leds-de-lasus-g2s-7r023c.html#comments</comments>
		<pubDate>Fri, 21 Mar 2008 22:46:53 +0000</pubDate>
		<dc:creator>Francis Hilaire</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Trucs et astuces]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/faire-fonctionner-les-gaming-leds-de-lasus-g2s-7r023c.html</guid>
		<description><![CDATA[Bon j&#8217;ai un peu galéré à trouver mais c&#8217;est en regardant le README du module asus-laptop que j&#8217;ai trouvé comment faire pour allumer les gaming leds de mon ASUS G2S 7R023C. Donc en root, le sudo marche pas avec cette commande : echo 1 > /sys/class/leds/asus\:gaming/brightness et donc pour les éteindre il suffit de faire [...]]]></description>
			<content:encoded><![CDATA[<p>Bon j&#8217;ai un peu galéré à trouver mais c&#8217;est en regardant le <a href="http://acpi4asus.sourceforge.net/README" title="asus-laptop Readme">README du module asus-laptop</a> que j&#8217;ai trouvé comment faire pour allumer les gaming leds de mon ASUS G2S 7R023C.</p>
<p>Donc en <strong>root</strong>, le sudo marche pas avec cette commande :</p>
<p><code>echo 1 >  /sys/class/leds/asus\:gaming/brightness</code></p>
<p>et donc pour les éteindre il suffit de faire : toujours en <strong>root</strong></p>
<p><code>echo 0 >  /sys/class/leds/asus\:gaming/brightness</code><br />
</p>
<p>Pour les autres leds lister le dossier /sys/class/leds</p>
<p>Je vous rappelle aussi que ce portable est aussi muni d&#8217;un écran OLED. Pour l&#8217;activer et en faire ce que vous voulez allez visiter <a href="http://doc.ubuntu-fr.org/asusoled" title="asusoled">la page de documentation Ubuntu sur asusoled</a></p>
<p>Rq : Sur ce portable tout est supporté à partir de Ubuntu 7.10 à part le tuner TNT qui n&#8217;est pas encore pris en charge et la webcam qui a une image inversée.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.prometee-creation.com/tutoriels/faire-fonctionner-les-gaming-leds-de-lasus-g2s-7r023c.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fonction de Luhn en php</title>
		<link>http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html</link>
		<comments>http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html#comments</comments>
		<pubDate>Sun, 09 Mar 2008 21:15:45 +0000</pubDate>
		<dc:creator>Francis Hilaire</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[SIREN]]></category>
		<category><![CDATA[SIRET]]></category>
		<category><![CDATA[vérifier numéro de carte bancaire]]></category>

		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html</guid>
		<description><![CDATA[Après avoir regarder du côté de wikipédia, j&#8217;ai pu facilement construire la fonction de Luhn permettant entre autre de vérifier des numéros de carte bancaire. //Fonction algorithme de Luhn function isLuhnNum($num) { //longueur de la chaine $num $length = strlen($num); //resultat de l&#039;addition de tous les chiffres $tot = 0; for($i=$length-1;$i&#62;=0;$i--) { $digit = substr($num, [...]]]></description>
			<content:encoded><![CDATA[<p>Après avoir regarder du côté de <a href="http://fr.wikipedia.org/wiki/Formule_de_Luhn" title="formule de Luhn">wikipédia</a>, j&#8217;ai pu facilement construire la fonction de Luhn permettant entre autre de vérifier des numéros de carte bancaire.</p>
<pre class="brush: php">
//Fonction algorithme de Luhn
function isLuhnNum($num)
{
	//longueur de la chaine $num
	$length = strlen($num);

	//resultat de l&#039;addition de tous les chiffres
	$tot = 0;
	for($i=$length-1;$i&gt;=0;$i--)
	{
		$digit = substr($num, $i, 1);

		if ((($length - $i) % 2) == 0)
		{
			$digit = $digit*2;
			if ($digit&gt;9)
			{
				$digit = $digit-9;
			}
		}
		$tot += $digit;
	}

	return (($tot % 10) == 0);
}
</pre>
<p>Merci à <a href="#comment-48" title="Commentaire de Andras (ajout du support pour les numéro de SIREN)">Andras</a> pour sa précision <img src='http://www.prometee-creation.com/wp-engine/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Fonction SHA1 en ASP</title>
		<link>http://www.prometee-creation.com/tutoriels/fonction-sha1-en-asp.html</link>
		<comments>http://www.prometee-creation.com/tutoriels/fonction-sha1-en-asp.html#comments</comments>
		<pubDate>Sat, 11 Aug 2007 10:54:48 +0000</pubDate>
		<dc:creator>Francis Hilaire</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/fonction-sha1-en-asp.html</guid>
		<description><![CDATA[Le SHA1 : http://www.itl.nist.gov/fipspubs/fip180-1.htm Original : http://p2p.wrox.com/archive/proasp_howto/2002-02/27.asp = 32 then binstr = "" elseif count > 0 then binstr = left(tobin(value), 32-count) else binstr = tobin(value) end if do while len(binstr) < 32 binstr = "0" + binstr loop rshift = bin2dec(binstr) end function function lshift(value,count) dim binstr if count >= 32 then binstr = [...]]]></description>
			<content:encoded><![CDATA[<p>Le SHA1 : <a href="http://www.itl.nist.gov/fipspubs/fip180-1.htm">http://www.itl.nist.gov/fipspubs/fip180-1.htm</a>
</p>
<p>Original : <a href="http://p2p.wrox.com/archive/proasp_howto/2002-02/27.asp">http://p2p.wrox.com/archive/proasp_howto/2002-02/27.asp</a>
</p>
<pre><code><%
function tohex(value)
<span id="more-73"></span>
  value = clng(value)
  tohex = lcase(hex(value))
  do while len(tohex) < 8
    tohex = "0" &#038; tohex
  loop
end function

function tobin(value)
  dim hexstr
  hexstr = tohex(value)
  tobin = ""
  for i = 1 to len(hexstr)
    select case mid(hexstr, i, 1)
      case "f", "F"
        tobin = tobin &#038; "1111"
      case "e", "E"
        tobin = tobin &#038; "1110"
      case "d", "D"
        tobin = tobin &#038; "1101"
      case "c", "C"
        tobin = tobin &#038; "1100"
      case "b", "B"
        tobin = tobin &#038; "1011"
      case "a", "A"
        tobin = tobin &#038; "1010"
      case "9"
        tobin = tobin &#038; "1001"
      case "8"
        tobin = tobin &#038; "1000"
      case "7"
        tobin = tobin &#038; "0111"
      case "6"
        tobin = tobin &#038; "0110"
      case "5"
        tobin = tobin &#038; "0101"
      case "4"
        tobin = tobin &#038; "0100"
      case "3"
        tobin = tobin &#038; "0011"
      case "2"
        tobin = tobin &#038; "0010"
      case "1"
        tobin = tobin &#038; "0001"
      case else
        tobin = tobin &#038; "0000"
    end select
  next
end function

function bin2dec(binstr)
  dim flip
  flip = false
  bin2dec = clng(0)
  if left(binstr,1) = "0" then
    for i = 1 to len(binstr)
      if mid(binstr,33-i,1)="1" then
        bin2dec = bin2dec + (2^(i-1))
      end if
    next
  else
    for i = 1 to len(binstr)
      if flip then
        if mid(binstr,33-i,1)="0" then
          bin2dec = bin2dec - (2^(i-1))
        end if
      else
        if mid(binstr,33-i,1)="1" then
          bin2dec = bin2dec - (2^(i-1))
          flip = true
        end if
      end if
    next
  end if
end function  

function rshift(value,count)
  dim binstr
  if count >= 32 then
    binstr = ""
  elseif count > 0 then
    binstr = left(tobin(value), 32-count)
  else
    binstr = tobin(value)
  end if
  do while len(binstr) < 32
    binstr = "0" + binstr
  loop
  rshift = bin2dec(binstr)  
end function

function lshift(value,count)
  dim binstr
  if count >= 32 then
    binstr = ""
  elseif count > 0 then
    binstr = right(tobin(value), 32-count)
  else
    binstr = tobin(value)
  end if
  do while len(binstr) < 32
    binstr = binstr + "0"
  loop
  lshift = bin2dec(binstr)
end function

function rol(value,count)
  rol = lshift(value,count) or rshift(value,32-count)
end function

function add32(a, b)
  dim bina, binb, total, result, carry
  bina = tobin(a)
  binb = tobin(b)
  result = ""
  carry = "0"
  for i = 1 to 32
    total = 0
    if mid(bina,33-i,1)="1" then total = total + 1
    if mid(binb,33-i,1)="1" then total = total + 1
    if carry="1" then total = total + 1
    select case total
      case 3
        carry = "1"
        result = "1" + result
      case 2
        carry = "1"
        result = "0" + result
      case 1
        carry = "0"
        result = "1" + result
      case else
        carry = "0"
        result = "0" + result
    end select
  next
  add32 = bin2dec(result)    
end function

function f(b,c,d,t)
  if t < 20 then
    f = (b and c) or ((not b) and d)
  elseif t < 40 then
    f = b xor c xor d
  elseif t < 60 then
    f = (b and c) or (b and d) or (c and d)
  else
    f = b xor c xor d
  end if
end function

function k(t)
  if t < 20 then
    k = clng(1518500249)
  elseif t < 40 then
    k = clng(1859775393)
  elseif t < 60 then
    k = clng(-1894007588)
  else
    k = clng(-899497514)
  end if
end function

function pad(message)
  dim l, n
  l = len(message)
  n = (((l+8) \ 64) + 1)*16
  redim m(n-1)
  for i = 0 to n-1
    m(i) = clng(0)
  next
  for i = 0 to l-1
    m(i\4) = m(i\4) or lshift(asc(mid(message,i+1,1)),(24-(i mod 4)*8))
  next
  m(l\4) = m(l\4) or lshift(clng(128),(24-(l mod 4)*8))
  m(n-1) = l*8
  pad = m
end function

function sha1(message)
  dim h0, h1, h2, h3, h4
  dim a, b, c, d, e, temp
  dim l, n
  dim w(79)

  l = len(message)
  n = (((l+8) \ 64) + 1)*16
  m = pad(message)

  h0 = clng(1732584193)
  h1 = clng(-271733879)
  h2 = clng(-1732584194)
  h3 = clng(271733878)
  h4 = clng(-1009589776)

  for block = 0 to n-1 step 16
    a = h0
    b = h1
    c = h2
    d = h3
    e = h4
    for t = 0 to 79
      if t < 16 then
        w(t) = m(block + t)
      else
        w(t) = rol(w(t-3) xor w(t-8) xor w(t-14) xor w(t-16),1)
      end if
      temp = add32(rol(a,5),add32(f(b,c,d,t),add32(e,add32(w(t),k(t)))))
      e = d
      d = c
      c = rol(b,30)
      b = a
      a = temp
    next
    h0 = add32(h0, a)
    h1 = add32(h1, b)
    h2 = add32(h2, c)
    h3 = add32(h3, d)
    h4 = add32(h4, e)
  next
  sha1 = tohex(h0)+tohex(h1)+tohex(h2)+tohex(h3)+tohex(h4)
end function
%>
</code>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.prometee-creation.com/tutoriels/fonction-sha1-en-asp.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Terminal en couleur</title>
		<link>http://www.prometee-creation.com/tutoriels/terminal-en-couleur.html</link>
		<comments>http://www.prometee-creation.com/tutoriels/terminal-en-couleur.html#comments</comments>
		<pubDate>Mon, 21 May 2007 18:21:38 +0000</pubDate>
		<dc:creator>Francis Hilaire</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/linux/terminal-en-couleur.html</guid>
		<description><![CDATA[Vous voulez égailler votre terminal noir&#38;blanc de votre ubuntu ou debian&#8230; Aller modifier le fichier ~/.bashrc gksudo gedit ~/.bashrc et insérez en fin de fichier ces quelques lignes if [ "$PS1" ]; then if test `whoami` != "root" then PS1='${debian_chroot:+($debian_chroot)}\[\033[1;34m\]\u\[\033[1;33m\]@\[\033[1;34m\]\h\[\033[0;0m\]:\[\033[1;31m\]\w\[\033[0;0m\]\$ ' else PS1='${debian_chroot:+($debian_chroot)}\[\033[1;31m\]\u\[\033[1;34m\]@\[\033[1;34m\]\h\[\033[0;0m\]:\[\033[0;34m\]\w\[\033[0;0m\]\$ ' fi fi Si vous voulez changer de couleur il suffit de [...]]]></description>
			<content:encoded><![CDATA[<p>Vous voulez égailler votre terminal noir&amp;blanc de votre ubuntu ou debian&#8230;</p>
<p>Aller modifier le fichier ~/.bashrc</p>
<p><span id="more-70"></span></p>
<p><code>gksudo gedit ~/.bashrc</code></p>
<p>et insérez en fin de fichier ces quelques lignes</p>
<p><code><br />
if [ "$PS1" ]; then<br />
if test `whoami` != "root"<br />
then<br />
PS1='${debian_chroot:+($debian_chroot)}\[\033[1;34m\]\u\[\033[1;33m\]@\[\033[1;34m\]\h\[\033[0;0m\]:\[\033[1;31m\]\w\[\033[0;0m\]\$ '<br />
else<br />
PS1='${debian_chroot:+($debian_chroot)}\[\033[1;31m\]\u\[\033[1;34m\]@\[\033[1;34m\]\h\[\033[0;0m\]:\[\033[0;34m\]\w\[\033[0;0m\]\$ '<br />
fi<br />
fi</code></p>
<p>Si vous voulez changer de couleur il suffit de se référer à ce tableau :</p>
<p><code><br />
# ----------------------------------------------------------------------<br />
# Définition des couleurs possibles<br />
# ----------------------------------------------------------------------<br />
# couleurs de base<br />
rouge="\[\033[31m\]"<br />
vert="\[\033[32m\]"<br />
jaune="\[\033[33m\]"<br />
bleu="\[\033[34m\]"<br />
magenta="\[\033[35m\]"<br />
blanc="\[\033[00m\]"</p>
<p># couleurs en gras<br />
h_rouge="\[\033[1;31m\]"<br />
h_vert="\[\033[1;32m\]"<br />
h_jaune="\[\033[1;33m\]"<br />
h_bleu="\[\033[1;34m\]"<br />
h_magenta="\[\033[1;35m\]"<br />
h_blanc="\[\033[1;00m\]"<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.prometee-creation.com/tutoriels/terminal-en-couleur.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation d’un PDC sous Debian 3.1 ou Ubuntu</title>
		<link>http://www.prometee-creation.com/tutoriels/installation-pdc-sous-debian-31-ou-ubuntu.html</link>
		<comments>http://www.prometee-creation.com/tutoriels/installation-pdc-sous-debian-31-ou-ubuntu.html#comments</comments>
		<pubDate>Tue, 17 Apr 2007 19:47:01 +0000</pubDate>
		<dc:creator>Francis Hilaire</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/linux/installation-pdc-sous-debian-31-ou-ubuntu.html</guid>
		<description><![CDATA[Installation de Samba Pour installer les paquets nécessaire à Samba il faut taper la commande : apt-get install samba Sous debian le fichier /etc/samba/smbpasswd n’existe pas, il faut le créer par la commande : En mode root (sudo -s) cat /etc/passwd &#124; /usr/sbin/mksmbpasswd &#62; /etc/samba/smbpasswd Création des groupes et des utilisateurs de Samba On commence [...]]]></description>
			<content:encoded><![CDATA[<h3>Installation de Samba</h3>
<p>Pour installer les paquets nécessaire à Samba il faut taper la commande :</p>
<p><code>apt-get install samba</code></p>
<p>Sous debian le fichier /etc/samba/smbpasswd n’existe pas, il faut le créer par la commande :</p>
<p><span id="more-53"></span><br />
En mode root (<strong>sudo -s</strong>)<br />
<code>cat /etc/passwd | /usr/sbin/mksmbpasswd &gt; /etc/samba/smbpasswd</code></p>
<h3>Création des groupes et des utilisateurs de Samba</h3>
<p>On commence par créer les groupes et les comptes d’utilisateurs dont on aura besoin affecté au groupe grpdomain. On créait également un groupe qui s’appellera machines pour pouvoir intégrer les machines clientes au serveur (il faudra par la suite rajouter à la main chaque compte de machine pour les intégrer).</p>
<p>Création du groupe pour les machines clientes :</p>
<pre><code>groupadd machines</code></pre>
<p>Création du groupe anglobant tous les utilisateurs :</p>
<pre><code>groupadd grpdomain</code></pre>
<p>Création des utilisateurs :</p>
<pre><code>
useradd –m –G grpdomain –c "Mr Utilisateur 1" user1
passwd user1
useradd –m –G grpdomain –c "Mme Utilisatrice 2" user2
passwd user2
useradd –m –G grpdomain –c "Mlle Utilisatrice 3" user3
passwd user3
</code></pre>
<p>On créait ensuite les répertoires qui constitueront les ressources partagées par Samba. Les</p>
<p>commandes chown et chmod permettent d’y inscrire les droits d’accès.</p>
<p>Les répertoires de chaque utilisateur sont lisibles et inscriptibles exclusivement par</p>
<p>leurs propriétaires respectifs (répertoire personnel de l&#8217;utilisateur).</p>
<p>Le répertoire commun peut être lu et modifié par son propriétaire (root) ainsi que par tous</p>
<p>les membres du groupe <strong>grpdomain</strong>.<br />
Enfin non créerons le réperoire qui acceuilleura les script de logon.</p>
<p>Création du répertoire contenant les partages personnels des utilisateurs :</p>
<pre><code>
mkdir /home/samba
mkdir /home/samba/users
</code></pre>
<p>Création du répertoire commun :</p>
<pre><code>mkdir /home/samba/commun
chown root:grpdomain /home/samba/commun/
</code></pre>
<p>Création du répertoire netlogon :</p>
<pre><code>mkdir /home/samba/netlogon
</code></pre>
<p>Création des réperoires personnels des utilisateurs :<br />
<code>for i in user1 user2 user3<br />
\ do<br />
\ mkdir /home/users/$i<br />
\ chown $i /home/user/$i<br />
\ chmod 700 /home/users/$i<br />
\ done<br />
</code></pre>
<p>On procède ensuite à l’ajout des utilisateurs dans la base de Samba, avec la commande <strong>smbpasswd</strong> ainsi qu'un mot de passe (l'option -e précise que le compte samba créé est activé).</p>
<p>Les commandes correspondantes :</p>
<pre><code>
smbpasswd -a root
smbpasswd -e -a user1
smbpasswd -e -a user2
smbpasswd -e -a user3
</code></pre>
<h3>Configuration de samba</h3>
<p>Fichier de configuration smb.conf créé:</p>
<pre><code>[global]
# Définition du nom de domaine
workgroup = pdc.priv
Server string = %h

# Niveau de sécurité user, demande un login et un mot de passe

security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd

#controleur de domaine principal
domain master = yes
os level = 255

# Gestion de l'authentification sur le domaine
domain logons = yes
wins support = yes

#nom du script d'ouverture de session
#ce script se situera dans /home/samba/netlogon/logon.bat
logon script = logon.bat

# partage pour pouvoir exécuter des scripts lors de l'ouverture de session

[netlogon]

path = /home/samba/netlogon
writable=no
browseable = no

#partage d’un répertoire commun

[commun]

comment=répertoire commun
path=/home/samba/commun
read only=no
guest ok=yes

#partage des répertoires des utilisateurs

[%U]

Comment = répertoire de %U
Path=/home/samba/users/%U
Valid users=%U
public=no
writable=yes
printable=no
</code></pre>
<p>
Pour tester ce fichier nous tapons la commande testparm /etc/samba/smb.conf.</p>
<p>On configure également le fichier <strong>logon.bat</strong>. On tape dans un fichier texte les<br />
commandes:</p>
<pre><code>net use z: \\serv08\commun
net use y: \\serv08\%username%
</code></pre>
<p>On place le fichier <strong>logon.bat</strong> dans le répertoire <strong>netlogon</strong> de samba.</p>
<p>Lors de la connexion d’un utilisateur le script se lancera sur la machine client et</p>
<p>affichera les lecteurs réseau z et y.</p>
<p>Ensuite vous entrez vos machines clientes dans le domaine.</p>
<h3>Intégration d'un client windows dans samba</h3>
<p>Il faut au préalable créer les différents comptes machine dans la base UNIX ainsi que dans SAMBA.</p>
<p>Nous avions préalablement créé un groupe nommé <strong>machines</strong>, il nous suffira donc maintenant de créer les compte machine qu'il nous faut.</p>
<p>Pour toutes les machines que vous voudrais rajouter au domaine il vous faudra noter au préalable leur nom netbios respectif.</p>
<p>On ajoute le compte machine en ajoutant un $ aprés son nom netbios :</p>
<pre><code>adduser netbiosnamepcuser1$ -g machines –s /dev/false –d /dev/null</code></pre>
<p>On ajoute ensuite le nom de la machine en tant qu’utilisateur samba dans le fichier /etc/samba/smbpasswd</p>
<pre><code>smbpasswd -m -a netbiosnamepcuser1$</code></pre>
<p>L'option -m spécifie que ce compte est un compte machine</p>
<p>Aprés avoir fait cette manipulation vous pouvez intégrer une machine windows sur le controleur de domaine avec le compte root de celui-ci.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.prometee-creation.com/tutoriels/installation-pdc-sous-debian-31-ou-ubuntu.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Configurer un serveur ftp : vsftpd et utilisateurs virtuels</title>
		<link>http://www.prometee-creation.com/tutoriels/un-serveur-ftp-avec-vsftpd-et-utilisateurs-virtuels.html</link>
		<comments>http://www.prometee-creation.com/tutoriels/un-serveur-ftp-avec-vsftpd-et-utilisateurs-virtuels.html#comments</comments>
		<pubDate>Tue, 17 Apr 2007 14:58:05 +0000</pubDate>
		<dc:creator>Francis Hilaire</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/un-serveur-ftp-avec-vsftpd-et-utilisateurs-virtuels.html</guid>
		<description><![CDATA[Installation de vsftpd apt-get install vsftpd Une fois le serveur installé, il créé un user &#8216;ftp&#8217; avec un groupe &#8216;nogroup&#8217;. L&#8217;utilisateur ftp possède maintenant un répertoire dans /home/ftp/ en root:nogroup. On peut d&#8217;or et déjà se logguer en tant qu&#8217;utilisateur anonyme. Si on veut modifier le répertoire du serveur il suffit de modifier son chemin. [...]]]></description>
			<content:encoded><![CDATA[<h3>Installation de vsftpd</h3>
<p><code><br />
apt-get install vsftpd<br />
</code></p>
<p>Une fois le serveur installé, il créé un user &#8216;ftp&#8217; avec un groupe &#8216;nogroup&#8217;.<br />
L&#8217;utilisateur ftp possède maintenant un répertoire dans /home/ftp/ en root:nogroup.</p>
<p><span id="more-52"></span></p>
<p>On peut d&#8217;or et déjà se logguer en tant qu&#8217;utilisateur anonyme.</p>
<p>Si on veut modifier le répertoire du serveur il suffit de modifier son chemin.<br />
Ex :<br />
on va choisir le chemin <strong><em>/var/ftp</em></strong><br />
donc  :<br />
<code><br />
mkdir /var/ftp<br />
chown root:nogroup /var/ftp<br />
</code></p>
<p>On modifie le répertoire personnel de l&#8217;user ftp et tout devrait être bon.</p>
<p>Installation de db nécessaire pour la gestion des utilisateurs au cas par cas :</p>
<p><code><br />
apt-get install libdb3-util<br />
</code></p>
<p>(J&#8217;ai choisit de ne pas utiliser une des dernière version du au faite de certains problèmes<br />
que je n&#8217;ai pas réussi à résoudre ).</p>
<p>Maintenant que tout ca marche pensons à sauvegarder les fichiers de configuration même<br />
si les modifications sont des plus légères.</p>
<p><code><br />
cp /etc/vsftpd.conf /etc/vsftpd.conf1<br />
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak1<br />
</code></p>
<p>Attaque au cas du cas par cas :<br />
pour la liste des utilisateurs virtuels il faut créér un fichier virtual.txt<br />
( on peut choisir un autre nom, il vous suffira d&#8217;adapter ), du style :<br />
jack<br />
none<br />
polo<br />
senva</p>
<p>jack étant l&#8217;user et none son passe, polo l&#8217;user et senva son passe, donc pour résumer :<br />
login<br />
pass<br />
login<br />
pass</p>
<p>Ensuite il nous faut formater les données de ce fichier pour qu&#8217;elles puissent être lu par PAM :</p>
<p><code><br />
db3_load -T -t hash -f virtual.txt virtual.db<br />
</code></p>
<p>Un petit <strong><em>chmod 600 virtual.*</em></strong> s&#8217;impose sinon juste le .db et vous supprimer le .txt qui ne sert plus à rien.</p>
<p>Direction /etc/pam.d/ :</p>
<p><code><br />
gedit vsftp<br />
</code></p>
<p>Soit vous supprimez les lignes déjà existantes soit vous mettez des commentaires<br />
et placez y ces lignes :</p>
<p><code><br />
auth required /lib/security/pam_userdb.so db=/etc/virtual<br />
account required /lib/security/pam_userdb.so db=/etc/virtual<br />
</code></p>
<p>Reste à configurer vsftpd.conf pour accepter ces utilisateurs :</p>
<p><code><br />
anonymous_enable=NO #désactive les anonymes<br />
guest_enable=YES #active les users virtuels<br />
guest_username=ftp #nom de l'utilisateur, j'ai choisit de mettre celui créé à l'installation<br />
</code></p>
<p>par vsftpd.</p>
<p>Testez maintenant le serveur en vous connectant avec un des comptes de la base PAM, essayez en anonyme ou avec un compte réel, pour voir le résultat.</p>
<p>Maintenant que ca marche, nous pouvons passer à un paramétrage plus complet de vsftpd.conf<br />
avant de vraiment attaquer le cas par cas.</p>
<p><code><br />
listen=YES<br />
#<br />
#listen_ipv6=YES<br />
#<br />
#definie le nombre de clients et de fois qu'il peut-être connecté<br />
max_clients=4<br />
max_per_ip=1<br />
#<br />
#montre les fichiers et répertoire comme appartenant a FTP<br />
hide_ids=YES<br />
#<br />
anonymous_enable=NO<br />
#<br />
# Uncomment this to allow local users to log in.<br />
local_enable=YES<br />
guest_enable=YES<br />
guest_username=ftp<br />
user_config_dir=/etc/vsftpd_user<br />
#<br />
#<br />
#écrire sur le serveur et droit des anonymes<br />
write_enable=NO<br />
anon_upload_enable=NO<br />
anon_mkdir_write_enable=NO<br />
anon_world_readable_only=YES<br />
#<br />
local_umask=022<br />
#<br />
dirmessage_enable=YES<br />
#<br />
# Activate logging of uploads/downloads.<br />
xferlog_enable=YES<br />
#<br />
# Make sure PORT transfer connections originate from port 20 (ftp-data).<br />
connect_from_port_20=YES<br />
#<br />
# If you want, you can arrange for uploaded anonymous files to be owned by<br />
# a different user. Note! Using "root" for uploaded files is not<br />
# recommended!<br />
#chown_uploads=YES<br />
#chown_username=whoever<br />
#<br />
# You may override where the log file goes if you like. The default is shown<br />
# below.<br />
#xferlog_file=/var/log/vsftpd.log<br />
#<br />
# If you want, you can have your log file in standard ftpd xferlog format<br />
#xferlog_std_format=YES<br />
#<br />
idle_session_timeout=600<br />
#<br />
data_connection_timeout=120<br />
#<br />
# It is recommended that you define on your system a unique user which the<br />
# ftp server can use as a totally isolated and unprivileged user.<br />
#nopriv_user=ftpsecure<br />
#<br />
async_abor_enable=YES<br />
#<br />
#pas d'up ni dl en ascii<br />
ascii_upload_enable=NO<br />
ascii_download_enable=NO<br />
#<br />
ftpd_banner=Welcome On My Domain.<br />
#<br />
#deny_email_enable=YES<br />
#<br />
#banned_email_file=/etc/vsftpd.banned_emails<br />
#<br />
#cantonne les utilisateurs locaux à leur répertoire personnel<br />
chroot_local_user=YES<br />
#<br />
#<br />
#chroot_list_enable=YES<br />
# (default follows)<br />
#chroot_list_file=/etc/vsftpd.chroot_list<br />
#<br />
#désactivation du ls récursif<br />
ls_recurse_enable=NO<br />
#<br />
secure_chroot_dir=/var/run/vsftpd<br />
#<br />
# nom du fichier pam<br />
pam_service_name=vsftpd<br />
#<br />
#location de la certification rsa pour le ssl<br />
rsa_cert_file=/etc/ssl/certs/vsftpd.pem<br />
</code></p>
<p>Aprés avoir créér la base de la gestion par utilisateurs, passons à un affinement des règles. Dans le fichier vsftpd.conf, il faut rajouter la ligne:</p>
<p><code><br />
user_config_dir=/etc/vsftpd_user<br />
</code></p>
<p>Avec ca on indique à vsftpd qu&#8217;il existe un répertoire /etc/vsftpd_user qui contiendra les fichiers de configurations pour chaque utilisateur.</p>
<p><code><br />
mkdir /etc/vsftpd_user<br />
</code></p>
<p>Il suffit maintenant de créér un fichier portant le nom de la personne voulu dans ce dossier avec les options désirées pour chaque personne et créér une réelle gestion des membres au cas par cas.</p>
<p>Petit exemple :<br />
nous voulons que l&#8217;utilisateur polo puisse monter et télécharger des données, il nous faut donc lui créér un fichier de configuration à son nom dans /etc/vsftpd_user</p>
<p><code><br />
touch polo<br />
gedit polo<br />
</code></p>
<p>et les options à mettre pour contrer les règles principales définies pour vsftpd :</p>
<p><code><br />
anon_upload_enable=YES<br />
write_enable=YES<br />
anon_world_readable_only=NO<br />
</code></p>
<p>Maintenant il peut télécharger mais aussi stocker des données sur le serveur.</p>
<p>Ca peut-être utile de traiter les utilsateurs au cas par cas ou par groupe, mais pour certains cas rien ne faut un répertoire &laquo;&nbsp;chrooter&nbsp;&raquo; ou seul le membre pourra y rentrer.</p>
<p><code><br />
echo "local_root=polo" &gt;&gt; /etc/vsftpd_user/polo<br />
</code></p>
<p>Ceci permet de créér un répertoire perso à polo ( bien entendu penser au mkdir et chown ).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.prometee-creation.com/tutoriels/un-serveur-ftp-avec-vsftpd-et-utilisateurs-virtuels.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Montage disque dur externe</title>
		<link>http://www.prometee-creation.com/tutoriels/montage-disque-dur-externe.html</link>
		<comments>http://www.prometee-creation.com/tutoriels/montage-disque-dur-externe.html#comments</comments>
		<pubDate>Tue, 17 Apr 2007 04:05:16 +0000</pubDate>
		<dc:creator>juju</dc:creator>
				<category><![CDATA[Matériel]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/montage-disque-dur-externe.html</guid>
		<description><![CDATA[Montage disque dur externe Ce tutoriel est consacré au montage d&#8217;un disque dur externe. L&#8217;avantage de ce procédé est de pouvoir choisir un boitier qui plaît et donc pas imposé par les grossistes de plus le gros avantage reste de pouvoir mettre le disque qui plait en fonction de ses capacités, de sa fiabilité mais [...]]]></description>
			<content:encoded><![CDATA[<h3>Montage disque dur externe</h3>
<p>Ce tutoriel est consacré au montage d&#8217;un disque dur externe. L&#8217;avantage de ce procédé est de pouvoir choisir un boitier qui plaît et donc pas imposé par les grossistes de plus le gros avantage reste de pouvoir mettre le disque qui plait en fonction de ses capacités, de sa fiabilité mais surtout de ses performances comme on dit souvent on est mieux servis que par soi-même!.</p>
<p><span id="more-45"></span></p>
<p><strong>Le matériel utilisé pour cette opération est :</strong></p>
<ul>
<li>un disque dur</li>
<li>un boîtier externe pour disque dur</li>
<li>un tournevis adapté</li>
</ul>
<p>
Voici les photos du boîtier et du disque, ici on à un disque sérial ATA et son boîtier bien vérifier les compatibilités lors de l&#8217;achat, ne pas mélanger Serial-ATA et IDE:</p>
<p class="center">
<a href="http://www.prometee-creation.com/uploads/2007/03/p1100560.JPG" title="p1100560.JPG"><img src="http://www.prometee-creation.com/uploads/2007/03/p1100560.miniature.jpg" alt="p1100560.JPG" /></a></p>
<p><a href="http://www.prometee-creation.com/uploads/2007/03/p1100562.JPG" title="p1100562.miniature.JPG"><img src="http://www.prometee-creation.com/uploads/2007/03/p1100562.miniature.jpg" alt="p1100562.miniature.JPG" /></a></p>
<p><a href="http://www.prometee-creation.com/wp-engine/../uploads/2007/03/p1100561.JPG" title="p1100561.miniature.JPG"><img src="http://www.prometee-creation.com/uploads/2007/03/p1100561.miniature.jpg" alt="p1100561.miniature.JPG" /></a>
</p>
<p>Et la les photos du bundle du boitier externe :</p>
<p class="center"><a href="http://www.prometee-creation.com/uploads/2007/04/p1100563.JPG" title="p1100563.JPG"><img src="http://www.prometee-creation.com/uploads/2007/04/p1100563.miniature.jpg" alt="p1100563.JPG"  /></a></p>
<p><a href="http://www.prometee-creation.com/uploads/2007/04/p1100564.JPG" title="p1100564.JPG"><img src="http://www.prometee-creation.com/uploads/2007/04/p1100564.miniature.jpg" alt="p1100564.miniature.JPG" /></a></p>
<p><a href="http://www.prometee-creation.com/uploads/2007/04/p1100565.JPG" title="p1100565.JPG"><img src="http://www.prometee-creation.com/uploads/2007/04/p1100565.miniature.jpg" alt="p1100565.miniature.JPG" /></a>
</p>
<p>Ensuite il faut demonter le boitier externe:</p>
<p class="center">
<a href="http://www.prometee-creation.com/uploads/2007/04/p1100567.JPG" title="p1100567.JPG"><img src="http://www.prometee-creation.com/uploads/2007/04/p1100567.miniature.jpg" alt="p1100567.miniature.JPG" /></a>
</p>
<p>
Après il faut le connecter au disque dur et le ranger dans le boitier en le vissant a celui ci si possible:</p>
<p class="center">
<a href="http://www.prometee-creation.com/uploads/2007/04/p1100566.JPG" title="p1100566.JPG"><img src="http://www.prometee-creation.com/uploads/2007/04/p1100566.miniature.jpg" alt="p1100566.miniature.JPG" /></a><br />
<a href="http://www.prometee-creation.com/uploads/2007/04/p1100568.JPG" title="p1100568.JPG"><img src="http://www.prometee-creation.com/uploads/2007/04/p1100568.miniature.jpg" alt="p1100568.miniature.JPG" /></a>
</p>
<p>Ensuite il faut mettre le pad thermique fournit avec le boitier externe:</p>
<p class="center">
<a href="http://www.prometee-creation.com/uploads/2007/04/p1100569.JPG" title="p1100569.JPG"><img src="http://www.prometee-creation.com/uploads/2007/04/p1100569.miniature.jpg" alt="p1100569.miniature.JPG" /></a>
</p>
<p>Puis refermer le boitier il n&#8217;y a plus qu&#8217;à le connecter au pc pour entamer la configuration logicielle!!</p>
<p class="center">
<a href="http://www.prometee-creation.com/wp-engine/../uploads/2007/04/p1100570.JPG" title="p1100570.JPG"><img src="http://www.prometee-creation.com/uploads/2007/04/p1100570.miniature.jpg" alt="p1100570.miniature.JPG" /></a></p>
<p><a href="http://www.prometee-creation.com/wp-engine/../uploads/2007/04/p1100571.JPG" title="p1100571.JPG"><img src="http://www.prometee-creation.com/uploads/2007/04/p1100571.miniature.jpg" alt="p1100571.miniature.JPG" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.prometee-creation.com/tutoriels/montage-disque-dur-externe.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
