Securite Linux

Sécuriser son poste Linux

Olivier Hoarau (olivier.hoarau@funix.org) V1.0 du 22.02.02
1 2 3 Historique du document ..................................................................................................... 3 Préambule........................................................................................................................... 3 Sécuriser son poste linux.................................................................................................... 3 3.1 Présentation ................................................................................................................ 3 3.2 Attaques possibles ...................................................................................................... 3 3.2.1 Présentation ........................................................................................................ 3 3.2.2 Compte utilisateur .............................................................................................. 3 3.2.3 Les outils "r" (rsh, rlogin, ...).............................................................................. 4 3.2.4 FTP ..................................................................................................................... 4 3.2.5 Outils de stats ..................................................................................................... 4 3.2.6 NFS..................................................................................................................... 5 3.2.7 Serveur web........................................................................................................ 5 3.2.8 Serveurs Mail ..................................................................................................... 5 3.2.9 Autres ................................................................................................................. 5 3.3 Améliorer la sécurité .................................................................................................. 5 3.3.1 Installation de la distribution.............................................................................. 5 3.3.2 Eliminer les services inutiles.............................................................................. 6 3.3.3 Eliminer les scripts de lancement inutiles .......................................................... 8 3.3.4 Sécuriser /etc/passwd ....................................................................................... 10 3.3.5 Sécuriser FTP ................................................................................................... 10 3.3.6 Sécuriser Telnet................................................................................................ 11 3.3.7 Les TCP Wrappers ........................................................................................... 12 3.3.8 Root et utilisateurs privilégiés.......................................................................... 13 3.3.9 Sécuriser les fichiers et systèmes de fichiers.................................................... 13 4 Auditer la sécurité de son réseau...................................................................................... 14 4.1 Présentation .............................................................................................................. 14 4.2 AVERTISSEMENT ................................................................................................. 14 4.3 Sara........................................................................................................................... 14 4.3.1 Présentation ...................................................................................................... 14 4.3.2 Installation ........................................................................................................ 15 4.3.3 Utilisation ......................................................................................................... 15 4.4 Nmap ........................................................................................................................ 23 4.4.1 Présentation ...................................................................................................... 23 4.4.2 Installation avec le tarball ................................................................................ 23 4.4.3 Syntaxe ............................................................................................................. 24 4.4.4 Quelques exemples........................................................................................... 25 4.4.5 Le front end de nmap ....................................................................................... 26 4.5 Nessus....................................................................................................................... 27 4.5.1 Présentation ...................................................................................................... 27

Sécuriser son poste Linux

1

http://www.funix.org

4.5.2 Installation ........................................................................................................ 27 4.5.3 Utilisation ......................................................................................................... 31 5 Détecter les attaques en temps réel .................................................................................. 34 5.1 Présentation .............................................................................................................. 34 5.2 Tcplogd..................................................................................................................... 34 5.2.1 Présentation ...................................................................................................... 34 5.2.2 Installation ........................................................................................................ 35 5.2.3 Tests de fonctionnement................................................................................... 37 5.2.4 Utilisation ......................................................................................................... 38 5.3 Portsentry ................................................................................................................. 38 5.3.1 Présentation ...................................................................................................... 38 5.3.2 Installation ........................................................................................................ 39 5.4 Configuration ........................................................................................................... 40 5.4.1 Les modes de fonctionnement.......................................................................... 41 5.4.2 Tests de fonctionnement................................................................................... 42 5.4.3 Lancement automatique de portsentry ............................................................. 44

Sécuriser son poste Linux

2

http://www.funix.org

1 Historique du document
V1.0 22.02.02 Création du document

2 Préambule
Ce document présente les moyens de sécuriser son poste Linux. La dernière version de ce document est téléchargeable à l'URL http://www.funix.org. Ce document peut être reproduit et distribué librement dès lors qu'il n'est pas modifié et qu'il soit toujours fait mention de son origine et de son auteur, si vous avez l'intention de le modifier ou d'y apporter des rajouts, contactez l'auteur pour en faire profiter tout le monde. Ce document ne peut pas être utilisé dans un but commercial sans le consentement de son auteur. Ce document vous est fourni "dans l'état" sans aucune garantie de toute sorte, l'auteur ne saurait être tenu responsable des quelconques misères qui pourraient vous arriver lors des manipulations décrites dans ce document.

3 Sécuriser son poste linux
3.1 Présentation
Le but de cette page est de présenter le moyen de sécuriser son poste linux, il n'a pour vocation de présenter une configuration sécurisée à 100% mais suffisamment protégée pour affronter le "chaos" d'internet.

3.2 Attaques possibles
3.2.1 Présentation
Avant de sécuriser votre poste, voici une liste non exhaustive des méthodes les plus classiques pour pénétrer un système, les détails pour exécuter ses attaques ne sont pas exposés, pour cela vous trouverez un tas de sites sur le net qui explique ça très bien.

3.2.2 Compte utilisateur
La première étape pour essayer de pénétrer sur un système est tout simplement de se loguer comme un simple utilisateur, pour cela il faut connaître un login, anciennement beaucoup de systèmes UNIX disposait de comptes génériques par défaut, du style "guest" pour invité, un hacker essayera toujours ses comptes par défaut. Pour éviter cela, vérifiez votre fichier /etc/passwd et supprimer tous vos comptes génériques utilisateurs (pas les comptes systèmes !!). Veillez à ce qu'aucun utilisateur n'ait pas de password et encore moins un password identique au login (très courant !!).

Sécuriser son poste Linux

3

http://www.funix.org

3.2.3 Les outils "r" (rsh, rlogin, ...)
Attention à ses outils, ils utilisent un système d'authentification relativement rudimentaire et sont connues pour constituer une faille de sécurité. Qui plus est avec ces outils on peut mettre en place des relations de "confiance" entre les machines, c'est à dire qu'on pourra accèder à une machine en utilisant les r-outils sans avoir à entrer de mot de passe, par conséquent si un système est hacké, cela signifie que tous les autres tomberont aussi. Sachez aussi que les routils ne disposent pour la plupart d'aucun mécanisme de loging, donc aucun moyen d'avoir l'historique de leur utilisateur. Les fichiers permettants d'établir les relations de confiance sont .rhosts ou /etc/hosts.equiv. Les outils r principaux sont: - rsh ouvre un shell à distance (pour lancer une commande par exemple), si vous voulez un outil équivalent sécurisé, tournez vous vers SSH. - rlogin, équivalent à telnet, si un utilisateur place un fichier .rhosts dans sa homedirectory contenant obelix, n'importe qui sur la machine obelix pourra se connecter sur son compte sans avoir à donner de mot de passe. Si vous possèdez un /etc/hosts.equiv contenant un +, n'importe qui aura accès à votre machine. - rexecd, c'est le serveur pour accepter des requêtes de rexec, permet de lancer des commandes à distance. Le serveur ne logue aucun échec de connexion, par conséquent vous pouvez essayer une tonne de mot de passe sans que l'administrateur de la machine visée sans rende compte.

3.2.4 FTP
Ne faites pas tourner un serveur FTP anonyme à moins que vous sachiez ce que vous faîtes, sachez que les daemons FTP sont connus pour présenter pas mal de problèmes de sécurité, un serveur FTP mal configuré peut très bien servir de passerelle à un hacker pour attaquer votre machine bien sûr mais aussi d'autres machines. TFTP (Trivial File Transfer Protocol) est un service FTP simplifié, il est utilisé notamment pour le boot des terminaux X. Il ne demande aucune authentification, n'importe qui peut se connecter et lire ce qu'il veut. Je vous conseille donc de désactiver tout ce qui tourne autour de FTP.

3.2.5 Outils de stats
Des outils comme finger, systat, netstat, rusersd, rwhod, ... servent à avoir des informations sur le système (sur les utilisateurs, stats de réseau, process qui tournent, ...). Pour la plupart ce sont des daemons qu'on peut interroger de l'extérieur, il devient alors très facile pour un hacker d'obtenir un max d'info sur votre système, qui lui permettront de mieux cibler ses attaques. Par exemple avec systat et netstat qui tournent sur votre système, un hacker peut visualiser vos process actifs ainsi que la configuration réseau. Des outils comme rusersd et rstatd permettent à un hacker de visualiser les gens qui sont logués à un moment donné. Finger permet de connaître les logins existants sur la machine.

Sécuriser son poste Linux

4

http://www.funix.org

3. Préférez les serveurs POP sécurisés (APOP. et j'en oublie.2. Enfin POP/IMAP manipule les mots de passe en clair. Samba.3. on peut très bien sur le réseau intercepter une requête POP (par sniffing) et récupérer le login et le mot de passe.. donc n'importe qui peut essayer une tonne de password sans que vous vous rendiez compte. Pour les serveurs POP/IMAP. . c'est à dire exporter /usr/local/public plutôt que / tout entier.6 NFS Les versions précédentes de NFS comportaient des trous de sécurité. Certaines serveurs POP ne loguent pas les erreurs de logins. Server (Serveur). . ou désactivez les. qui peuvent contenir les informations sensibles comme les login des utilisateurs. N'exportez pas plus que nécessaire.1 Installation de la distribution La sécurisation du poste commence à l'install. même si les nouvelles versions tendent à corriger petit à petit les défauts. il y a bien d'autres failles dans un serveur HTTP.org . veillez à toujours faire tourner la dernière version et n'hésitez pas à appliquer les patchs. Vous pouvez faire en sorte que le root de la machine distante qui monte votre répertoire puisse avoir les mêmes droits que celui de la machine locale. Désactivez tout serveur SMTP si vous ne vous en servez pas. vous devez veiller à possèder la dernière version.2.7 Serveur web Faites très attention à vos scripts cgi-bin. citons DNS.funix. le mieux est de choisir Custom (personnalisé) pour avoir un oeil sur les outils qui seront installés sur votre système. supprimez donc tout ce qui se trouve sous le répertoire des cgi-bin et mettez y quee vos scripts CGI dont vous soyez absolument sûrs. il y a eu par le passé pas mal d'attaques du à des failles dans sendmail.8 Serveurs Mail Attention aux serveurs SMTP. des serveurs bogués. vous devez toujours restreindre l'accès à un nombre limité de machines et préféré toujours la lecture seule que la lecture/écriture.. Si vous mettez un serveur web en place. que ce soit au niveau d'une mauvaise configuration. je vous déconseille de choisir les configs standards proposés dans les distribs comme RedHat ou Mandrake avec WorkStation (Station de travail). 3. même les logs peuvent être un problème. 3. s'ils sont visibles d'internet. Vous ne devez en aucun cas exporter vos systèmes de fichiers vers le monde entier. sachez qu'il y a eu sur ces serveurs un bogue (buffer overun) qui faisait qu'on pouvait lancer des commandes en tant que root à distance. services RPC. 3. Faites une mise à jour. un défaut dans l'un d'entre eux et c'est la porte ouverte à votre système. Enfin NFS doit être utilisé strictement en interne sur un réseau local et en aucun cas entre des machines sur internet.. L'idée est d'installer le Sécuriser son poste Linux 5 http://www.2.3 Améliorer la sécurité 3.2. En plus des scripts CGI. smail et d'autres. portmapper. 3. c'est à éviter (ce n'est pas le cas par défaut). Ne faites pas confiance aux script CGI que vous récupérez sur internet.. notamment ceux contenant les erreurs (page 404).).9 Autres Parmis les outils réputés potentiellement peu sûrs.

