User Tools

Site Tools


formationsecurite:securitelinux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

formationsecurite:securitelinux [2013/01/30 17:52] (current)
Line 1: Line 1:
 +== Secure Shell ==
  
 +Nous utiliserons ((http://​www.openssh.org/​ OpenSSH)). Il existe aussi http://​www.ssh.com/​ qui est une version commerciale.
 +
 +<​code>​ssh 10.10.3.102</​code>​
 +Pour se connecter avec le même user que celui avec lequel on s'est indentifié
 +
 +Pour sortir:
 +<​code>​exit</​code>​
 +ou ctrl+d
 +
 +Pour se connecter en tant que toto:
 +<​code>​ssh toto@10.10.3.102</​code>​
 +ou
 +<​code>​ssh -l toto 10.10.3.102</​code>​
 +
 +=== Clefs ===
 +==== [[Utilisateurs]] ====
 +Quand un utilisateur se connecte pour la première fois sur un serveur, il affiche la clef publique du serveur et demande confirmation.
 +Cette clef publique est ensuite stockée dans ~/​.ssh/​known_hosts et il n'y a plus de confirmation pour les connexions suivantes à ce serveur:
 +
 +<​code>​cat ~/​.ssh/​known_hosts ​
 +callendor.zongo.be,​213.189.177.6 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAq4WKqIZAsd08f4EKhDuJV8hhZzlBYNMxnr4akcXK3HqBfoD8sArzs3UeNK2JYqD96A2kOk0n48SmtBM2D66nvl5KlJmFbnuSqP6alC+bVZlpFyQxXCKsdrJnaW8Y2dUI70eK/​3D2FeAQKJmJHiXmBIyNqFv0mZansJ/​oW6lnJ8k=</​code>​
 +
 +==== Serveur ====
 +<​code>​ls -l /etc/ssh
 +total 148
 +-rw-r--r-- ​ 1 root root 111892 2004-09-04 21:49 moduli
 +-rw-r--r-- ​ 1 root root   1159 2004-09-04 21:49 ssh_config
 +-rw------- ​ 1 root root    668 2005-05-03 10:00 ssh_host_dsa_key
 +-rw-r--r-- ​ 1 root root    603 2005-05-03 10:00 ssh_host_dsa_key.pub
 +-rw------- ​ 1 root root    528 2005-05-03 10:00 ssh_host_key
 +-rw-r--r-- ​ 1 root root    332 2005-05-03 10:00 ssh_host_key.pub
 +-rw------- ​ 1 root root    883 2005-05-03 10:00 ssh_host_rsa_key
 +-rw-r--r-- ​ 1 root root    223 2005-05-03 10:00 ssh_host_rsa_key.pub
 +-rw-r--r-- ​ 1 root root   2861 2004-09-04 21:49 sshd_config</​code>​
 +
 +Il y a 6 clefs:
 +  * 3 privées
 +    * ssh_host_key (ssh 1)
 +    * ssh_host_dsa_key (ssh 2)
 +    * ssh_host_rsa_key (ssh 2)
 +  * 3 publiques
 +    * ssh_host_key.pub (ssh 1)
 +    * ssh_host_dsa_key.pub (ssh 2)
 +    * ssh_host_rsa_key.pub (ssh 2)
 +
 +DSA est breveté. Le brevet sur RSA a expiré en 2000 aux États-Unis. RSA est utilisé par défaut.
 +
 +Lectures:
 +  * ((http://​www.onlamp.com/​pub/​a/​bsd/​2002/​10/​31/​FreeBSD_Basics.html Cryptographic Terminology 101)), 31/10/02
 +  * ((http://​www.rsasecurity.com/​rsalabs/​faq/​3-4-1.html What are DSA and DSS?))
 +  * ((http://​lea-linux.org/​reseau/​secu/​ssh.html SSH, la sécurisation par le chiffrement))
 +
 +On peut aussi échanger des clefs pour pouvoir se logguer sans mot de passe (login non interactif).
 +C'est utile pour l'​automatisation (scripts).
 +
 +=== Principe de connexion ===
 +  * user: "je veux me connecter",​ envoie la clef publique et les algorithmes connus au serveur
 +    * c'est le seul moment où un man-in-the-middle peut avoir lieu
 +  * serveur: l'​algorithme est choisi, envoie sa clef publique à l'​utilisateur encryptée avec la clef publique de l'​utilisateur
 +  * clé symétrique (768 bits) encryptée avec la clef publique du serveur et la clef privée du client
 +    * changement de la clef symétrique tous les 1/4 d'​heure
 +
 +Seul le premier échange passe en clair.
 +
 +=== Configuration ===
 +==== serveur ====
 +/​etc/​ssh/​sshd_config
 +Options:
 +  * ListenAddress:​ écoute que sur l'​adresse spécifiée du réseau (si on a plusieurs interfaces réseau pour la machine)
 +  * X11Forwarding:​ permet d'​avoir des applications graphiques par la connexion
 +  * pubkeyauthentication:​ version 2
 +  * rsaauthentication:​ version 1
 +Pour les autres options, voir la page de manuel :)
 +
 +==== client ====
 +Pour tous les utilisateurs:​
 +/​etc/​ssh/​ssh_config
 +  * port 22
 +  * protocole 2
 +
 +On peut définir une configuration par machine.
 +
 +Chaque utilisateur peut définir son propre fichier dans ~/​.ssh/​ssh_config.
 +
 +=== Exercice ===
 +Créer une authentification sécurisée entre 2 machines.
 +Travailler par binôme
 +  * créer un utilisateur
 +    <​code>​adduser carl</​code>​
 +  * générer les clefs pour cet utilisateur
 +    <​code>​su carl
 +ssh-keygen -t rsa1
 +ssh-keygen -t dsa; ssh-keygen -t rsa</​code>​
 +  * copier la clef publique du binôme dans authorized_keys
 +    <​code>​scp ~/​.ssh/​id_rsa.pub 10.10.3.101:/​home/​carl/​.ssh/​authorized_keys</​code>​
 +    Attention: si l'​utilisateur doit avoir accès depuis différentes machines, faire:
 +    <​code>​scp ~/​.ssh/​id_rsa.pub 10.10.3.101:/​home/​carl/​.ssh/​key_temp</​code>​
 +    se logguer sur la machine et faire:
 +    <​code>​cd .ssh
 +cat key_temp >> authorized_keys</​code>​
 +  * virer l'​authentification par mot de passe:
 +    dans le fichier /​etc/​ssh/​sshd_config,​ changer:
 +    <​code>​PasswordAuthentication no</​code>​
 +    redémarrer sshd:
 +    <​code>/​etc/​rc.d/​rc.sshd restart</​code>​
 +  * tester
 +
 +Pour le binôme, préparer la machine:
 +<​code>​adduser test
 +su test
 +cd
 +mkdir .ssh</​code>​
 +
 +=== Exercice 3 ===
 +N'​autoriser la connexion au serveur que pour les utilisateurs dont la clef machine a été fournie.
 +
 +Changer: /​etc/​ssh/​sshd_config
 +<​code>​HostbasedAuthentication yes</​code>​
 +
 +Mettre les clefs dans /​etc/​ssh/​ssh_known_hosts:​
 +Ici, je mets la clef de la machine (qui se trouve sur cette machine dans /​etc/​ssh/​ssh_host_rsa_key.pub)
 +<​code>​cp /​home/​test/​ssh_host_rsa_key.pub /​etc/​ssh/​ssh_known_hosts</​code>​
 +
 +Ca marche pas.
 +
 +
 +== Securisation ==
 +
 +  * ((http://​www.debian.org/​doc/​manuals/​securing-debian-howto/​ch-sec-services.fr.html#​s5.1 Sécurisation de ssh)) pour [[Debian]]
 +  * ((http://​www.debiansec.com/​linux/​services/​ssh.html ssh service))
 +  * ((http://​www.ice2o.com/​securing_linux3.php Post install steps to securing a Linux box)), 04/2004
 +
 +09/05/05
 +
 +
 +== Exercice ==
 +  * créer un user salle 3
 +    sur le serveur (10.10.3.101):​
 +    <​code>​adduser salle3</​code>​
 +  * autoriser un user par machine à se connecter sur votre poste en tant que salle 3 par clé
 +      sur le client:
 +    <​code>​cd
 +ssh-keygen -t rsa
 +scp .ssh/​id_rsa.pub root@10.10.3.101:/​home/​salle3/​.ssh/​authorized_keys
 +exit</​code>​
 +    sur le serveur:
 +    Éditer le fichier /​etc/​ssh/​sshd_config
 +    <​code>​Protocol 2
 +PermitRootLogin no
 +AllowUsers salle3
 +PasswordAuthentication no</​code>​
 +    Redémarrer le serveur ssh
 +    <​code>/​etc/​rc.d/​rc.sshd restart</​code>​
 +
 +
 +== Tunnels SSH ==
 +Au lieu d'​utiliser [[telnet]] sur le port 23 (tout passe en clair), on va créer un tunnel ssh dans lequel la connexion [[telnet]] passe.
 +
 +  1. créer un tunnel ssh entre les 2 machines (ports source et destination à préciser)
 +  2. on fait passer l'​application par le tunnel
 +
 +Sur le client:
 +Créer le tunnel
 +<​code>​ssh -L 22222:​127.0.0.1:​23 root@10.10.3.101</​code>​
 +
 +//-L 22222// spécifie le port de sortie du client.
 +//​127.0.0.1:​23//​ spécifie la destination finale: IP et port sur lequel on veut arriver (ici, on va sur le serveur ssh en local, donc c'est 127.0.0.1
 +//​root@10.10.3.10//​ connexion au serveur
 +
 +Ensuite, on lance la session [[telnet]]:
 +<​code>​telnet 127.0.0.1 22222</​code>​
 +Le 127.0.0.1 se rapporte à la machine locale, donc le client.
 +
 +Sur le server, il faut un serveur ssh qui écoute.
 +
 +
 +Exercice:
 +Se connecter sur le serveur mail (port 25) de Michaël (10.10.3.108) à travers un tunnel ssh:
 +Sur une première console:
 +<​code>​ssh -L 2225:​127.0.0.1:​25 root@10.10.3.108</​code>​
 +On a un accès shell
 +
 +Dans une 2e console, on lance la session [[telnet]] sur le serveur mail:
 +<​code>​telnet 127.0.0.1 2225
 +Trying 127.0.0.1...
 +Connected to 127.0.0.1.
 +Escape character is '​^]'​.
 +220 forma308.tf3.be ESMTP Sendmail 8.13.3/​8.13.3;​ Mon, 9 May 2005 11:45:29 +0200</​code>​
 +
 +J'ai une session ouverte:
 +<​code>​help
 +214-2.0.0 This is sendmail version 8.13.3
 +214-2.0.0 Topics:
 +214-2.0.0 ​      ​HELO ​   EHLO    MAIL    RCPT    DATA
 +214-2.0.0 ​      ​RSET ​   NOOP    QUIT    HELP    VRFY
 +214-2.0.0 ​      ​EXPN ​   VERB    ETRN    DSN     AUTH
 +214-2.0.0 ​      ​STARTTLS
 +214-2.0.0 For more info use "HELP <​topic>"​.
 +214-2.0.0 To report bugs in the implementation send email to
 +214-2.0.0 ​      ​sendmail-bugs@sendmail.org.
 +214-2.0.0 For local information send email to Postmaster at your site.
 +214 2.0.0 End of HELP info</​code>​
 +
 +On peut voir les connections sur ma machine (sur une 3e console):
 +<​code>​netstat -nat
 +Active Internet connections (servers and established)
 +Proto Recv-Q Send-Q Local Address ​          ​Foreign Address ​        State
 +tcp        0      0 0.0.0.0:​37 ​             0.0.0.0:​* ​              ​LISTEN
 +tcp        0      0 0.0.0.0:​587 ​            ​0.0.0.0:​* ​              ​LISTEN
 +tcp        0      0 127.0.0.1:​2225 ​         0.0.0.0:​* ​              ​LISTEN
 +tcp        0      0 0.0.0.0:​113 ​            ​0.0.0.0:​* ​              ​LISTEN
 +tcp        0      0 0.0.0.0:​22 ​             0.0.0.0:​* ​              ​LISTEN
 +tcp        0      0 0.0.0.0:​25 ​             0.0.0.0:​* ​              ​LISTEN
 +tcp        0      0 127.0.0.1:​2225 ​         127.0.0.1:​33033 ​        ​ESTABLISHED
 +tcp        0      0 127.0.0.1:​33033 ​        ​127.0.0.1:​2225 ​         ESTABLISHED
 +tcp        0      0 10.10.3.101:​32921 ​      ​213.189.177.6:​2222 ​     ESTABLISHED
 +tcp        0      0 10.10.3.101:​32770 ​      ​83.217.68.100:​5223 ​     ESTABLISHED
 +tcp        0      0 10.10.3.101:​33032 ​      ​10.10.3.108:​22 ​         ESTABLISHED
 +tcp        0      0 10.10.3.101:​32769 ​      ​83.217.68.100:​993 ​      ​ESTABLISHED</​code>​
 +
 +<​code>​tcp ​       0      0 127.0.0.1:​2225 ​         0.0.0.0:​* ​              ​LISTEN</​code>​
 +Le tunnel.
 +
 +<​code>​tcp ​       0      0 127.0.0.1:​2225 ​         127.0.0.1:​33033 ​        ​ESTABLISHED
 +tcp        0      0 127.0.0.1:​33033 ​        ​127.0.0.1:​2225 ​         ESTABLISHED
 +tcp        0      0 10.10.3.101:​33032 ​      ​10.10.3.108:​22 ​         ESTABLISHED</​code>​
 +La connexion qui passe par le tunnel.
 +
 +=== Tunnel avec 3 machines ===
 +==== Premier tunnel securise ====
 +  * client (avec client ssh)
 +  * serveur ssh (10.10.3.12)
 +  * serveur web (10.10.3.101)
 +
 +Les 2 serveurs sont supposés être dans un réseau sécurisé (la connexion entre les 2 est en clair).
 +
 +Depuis le client, créer le tunnel:
 +<​code>​ssh -L 8800:​10.10.3.101:​80 root@10.10.3.12</​code>​
 +
 +Ensuite, ouvrir une session avec un browser et surfer sur http://​127.0.0.1:​8800/​
 +
 +Ici, nous allons utiliser un serveur SSH [[Windows]]:​ http://​sshwindows.sf.net/​ avec 2 interfaces réseau:
 +10.10.3.12
 +192.168.0.1
 +
 +Pour l'​installation,​ lancer le wizard d'​installation et suivre les instructions.
 +
 +<​code>​cd c:\program files\openssh\bin
 +mkgroup -l >> ..\etc\group
 +mkgroup -d >> ..\etc\group
 +mkpasswd -l -u administrator >> ..\etc\passwd
 +mkpasswd -d -u administrator >> ..\etc\passwd</​code>​
 +
 +-l pour local groups et -d pour les domain groups
 +
 +Pour lancer le serveur:
 +<​code>​c:​\program files\openssh\usr\sbin\sshd</​code>​
 +
 +Faire de la machine un routeur:
 +Start -> Programs -> Administrative Tools -> Routing and Remote Access
 +DC12 -> click droit -> configure and enable routing and remote access
 +
 +Sur le webserveur, changer la route par défaut:
 +<​code>​route del default gw 10.10.3.250
 +route add default gw 10.10.3.12</​code>​
 +
 +Il faut que les clients (192.168.0.2 et 192.168.0.3) mettent comme passerelle le serveur SSH:
 +<​code>​route add default gw 192.168.0.1</​code>​
 +
 +Note: ça marche pas, donc on va mettre un noyau 2.6 sur la Slackware.
 +
 +<​code>​wget http://​www.kernel.org/​pub/​linux/​kernel/​v2.6/​linux-2.6.11.8.tar.bz2</​code>​
 +
 +10/05/05
 +
 +
 +==== Exercices ====
 +
 +Faire un tunnel sur un serveur (10.10.3.108) et se connecter au serveur mail local par le tunnel.
 +  * création du tunnel:
 +  <​code>​ssh -L 2225:​127.0.0.1:​25 root@10.10.3.108</​code>​
 +  * connection au serveur mail:
 +  <​code>​telnet 127.0.0.1 2225</​code>​
 +
 +Faire un tunnel sur un serveur (10.10.3.102) et se connecter à un serveur mail distant (10.10.3.108):​
 +  * le tunnel
 +  <​code>​ssh -L 2225:​10.10.3.108:​25 alacon@10.10.3.102</​code>​
 +  * connection au serveur mail:
 +  <​code>​telnet 127.0.0.1 2225</​code>​
 +N.B: la connection du serveur SSH au serveur mail n'est pas sécurisée.
 +
 +==== Deuxieme tunnel securise ====
 +
 +Le client et le serveur SSH sont dans le même réseau, le tunnel entre les 2 n'est pas encrypté.
 +Le client force le serveur web a initialiser une connexion SSH avec le serveur SSH.
 +Ceci génère un tunnel sécurisé entre le serveur SSH et les serveur web.
 +Ensuite, on peut faire une requête http depuis le client
 +
 +<​code>​ssh -R 23000:​10.10.3.101:​80 root@10.10.3.102</​code>​
 +
 +Foireux.
 +
 +10.10.3.101:​ serveur web
 +10.10.3.102:​ serveur SSH
 +<​code>​ssh -R 23000:​10.10.3.101:​80 alacon@10.10.3.102</​code>​
 +C'est du port forwarding (pas sécurisé)
 +<​code>​ssh -L 30000:​10.10.3.102:​23000 alacon@10.10.3.102</​code>​
 +C'est un tunnel
 +<​code>​telnet 127.0.0.1 30000</​code>​
 +
 +----
 +HOST1: client
 +HOST2: serveur SSH
 +HOST3: serveur
 +Les 3 machines tournent ssh serveur.
 +sur HOST2:
 +<​code>​ssh -R p1:​127.0.0.1:​p2 HOST1
 +ssh -L p2:​127.0.0.1:​p3 HOST3</​code>​
 +
 +Ensuite, sur HOST1:
 +<​code>​telnet 127.0.0.1 p1</​code>​
 +
 +Avantage: l'​utilisateur sur HOST1 ne doit pas faire de manipulation.
 +
 +=== Lectures ===
 +  * ((http://​www.miscmag.com/​articles/​index.php3?​page=612 ​ Tunnel SSH))
 +  * ((http://​www.linuxlogin.com/​linux/​admin/​sshtunnels.php SSH Tunnels))
 +
 +
 +== Securisation machine ==
 +
 +=== Bios ===
 +  * mot de passe bios: pour pouvoir booter, il faut taper le mot de passe
 +    * désavantage:​ pas de reboot à distance
 +  * mot de passe bios: pour éditer le bios
 +    * obligatoire si on utilise un mot de passe bios
 +    * mettre booter sur le disque dur en premier
 +=== Boot loader ===
 +  * un seul OS sur un serveur
 +  * mot de passe pour booter
 +  * mot de passe par OS à démarrer
 +  * si dual boot, par défaut, mettre l'OS principal
 +  * desactiver les OS qui ne sont pas sûrs (MS-DOS, qui a accès à tout le disque)
 +=== Mots de passe utilisateurs ===
 +  * validité du mot de passe
 +  * sous [[Windows]]:​ activer mot de passe complexe: au moins 3 des 4 règles
 +    * maj & min
 +    * 8 caractères min
 +    * au moins un chiffre
 +    * au moins un caractère non-alphanumérique
 +  * sous Linux: géré par PAM (pluggable authentication manager)
 +  * sous [[Windows]],​ par défaut, l'​utilisateur doit changer son mot de passe au prochain logon
 +  * sous Linux, on peut changer la durée de validité du mot de passe pour chaque utilisateur avec la commande //chage//
 +
 +=== Exercice ===
 +  * lilo
 +    * boot par défaut linux
 +    * mot de passe pour booter linux
 +  * mot de passe root
 +    * complexe (sans message d'​erreur)
 +    * mettre une durée de validité de 5 jours
 +  * désactiver l'​accès shell à root et le login à root
 +==== lilo ====
 +Modifier /​etc/​lilo.conf:​
 +<​code>​sudo vi /​etc/​lilo.conf</​code>​
 +ajouter dans la configuration globale la ligne:
 +<​code>​default = Linux</​code>​
 +Dans la section Linux, ajouter la ligne:
 +<​code>​password = vqjtb26</​code>​
 +Changer les droits sur /​etc/​lilo.conf pour qu'il ne puisse être lu que par root (puisqu'​il y a un mot de passe):
 +<​code>​sudo chmod 0600 /​etc/​lilo.conf</​code>​
 +Lancer lilo pour prendre en compte les modifications:​
 +<​code>​ sudo /sbin/lilo
 +Added Windows
 +Added Linux *</​code>​
 +
 +==== mot de passe root ====
 +Pour le changer:
 +<​code>​sudo passwd</​code>​
 +~CnP1pw
 +S'​assurer qu'il n'y a pas d'​avertissement comme quoi c'est un mot de pas de faible sécurité.
 +Pour la validité de 5 jours:
 +<​code>​sudo chage -M 5 root</​code>​
 +
 +Pour vérifier:
 +<​code>​sudo chage -l root
 +Minimum: ​       0
 +Maximum: ​       5
 +Warning: ​       -1
 +Inactive: ​      -1
 +Last Change: ​           May 11, 2005
 +Password Expires: ​      May 16, 2005
 +Password Inactive: ​     Never
 +Account Expires: ​       Never</​code>​
 +
 +=== Desactiver l'​acces shell a root et le login a root ===
 +
 +  * empêcher root de s'​identifier sur les terminaux: commenter toutes les lignes du fichier /​etc/​securetty
 +  * empêcher root de se connecter à la machine avec SSH en tant que root:
 +    * dans /​etc/​ssh/​sshd_config,​ mettre la ligne:
 +    <​code>​ PermitRootLogin no</​code>​
 +    * redémarrer le service SSH
 +    <​code>/​etc/​rc.d/​rc.sshd restart</​code>​
 +
 +On peut maintenant s'​identifier en tant que root uniquement avec:
 +<​code>​su -</​code>​
 +
 +Pour restreindre l'​utilisation de su à l'​utilisateur toto:
 +  * ajouter toto dans le group wheel:
 +  <​code>​usermod -G wheel toto</​code>​
 +  * restreindre l'​accès au groupe wheel:
 +  <​code>​chgrp wheel /bin/su
 +chgrp wheel /bin/su
 +chmod o-x /bin/su
 +chmod +s /​bin/​su</​code>​
 +
 +Si pour un utilisateur,​ on met dans /etc/passwd le shell à /​bin/​nologin,​ il désactive: login, gdm, kdm, xdm, su, ssh, scp, sftp. Il reste donc l'​accès ftp email (et sudo si c'est pour root).
 +
 +=== Securisation des services ===
 +Limiter les services au minimum nécessaire.
 +Comment voir ce qui tourne?
 +<​code>​netstat -na</​code>​
 +
 +Correspondance service / port: /​etc/​services
 +et http://​www.grc.com/​port_65535.htm
 +
 +
 +Nous allons fermer les ports ouverts:
 +<​code>​root@forma301:/​home/​carl#​ netstat -na
 +Active Internet connections (servers and established)
 +Proto Recv-Q Send-Q Local Address ​          ​Foreign Address ​        State
 +tcp        0      0 0.0.0.0:​37 ​             0.0.0.0:​* ​              ​LISTEN
 +tcp        0      0 0.0.0.0:​587 ​            ​0.0.0.0:​* ​              ​LISTEN
 +tcp        0      0 0.0.0.0:​80 ​             0.0.0.0:​* ​              ​LISTEN
 +tcp        0      0 0.0.0.0:​113 ​            ​0.0.0.0:​* ​              ​LISTEN
 +tcp        0      0 0.0.0.0:​22 ​             0.0.0.0:​* ​              ​LISTEN
 +tcp        0      0 0.0.0.0:​25 ​             0.0.0.0:​* ​              ​LISTEN
 +tcp        0      0 10.10.3.101:​32903 ​      ​83.217.68.100:​5223 ​     ESTABLISHED
 +tcp        0      0 10.10.3.101:​33129 ​      ​83.217.68.100:​993 ​      ​ESTABLISHED
 +udp        0      0 0.0.0.0:​512 ​            ​0.0.0.0:​*
 +udp        0      0 0.0.0.0:​37 ​             0.0.0.0:*
 +udp     ​5196 ​     0 0.0.0.0:​68 ​             0.0.0.0:​*</​code>​
 +
 +port 80: serveur web (apache):
 +<​code>​chmod a-x /​etc/​rc.d/​rc.httpd</​code>​
 +
 +port 25: serveur mail (sendmail):
 +<​code>​chmod a-x /​etc/​rc.d/​rc.sendmail</​code>​
 +
 +port 22: serveur ssh (openSSH):
 +<​code>​chmod a-x /​etc/​rc.d/​rc.sshd</​code>​
 +
 +port 37: serveur de temps: démarré par xinetd
 +port 113: serveur d'​authentification réseau: démarré par xinetd
 +port 512: biff (nouveau email): démarré par xinetd
 +port 587: submission (((http://​www.faqs.org/​rfcs/​rfc2476.html RFC 2476))): pour envoi / réception d'​email
 +
 +<​code>​chmod a-x /​etc/​rc.d/​rc.inetd</​code>​
 +
 +portmap: pour RPC, qui est nécessaire pour nis, nfs et samba
 +<​code>​chmod a-x /​etc/​rc.d/​rc.inet2</​code>​
 +Pour sécuriser nis, nfs et samba: limiter l'​écoute de portmap au réseau local (règle dans iptables)
 +
 +port 68: bootpc: pour le DHCP client (on le laisse).
 +
 +=== Noyau ===
 +  * limiter l'​accès à /boot à root en lecture.
 +  * kernel monolithique:​ pas de modules, choisir les pilotes nécessaires uniquement
 +
 +==== Recompilation ====
 +Décompresser
 +<​code>​tar xjf linux-2.6.11.8.tar.bz2 -C /usr/src/
 +cd /usr/src
 +rm linux
 +ln -s linux-2.6.11.8/​ linux
 +cd linux</​code>​
 +Configuration
 +<​code>​make menuconfig</​code>​
 +Compilation
 +<​code>​make
 +make install</​code>​
 +
 +<​code>​mv /​boot/​vmlinuz /​boot/​vmlinuz-2.6.8.11</​code>​
 +changer /​etc/​lilo.conf:​
 +<​code>#​ Linux bootable partition config begins
 +image = /​boot/​vmlinuz-ide-2.4.29
 +  root = /dev/sda3
 +  label = Linux24
 +  password = vqjtb26
 +  read-only
 +image = /​boot/​vmlinuz-2.6.8.11
 +  root = /dev/sda3
 +  label = Linux26
 +  read-only
 +# Linux bootable partition config ends</​code>​
 +
 +Mettre le noyau 2.6 par défaut:
 +<​code>​default = Linux26</​code>​
 +
 +Puis exécuter lilo
 +<​code>​liloAdded
 +Windows
 +Added Linux24
 +Added Linux26 *</​code>​
 +
 +Et rebooter :)
formationsecurite/securitelinux.txt · Last modified: 2013/01/30 17:52 (external edit)