Sécuriser son poste linux |
![]() |
![]() |
Veillez à ce qu'aucun utilisateur n'ait pas de password et encore moins un password identique au login (très courant !!).
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.
/ 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, suivant votre distrib allez
sur le site correspondant (RedHat www.redhat.com,
Mandrake,
www.linux-mandrake.com,
...), dans la rubrique support vous devriez trouver les derniers packages
corrigeant les trous de sécurité. Ces patchs sont indispensables
pour sécuriser correctement un système, vous devez surveiller
régulièrement leur parution. Sachez qu'il existee des mailing-listes
à ce sujet qui vous préviendront automatiquement de la parution
d'un nouveau patch.
Certaines distributions comme RedHat, dispose d'outils (up2date
pour la RedHat) qui permettent d'upgrader automatiquement le système.
Je vous conseille de tenir à jour un cahier d'administrateur où vous noterez chacune de vos manips systèmes, ça peut se révéler un brin écolier, voire fastidieux, mais ça peut se réléver extrèmement utile dans certains cas. Un simple fichier texte (droit 400 proprio root) avec un copier coller des commandes (et les résultats qui vont avec), et quelques annotations devrait faire l'affaire.
#
# inetd.conf This file describes the services
that will be available
#
through the INETD TCP/IP super server. To re-configure
#
the running INETD process, edit this file, then send the
#
INETD process a SIGHUP signal.
#
# Version: @(#)/etc/inetd.conf
3.10 05/27/93
#
# Authors: Original taken from BSD
UNIX 4.3/TAHOE.
#
Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
#
# Modified for Debian Linux by Ian A. Murdock <imurdock@shell.portal.com>
#
# Modified for RHS Linux by Marc Ewing <marc@redhat.com>
#
# <service_name> <sock_type> <proto> <flags> <user>
<server_path> <args>
#
# Echo, discard, daytime, and chargen are used primarily for testing.
#
# To re-read this file after changes, 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.
# 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.ftpd -l -a
telnet stream tcp nowait
root /usr/sbin/tcpd in.telnetd
#
# Shell, login, exec, comsat and talk are BSD protocols.
# r-outils et autres à désactiver
#
#shell stream tcp nowait
root /usr/sbin/tcpd in.rshd
#login stream tcp nowait
root /usr/sbin/tcpd in.rlogind
#exec stream tcp nowait
root /usr/sbin/tcpd in.rexecd
#comsat dgram udp wait
root /usr/sbin/tcpd in.comsat
#talk dgram udp
wait root /usr/sbin/tcpd in.talkd
#ntalk dgram udp wait
root /usr/sbin/tcpd in.ntalkd
#dtalk stream tcp waut
nobody /usr/sbin/tcpd in.dtalkd
#
# Pop and imap mail services et al
# serveur pop3 pour réseau local activé, 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.
#
#uucp stream tcp nowait
uucp /usr/sbin/tcpd /usr/lib/uucp/uucico -l
#
# Tftp service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers." Do not uncomment
# this unless you *need* it.
#tftp dgram udp
wait root /usr/sbin/tcpd in.tftpd
#bootps dgram udp wait
root /usr/sbin/tcpd bootpd
#
# Finger, systat and netstat give out user information which may
be
# valuable to potential "system crackers." Many sites choose
to disable
# some or all of these services to improve security.
# outils de stats réseau à désactiver
#
#finger stream tcp nowait root
/usr/sbin/tcpd in.fingerd
#cfinger stream tcp nowait root
/usr/sbin/tcpd in.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.identd in.identd -l -e -o
#
# linuxconf stream tcp wait root /bin/linuxconf linuxconf --http
#swat stream tcp
nowait.400 root /usr/sbin/swat swat
S05apmd Utile uniquement pour les portables,
sert à gérer l'autonomie d'une batterie, à virer si
vous avez un poste de bureau
S09pcmcia pour activer les services liés au PCMCIA,
à virer si pas de PCMCIA
S10network active les interfaces réseau (eth0,
...)
S11portmap Utile si vous utilisez des services RPC comme
NFS ou NIS
S15netfs lance le service NFS client, à désactiver
si vous ne montez jamais de file systems d'un serveur NFS
S16ypserv pour lancer le serveur NIS, à désactiver
si non utilisé
S20random ce n'est pas un daemon, mais un truc qui permet de
générer bazar aléatoire, je vois pas trop son utilité
mais vous pouvez le laisser, il n'y aucun risque niveau sécurité
S20rstatd service "r", à désactiver
S20rwhod idem, à désactiver
S20rusersd idem, à désactiver
S20bootparamd, idem tftp, sert pour les terminaux X ou
autres clients "diskless", à désactiver
S30syslog permet de loguer l'activité des daemons lancés
par inetd, à conserver
S34yppasswd si vous êtes un serveur NIS pour pouvoir
changer de mot de passe, à désactiver si non utilisé
(très vulnérable)
S35dhcp daemon DHCP sert pour obtenir une adresse IP,
sert pour les câblés entre autres, à désactiver
si non nécessaire
S40atd utile pour le service at (similaire à
cron),
vous pouvez désactiver si vous vous en servez pas
S40crond pour lancer le daemon cron qui permet
de programmer des tâches à lancer, à virer si vous
ne l'utilisez pas
S50inet pour lancer le réseau,
S50snmpd pour lancer le daemon SNMP, permet de donner
à des utilisateurs distants des informations détaillées
sur votre système, à désactiver
S55named pour lancer le serveur DNS, à désactiver
si vous ça ne sert à rien
S55routed pour router selon le protocole RIP, à
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 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 si non nécessaire
S72autofs pour lancer l'automontage (peut s'appeller aussi
S72amd),
à 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,
à désactiver
S80sendmail pour lancer sendmail, à 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, à désactiver si inutile
S85http pour lancer le serveur Web (Apache), à
désactiver si non utilisé
S86ypbind si vous êtes un client NIS, à
désactiver sinon
S90squid pour lancer le proxy squid, pour partager la
connexion internet, à désactiver si poste isolé
S90xfs pour activer le serveur de fonts X, nécessaire
S91smb pour lancer le serveur samba, si vous partager
des file système ou des imprimantes vers des postes Windows,
à 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, si non utilisé
à désactiver
S99linuxconf permet à quelqu'un sur internet de faire
de la maintenance sur votre système à travers une interface
web, à désactiver
S99local c'est un lien vers /etc/rc.d/rc.local, où
vous pouvez rajouter vos petits trucs
C'est une liste non exhaustive, d'un système à l'autre, le numéro de lancement peut changer. Pour désactiver le service SNMP par exemple il sufit d'abord de le localiser dans tous les répertoires /etc/rc.d/rcX.d:
find /etc/rc.d -name S50snmpd -print
Puis de supprimer tous les liens que vous trouverez.
ATTENTION: Ne supprimer pas le script de lancement sous
/etc/rc.d/init.d
NOTE: Notez précisément ce que vous avez supprimé,
au cas où vous vous voudriez réactiver le service.
Tapez maintenant la commande
ps aux | wc -l
Vous devriez avoir le nombre de process actifs, rebootez et retapez cette dernière commande, suivant le nombre de services que vous avez désactivé le nombre peut avoir diminué de manière significative.
pwconv
Dans le champ password de /etc/passwd (le deuxième) vous
devriez trouver un x, un fichier /etc/shadow a été
créé contenant les mots de passe crypté.
Maintenant on va supprimer autant que possible tous les comptes systèmes
inutiles, si vous en avez pas besoin, supprimez les, car ce sont autant
de portes d'entrée pour les hackers. Les comptes systèmes
suivants sont nécessaires:
root, bin, daemon, adm, lp (si vous
avez un système d'impression), mail (si serveur mail),
news
(si serveur de news), uucp (si vous utilisez UUCP), nobody
Ceux-ci sont facultatifs:
games, gopher, halt, sync, shutdown,
operator,
ftp (si serveur FTP anonyme), lists,
xfs.
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -L -i -o
avec:
-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é
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, dans ce fichier vous devrez
y mettre tous les utilisateurs systèmes, voici un exemple de /etc/ftpusers:
root
bin
daemon
adm
lp
mail
news
nobody
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
Maintenant quand vous vous connectez avec telnet, vous avez toujours
un petit commentaire qui s'affiche, du style "bienvenu sur la machine untel",
vous pouvez modifier cela en mettant le commentaire souhaité dans
le fichier /etc/issue.
Attention sous une Mandrake, le fichier /etc/issue est
regénéré à chaque boot, pour éviter
cela, modifiez la ligne qui va bien dans /etc/rc.d/rc.local.
service: source(adresse IP, réseau, ou nom): optionnel: ALLOW ou DENY
Par exemple /etc/hosts.deny:
ALL: ALL DENY
Pour /etc/hosts.allow
in.telnetd:192.168.13.10::ALLOW
in.ftpd:192.168.13.0/255.255.255.0::ALLOW
NOTES: - Pour le nom du service in.telnetd est le
dernier champ de la ligne telnet du fichier /etc/inetd.conf
- Préférez les adresses IP, plutôt que le nom
- 192.168.13.10 est l'adresse IP d'un hôte autorisé
- 192.168.13.0/255.255.255.0 est un sous réseau complet
On a vu plus haut qu'il fallait éviter d'avoir des fichiers .rhosts ou hosts.equiv, on va donc bloquer ces deux fichiers pour que personne ne puisse les recréer. Pour bloquer les fichiers, il suffit de taper les commandes:
touch /.rhosts /etc/hosts.equiv
chmod 0 /.rhosts /etc/hosts.equiv
![]() |