En résumé moins vous avez d'outils. Par défaut il comprend un certain nombre de services activés dont vous n'avez pas forcément besoin. des données. edit this file. mais ça peut se réléver extrèmement utile dans certains cas..2 Eliminer les services inutiles Maintenant que le système est installé et que vous avez patché les packages defectueux. www. Mandrake. inetd est un "super daemon" c'est à dire qu'il permet à lui tout seul de lancer tout un tas d'autres daemons (ou services). voire fastidieux.linux-mandrake. dans la rubrique support vous devriez trouver les derniers packages corrigeant les trous de sécurité. à l'inverse certains services désactivés peuvent vous être utiles. then send the # INETD process a SIGHUP signal. Certaines distributions comme RedHat.conf. On décomment un service en lui mettant un # devant. il est configurable à partir du fichier /etc/inetd. ça peut se révéler un brin écolier.conf This file describes the services that will be available # through the INETD TCP/IP super server.).3. Dans un premier temps on va désactiver tous les services inutiles qui tournent sur la machine.. et quelques annotations devrait faire l'affaire.org . par exemple: / 150Mo /usr 1Go au moins /var 400Mo /home 50Mo par utilisateurs au moins swap 2*taille de la RAM au moins /usr/local au moins 500Mo (pour stocker vos applis) Une fois l'installation terminée. Je vous conseille de tenir à jour un cahier d'administrateur où vous noterez chacune de vos manips systèmes. vous devez surveiller régulièrement leur parution. je vous conseille de créer plusieurs partitions pour bien séparer le système. Au moment d'arriver au partitionnement du système. passons maintenant à la sécurisation propre du système.com. suivant votre distrib allez sur le site correspondant (RedHat www. Sachez qu'il existee des mailing-listes à ce sujet qui vous préviendront automatiquement de la parution d'un nouveau patch. il faut vous dire que de toute manière vous aurez toujours la possibililité de l'installer plus tard. Voici un exemple de fichier inetd. moins vous avez de trous potentiels de sécurité. dispose d'outils (up2date pour la RedHat) qui permettent d'upgrader automatiquement le système. To re-configure # the running INETD process.minimum d'outils.conf : # # inetd. . Un simple fichier texte (droit 400 proprio root) avec un copier coller des commandes (et les résultats qui vont avec).com. la règle la première si vous ne voyez pas à quoi peut servir un outil est de ne pas le choisir. Si vous utilisez inetd On va d'abord travailler sur inetd. 3.redhat. Ces patchs sont indispensables pour sécuriser correctement un système. Sécuriser son poste Linux 6 http://www.funix.

comsat #talk dgram udp wait root /usr/sbin/tcpd in. <waltje@uwalt. si poste isolé à désactiver #pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d #imap stream tcp nowait root /usr/sbin/tcpd imapd # # The Internet UUCP service.org> # # Modified for Debian Linux by Ian A. Murdock <imurdock@shell. just do a 'killall -HUP inetd' #echo stream tcp nowait root internal #echo dgram udp wait root internal #discard stream tcp nowait root internal #discard dgram udp wait root internal #daytime stream tcp nowait root internal #daytime dgram udp wait root internal #chargen stream tcp nowait root internal #chargen dgram udp wait root internal #time stream tcp nowait root internal #time dgram udp wait root internal # # These are standard services. exec.nl.mugnet.conf 3. # r-outils et autres à désactiver # #shell stream tcp nowait root /usr/sbin/tcpd in. comsat and talk are BSD protocols.3/TAHOE.rlogind #exec stream tcp nowait root /usr/sbin/tcpd in.com> # # <service_name> <sock_type> <proto> <flags> <user> <server_path> <args> # # Echo.telnetd # # Shell. and chargen are used primarily for testing.# # Version: @(#)/etc/inetd.rshd #login stream tcp nowait root /usr/sbin/tcpd in.portal. # Attention à ces deux services ce sont deux gros trous potentiels de sécurité # j'ai désactivé le serveur ftp car j'en ai pas l'utilité # ftp stream tcp nowait root /usr/sbin/tcpd in.10 05/27/93 # # Authors: Original taken from BSD UNIX 4. Sécuriser son poste Linux 7 http://www. # # To re-read this file after changes. login.ntalkd #dtalk stream tcp waut nobody /usr/sbin/tcpd in.rexecd #comsat dgram udp wait root /usr/sbin/tcpd in. discard. van Kempen.dtalkd # # Pop and imap mail services et al # serveur pop3 pour réseau local activé.ftpd -l -a telnet stream tcp nowait root /usr/sbin/tcpd in.funix.com> # # Modified for RHS Linux by Marc Ewing <marc@redhat.org . # Fred N. daytime.talkd #ntalk dgram udp wait root /usr/sbin/tcpd in.

systat and netstat give out user information which may be # valuable to potential "system crackers.org .funix.cfingerd #systat stream tcp nowait guest /usr/sbin/tcpd /bin/ps -auwwx #netstat stream tcp nowait guest /usr/sbin/tcpd /bin/netstat -f inet # # Authentication # # auth stream tcp nowait nobody /usr/sbin/in.d/init.tftpd #bootps dgram udp wait root /usr/sbin/tcpd bootpd # # Finger. Most sites # run this only on machines acting as "boot servers.d/rcX.d/xinetd restart 3.d il suffira de rajouter le paramètre disable=yes.identd in. # outils de stats réseau à désactiver # #finger stream tcp nowait root /usr/sbin/tcpd in. pour les services inutiles se trouvant sous /etc/xinetd.d qui contiennent des liens vers les scripts de lancement de services. #tftp dgram udp wait root /usr/sbin/tcpd in.# #uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico -l # # Tftp service is provided primarily for booting. exemple avec daytime service daytime { type = INTERNAL id = daytime-stream socket_type= stream protocol = tcp user = root wait = no disable = yes } Relancez xinetd /etc/rc.3." Many sites choose to disable # some or all of these services to improve security. on va désactiver les services Sécuriser son poste Linux 8 http://www.3 Eliminer les scripts de lancement inutiles Maintenant on va aller jetter un coup d'oeil dans les répertoires /etc/rc.fingerd #cfinger stream tcp nowait root /usr/sbin/tcpd in." Do not uncomment # this unless you *need* it.identd -l -e -o # # linuxconf stream tcp wait root /bin/linuxconf linuxconf --http #swat stream tcp nowait.400 root /usr/sbin/swat swat Si vous utilisez xinetd Si vous utilisez xinetd.

à désactiver si vous ne l'utilisez pas S85sound pour activer le son S85gpm permet d'avoir la souris sur des applis textes comme Midnight Commander. pour partager la connexion internet. S50snmpd pour lancer le daemon SNMP. à virer si vous avez un poste de bureau S09pcmcia pour activer les services liés au PCMCIA.. à désactiver si vous ça ne sert à rien S55routed pour router selon le protocole RIP. je vois pas trop son utilité mais vous pouvez le laisser. sert pour les câblés entre autres. voici ce que vous pourriez trouver dans le répertoire /etc/rc.d S05apmd Utile uniquement pour les portables. à virer si vous ne l'utilisez pas S50inet pour lancer le réseau. à désactiver si Sécuriser son poste Linux 9 http://www. à désactiver si non nécessaire S72autofs pour lancer l'automontage (peut s'appeller aussi S72amd). il n'y aucun risque niveau sécurité S20rstatd service "r". idem tftp. à désactiver si inutile S85http pour lancer le serveur Web (Apache). à désactiver si non nécessaire S40atd utile pour le service at (similaire à cron).inutiles.. à désactiver S55named pour lancer le serveur DNS. à virer si vous ne l'utilisez pas S75keytable pour activer le clavier qui va bien (claver français azerty) S75gated pour lancer d'autres protocoles de routage comme OSPF.) S11portmap Utile si vous utilisez des services RPC comme NFS ou NIS S15netfs lance le service NFS client.funix. à désactiver si non utilisé (très vulnérable) S35dhcp daemon DHCP sert pour obtenir une adresse IP.d/rc5. à conserver S34yppasswd si vous êtes un serveur NIS pour pouvoir changer de mot de passe. à désactiver sinon S90squid pour lancer le proxy squid. à désactiver si vous vous en servez pas S60lpd système d'impression S60nfs pour lancer le serveur NFS. à désactiver si vous n'exportez pas vos systèmes de fichiers S60mars-nwe pour lancer un serveur Netware de Novell. à désactiver S20rusersd idem. sert pour les terminaux X ou autres clients "diskless". . Si vous démarrez à l'état de marche 5. à virer si pas de PCMCIA S10network active les interfaces réseau (eth0. à désactiver S30syslog permet de loguer l'activité des daemons lancés par inetd. permet de donner à des utilisateurs distants des informations détaillées sur votre système. à désactiver S80sendmail pour lancer sendmail. à désactiver si vous ne montez jamais de file systems d'un serveur NFS S16ypserv pour lancer le serveur NIS. à désactiver S20bootparamd. à désactiver S57diald permet de lancer le daemon diald pour lancer une connexion internet automatiquement (du serveur ou d'un client du réseau local). à désactiver si non utilisé S86ypbind si vous êtes un client NIS.org . à désactiver si non utilisé S20random ce n'est pas un daemon. sert à gérer l'autonomie d'une batterie. mais un truc qui permet de générer bazar aléatoire. vous pouvez désactiver si vous vous en servez pas S40crond pour lancer le daemon cron qui permet de programmer des tâches à lancer. à désactiver S20rwhod idem.

