<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//FR">
<HTML>
  <HEAD>
    <TITLE></TITLE>
  </HEAD>

  <BODY>
    <H1>Psionic Portsentry 1.1, le d�fenseur des ports</H1>

    <H4>ArticleCategory: [Choose a category for your article]</H4>
    System Administration 

    <H4>AuthorImage:[Here we need a little image form you]</H4>
    <IMG src="../../common/images/Georges-Tarbouriech.jpg" alt=
    "[Photo of the Author]" height="124" width="115"> 

    <H4>TranslationInfo:[Author and translation history]</H4>

    <P>original in en <A href="mailto:georges.t@linuxfocus.org">Georges
    Tarbouriech</A>&nbsp;</P>
    <P>en to fr<A href="mailto:georges.t@linuxfocus.org">Georges
    Tarbouriech</A>&nbsp;</P>
    
    <H4>AboutTheAuthor:[A small biography about the author]</H4>

    <P>Georges est un vieil utilisateur d'Unix. Il pense que la s�curit�
    informatique est l'un des grands d�fis de ce si�cle.
    <BR>
    </P>

    <H4>Abstract:[Here you write a little summary]</H4>

    <P>
    Psionic portsentry fait partie de la suite d'outils du projet Abacus (en
    plus de portsentry, la suite propose logcheck et hostsentry).
    C'est un IDS (Syst�me de D�tection d'Intrusion) destin� � la d�tection des
    scans de ports et � la d�fense active. Il fonctionne sous de nombreuses
    saveurs d'Unix y compris Mac OS X. La caract�ristique premi�re d'un IDS est
    d'informer l'administrateur r�seau sur les tentatives d'intrusion.
    Portsentry va plus loin puisqu'il est capable de r�agir � une attaque. La
    derni�re version (1.1) de cet outil g�nial est disponible sur
    <A href=
    "http://www.psionic.com">http://www.psionic.com</A>, et au fait, la version
    1.0 fait maintenant partie de quelques distributions Linux principales (Debian, RedHat...).</P>

    <H4>ArticleIllustration:[This is the title picture for your
    article]</H4>
    <IMG src="../../common/images/illustration214.jpg"
    hspace="10" width="127" height="95" alt="[illustration]"> 

    <H4>ArticleBody:[The article body]</H4>

    <H2>Pourquoi utiliser portsentry ?</H2>

    <P>
    Pendant la derni�re d�cennie, les r�seaux ont b�n�fici� d'une croissance �
    grande vitesse. Le but �tait de permettre la communication entre des
    machines fonctionnant sous diff�rents OS. Ainsi, les syst�mes de r�seau
    propri�taires se sont vus petit � petit remplac�s par TCP/IP. Internet a
    fait le reste ! Aujourd'hui, la plupart des r�seaux sont bas�s sur TCP/IP et
    TCP/IP est bas� sur les ports. En bref, les ports sont li�s � des programmes
    (clients ou serveurs). Le serveur est � l'�coute jusqu'� ce qu'un client le
    contacte afin d'�tablir une connexion. Les services (les programmes
    mentionn�s ci-dessus) sont assign�s � un port sp�cifique. Sur les syst�mes
    Unix, le sch�ma d'assignation se trouve dans le fichier /etc/services.
    Autrement dit, tout le monde sait quel port est d�di� � quel service. Si
    chacun le sait, les "crackers" le savent encore mieux ! Si nous consid�rons
    un port comme une porte, lorsqu'un port est ouvert (� l'�coute), c'est comme
    une porte non verrouill�e. Et comment entrez-vous dans une maison ?
    Normalement par la porte (� moins que vous ne pr�f�riez la fen�tre, chacun
    son truc !). Eh bien, les "chapeaux noirs" font de m�me pour p�n�trer dans
    votre ordinateur...
    <br>
    La premi�re chose � faire pour limiter les risques est de fermer le plus
    grand nombre de ports possible, c'est-�-dire d'arr�ter les services. Moins
    il y en a mieux c'est. Mais vous pouvez difficilement fermer tous les ports
    sur une machine en r�seau : elle ne pourrait plus communiquer, ce qui serait
    dommage !
    <br>
    Comment limiter le nombre de services actifs ou comment fermer les ports
    n'entre pas dans le cadre de cet article. Vous trouverez une grande quantit�
    de litt�rature sur le sujet en visitant par exemple le
    <A href=
    "http://www.linuxdoc.org">Linux Documentation Project</A> ou en cherchant
    dans les num�ros de LinuxFocus (par exemple,
    <a href="../September2000/article166.shtml">Bastille Linux</a> ou bien <a
    href="../January2001/article180.shtml">Outils de s�curit�</a>). M�me chose
    pour ce qui concerne les diff�rentes mani�res de prot�ger une machine ou un
    r�seau. Sous Linux, consid�rez 
   <A href=
    "http://www.bastille-linux.org">Bastille Linux</A> comme une n�cessit�.
    <br>
    Et c'est l� qu'arrive portsentry. Portsentry peut surveiller les ports et il
    est capable de les bloquer si vous le lui demandez. Il vous propose
    diff�rents modes d'op�ration, certains �tant sp�cifiques � quelques OS. En
    fait, quelques OS, signifie Linux.
    <br>
    Portsentry peut b�n�ficier du filtrage de paquet fourni par ipfwadm,
    ipchains ou iptables selon le noyau Linux que vous utilisez. C'est vrai pour
    d'autres saveurs d'Unix en utilisant diff�rents outils (nous y reviendrons).
    Nous y voici : la caract�ristique essentielle de portsentry est
    "l'auto-blocage".
    <br>
    Comment fait-il ? Allons-y !
    </P>
    
    <H2>Comment installer portsentry ?</H2>
    <p>
    Portsentry se pr�sente sous la forme d'une tr�s petite archive. Apr�s
    extraction, vous obtenez le code source et plusieurs fichiers de
    configuration et README. Evidemment, il est recommand� de lire tout cela.
    Puisque nous parlons de s�curit�, n'oubliez pas de t�l�charger les fichiers
    PGP (signature et cl�). 
    <br>
    Installer portsentry est �vident : make (votre syst�me) et make install.
    Mais avant de l'installer vous devez le pr�parer. En clair, vous devriez
    lire la documentation, modifier le fichier portsentry.conf pour le faire
    correspondre � vos besoins, et v�rifier le Makefile ainsi que le fichier 
    portsentry_config.h.
    <br>
    Pour que portsentry soit le plus efficace possible, il vous faut au moins
    les TCPWrappers. Au moins, parce qu'il serait pr�f�rable de l'utiliser en
    parall�le � un outil de filtrage de paquet. Bien s�r, si vous utilisez
    Linux, vous avez d�j� tout sous la main. Qu'en est-il des autres Unices ?
    <br>
    Comme nous avons test� portsentry sur diff�rentes plate-formes, parlons de
    ce qu'ils r�clament.
    <br>
    Sous MAC OS X, c'est comme pour Linux : tout y est. Vous avez les
    TCPWrappers et ipfw (la version BSD). Il suffit donc de taper "make osx" et
    c'est tout fini.
    <br>
    Sous Solaris 2.6 (SPARC), vous n'avez pas TCPWrappers. Vous pouvez l'obtenir
    depuis <a href=
