Skip to Content

Les services réseaux : utilités et contrôles

Un service réseau est un logiciel ayant pour but de répondre à une demande provenant du réseau.
Il n’est pas rare d’avoir un certain nombre de services démarrés en même temps que son système d’exploitation.
Le but de se document est de comprendre l’utilité d’un certain nombre de services reseaux et ainsi jugé s’il est util de le conserver. Puis nous nous attacheront à voir comment utiliser les mécanismes internes aux logiciels pour contrôler les accès et les informations fournies.

Liste des services

Pour connaitre les services réseau :
netstat -tanp | grep LISTEN
Voici un exemple de service :
tcp 0 0 *:111 * :* LISTEN 1505/rpc.portmap

Les informations qui nous interessent ici sont :

  • *:111 : le port 111 est utilisé ...
  • 1505/rpc.portmap : ... par l’application rpc.portmap (ayant le PID 1505)

Pour question de facilité, je vais prendre la syntaxe retourné par l’outil nmap : nmap -sV 192.168.1.76 (la machine utilisé aura l’ip 192.168.1.76).
Cette outil donne la liste des services réseaux démarré sur la machine cible.
La syntaxe de la réponse est : Port/Protocole Etat Nom_du_service.
Voici une liste de service couremment ouvert :


9/tcp open discard ?

but

Le service discard peut être considéré comme l’équivalent du fichier /dev/null sur le réseau : les octets qu’on lui envoie seront oubliés ("discard").

utilisation

telnet 192.168.1.76 9

arret, protection

voir inetd


13/tcp open daytime

but

Donne la date système en clair.

utilisation

telnet 192.168.1.76 13

arret, protection

voir inetd


22/tcp open ssh OpenSSH 3.8p1 (protocol 2.0)

but

Serveur ssh. Permet d’executer des commandes sur une machine a distance, de transmettre des fichiers ... de façon sécurisé.

utilisation

ssh 192.168.1.76

arret, protection

Sous slackware : /etc/rc.d/rc.sshd stop
chmod -x /etc/rc.d/rc.sshd


25/tcp open smtp ???

but

Serveur smtp. Il sert à envoyer et recevoir des courriels. Ce serveur n’est pas utile si vous utilisez une client courrier comme evolution, mozilla-mail ou kmail.

utilisation

telnet 192.168.1.76 25
HELO
Pour vérifier si un utilisateur existe sur le systeme :
VRFY root
250 is deliverable
VRFY existepo
550 Unrouteable address
Plus interessant, il est possible de savoir a qui est rediriger un mail :
EXPN root
250

protection

Il est possible pour certain serveur mail d’interdire les commandes VRFY et EXPN.
Attention a l’openrelay !

arret

Il est possible d’arrêter le serveur smtp.


37/tcp open time

but

Donne la date système.

utilisation

rdate 192.168.1.76

arret, protection

voir inetd


79/tcp open finger Linux fingerd

but

Le serveur finger donne des informations à propos des utilisateurs existants sur l’ordinateur. Les utilisateurs distants peuvent obtenir des informations comme le nom complet, l’adresse, le numéro de téléphone, le titre ...

utilisation

finger @192.168.1.76
finger utilisateur@192.168.1.76
Pour changer les informations de l’utilisateur :
chfn utilisateur

arret, protection

voir inetd


80/tcp open http Apache httpd ???

but

Partage de page internet

utilisation

Un client internet (mozilla par exemple) suffit ;)
Nous allons tester tout de même notre serveur avec nikto
Pour mettre a jour la base
nikto -update
Lancer les tests
nikto -h 192.168.1.76