Pour activer les shadows password. Les comptes systèmes suivants sont nécessaires: root.4 Sécuriser /etc/passwd Tout d'abord on va mettre en place les shadow password. gopher. 5 et 6) 3. lp (si vous avez un système d'impression). news (si serveur de news). supprimez les. shutdown. si non utilisé à désactiver S99linuxconf permet à quelqu'un sur internet de faire de la maintenance sur votre système à travers une interface web. nécessaire S91smb pour lancer le serveur samba. operator. ftp (si serveur FTP anonyme). sync.d/snmpd se trouvant sous /etc/rc. c'est très simple en tant que root.conf. 4. vous pouvez le faire avec dé commentant la ligne le concernant dans /etc/inetd. halt. nobody Ceux-ci sont facultatifs: games. Maintenant on va supprimer autant que possible tous les comptes systèmes inutiles.local. où vous pouvez rajouter vos petits trucs C'est une liste non exhaustive.funix. si vous en avez pas besoin. vous devez taper: pwconv Dans le champ password de /etc/passwd (le deuxième) vous devriez trouver un x. bin. uucp (si vous utilisez UUCP).d/rcX. on va faire cependant en sorte que le système logue tout ce qui concerne FTP. comme ça tous les mots de passe seront contenus dans un fichier distinct de /etc/passwd.d (remplacer X par 0. La ligne dans /etc/inetd.5 Sécuriser FTP Si vous voulez activer FTP.d/rc. à désactiver sinon S94ntpd pour lancer le serveur NTP (network time protocol) à désactiver (ancienne version S94xntp) S95innd pour lancer le serveur de news innd. un fichier /etc/shadow a été créé contenant les mots de passe crypté. La première chose qu'un hacker cherche à faire est de lire /etc/passwd.3. d'un système à l'autre.d/init. le fait de mettre les password ailleurs apportent une protection supplémentaire. si vous partager des file système ou des imprimantes vers des postes Windows.conf est: Sécuriser son poste Linux 10 http://www. 3. lists. 2. 1. ce fichier /etc/shadow est en lecture seule pour root (droit 400 proprio root). car ce sont autant de portes d'entrée pour les hackers. xfs.poste isolé S90xfs pour activer le serveur de fonts X. adm. 3.org . daemon. Pour désactiver le service SNMP il suffit de taper : chkconfig --level 0123456 snmpd off Un autre moyen est de supprimer les liens vers /etc/rc. à désactiver S99local c'est un lien vers /etc/rc. le numéro de lancement peut changer. mail (si serveur mail).3.