"ftp://ftp.porcupine.org/pub/security">ftp://ftp.porcupine.org/pub/security</a>.
Vous pouvez �galement essayer IPFilter disponible sur <a href=
"ftp://coombs.anu.edu.au/pub/net/ip-filter/ip-fil3.4.9.tar.gz">ftp://coombs.anu.edu.au/pub/net/ip-filter/ip-fil3.4.9.tar.gz</a>
(mais seulement si vous poss�dez le compilateur Solaris !!!). 
<br>
Sous Irix 6.5, vous n'avez pas non plus TCPWrappers. Vous pouvez l'obtenir sous
forme de paquetage �
<a href=
"http://freeware.sgi.com/index-by-alpha.html">http://freeware.sgi.com/index-by-alpha.html</a>
Pour le filtrage de paquet vous avez ipfilterd, qui fait partie de la
distribution Irix mais qui n'est pas install� par d�faut.
<br>
Enfin, � moins de trouver un vsnprintf() fonctionnel, vous ne pourrez pas
installer portsentry sur NeXTSTEP... et je n'en ai trouv� aucun !
<br>
Donc, encore une fois, vous devriez configurer portsentry avant de l'installer.
Bon, c'est comme vous le sentez, mais ce serait peut-�tre mieux de comprendre sa
philosophie avant toute autre chose... mais ce n'est qu'une question d'opinion ! 
</p> 
<H2>Comment fonctionne portsentry ?</H2>
<p>
Tr�s bien, merci !
<br>
Plus s�rieusement, portsentry d�pend de fichiers de configuration. Le plus
important est le fichier portsentry.conf. C'est l� que vous allez dire �
portsentry comment r�agir face � l'adversit�.
<br>
Avant de vous pencher sur ce fichier, vous devez conna�tre les diff�rents modes
d'op�ration et ce qu'ils provoquent.
<br>
Portsentry peut utiliser six modes diff�rents, selon l'option choisie au
d�marrage. 
<br>
- La premi�re option "-tcp" est le mode de base. Avec cette option,
portsentry lie les ports TCP trouv�s dans le fichier de config dans la partie "port
configuration". Il peut lier jusqu'� 64 ports.
<br>
- La seconde "-udp" fait la m�me chose que la pr�c�dente pour les ports UDP.
<br>
- La troisi�me est "-stcp", le "s" signifiant stealth (furtif). Cette option et
les suivantes ne sont disponibles que sous Linux. Avec l'option "-stcp",
portsentry utilise un "socket" pour surveiller les paquets en entr�e, autrement
dit, les ports ne sont li�s � rien.
<br>
-La quatri�me "-sudp" fait la m�me chose que la pr�c�dente pour les ports UDP.
<br>
- Les cinqui�me et sixi�me sont "-atcp" et "-audp". Ce sont les options les plus
efficaces (le "a" signifie avanc�). Avec ces options, portsentry �tablit une
liste des ports � l'�coute, TCP et UDP si vous s�lectionnez les deux, et bloque
l'h�te qui se connecte � ces ports, � moins qu'il ne figure dans le
fichier portsentry.ignore.
<br>
Tout ceci est bien mieux expliqu� dans les fichiers README distribu�s avec
portsentry. En cons�quence, nous n'allons pas r�inventer la roue en essayant de
r��crire la documentation. La lecture de ces fichiers README est obligatoire
(comme d'habitude, soyons un peu fascistes !).
</p>
<strong>Comment r�agit portsentry ?</strong>
<p>
Evidemment, portsentry peut g�n�rer des logs. Si vous faites partie de ces
administrateurs qui ne lisent pas les logs (quelle honte !), vous pouvez utiliser
logcheck en compl�ment de portsentry. De cette mani�re, portsentry envoie un
courrier pour vous informer d'une tentative d'intrusion.
<br>
Il peut ajouter l'h�te cible dans le fichier /etc/hosts.deny, pour b�n�ficier
des TCPWrappers.
<br>
L'h�te local est capable de router le trafic du r�seau vers un h�te mort.
<br>
Enfin, l'h�te local peut "jeter" les paquets via l'outil de filtrage de paquet.
<br>
Maintenant que vous en savez un peu plus sur la philosophie de portsentry, vous
pouvez commencer � �crire votre fichier portsentry.conf.
<br>
- La premi�re partie du fichier concerne les ports. Ici, vous pouvez d�finir les
ports � lier. Rappelez-vous, ceci est ignor� si vous utilisez les modes avanc�s
sous Linux. Soyez prudents avec les ports que vous souhaitez lier (par exemple,
ne liez pas le port 6000 si vous utilisez X).
<br>
- La partie suivante concerne les options de d�tection avanc�es. Par d�faut,
tous les ports au-dessous de 1024 sont surveill�s, qu'il s'agisse de TCP ou
d'UDP. Ici, vous pouvez exclure les ports que vous voulez ignorer. C'est tr�s
important pour �viter les fausses alarmes et les "logging" �normes,
particuli�rement si vous avez des machines Windos dans votre r�seau. Par
exemple, attention au port 111 si portmap est utilis� et que les h�tes ne
figurent pas dans le fichier portsentry.ignore. Bien s�r, ce serait un peu fou,
puisque portmap signifie serveurs RPC tels que NFS, mais vous voici avertis. En
clair, NFS n'est pas particuli�rement s�r sous Unix alors ne parlons pas des
machines Windos.
<br>
Voici l'habituelle partie hors-sujet : lorsque j'�cris "Windos", ce n'est pas
une faute de frappe; c'est juste pour insister sur le fait que Windows est un
environnement au-dessus du DOS (D pour d�solant ?)... et �a fait un caract�re de
moins � taper (quel fain�ant !). Pardon pour la digression.
<br>
- La partie "configuration files" concerne les fichiers utilis�s par portsentry
dans un but d'historique ou pour d�finir les h�tes � ignorer. Si vous effectuez
une installation par d�faut, ne changez rien ici.
<br>
- La partie "miscellaneous config" permet d'activer ou de d�sactiver les
"lookups" de DNS.
<br>
- La partie "response options" est le coeur de la configuration. C'est l� que
vous d�finissez la mani�re dont portsentry va r�agir.
<br>
D'abord, vous trouvez les "ignore options". Vous pouvez choisir de bloquer les
scans, de ne pas les bloquer ou de lancer une commande externe.
<br>
Ensuite, dans la partie "dropping routes", vous indiquez � portsentry comment
rediriger la route ou comment b�n�ficier de l'outil de filtrage de paquet
pr�sent sur votre machine. Vous disposez de nombreux exemples pour de nombreuses
plate-formes. Choisissez celui (seulement un) qui correspond � vos besoins.
<br>
- La partie TCPWrappers indique si vous voulez �crire dans le fichier
/etc/hosts.deny.
<br>
- La partie "external commands" permet de d�finir une commande � lancer
lorsqu'un h�te se connecte.
<br>
- La partie "scan trigger value" permet de choisir le temps de r�action. La
valeur par d�faut, "0" est la plus imm�diate puisqu'elle envoie une alarme � la
premi�re tentative de connexion.
<br>
- La derni�re partie permet d'afficher un message en cas de tentative
d'intrusion. Ca ne fonctionne pas avec les modes "stealth".
<br>
Lorsque vous en avez termin� avec �a, c'est presque bon. Encore une fois, pour
�viter les fausses alarmes et les "logging" gigantesques, v�rifiez le fichier
portsentry.ignore. Vous pouvez y ajouter l'adresse de votre r�seau local avec
les bits du netmask, ou l'adresse IP de quelques machines.
<br>
Ca y est ! Vous pouvez maintenant taper "make votresyst�me" et "make install".
Le script d'installation fait tout le travail puisqu'il restreint les droits sur
le r�pertoire et les fichiers. Maintenant vous n'avez plus qu'� lancer
portsentry avec les options de votre choix. V�rifiez les logs pour voir ce qui
s'est pass�. Si tout s'est bien d�roul�, portsentry a d�marr� et am�lior� la
s�curit� de l'h�te.
</p> 
<H2>Que se passe-t-il alors ?</H2>
<p>
En utilisant des outils tels que nmap, vous pouvez simuler un scan de ports sur
votre h�te nouvellement s�curis�.
(Plus sur nmap <a
href="../July2001/article170.shtml">ici</a>). Voila la r�ponse que vous pouvez
obtenir :
<p><img src="../../common/images/article180/nmapg.jpg" alt="portsentry en
fonction sur l'h�te scann�"></p>
C'est-�-dire que votre machine ne fournit pas beaucoup d'information au pirate
que vous �tes devenu !
<br>
Habituellement, cette tentative aurait d� vous procurer la version de l'OS et
les ports ouverts de l'h�te scann�. Ce type d'information est particuli�rement
utile � un pirate puisqu'il sait alors mieux o� et comment attaquer. Avec
portsentry en fonction avec une valeur de 0 pour temps de r�action instantan� en
mode avanc�, le blocage est imm�diat. S'il avait �t� lanc� avec une valeur de 1
en mode normal, l'attaquant aurait obtenu la liste des ports ouverts et
probablement le type de l'OS en service sur la machine. Mais alors, essayer de
se connecter sur un port connu pour �tre ouvert aurait �chou�. Portsentry a bloqu� le
port apr�s la premi�re tentative. Simple mais efficace !
<br>
Donc, si vous utilisez seulement TCPWrappers, l'adresse IP de l'attaquant a �t�
�crite dans le fichier /etc/hosts.deny. Si vous avez choisi de "jeter" la route
en la redirigeant vers un h�te mort, portsentry est encore efficace mais ne
prot�ge pas totalement des attaques UDP.
<br>
Si vous utilisez un outil de filtrage de paquet, l'h�te attaqu� redirige les
paquets venant de l'attaquant vers cet outil.
<br>
Bien s�r, il s'agit du meilleur moyen de b�n�ficier de toute la puissance de
portsentry.
<br>
Encore une fois, le mode avanc� sous Linux est l'id�al. Cela ne signifie pas que
portsentry ne soit pas aussi bon sous d'autres OS, il est juste un peu moins
efficace... enfin, pas vraiment !
<br>
Pour mieux comprendre, v�rifiez les logs apr�s diff�rentes tentatives
d'intrusion sur diff�rents OS utilisant portsentry sous diff�rents modes. Ca
r�sume tout !
<br>
Selon les modes utilis�s, les logs vont fournir quelques fausses alarmes. Pour
am�liorer la qualit� de l'information, vous devrez travailler sur le fichier de
config. apr�s une phase de test, vous devriez obtenir exactement ce que vous
souhaitez.
</p>
<H2>Peut-on vivre sans portsentry ?</H2>
<p>
Absolument PAS ! Il existe des tas d'IDS, libres ou non. La plupart sont tr�s
bons. Mentionnons par exemple le bien connu snort disponible depuis
<a href=
"http://www.snort.org">http://www.snort.org</a>.
<br>
Habituellement ces IDS sont passifs. C'est-�-dire qu'ils sont utilis�s pour
informer sur les intrusions. Ils ont �t� con�us pour �a. Par exemple, snort est
tr�s sophistiqu� puisqu'il repose sur des scripts de r�gles, vous permettant
ainsi d'�crire les votres. Le site de snort propose d'ailleurs une base de
donn�es de r�gles. Et au fait, si vous n'avez pas peur des logs � rallonge, vous
pouvez utiliser portsentry et snort ensemble. Ce n'est pas si stupide !
<br>
Toutefois, la force de portsentry est d'�tre un IDS actif. La fa�on dont il est
capable de r�agir est � couper le souffle. Le combiner � un outil de filtrage de
paquet en fait l'outil indispensable. Nous pourrions poser la question :
portsentry est-il le compl�ment du filtrage de paquet ou le filtrage de paquet
est-il un compl�ment de portsentry ?
<br>
De toutes fa�ons, nous pourrions ajouter des tas d'autres choses sur portsentry.
Par exemple, vous devez �tre tr�s prudents avec la d�tection de scan UDP en mode
avanc�. Lisez la doc (encore !) pour bien comprendre les probl�mes relatifs �
UDP. Solaris peut �galement poser quelques probl�mes puisqu'il utilise des ports
tr�s �lev�s autour de 32700 (soit pout TCP, soit pour UDP). Mais cet article
n'est qu'un survol et en aucun cas une �tude compl�te de ce superbe logiciel.
<br>
La s�curit� informatique est une responsabilit�, et pas seulement pour les
administrateurs syst�me. L'incroyable croissance d'Internet rend les choses
encore plus d�licates. En clair, le danger d'intrusion est tous les jours plus
grand. La communaut� du logiciel libre nous propose d'extraordinaires logiciels
: portsentry est l'un d'eux. Ne les laissez pas de c�t� ! Mais rappelez-vous,
ces outils ne font que r�duire le risque et ne fournissent en aucun cas un
syst�me s�r � 100%. C'est une autre bonne raison de se pencher sur le domaine
des outils de s�curit�.
<br>
Enfin, les gens de Psionic travaillent actuellement sur un produit commercial et
nous disent "vous ne serez pas d��us". Attendons et voyons, alors !
<br>
Dans l'intervalle, r�cup�rez portsentry 1.1, vous ne serez pas d��us non plus.
Ils font un tr�s beau travail � Psionic. Au fait, hostsentry vaut �galement la
peine d'�tre essay�... et utilis�.
<br>
Quand je vous dis que nous vivons une �poque formidable !
</p>
<h2>R�f�rences</h2>
<p>
Les sites qui suivent sont des r�f�rences absolues lorsqu'il s'agit de s�curit�.
De plus, ils vous enverront vers d'autres sites, ces derniers vous envoyant vers
d'autres sites... Vous savez, les poup�es Russes ? Le seul probl�me, si vous
voulez tout lire, c'est que vous ne vivrez pas assez longtemps !!!
<br>
<a href=
"http://www.linuxsecurity.com">http://www.linuxsecurity.com</a> 
<br>
<a href="http://www.sans.org">http://www.sans.org</a> 
<br>
<a href="http://www.infosyssec.org">http://www.infosyssec.org</a>
<br>
<a href=
"http://www.securityfocus.com">http://www.securityfocus.com</a> 
<br>
<a href=
"http://www.cs.purdue.edu/coast/hotlist/">http://www.cs.purdue.edu/coast/hotlist/</a>
</p>
<!-- vim: set sw=2 ts=2 et: -->
  </BODY>
</HTML>