protection

  • Suppression du numero de version : ServerSignature Off (donner avec telnet 192.168.1.76 80 puis GET /index.html HTTP/1.0 et deux fois "entrée").
  • Verification des répertoires partagés sur internet : regarder les sections . Par exemple chez moi j’ai (en faisant grep " dans une console) :
    • #


    Les lignes commençant par # sont commenté. Ils n’ont donc pas d’effet.
    Comme je n’ai pas de manuel et de cgi-bin, je peux commenté sans problème ces sections (une section commencant par et finissant par
    ).
  • Empêcher la lecture d’un repertoire : dans les sections , supprimer l’option "Indexes"
  • Controle des acces : modifier les lignes suivantes (toujours dans les sections voulues) :
    Order allow,deny -> Order deny,allow
    Allow from all -> Deny from all
    • Nous pouvons ensuite autoriser un nom de fichier particulier :

       Allow from all

      (ici tous les fichiers test.html inclut dans la section seront accessible par tout le monde).
    • Autoriser le poste local d’acceder au serveur : Allow from 127.0.0.1
    • Autoriser le reseau local d’acceder au serveur : Allow from 192.168.1.0/255.255.255.0
    • Demande d’identification pour les autres :
      AuthName "Et oui, il faut s’identifier ici !"
      AuthType Basic
      AuthUserFile /etc/apache/htpasswd
      Require valid-user
      Satisfy Any

      puis creer le fichier /etc/apache/htpasswd :
      htpasswd -c /etc/apache/htpasswd test (pour creer l’utilisateur test).
      Attention :l’option -c n’est utile que pour créer le fichier.

arret

Sous slackware : /etc/rc.d/rc.httpd stop
chmod -x /etc/rc.d/rc.httpd


111/tcp open rpcbind 2 (rpc #100000)

but

SUN Remote Procedure Call (RPC) est technique permettant de gérer des applications client/serveur. Il permet à une application d’appeler une sous-application sur une autre machine. Ce port est utilisé en tant que des moyens bien définis pour déterminer les ports sur lesquels d’autres services fonctionnent sur le système. Il désigné sous le nom d’un "portmapper" parce qu’il fournit un annuaire, ou de "mappage" entre les services disponibles et leurs ports. Les ports étant éphémère.

utilisation

rpcinfo -p 192.168.1.76 (ou nmap -sR 192.168.1.76)
Une liste de service rpc lancé apparait. La liste contient des numeros inscrit dans /etc/nfs.
Un certain nombre de serveur rpc existe :
si mountd -> showmount -e 192.168.1.76 (le demon mountd receptionne le requete de montage de la machine cliente)
si ruserd -> rusers -l 192.168.1.76 (donne les mêmes informations que who en local)
si rstatd -> rup (un broadcast est envoyé. En retour on obtient l’uptime)
Le client peut faire des demande RPC seulement si le demon portmap est lancé. Lors qu’un serveur RPC demarre, il donne à pormap son numero de port d’écoute et sont numéro RPC (voir /etc/nfs).

protection

RPC utilise les mêmes fichiers de configuration que tcpwrapper (voir inetd).

arret

pormap -> voir inetd
les serveurs rpc sont lancé seul. Leur nom est généralement rpc.nom_du_service (exemple rpc.mountd).


113/tcp open ident OpenBSD identd

but

L’idée derrière ce protocole était de fournir un service pour identifier automatiquement les utilisateurs qui essaye de se connecter. Le service distant regarde si la personne qui accède est déjà identifier sur le poste. Cela permettait des authentifications automatiques sur FTP par exemple. Mais les protocoles etaient tellement simple qu’il était facile à contourner.
Il sert aujoud’hui encore pour des serveurs IRC ou serveur mail.

utilisation

nmap -sT -I 192.168.1.76

arret

voir inetd


6000/tcp

but

Offrir a des personnes extérieurs la possibilité de lancer des applications X.

utilisation

Il est nécessaire d’avoir un cookie sur le serveur. Celui est stocké dans le fichier dans le répertoire $HOME/.Xauthority (ou autre suivant le contenu de la variable $XAUTHORITY).
Si le fichier n’existe pas faire :
xauth add :0 . `mcookie`
Le programme xauth est utilisé pour editer et afficher les information d’authentification des utilisateurs pour se connecter sur un serveur X.
serveur : xauth extract fichier $DISPLAY
Copier le fichier sur le client
client : xauth merge fichier
puis xauth generate :0 .
ou
serveur : xauth list
client : xauth add ???????

arret

  • Si vous lancer X avec startX :
    Dans /usr/X11R6/bin/startx mettre : serverargs="-nolisten tcp"
  • Si vous utilisez xdm :
    Dans /etc/X11/xdm/Xserver mettre : :0 local /usr/X11R6/bin/X -nolisten tcp
  • Si vous utilisez gdm :
    Dans le panneau de configuration gdmconfig, onglet Sécurité, cochez Toujours interdir les connexions TCP au serveur X(option par défaut).
  • Si vous utilisez kdm, cherchez et donnez moi la solution ;).

Inetd

Inetd permet de lancer des services au moment où ils sont appelés.
Pour désactiver un service, il suffit de commenter la ligne correspondante dans /etc/inetd.conf.

Inetd n’a aucun mecanisme de contrôle d’accès aux services (contrairement a xinetd). Voila pourquoi la plupart des services sont lancés avec le démon tcpd (le démon tcpwrapper).
Tcpwrapper fait un contrôle au niveau de l’adresse IP. Deux fichiers de configuration sont utilisés :

  • Hôte rejeté : /etc/hosts.deny
  • Hôte accepté : /etc/hosts.allow

La syntaxe des deux fichiers est la suivante :
service : hôte
exemples :

  • finger : ALL :
  • portmap : 127.0.0.1 192.168.1.3

Il semble interessant par défaut d’interdir tout le monde (ALL : ALL : dans /etc/hosts.deny et d’autorisé les hôtes suivants le service)

Commentaires

> Les services réseaux : utilités et contrôles

juste apres

"Pour question de facilité, je vais prendre la syntaxe retourné par l ?outil nmap : nmap -sV 192.168.1.76 (la machine utilisé aura l ?ip 192.168.1.76)."

tu devrais peut etre donner cette sortie en texte ou en capture d’écrant.

Sinon ca parais déconsertant.

Peut etre aussi marquer plus entre les descriptions de ports. Avec une hr ou qqch comme ca non ?