ça force les utilisateurs à se loguer sur leur compte habituel puis de faire un su en local s'ils veulent devenir root.org . dans ce fichier vous devrez y mettre tous les utilisateurs systèmes. Voici un exemple de /etc/securetty : tty1 tty2 Sécuriser son poste Linux 11 http://www.ftpd instances = 4 access_times = 7:00-12:00 14:00-17:00 nice=15 } Maintenant vous allez créer un fichier /etc/ftpusers qui va contenir la liste des utilisateurs qui n'ont pas le droit d'ouvrir une session FTP sur votre système.funix.3. voici un exemple de /etc/ftpusers: root bin daemon adm lp mail news nobody 3.ftpd -l -L -i -o -l chaque session FTP est loguée -L toutes les commandes utilisateurs sont loguées -i chaque fichier récupéré est logué -o chaque fichier envoyé est logué En cas d'utilisation de xinetd voici un exemple de fichier ftp à placer sous /etc/xinetd.ftp avec: stream tcp nowait root /usr/sbin/tcpd in. Pour cela le fichier /etc/securetty doit contenir uniquement des terminaux locaux (du style ttyX) et aucunement des pseudos terminaux (du style ttypX) qui permettent à un utilisateur distant de se loguer à distance en tant que root.d définissant une plage horaire et une limitation à 4 personnes connectées simultanément service ftp { socket_type = stream wait = no protocol = tcp user = root server = /usr/sbin/in.6 Sécuriser Telnet On doit empêcher que root puisse accéder au système via telnet.

vous pouvez modifier cela en mettant le commentaire souhaité dans le fichier /etc/issue.255. pour éviter cela. réseau.168.conf .deny.0::ALLOW NOTES: .168.local. c'est en fait un contrôle d'accès.deny: ALL: ALL DENY Pour /etc/hosts.192. la session telnet n'est même pas ouverte.255.255. une fois passer ce contrôle on peut alors se connecter à telnet.tty3 tty4 tty5 tty6 tty7 tty8 Maintenant quand vous vous connectez avec telnet.13. La syntaxe est la suivante: service: source(adresse IP.7 Les TCP Wrappers Les TCP Wrappers rajoutent une protection supplémentaire aux services lancés par inetd. Ces fichiers déterminent qui peut ou ne peut pas accèder aux systèmes (ou du moins aux services lancés par inetd).13.255.allow et /etc/hosts. La règle est d'interdire tout à tout le monde.Pour le nom du service in.10::ALLOW in. par exemple pour se connecter avec telnet. le fichier /etc/issue est regénéré à chaque boot.13.telnetd est le dernier champ de la ligne telnet du fichier /etc/inetd. puis d'autoriser uniquement certains postes très limités à utiliser vos services. du style "bienvenu sur la machine untel". Les TCP Wrappers permettent évidemment de loguer chaque connexion (réussie ou pas). ou nom): optionnel: ALLOW ou DENY Par exemple /etc/hosts. plutôt que le nom .13. il faut d'abord passer le contrôle des TCP Wrappers. vous avez toujours un petit commentaire qui s'affiche.funix. si on ne passe pas le contrôle des TCP Wrappers. Attention sous une Mandrake.telnetd:192.allow in.org . modifiez la ligne qui va bien dans /etc/rc. 3.168.d/rc.10 est l'adresse IP d'un hôte autorisé .3. Les fichiers de configuration des TCP Wrappers pour fixer les accès sont /etc/hosts. Sécuriser son poste Linux 12 http://www.0 est un sous réseau complet Les TCP_WRAPPERS concernent encore xinetd mais devraient disparaître dans le futur car xinetd offre des contrôles d'accès supérieurs à ce que peut offrir les TCP_WRAPPERS.192.0/255.0/255.Préférez les adresses IP.ftpd:192.168.

Pour bloquer les fichiers. Pour trouver les fichiers avec SUID ou SGID. vous devrez taper: chgrp wheel /bin/su chmod 4750 /bin/su Faites de même pour les autres commandes.3.8 Root et utilisateurs privilégiés Maintenant vous pouvez faire en sorte que seuls certains utilisateurs aient le droit d'utiliser certaines commande "puissantes" comme su. Maintenant pour que su soit lancé uniquement par les membres du groupe wheel.3. Pour cela vous allez créer un groupe d'utilisateur privilégié. pour ne pas éveiller les soupçons.9 Sécuriser les fichiers et systèmes de fichiers 3.equiv 13 Sécuriser son poste Linux http://www.rhosts /etc/hosts.3.N'oubliez pas qu'un utilisateur peut très bien appartenir à deux groupes . passe partout. ils comportent certains risques au niveau de la sécurité. ils permettent à n'importe qui de lancer un programme avec les droits du propriétaire du programme. (répertoire courant) dans le PATH de root.3. mais libre à vous de l'appeler comme vous voulez. tapez en tant que root: find / -type f \( -perm 04000 -o -perm 02000 \) 3.N'oubliez pas sudo pour donner des droits privilégiés à certains utilisateurs. vous devez prendre quelques précautions: .equiv chmod 0 /. En limitant le nombre de personnes pouvant utiliser ces commandes vous améliorez la sécurité de votre site.9.9. Les fichiers SUID sont une des principales cibles des hackers.rhosts ou hosts. à éviter donc.1 SUID et GUID Evitez d'avoir recours aux SUID et SGID. c'est le script qui peut être appelé (suivant l'ordre des chemins dans le PATH) et pouf ! plus de système.funix. choisissez quand même un nom discret.rhosts /etc/hosts. car si par malheur quelqu'un crée un script avec droits exécutables dans /tmp qui s'appelle rm contenant: #!/bin/bash rm -Rf / Si root a le malheur de taper rm alors qu'il se trouve dans /tmp.org .equiv On a vu plus haut qu'il fallait éviter d'avoir des fichiers . 3.vous ne devez en aucun rajouter le . il suffit de taper les commandes: touch /. préférez amplement sudo.3. Pour ce qui concerne root.rhosts et hosts. NOTES: . généralement il est appelé wheel. on va donc bloquer ces deux fichiers pour que personne ne puisse les recréer.equiv.2 Fichiers .

3 Umask On peut définir les droits de création par défaut d'un fichier ou de répertoire avec la commande umask.9.org .3. Ces outils procèdent en scannant votre machine. SARA est Open Source. en testant tous les ports ouverts notamment et en testant un grand nombre de trous de sécurité connus.rhosts dans les homedirectories des utilisateurs. 027 ou même 077 qui est le masque le plus restrictif (voir mon cours unix pour voir comment marche les umask). taper: find /home -name . il est actuellement complètement dépassé. Pour définir l'umask pour tous les utilisateurs du système. vous vous exposez à des problèmes en proportion avec la machine visitée.funix. A noter encore qu'un des auteurs de SARA est aussi à l'origine de SAINT.rhosts -print 3. 4. Il avait la particularité d'être Open Source. vous pouvez fixer 022.Pour trouver les . le scan sera considéré comme une attaque. appelée SARA-PRO. Sécuriser son poste Linux 14 http://www. Le problème est que maintenant SATAN commence fortement à dater. avec le nom évocateur de SATAN (Security Administrator Tool for Analyzing Networks). ça fait un paquet de temps qu'il n'a pas été remis à niveau. comme SATAN . 4 Auditer la sécurité de son réseau 4.1 Présentation En 1995 est apparu un outil d'administration pour tester la sécurité d'un réseau.3 Sara 4. Les outils présentés sont SARA qui est dérivé du célèbre SATAN qui n'a pas été maintenu depuis un certain temps. 4. En conséquence une boîte (Advanced Research Corporation) commença le développement d'un outil similaire au goût du jour. Des trois outils c'est le dernier que je juge le plus puissant et de surcroît facile d'utilisation. vous devez éditer le fichier /etc/profile et modifiez la ligne concernant umask. A noter qu'il existe une version commerciale de SARA.2 AVERTISSEMENT Je vous déconseille évidemment fortement de tenter de scanner une machine ne vous appartenant pas se trouvant sur le net. en d'autres termes.1 Présentation Le but de cette page est de vous présenter trois outils qui vous permettront de tester la sécurisation des machines de votre réseau. nmap qui est un puissant "scanneur" et nessus basé entre autres sur nmap mais avec en plus une interface particulièrement conviviale.3. ils vous révéleront vos trous de sécurité et vous avertiront des problèmes potentiels. il est très vite devenu un standard et fut à la base d'une pléthore d'outils équivalents. ainsi naquit SARA (Security Auditor Research Assistant). un autre SATAN-like. à partir de là libre à vous de "boucher" les trous en question et d'upgrader certains programmes présentant quelques déficiences de sécurité. on va faire en sorte d'éviter de créer des répertoires avec les droits 777. mais bon je vous aurais prévenu.

il peut se plaindre de l'absence de certaines commandes.. vous allez récupérer un répertoire sara-3.!!! can't find ypcat AEEEIIII.5.gz à l'URL www-arc. il suffit de taper: make linux Lors de la compil.4.3..!!! can't find finger AEEEIIII.2..2.2. qu'on décompressera en tapant : tar xvfz sara-3..3. mais ce n'est pas bien grave...org ... Puis dans le répertoire ainsi obtenu.2..!!! can't find ypwhich AEEEIIII.2/bin ...5.!!! can't find rusers AEEEIIII..2/sara 15 Sécuriser son poste Linux http://www. Looking for all the commands now.5../sara-3...5.3 Utilisation En tant que root il suffit de taper .funix..com/sara ..!!! can't find rlogin AEEEIIII.!!! can't find rsh Il va créer des exécutables sous .tar. L'exécutable de lancement de SARA se trouve directement sous .!!! can't find tftp AEEEIIII./sara-3..gz Après décompression.!!! can't find mail AEEEIIII. NOTE Vous devez disposer de perl (version supérieure ou égale à 5) 4.2 Installation On peut récupérer l'archive de SARA à savoir sara-3.tar.5.5./sara-3. AEEEIIII.

funix.NOTE: Si vous disposez de nmap (voir le chapitre suivant).org . aller dans le menu: Edit -> Préférences -> Navigator -> Applications > dans la liste choisir Perl Program -> puis en final Edition. le scan sera d'autant meilleur. Voilà maintenant dans le browser vous avez la page d'accueil de Sara Sécuriser son poste Linux 16 http://www. modifiez les champs tels qu'indiqués sur le screenshot à droite. c'est le browser par défaut qui se lance (netscape chez moi). Et là surprise. vous pouvez rajouter l'option -n pour lui indiquer. Il y a une chose à modifier dans les Préférences de netscape pour que ça puisse marche.

un hôte simple hote.local.une plage d'adresse: 192.local.0.168. La première étape est de sélectionner la cible à analyser.13.A noter que la partie Documents/CVE est très bien fournie ainsi que la section Troubleshouting se présentant sous forme de FAQ.com .0.Custom : personnalisé (seulement scan SMB (samba).funix.com hote2. Mail. ou une plage d'adresse (range).local.Extreme : extrême. un sous réseau complet (network).98 Scanning level selection choix du niveau de scan Les choix sont : .168.Normal : peut être détecté et inscrit dans les fichiers de log de la cible .org .com . des messages d'erreurs peuvent apparaître sur les consoles système de la cible . Web. vous devez alors saisir: Primary target selection: choix de la cible Vous pouvez choisir une machine particulière (target host). Telnet.plusieurs hôtes: hote1.55-192. ça peut planter . FTP) Sécuriser son poste Linux 17 http://www. la syntaxe est la suivante : .0/24 .Light : léger (pour que la machine cible ne se rende pas compte) . on clique donc sur Target Selection.168.un sous réseau: 192.Heavy : lourd.

bz Add-fact: obelix. et c'est parti.5406-5899.breizland..breizland.bz|finger.bz|mountd|a|x||||runs NFS Sécuriser son poste Linux 18 http://www.32767-33500 obelix.breizland.org .88899999.sara obelix.bz.breizland.bz|#|a|x||||offers # Add-fact: obelix.armoric.bz|nfs|a|x||||runs NFS Add-fact: obelix.Custom : personnalisé (seulement scan TCP) .bz|ddosscan.31337.breizland.bz prox 0 policy: obelix.27665. Adding a primary target Add-primary: obelix.sara 1-1760.bz|udpscan.31335.12345.65000| Add-todo: obelix.bz dans une page du navigateur. Data collection in progress.31335.bz prox 0 level 2 Check-pulse: obelix. Voilà maintenant on a un bouton start the scan.breizland.31785.bz|hosttype..breizland.bz ==> running bin/timeout 180 bin/fping obelix.bz|tcpscan.sara 1-1525.sara|u|||||program timed out ==> running bin/timeout 20 bin/rpc.sara obelix.breizland.bz|bootps|a|x||||offers bootps Add-fact: obelix.funix.31337.20034.5901-7099.sara 1-1760. je choisis une machine sous Mandrake 8.sara| Add-todo: obelix.bz|echo|a|x||||offers echo Add-fact: obelix.27444.bz|netbios-dgm|a|x||||offers netbios-dgm ==> running bin/timeout 20 bin/finger.breizland.bz|dns..7101-8887.32767-33500| ==> running bin/timeout 20 bin/ddosscan.1763-2050.31337. là ça peut prendre un certain temps.breizland.breizland.breizland.bz process_targets: probe obelix.1527-5404.breizland.sara| Add-todo: obelix.bz|sunrpc|a|x||||offers sunrpc Add-fact: obelix. voilà le résultat final sur la machine obelix.bz Add-fact: obelix.bz ==> running bin/timeout 180 bin/udpscan.27374.bz|rpc.bz Add-target: obelix.sara obelix.1 avec un scanning heavy qui n'est pas derrière un firewall mais sur mon réseau local.sara| Add-todo: obelix.breizland.breizland.breizland.breizland.1763-2050.16600.breizland.breizland.breizland.breizland.bz|netbios-ns|a|x||||offers netbios-ns Add-fact: obelix.breizland. Prox: 0 AL : 2 Add-todo: obelix.bz Add-fact: obelix..breizland.breizland.breizland.sara| Add-todo: obelix.sara| Add-todo: obelix.Custom : personnalisé (seulement un scan de test) Firewall Support utilisation d'un firewall Est ce que la cible se trouve derrière un firewall ? On a le choix entre oui et non Pour l'exercice.breizland.27444..bz|finger.

bz|netbios-ssn|a|||||offers netbios-ssn Add-fact: obelix.2.0 rennes-1-a7-21-114.6a\r\nDate: Sat. version 1.org .bz\r\n|offers nntp Add-fact: obelix.breizland.1\r\nContent-Type: text/html\r\nContentLength: 101\r\n\r\n Bad Request Bad Request\n|offers ipp Add-fact: obelix.27374.bz|sunrpc|a|||||offers sunrpc Add-fact: obelix.0.65000 obelix.bz|1024:TCP|a|||||offers 1024:TCP Add-fact: obelix.sara obelix.breizland.16600.11.dial.11.31337.7101-8887.0/Olivier Hoarau-992911.bz Add-fact: obelix.0.bz|http-alt|a||||HTTP/1.breizland.0/8.5406-5899.0 400 Bad Request\r\nDate: Sat.breizland.0 500 WWWOFFLE Server Error\r\nServer: WWWOFFLE/2.bz|nntp|a||||200 Leafnode NNTP Daemon.breizland.breizland.bz|tproxy|a|||||offers tproxy Add-fact: obelix.bz|1026:TCP|a|||||offers 1026:TCP Add-fact: obelix.bz|masqdialer|a||||READY\n|offers masqdialer Add-fact: obelix.proxad. 10 Mar 2001 09:01:16 GMT\r\nContent-type: text/html\r\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n \nWWWOFFLE .breizland.sara 1-1525.World Wide Web Offline Explorer\n \n\n \n\n\n\n WWWOFFLE .breizland.breizland.breizland. Sat.breizland.breizland.Add-fact: obelix.proxad.breizland.dial.0/Olivier Hoarau-992911.11.5901-7099.bz|smtp|a||||220 rennes-1-a7-21-114.0/8.88899999.bz|pop3|a|||||offers pop3 Add-fact: obelix.bz|blackjack|a|||||offers blackjack Add-fact: obelix.breizland.breizland.12345.18 running at obelix.31785.breizland.27665.bz ==> running bin/timeout 180 bin/hosttype.bz|ipp|a||||HTTP/1.breizland.17-21mdk on an i686\r\nQUIT\r\n\r\n|offers telnet Add-fact: obelix.2 (Odyssey) for i586\r\nKernel 2.breizland.net closing connection\r\n|offers smtp Add-fact: obelix.breizland.proxad.breizland. 10 Mar 2001 10:01:11 +0100\r\n221 2.11.bz|submission|a||||220 rennes-1-a7-21-114.0 rennes-1-a7-21-114.net ESMTP Sendmail 8.proxad.bz|telnet|a||||Welcome to obelix.bz|http|a|||||offers http Add-fact: obelix.1527-5404.sara obelix.bz ==> running bin/timeout 180 bin/tcpscan.breizland.Erreur du Serveur \n\n \nLe serveur WWWOFFLE a rencontré une erreur fatale :\n \nCannot parse the HTTP request\n \nLe programme ne peut pas continuer à traiter cette Sécuriser son poste Linux 19 http://www.bz|ssh|a|||||offers ssh Add-fact: obelix. 10 Mar 2001 09:01:04 GMT\r\nServer: CUPS/1.20034.9.net closing connection\r\n|offers submission Add-fact: obelix.bz|statd|a|x||||runs statd ==> running bin/timeout 20 bin/dns. Sat.net ESMTP Sendmail 8.funix.dial.bz|meregister|a|||||offers meregister Add-fact: obelix.breizland.bz\r\nLinux Mandrake release 7.bz|ftp|a|||||offers ftp Add-fact: obelix.breizland.breizland. 10 Mar 2001 10:01:11 +0100\r\n221 2.dial.

breizland.bz|http-alt|a|||||offers http ==> running bin/timeout 45 bin/login.bz|smb. alors signalez la (en\nanglais) à l'auteur de WWWOFFLE.sara -d obelix.ext|http Add-todo: obelix.bz|ANY@obelix.sara.sara| Add-todo: obelix.bz|ssh.sara| Add-todo: obelix.breizland.funix.breizland.breizland.breizland.breizland.\n\n<\n\n\n\n \n\n \nWWWOFFLE .bz|ipp|a|g||||offers http ==> running bin/timeout 700 bin/smb.breizland.bz:0 Add-fact: obelix.ext|ipp Add-fact: obelix.bz|ftp||||||offers ftp Sécuriser son poste Linux 20 http://www.breizland.requête.sara|-u guest Add-todo: obelix.bz|xhost.org .bz Add-fact: obelix.[Page d'Accueil?FAQ] WWWOFFLE\n \n\n\n\n\n\n\n|offers http-alt Add-fact: obelix.breizland.breizland.sara.sara| Add-todo: obelix.breizland.breizland.bz|depends.bz Add-fact: obelix.bz|sendmail.bz|http.\n \n\n \nCeci est une erreur interne du serveur WWWOFFLE.sara obelix.breizland.bz|relay.sara|statd Add-todo: obelix.bz ==> running bin/timeout 180 bin/http.breizland.breizland.bz|showmount.breizland.sara obelix.breizland.breizland.sara|http-alt Add-todo: obelix.bz|login.bz|depends.breizland.sara|ipp Add-todo: obelix.breizland. Si elle persiste\nbien que le serveur soit correctement configuré et qu'il n'y ait pas\nd'autre problème sur l'ordinateur.sara -u guest obelix.bz|mountd|a|g||||runs NFS Add-todo: obelix.bz|netbiosssn|a|zwoi|ANY@obelix.bz|netbios over the internet|Is your Netbios secure ==> running bin/timeout 20 bin/xhost.breizland.breizland.breizland.bz|http.breizland.breizland.bz|sample.breizland.bz|http.breizland.bz|login.sara| Add-todo: obelix.sara|-d obelix.breizland.bz|nfs-chk.sara|-t 10 Add-fact: obelix.sara|telnet Add-todo: obelix.sara -u root obelix.breizland.bz|X-0|a|||||offers X-0 Waiting for all processes to complete Add-todo: obelix.breizland.ext|http-alt Add-fact: obelix.breizland.bz|sample.breizland.bz|nfs|a|g||||runs NFS Add-todo: obelix.sara| Add-todo: obelix.breizland.sara| Add-todo: obelix.bz|sample.breizland.sara|nfs Add-fact: obelix.breizland.bz Add-fact: obelix.sara|http Add-todo: obelix.breizland.bz:0 obelix.bz|telnet|a|g|||| ==> running bin/timeout 45 bin/login.breizland.bz|depends.sara ipp obelix.bz ==> running bin/timeout 20 bin/ftp.sara|-u root Add-todo: obelix.breizland.bz Add-fact: obelix.bz|ftp.bz|http-alt|a|||||offers http:http-alt Add-todo: obelix.breizland.bz|ipp|a|||||offers http:ipp Add-todo: obelix.sara.

bz|showmount|a|||||Not running showmount or other error ==> running bin/timeout 20 bin/depends.bz|nfsd|a|zcio|ANY@ANY|ANY@ANY|mountd vulnerabilities|nfsd version may be vulnerable to buffer overflow ==> running bin/timeout 20 bin/ssh.sara.bz Add-fact: obelix.breizland.sara nfs obelix.funix.sara obelix.bz Add-fact: obelix.breizland.org .breizland.bz ==> running bin/timeout 20 bin/depends.sara obelix.bz|smtp|a|zcio|ANY@ANY|ANY@ANY|sendmail version|sendmail EXPN command may provide hacker information ==> running bin/timeout 120 bin/nfs-chk.ext http obelix.sara -t 10 obelix.bz|smtp|a|zcio|ANY@ANY|ANY@ANY|sendmail version|sendmail VRFY command may provide hacker information Add-fact: obelix.sara statd obelix.breizland.breizland.ext ipp obelix.breizland.breizland.bz|ssh|a|g||||offers ssh ==> running bin/timeout 20 bin/sample.breizland.breizland.breizland.statd on Linux is vulnerable if not patched ==> running bin/timeout 20 bin/sendmail.bz|http|a|g||||offers http ==> running bin/timeout 20 bin/depends. vous obtiendrez un truc du style: General host information: Host type: unknown type NFS server NIS server NNTP (Usenet news) server SSH server Telnet server WWW server Subnet 192.sara obelix.bz Add-fact: obelix.sara obelix.bz Waiting for all processes to complete Data collection completed (1 host(s) visited).bz Add-fact: obelix. Si vous choisissez View primary target results.breizland.bz|SM TP may be a mail relay|Probable smtp relay (spam) ==> running bin/timeout 180 bin/http.bz ==> running bin/timeout 180 bin/http.breizland.sara http-alt obelix.sara.bz Add-fact: obelix.sara.bz|http-alt|a|g||||offers http ==> running bin/timeout 20 bin/sample.breizland. Back to the SARA start page | Continue with report and analysis | View primary target results ATTENTION Le scan peut provoquer le blocage de certains services de la machine cible.13 Sécuriser son poste Linux 21 http://www.breizland.ext http-alt obelix.breizland.bz Add-fact: obelix.bz ==> running bin/timeout 700 bin/relay.bz|statd|a|rcio|ANY@ANY|ANY@ANY|rpc statd access|rpc.sara http obelix.bz Add-fact: obelix.sara telnet obelix.168.==> running bin/timeout 20 bin/showmount.breizland.bz ==> running bin/timeout 20 bin/sample.breizland.breizland.breizland.breizland.bz|smtp|a|ycio|ANY@obelix.bz|ANY@obelix.breizland.breizland.breizland.bz Add-fact: obelix.breizland.

Si par contre vous choisissez "Continue with report and analysis ".statd on Linux is vulnerable if not patched Probable smtp relay (spam) SMTP may be a mail relay nfsd version may be vulnerable to buffer overflow Vous constatez qu'il y a des liens un peu partout qui vous donne plus d'info.Scanning level: heavy Last scan: Fri Mar 10 19:01:23 2001 Vulnerability information: Is your Netbios secure sendmail EXPN command may provide hacker information sendmail VRFY command may provide hacker information rpc. car ça part vraiment dans tous les sens. Sécuriser son poste Linux 22 http://www. vous aurez alors le menu suivant: Table of contents Vulnerabilities By Approximate Danger Level By Type of Vulnerability By Vulnerability Count Host Information By Class of Service By System Type By Internet Domain By Subnet By Host Name Trust Trusted Hosts Trusting Hosts Reporting SARA Pro Reporter Chaque catégorie étant un lien vers un autre page avec davantages de détails.funix.org . Je ne vous les présenterai pas de manière exhaustive.

flex et libpcap Puis la commande classique: . vous devez vous en servir uniquement pour votre réseau. c'est donc à vos risques et périls. tar xvfz nmap-2..org/nmap La dernière version stable est la 2..gz Cela va créer dans le répertoire courant un répertoire nmap-2. sachez que ce sera considéré comme une attaque.53.4./configure A partir du CD2.54BETA22-2mdk nmap-frontend-2. Dans le fichier Makefile au niveau de la variable DEFS on rajoutera -DHAVE_INET_ATON Tapez maintenant Sécuriser son poste Linux 23 http://www. gtk+devel.53.funix.54BETA22-2mdk Pour décompresser le tarball rien de plus simple. je vous présenterai l'installation avec le tarball avec la dernière version stable 2. L'utilisation de nmap que vous l'ayez installé avec le rpm ou avec le tarball reste la même. 4.9-11mdk.54BETA22-2mdk .1 Présentation Nmap est un puissant outil qui permet de scanner les ports. nmap-frontend-2.insecure. pour le savoir: rpm -qa | grep -i nmap Si vous obtenez nmap-2. l'installation avec les rpm de la Mandrake se réduit à sa plus simple expression.4.53 qu'on peut récupérer sous forme de tarball.54BETA22-2mdk On va supprimer ces deux packages.53.2 Installation avec le tarball Vous pouvez trouver nmap sur le site www. rpm -e nmap-2.54BETA22-2mdk sur le CD1).54BETA22-2mdk rpm -e nmap-frontend-2.org . si vous tentez de scanner quelqu'un d'autres sur le réseau internet. Pour info nmap se trouve maintenant intégré dans la mandrake 8.tar. Attention de ne pas installer nmap si vous disposez déjà de la version Mandrake. il faudra installer préalablement si nécessaire le package byacc-1.4 Nmap 4.1 (version béta packages nmap-2. Au préalable vous veillerez à installer si ce n'est déjà fait sur votre Mandrake les packages suivants: glib-devel.4. il a pour but de tester la sécurisation des postes de vos réseau.

on ouvre une connexion sur tous les ports ouverts. STATIC=. -sS scanning des ports TCP. pour voir si la cible est "alive". -b <ftp_relay_host> ftp "bounce attack" port scan. -o nmapfe nmapfe. toutes les connexion sont visibles sur la machine cible (dans les fichiers de log notamment). I. il n'y a donc pas à s'inquiéter de ce message. je vous en dirais pas plus (voir le man). vous pouvez changer les chemins en tapant configure avec les arguments qui vont bien(.-sX. ou Null scan (marche que sous UNIX) scan des ports plus discrets (voir man nmap pour plus de détails) -sP équivalent à ping.c gcc -g -O2 -I/usr/lib/glib/include -I/usr/X11R6/include -Wall -DVERSION=\"0. make[1]: Entre dans le répertoire `/usr/local/linux/nmap-2.53/nmapfe' gcc -g -O2 -I/usr/lib/glib/include -I/usr/X11R6/include -Wall -DVERSION=\"0. test -f Makefile && make VERSION=0. l'avantage de cette option est que l'action n'est pas logué par la cible. mais dans la réalité l'exécutable est bien créé. -I. -c nmapfe_sig.make J'ai ce drole de message en fin de compil : FAILURES HERE ARE OK -.\" -I./configure --help pour la syntaxe). -sF.4.\" -I. -I. Xmas.3 Syntaxe La syntaxe est classique: nmap [options éventuelles] cible Les options principales sont: -sT scanning des ports TCP ouverts. Puis en tant que root make install Cela va installer les exécutables nmap et nmapfe sous /usr/local/bin.c gcc -g -O2 -I/usr/lib/glib/include -I/usr/X11R6/include -Wall -DVERSION=\"0. le message laisserait penser que la compil s'est mal passé et qu'on ne pourra pas l'utiliser. en gros ça exploite un trou de sécurité sur certain proxy. -sU scanning des ports UDP ouverts (plutôt lent). ne fait pas de scan.THEY JUST MEAN YOU CANNOT USE nmapfe cd nmapfe. après réponse on sait que le port est ouvert. et d'autres fichiers sous /usr/local/share/nmap .org .funix.-sN Stealth FIN.o nmapfe_sig. si ça ne vous convient pas.53/nmapfe' END OF SECTION WHERE FAILURES ARE OK Cela concerne le frontend (interface graphique de nmap) nmapfe.o -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm make[1]: Quitte le répertoire `/usr/local/linux/nmap-2. on envoit un message SYN pour dire qu'on va ouvrir une connexion TCP puis on attend la réponse. 4. -c nmapfe. D'autres options intéressantes (liste non exhaustive): Sécuriser son poste Linux 24 http://www.\" -I.

-p <range> syntaxe pour avoir un ensemble de ports à scanner.10): (The 1517 ports scanned but not shown below are in state: closed) Port State Service 21/tcp open ftp 23/tcp open telnet 110/tcp open pop-3 113/tcp open auth 1024/tcp open kdm 6000/tcp open X11 Nmap run completed -.168.13.88.53 by fyodor@insecure.63000. avec ça on peut spécifier une interface particulière pour envoyer les paquets (eth0. -F scan rapide.5/24. Host cible (192.10) appears to be up . Adding TCP port 21 (state open). -e <devicename>. -I permet d'avoir plus d'info sur les ports TCP ouverts.*'. Adding TCP port 23 (state open).funix.). good. The TCP connect scan took 0 seconds to scan 1523 ports.1 IP address (1 host up) scanned in 1 second La commande suivante va permettre de scanner tous les ports TCP réservés : Sécuriser son poste Linux 25 http://www.13.udp.insecure. ou des sous-masques de réseau particulier. Adding TCP port 113 (state open). mode verbeux (recommandé). Interesting ports on cible (192.org/24 ou 192.4.168. -V pour avoir uniquement le numéro de version. Adding TCP port 1024 (state open). Use -sP if you really don't want to portscan (and just want to see what hosts are up). pour avoir la liste complète des options. Initiating TCP connect() scan against cible (192. Maintenant la cible peut être identifié par son nom sur internet ou son adresse IP..org ( www.10) Adding TCP port 6000 (state open).etc. assuming vanilla tcp connect() scan. -v Verbose.. or ICMP scantype specified.0-255 ou bien encore '128. exemple : -p 23 on va regarder que le port 23 -p 20-30.209. Adding TCP port 110 (state open). pas la peine de rentrer de cible. scanne uniquement les ports contenus dans /etc/services. notamment le proprio.13. -o <logfile> log le résultat dans le fichier <logfile>.168. ppp0.209.4 Quelques exemples L'utilisation la plus simple est celle-ci: nmap -v cible Starting nmap V.209.org/nmap/ ) No tcp.-O permet de connaître sur quel OS tourne la cible (fingerprinting en anglais). -h help. 192. On peut désigner un ensemble d'adresse aussi.88.org . 2. Par exemple domaine. 4.88.va scanner les ports de 20 à 30 et supérieur à 63000 (jusqu'à 65535 en fait) par défaut il scrute uniquement de 1 à 1024 plus les ports se trouvant dans /etc/services .

org/nmap/ ) Interesting ports on cible (192.5 Le front end de nmap En tant que root.110.13.168. 110 et 143) tournent sur le système et si le port 4564 est utilisé: nmap -sX -p 22.funix.2. 2.nmap -sS -O cible Starting nmap V.org .insecure.143.53.168.1 IP address (1 host up) scanned in 0 seconds Maintenant on va tester si sshd.org ( www. 53.14 Nmap run completed -.4. il suffit de lancer nmapfe. imapd (ports respectifs 22.13. DNS.2.insecure.4564 cible Starting nmap V.1 IP address (1 host up) scanned in 0 seconds On constate qu'il n'y a que le DNS (domain) et un serveur POP3 qui marchent sur la machine. voici ce que ça donne: Sécuriser son poste Linux 26 http://www.10): (The 1517 ports scanned but not shown below are in state: closed) Port State Service 21/tcp open ftp 23/tcp open telnet 110/tcp open pop-3 113/tcp open auth 1024/tcp open kdm 6000/tcp open X11 TCP Sequence Prediction: Class=random positive increments Difficulty=3095580 (Good luck!) Remote operating system guess: Linux 2.11): Port State Protocol Service 53 open tcp domain 110 open tcp pop-3 Nmap run completed -. www.53 by Fyodor (fyodor@dhp.1.org/nmap/) Interesting ports on cible (192. 2.53 by fyodor@insecure.com. pop3d.122 . 4.

org .5. mais en plus de tester vos ports.10.1 Présentation Nessus est un outil qui permet de tester la sécurisation des postes de votre réseau.5.tar.0.nessus.0.nessus.org . Voici la liste des packages à récupérer: nessus-core-1.10. pour déterminer les trous de sécurité et vous avertir sur certaines faiblesses. Nessus est constitué d'une partie serveur et cliente.funix.fi.tar. il se base en autres sur nmap.tar. personnellement j'ai téléchargé les packages sur le miroir en Finlande à l'URL www.gz Sécuriser son poste Linux 27 http://www.10.gz nessus-plugins-1. vous constaterez qu'il existe des miroirs un peu partout. 4.Vous voyez qu'il devient très simple d'utiliser nmap. 4.gz nessus-libraries-1.10. ne vous méprenez pas le miroir en France n'est pas forcément le plus rapide.gz libnasl-1.0. les deux peuvent très bien fonctionner sur la même machine.org .5 Nessus 4. il va scruter les composants logiciels de votre machine. la partie utilisation concerne la version tarball et la version package Mandrake.2 Installation Tout d'abord vous devez vous procurez les packages de nessus que vous trouverez à l'URL suivante www.tar.0. L'installation présente uniquement la version tarball.

tar.gz Cela va donner les répertoires nessus-core.org . nessus-plugins et libnasl.tar.10.4 qu'on trouve même pas sur le site officiel ! Créer un répertoire nessus dans lequel vous mettrez ces tarballs. maintenant vous devez rajouter ce chemin dans /etc/ld./configure Puis make J'ai eu l'erreur de droit suivante.0.conf et tapez ldconfig Pour la suite des opérations le répertoire /usr/local/bin doit être dans votre PATH (env | grep PATH) s i ce n'est pas le cas.1.0.10.tar. Dans le répertoire nessus-libraries on tape . on tape : . nessus-libraries .funix.1 (CD2) fournit la version 1. FATAL: Can't create .10./configure Puis Sécuriser son poste Linux 28 http://www.bashrc de votre homedirectory rajoutez : PATH=$PATH:/usr/local/bin export PATH Et relancez un shell pour prendre en compte la modif (ou alors source ~/. dans le fichier .gz tar xvfz nessus-plugins-1.0.lo: Permission non accord?e Peut importe on passe en root puis on retape make Et enfin make install Les librairies sont installées sous /usr/local/lib.0.tar.Curieusement la mandrake 8.gz tar xvfz libnasl-1.so.gz tar xvfz nessus-libraries-1.10.bashrc) Dans le répertoire libnasl.libs/peks-svc. dézippez l'un après l'autres les packages dans ce répertoire tar xvfz nessus-core-1.

/configure. if you will. les fichiers nécessaires sous /usr/local/lib/nessus Maintenant on va créer un utilisateur lambda pour pouvoir utiliser nessus.funix. Hostnames are *not* accepted Sécuriser son poste Linux 29 http://www. En tant que root on tape : nessus-adduser Voilà les commentaires Add a new nessusd user ---------------------- Login : lambda Méthode d'authentification. you may want olivier to be able to connect to this nessusd server only from his work machine. taper enter pour avoir la valeur par défaut (cipher) Authentication method (cipher/plaintext) [cipher] : Source restriction -----------------On peut limiter lambda pour pouvoir se connecter au serveur nessusd uniquement de certaines machines You can.org . For instance. make et en tant que root make install) dans l'ordre dans le répertoire nessus-core puis nessus-plugins Le daemon nessusd est installé sous /usr/local/sbin. A blank entry will allow him to connect from anywhere The entry format must be an IP address followed by an optional netmask. Please enter the host (or subnet) olivier is allowed to connect from.make Et enfin en tant que root make install suivi de ldconfig On tape les mêmes commandes (. configure this account so that it can only be used from a given host or subnet. vous avez le choix entre crypté (cipher) ou en clair (plaintext).

255.fr. On récapitule Login : lambda Auth. method : cipher.5 192.255.1.nessus.1.org Par défaut. Please see the nessus-adduser(8) man page for the rules syntax Enter the rules for this user. and hit ctrl-D once you are done : (the user can have an empty rules set) On tape CTRL-D pour stopper la saisie.168.0/255. il peut se connecter de partout Source host or network [anywhere] : Mot de passe de l'utilisateur. faire un man nessus-adduser pour plus de détail nessusd has a rules system which allows you to restrict the hosts that olivier has the right to test. can connect from anywhere One time password : mot-de-passe-en-clair Rules : Is that ok ? (y/n) [y] Pour lancer le serveur on tape en tant que root: nessusd & A noter que j'ai eu l'erreur suivante Sécuriser son poste Linux 30 http://www. One time password : mot-de-passe-en-clair User rules ---------A ce niveau on peut créer des critères pour limiter lambda dans ses actions de scan.org .funix. ATTENTION on ne le tape qu'une fois ! Ce mot de passe doit servir à construire vos clés.168. par défaut les règles peuvent être vides s'il y en a pas.0 Invalid entry : prof.1. For instance.168.Examples of valid entries : 192.0/24 192. you may want him to be able to scan his own host only.

org . Vous devez ensuite saisir votre mot de passe sur la fenêtre suivante (pas de screenshot) pour le premier Sécuriser son poste Linux 31 http://www. il suffit en tant que root de taper nessus pour lancer le client.aborting[ Cela venait du fait que le répertoire /usr/local/var appartenait à mysql Il faut qu'il appartienne à root 4. On peut éventuellement changer la phrase (man nessus option C ). elle sera demandée à chaque lancement du client nessus.3 Utilisation En supposant que le daemon nessusd est lancé. une fenêtre apparaît montant l'avancement de la création de la clé perso (pour un premier lancement).5.funix.messages (File has path segment with wrong owner)-. Deux conséquences à cette saisie. utilise nessus et par ailleurs empêche qu'on puisse lancer nessus dans un script ou dans une tâche programmée (avec cron). Puis vient le moment de rentrer une phrase mot de passe.Access rights problem with /usr/local/var/nessus/nessusd. connaissant votre mot de passe.. quand on le lance la première fois. elle empêchera que quelqu'un d'autre.

A la première connexion. vous pouvez laisser localhost.lancement. vous devez saisir le nom de la machine où tourne le serveur. Laissez le port par défaut. vous aurez sans doute un message et puis rien du tout. c'est bon vous êtes connectés. c'est celui utilisé par nessusd. il suffira de rentrer votre phrase mot de passe pour lancer nessus. Maintenant vous pouvez vous connecter au serveur en appuyant sur le bouton Log in. si la machine et le client tourne sur la même machine. La fenêtre suivante (à droite) apparaît. réessayer une deuxième. Par la suite. Vous devez au niveau du champ login saisir l'utilisateur nessus que vous avez créé auparavant (root dans notre cas).org . on vous demande alors le mot de passe. Sécuriser son poste Linux 32 http://www.funix. Vous voyez alors que le champ du bouton Log in se change en Log out.

on vous explique aussi comment les installer. A noter que vous avez des infos bulles fort riches quand vous passez la souris sur un champ. ou éventuellement carrément en créer d'autres tout seul dans son coin.13. vous pouvez saisir d'autres informations. vous avez encore d'autres options pour la vérification. Dans l'onglet User. éventuellement si vous voulez auditer toutes les machines du réseau 192. vous verrez la liste des points à vérifier (liste du haut).13. saisissez comme dans le screenshot 192.Une fois connecté dans le champ plugins. vous devez indiquer la machine cible dont on va auditer la sécurité en rentrant son adresse IP. vous pouvez éventuellement invalider certains points à vérifier. Sécuriser son poste Linux 33 http://www.168. vous devez indiquer l'adresse email de la personne destinataire du rapport (root@locahost par défaut). NOTE Par défaut les plugins qui peuvent faire planter la machine sont désactivés (comme le Denial of Service).funix.0/24. notamment un nom d'utilisateur valide et son mot de passe si votre machine est aussi serveur POP. Sur le site de nessus.org . je n'y ai pas touché.X. Dans l'onglet Prefs.168. Dans l'onglet Scan options. vous pouvez trouver d'autres plugins au gré de la découverte de nouveaux trous de sécurité. Par défaut tout est sélectionné. Dans l'onglet Target Selection. la liste du bas contenant les détails du point sélectionné dans celle du haut.

Le scan peut être relativement long.. c'est à dire qu'ils vont eux mêmes automatiquement faire des manips systèmes pour bloquer les attaques le plus rapidement possibles. 5. ça dépend évidemment de la puissance de votre machine. libre à vous de mener les actions en conséquence. vous trouverez ensuite des outils de détection actifs.org .Voilà. une fenêtre "Report" apparaît avec le détail des trous de sécurité et des warnings. on peut lancer maintenant le scan en appuyant sur le bouton "Start the scan".funix. Une fois le scan terminé. On a même une option de sauvegarde en html avec des graphes. Pour l'instant je vous présente deux outils tcplogd dans la catégorie détection passive et le très puissant portsentry pour une détection active. Sécuriser son poste Linux 34 http://www. 5 Détecter les attaques en temps réel 5.1 Présentation Le but de cette page est de vous présenter des outils permettant de détecter en temps réel les attaques lorsque vous êtes connectés à internet.2. une fenêtre apparaît avec une barre d'avancement.1 Présentation Tcplogd est un outil qui permet une détection des attaques du style scan de port TCP par nmap.) (bouton du milieu en bas). vous pouvez éventuellement sauvegarder le rapport au format désiré (html.. dans cette catégorie vous trouverez des outils de détection passifs se contentant de vous avertir d'attaques. du coup soyez patient et ne l'interrompez pas même s'il parait bloqué. latex. toute attaque est inscrite dans le fichier /var/log/messages via syslogd. .. txt.2 Tcplogd 5.

kalug. A présent on va mettre en place le fichier de config en place en tapant: make cf-install Le résultat de la commande est: /usr/bin/install -c -g bin -m 400 -o root tcplogd.5. Préalablement vous devez installer le package flex que vous trouverez sur le CD2 de la Mandrake.gz Cela va vous créer un répertoire tcplogd-0. tapez préalablement configure --help Vous constaterez alors que vous avez le moyen de définir d'autres répertoires d'accueil Taper maintenant : make Et enfin en tant que root make install Voici les messages qu'on obtient pour cette dernière commande: /usr/bin/install -c -g bin -m 755 -o root -s tcplogd /usr/local/sbin /usr/bin/install -c -g bin -m 755 -o root -s confcheck /usr/local/bin Do make cf-install or/and rh-install to install config files or/and redhat startup scripts separately.funix.1.net/tcplogd.2 Installation Vous trouverez l'archive tcplogd-0_1_5pre1_tar. le fichier de conf dans /usr/local/etc. Si ça ne vous convient pas.org . vous la décompressez en tapant dans une répertoire de travail: tar xvfz tcplogd-0_1_5pre1_tar. Sécuriser son poste Linux 35 http://www. [root@obelix RPMS]# rpm -ivh flex-2.gz à l'URL http://www.5./configure ATTENTION Les exécutables vont se trouver sous /usr/local/sbin et /usr/local/bin.2.4a-16mdk flex ################################################## Vous devez créer un Makefile adapté à votre système en tapant: .5.lug.cf /usr/local/etc Dans ce fichier vous pouvez spécifier des hôtes amis au niveau de la section trusted.

d/init.init /etc/rc.d/S17tcplogd /etc/rc.2 } Vous y supprimerez les valeurs par défaut et mettrez les adresses IP des hôtes amis.init /etc/rc.init /etc/rc.d/init. Maintenant on va faire en sorte que tcplogd soit lancé à chaque démarrage en tapant: make rh-install Le résultat de la commande est: make install make[1]: Entering directory &pi0.d/rc0.d .d/K58tcplogd NOTES .install Making symlinks in startup runlevels: 2 3 4 5 symlinking /etc/rc.202.yahoo.d/rc4./rh_rcd.d/S17tcplogd /etc/rc.d/K58tcplogd symlinking /etc/rc.d/rcX./alphonse/linux/securite/tcplogd-0.init /etc/rc.d/tcplogd.d/S17tcplogd Making symlinks in stop runlevels: 0 1 6 symlinking /etc/rc.d/tcplogd.d/K58tcplogd done.init a été installé sous /etc/rc.d/init.Si vous ne voulez plus que tcplogd soit lancé au démarrage il suffira de supprimer liens sous les répertoires /etc/rc.d/S17tcplogd symlinking /etc/rc.d/K58tcplogd /etc/rc.d/K58tcplogd /etc/rc.init /etc/rc. make[1]: Leaving directory &pi0.d/rc2.d/init.init /etc/rc.d avec les liens suivant pointant vers ce fichier: /etc/rc.d/rc5.d/rc3.init /etc/rc.d/rc4.d/init.d/rc0.d/tcplogd.d/tcplogd.d/S17tcplogd symlinking /etc/rc.funix.org .5' /usr/bin/install -c -g bin -m 755 -o root -s tcplogd /usr/local/sbin /usr/bin/install -c -g bin -m 755 -o root -s confcheck /usr/local/bin Do make cf-install or/and rh-install to install config files or/and redhat startup scripts separately.d/K58tcplogd symlinking /etc/rc.d/rc6.d/tcplogd.d/init.conf Le fichier de démarrage de tcplogd.d/init.d/rc1. pour le lancer ponctuellement il suffira de taper en tant que root Sécuriser son poste Linux 36 http://www.d/init.d/tcplogd.1.d/tcplogd.1.trusted { www.d/rc6.d/rc3.bar.d/S17tcplogd symlinking /etc/rc.d/S17tcplogd /etc/rc.d/S17tcplogd /etc/rc./alphonse/linux/securite/tcplogd-0.Si vous ne voulez pas que tcplogd soit lancé au démarrage. tcplogd.5' .Do not forget to add: local3.d/rc4.com 202.d/rc1.202.com foo.d/rc2.* /var/log/tcp-log to /etc/syslog.

11] Maintenant d'asterix on va faire un scan des ports TCP d'obelix en tapant: nmap -v obelix Voici ce qui va s'afficher en temps réel dans le fichier /var/log/tcp-log Apr 3 18:57:51 obelix tcplogd: "Syn probe" asterix.168.10]:[1224]>obelix.168.13. D'obelix on va d'abord lancer tcplogd.11]:[304] Apr 3 18:57:51 obelix tcplogd: Flood detected Sécuriser son poste Linux 37 http://www.1.11]:[147] Apr 3 18:57:51 obelix tcplogd: "Syn probe" asterix.10]:[1225]>obelix.bz[192.bz[192.* /var/log/tcp-log 5.armoric.168.bz[192.13.d/tcplogd.13.168.armoric.bz votre domaine.13.armoric.13.168.init start A présent éditer le fichier /etc/syslog.13.armoric.armoric.armoric.10]:[1222]>obelix.168.bz[192.13.bz[192.11]:[1421] Apr 3 18:57:51 obelix tcplogd: "Syn probe" asterix.bz[192.13.bz[192.conf et rajouter: local3.13.funix./tcplogd-0.11]:[928] Apr 3 18:57:51 obelix tcplogd: "Syn probe" asterix.armoric. armoric.3 Tests de fonctionnement Soit le poste asterix (IP 192.13.13.armoric.13.13.10) de votre réseau local qui va faire office d'attaquant et obelix (IP 192.168.5/tcplogd.13.armoric. en tapant: /etc/rc.168.org .168.10]:[1220]>obelix.bz[192.armoric..init start Starting tcplogd: [ OK ] Checking tcplogger config file [/usr/local/etc/tcplogd.11) votre poste à protéger.cf] encounted 0 errors.bz[192.bz[192.13.bz[192.armoric.168.11 [A92.10]:[1223]>obelix.168.bz[192.168.10]:[1221]>obelix.d/init.armoric. Scanned configuration is: ignoring ports: 25 113 logging packets: type: "Xmas Three" mask: 29 facility: INFO type: "Syn probe" mask: 2 facility: INFO type: "StealthFin" mask: 1 facility: INFO type: "Null probe" mask: 0 facility: INFO flood limit: 100 flood timeout: 12 trusted hosts 192.168.13.168.2.11]:[4133] Apr 3 18:57:51 obelix tcplogd: "Syn probe" asterix.11]:time Apr 3 18:57:51 obelix tcplogd: "Syn probe" asterix.168.168.

2.3 Portsentry 5.armoric.deny (il ne pourra donc plus faire appel aux services validés dans /etc/inetd.168.bz[192.11]:pop3 Apr 3 19:00:56 obelix tcplogd: "Xmas Three"asterix.bz[192.bz[192. Pour une Mandrake 8.13.10]:[49686]->obelix.13.bz[192.bz[192.11]:pop3 Apr 3 19:00:57 obelix tcplogd: "Xmas Three"asterix.4564 obelix Résultat dans /var/log/tcp-log Apr 3 19:00:56 obelix tcplogd: "Xmas Three" asterix.org . nmap -sX -p 22.1 n'oubliez pas que les TCP Wrappers.armoric.13.10]:[49686]->obelix.13.168.13.bz[192.armoric. DNS (port 53).armoric.10]:[49686]->obelix.168.10]:[49686]>obelix.168. pour cela dans un shell indépendant taper: tail -f /var/log/tcp-log Automatiquement dès qu'une nouvelle ligne sera rajoutée au fichier vous la verrez dans le shell.143.168.13.11]:pop3 Apr 3 19:00:57 obelix tcplogd: "Xmas Three" asterix. 5.armoric.armoric.on reconfigure iptables pour que tout ce qui vient de l'hôte "attaqueur" soit immédiatement rejeté Sécuriser son poste Linux 38 http://www.13.armoric.bz[192.bz[192.A présent d'asterix on va voir si y a SSH (port 22).armoric.armoric.168.13.13.168. il peut mener les actions suivantes: .armoric.168.armoric.168.l'hôte "attaqueur" est automatiquement rajouté dans /etc/hosts.armoric.bz[192.bz[192.53.inscription de l'incident dans le fichier /var/log/messages (via syslogd) .funix. veuillez installer le package tcp_wrappers-7.11]]:imap2 Apr 3 19:00:56 obelix tcplogd: "Xmas Three" asterix.13. en plus de se contenter de détecter les attaques.10]:[49686]->obelix.bz[192.bz[192.110.bz[192.allow.11]:domain Apr 3 19:00:56 obelix tcplogd: "Xmas Three" asterix.conf).armoric.168.armoric.1 Présentation Portsentry est un outil permettant de détecter les attaques de type scan.168.10]:[49687]->obelix.11]:pop3 5.168.168.11]:[4564] Apr 3 19:00:56 obelix tcplogd: "Xmas Three" asterix.13. ne sont pas forcément installés sur votre système.10]:[49686]>obelix.13. POP3 (port 110).6-19mdk.bz[192.168.168. IMAP (port 143) qui tourne et le port 4564 ouvert sur obelix. .168.armoric.armoric.bz[192.deny et hosts.13.4 Utilisation Etant connecté pour voir si vous êtes attaqués vous devez avoir le fichier tcp-log constamment ouvert.10]:[49687]->obelix.13.13. dont dépendent les fichiers hosts.11]:ssh Apr 3 19:00:56 obelix tcplogd: "Xmas Three" asterix.bz[192.13.3.

5./portsentry .tar.c Voilà en tant que root vous pouvez passer à l'installation au bon endroit des exécutables.3. maintenant éditer portsentry_config.conf" On peut à présent lancer la compilation en tapant make linux Voici les messages que vous allez obtenir SYSTYPE=linux Making cc -O -Wall -DLINUX -DSUPPORT_STEALTH -o .D'autres part on peut aller plus loin. si vous voulez que portsentry soit installé sous /usr/local/portsentry. Une fois l'archive placée dans un répertoire de travail de votre choix./portsentry_io.conf" Pour lire #define CONFIG_FILE "/usr/local/portsentry/portsentry.funix./portsentry_util.c .psionic.1.conf.2 Installation On peut récupérer Portsentry à l'URL www./portsentry. si vous voulez qu'il soit sous /usr/local/portsentry.tar.1.gz Un répertoire portsentry-1. par défaut il est fixé ainsi INSTALLDIR = /usr/local/psionic Portsentry sera donc installé sous /usr/local/psionic/portsentry.h par défaut le fichier de configuration de portsentry se trouve sous /usr/local/psionic/portsentry/portsentry. pour être précis on peut récupérer portsentry-1.1 va se créer.gz.com/abacus/portsentry.org . il sufft de modifier la variable INSTALLDIR ainsi: INSTALLDIR=/usr/local C'est pas tout.c \ . vous devez modifier #define CONFIG_FILE "/usr/local/psionic/portsentry/portsentry. dans ce répertoire vous trouverez un fichier Makefile vous pouvez lui définir le répertoire d'installation de portsentry. en coupant automatiquement la connexion par exemple à la moindre attaque. en tapant: make install Sécuriser son poste Linux 39 http://www. tapez pour la décompresser: tar xvfz portsentry-1.

ignore /usr/local/portsentry cp .blocked" A ces endroits là./portsentry.conf and change your settings if you haven't already. Please make sure you delete the old files when the testing of this install is complete. 5.funix. etc) WARNING: This version and above now use a new directory structure for storing the program and config files (/usr/local/portsentry).history" # Hosts that have been denied this session only (temporary until next restart) BLOCKED_FILE="/usr/local/portsentry/portsentry.conf chmod 700 /usr/local/portsentry/portsentry Edit /usr/local/portsentry/portsentry.conf.ignore chmod 600 /usr/local/portsentry/portsentry.Creating portsentry directory /usr/local/portsentry Setting directory permissions chmod 700 /usr/local/portsentry Copying files cp . passons à la configuration. # iptables support for Linux KILL_ROUTE="/sbin/iptables -I INPUT -s $TARGET$ -j DROP" Tous les paquets venants de l'hôte "attaqueur" (-s source TARGET) sont rejetés (DENY) et l'ensemble est logué (option -l) dans /var/log/messages./portsentry /usr/local/portsentry Setting permissions chmod 600 /usr/local/portsentry/portsentry.ignore" # Hosts that have been denied (running history) HISTORY_FILE="/usr/local/portsentry/portsentry. (route. Sécuriser son poste Linux 40 http://www.org .conf /usr/local/portsentry cp ./portsentry. vous devez veiller à avoir les chemins correspondants.4 Configuration Pour cela éditer le fichier de configuration qui se trouve (du moins dans mon exemple) sous /usr/local/portsentry et qui se nomme portsentry. C'est bon portsentry est installé. Les lignes intéressantes ou à modifier sont: ###################### # Configuration Files# ###################### # # Hosts to ignore IGNORE_FILE="/usr/local/portsentry/portsentry.

pour une connexion type câble via l'interface eth0. There are two formats for TCP wrappers: # # Format One: Old Style . on coupe la connexion.0 Pour rajouter un hôte "ami".deny ################### # External Command# ################### # This is a command that is run when a host connects.1 Les modes de fonctionnement Plusieurs modes de lancement existe: Sécuriser son poste Linux 41 http://www. à la moindre attaque détectée.168. Et pour le sous réseau 192. il contient par défaut les lignes suivantes qu'il ne faut pas modifier: 127.X 192. it can be whatever # you want it to be (pager.0. # KILL_HOSTS_DENY="ALL: $TARGET$" L'hôte attaqueur va être automatiquement rajouté à /etc/hosts. TCP/IP is an *unauthenticated protocol* # and people can make scans appear out of thin air.168.The default when extended host processing # options are not enabled. il suffit de rajouter son adresse IP à la suite des deux par défaut.deny file for wrappers # to use.0. il contient la liste des hôtes "amis" et qui ne seront pas considérés comme des attaquants. The only time it # is reasonably safe (and I *never* think it is reasonable) to run # reverse probe scripts is when using the "classic" -tcp mode.13. This command is executed before the # route is dropped.funix. # #KILL_RUN_CMD="/some/path/here/script $TARGET$ $PORT$" KILL_RUN_CMD="/etc/ppp/ppp-off" Ca c'est si vous êtes vraiment parano.).############### # TCP Wrappers# ############### # This text will be dropped into the hosts. l'exemple est donné ici avec une connexion par PPP. I NEVER RECOMMEND YOU PUT IN RETALIATORY ACTIONS # AGAINST THE HOST SCANNING YOU.ignore. la ligne suivante devrait faire l'affaire: KILL_RUN_CMD="/sbin/ifconfig eth0 down" A présent éditer le fichier /usr/local/portsentry/portsentry.13. This # mode requires a full connect and is very hard to spoof.0/24 5.0.org .1/32 0.4. etc.0.

13.Basic port-bound TCP mode Portsentry va vérifier les scans sur les ports TCP et les inscrire dans /var/log/messages via syslog -udp . l'hôte "attaqueur" est appelé asterix (IP 192. il faut évidemment que votre hôte attaqueur ne soit pas dans le fichier portsentry.2 Tests de fonctionnement Un poste de votre réseau va jouer l'attaquant on va utiliser un outil comme nmap pour scruter les ports.-tcp .10) et l'hôte à protéger est nommé obelix (IP 192.168.4.org .11) votre domaine est armoric.1 is starting.funix.ignore. Ignored TCP port: 25 Feb 22 18:52:39 asterix portsentry[5674]: adminalert: Advanced Stealth scan detection mode activated./portsentry_1.0. Ignored TCP port: 53 Feb 22 18:52:39 asterix portsentry[5674]: adminalert: Advanced Stealth scan detection mode activated. Pour plus de détails sur ces modes.13. On va tout d'abord lancer portsentry sur obelix en tapant: /usr/local/portsentry -atcp Voici ce que vous pouvez voir dans /var/log/messages: Feb 22 18:52:39 asterix portsentry[5673]: adminalert: Psionic PortSentry 1.Advanced TCP stealth scan detection mode -sudp "stealth" UDP scan detection Qui vont permettre une détection active des ports TCP et/ou UDP avec blocage des ports.bz. Pour les besoins de l'exemple. se reporter aux fichiers README que vous trouverez dans le répertoire . Ignored TCP port: 110 Feb 22 18:52:39 asterix portsentry[5674]: adminalert: Advanced Stealth scan detection mode activated.Advanced UDP "stealth" scan detection mode -atcp . 5.Basic port-bound UDP mode Idem mais pour les ports UDP Mais les modes les plus intéressants sont -audp .168. Ignored TCP port: 80 Feb 22 18:52:39 asterix portsentry[5674]: adminalert: Advanced Stealth scan detection mode activated. Ignored TCP port: 111 Sécuriser son poste Linux 42 http://www. Feb 22 18:52:39 asterix portsentry[5674]: adminalert: Advanced mode will monitor first 1024 ports Feb 22 18:52:39 asterix portsentry[5674]: adminalert: Advanced mode will manually exclude port: 113 Feb 22 18:52:39 asterix portsentry[5674]: adminalert: Advanced mode will manually exclude port: 139 Feb 22 18:52:39 asterix portsentry[5674]: adminalert: Advanced Stealth scan detection mode activated.

13.fr/192. Ignored TCP port: 953 Feb 22 18:52:39 asterix portsentry[5674]: adminalert: Advanced Stealth scan detection mode activated.168.168...fr/192.13. tapez maintenant: nmap -v obelix Voici le résultat au niveau d'obelix dans /var/log/messages: Détection du scan Feb 22 18:53:03 asterix portsentry[5674]: attackalert: TCP SYN/Normal scan from host: asterix.Feb 22 18:52:39 asterix portsentry[5674]: adminalert: Advanced Stealth scan detection mode activated. Ignored TCP port: 139 Feb 22 18:52:39 asterix portsentry[5674]: adminalert: PortSentry is now active and listening.10 has been blocked via dropped route using command: "/sbin/iptables -I INPUT -s 192.fr/192.10 to TCP port: 794 Rajout de l'attaquant dans le fichier /etc/hosts.10 is already blocked Ignoring Sécuriser son poste Linux 43 http://www.10 -j DROP" Pas de problème pour les autres scans venant de l'attaquant ils seront tous bloqués Feb 22 18:53:03 asterix portsentry[5674]: attackalert: TCP SYN/Normal scan from host: asterix.kervao.org .13.10 is already blocked Ignoring (.168.) Feb 22 18:52:39 asterix portsentry[5674]: adminalert: Advanced Stealth scan detection mode activated.13.deny Feb 22 18:53:03 asterix portsentry[5674]: attackalert: Host 192.168. Ignored TCP port: 113 Feb 22 18:52:39 asterix portsentry[5674]: adminalert: Advanced Stealth scan detection mode activated.168.10" Rejet de tous les paquets de l'attaquant Feb 22 18:53:03 asterix portsentry[5674]: attackalert: Host 192.10 to TCP port: 550 Feb 22 18:53:03 asterix portsentry[5674]: attackalert: Host: asterix.) Feb 22 18:53:03 asterix portsentry[5674]: attackalert: Host: asterix.13.10 has been blocked via wrappers with string: "ALL: 192.funix.168. Ignored TCP port: 932 Feb 22 18:52:39 asterix portsentry[5674]: adminalert: Advanced Stealth scan detection mode activated..168.kervao.13.168.13.kervao.kervao. Ignored TCP port: 119 (. Du poste "attaqueur".fr/192..13.

3 Lancement automatique de portsentry Pour que Portsentry soit lance automatiquement.deny et ne peut donc plus accéder aux services du super serveur inetd. on rajoutera tout à la fin du fichier /etc/rc.firewall Sécuriser son poste Linux 44 http://www.fr/192.Feb 22 18:53:03 asterix portsentry[5674]: attackalert: TCP SYN/Normal scan from host: asterix.13.org .local les lignes suivantes: /usr/local/portsentry/portsentry -atcp /usr/local/portsentry/portsentry -audp Vous pouvez aussi bien placer ces lignes à la fin du fichier /etc/rc.4.funix. 5.deny pour que votre poste asterix puisse à nouveau bénéficier des services d'obelix.10 to TCP port: 444 Vous constaterez maintenant qu'asterix a été rajouté dans /etc/hosts.d/rc.d/rc.kervao. ATTENTION N'oubliez pas de modifier /etc/hosts.168.

Sign up to vote on this title
UsefulNot useful