Welcome to Coding : Sécurité Programmation Réseaux

Search   in  

 Create an Account Home | Submit News Your Account Content | Topics | Top 10  


Accueil
· Home
· Listing des Articles
· Top 10
· Repository des Exploits

Les sujets / parties
· C / C ++
· Visual Basic
· Asm
· Reseaux
· Java
· Securite
· Divers

Utile
· Listing des Articles

· Telecharger
· Le Forum
· Liens
· Proposer un article

Top20 des Downloads
· 1: Etude des reseaux generalites et protocoles
· 2: Cheval de troie en VB avec sources
· 3: Netcat 1.1
· 4: Keylogger
· 5: Etudes des reseaux hauts debits architectures et protocoles
· 6: Ecoute de port
· 7: Etude du Smart Spoofing
· 8: Win Packet Capture Utils
· 9: Tutorial on Traffic Interception on Switched Lan using ARP spoofing
· 10: Cours de C

User Info
Welcome, Anonymous
Nickname
Password
(Register)
Membership:
Latest: trapcodien
New Today: 1
New Yesterday: 0
Overall: 2207

People Online:
Visitors: 42
Members: 1
Total: 43

Online Now:
01: trapcodien

  
Installation et securisation d'une station Debian 3.0 stable
Posted on Thursday, March 11 @ 16:50:55 CET
Topic: Securité
Securité

	Ce document de  Simon Castro presente l'installation et la securisation d'une  station GNU Linux Debian 3.0 stable.


Ce document est decoupe en plusieurs parties. Les cinq premieres, numerotees de 1 a 5 et composees de plusieurs etapes, concernent l'installation et la securisation plus ou moins fine de la station :

* La premiere partie commence au moment ou vous bootez sur le CD d'installation jusqu'au premier reboot. Rien de bien difficile.

* La seconde partie commence apres le premier reboot jusqu'au moment ou le systeme vous propose le prompt. Toujours rien de bien complique.

* La troisieme partie vous permet de proceder a la configuration initiale du systeme, a sa securisation minimale et a sa mise a jour. Vous obtenez en resultat une station stable avec le minimum de services actives et le firewall Ipchains active.

* La quatrieme partie aborde une serie de procedures a suivre pour obtenir une securisation "moderee" de la station. Vous pouvez choisir d'ignorer des etapes.

* La cinquieme partie presente diverses actions que vous pouvez suivre pour obtenir une securisation "approfondie" de la station. Libre a vous de vous y interesser ou non.

---- Phpnuke a une limite de 64ko donc pour avoir le tuto au complet Cliquez LA

=============================================================================== Installation et securisation d'une station Debian 3.0 stable - v0.1.12 Simon Castro - 20/12/2003 http://www.entreelibre.com/scastro/debian-secinst/ =============================================================================== Copyright (c) 2003 Simon Castro, scastro [ at ] entreelibre.com. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. You must have received a copy of the license with this document and it should be present in the fdl.txt file. If you did not receive this file or if you don't think this fdl.txt license is correct, have a look on the official http://www.fsf.org/licenses/fdl.txt licence file. =============================================================================== Ce document presente l'installation et la securisation d'une station GNU Linux Debian 3.0 stable. Vous pouvez vous en servir comme aide-memoire, comme "guide" pour redaction d'une procedure, comme d'un exemple de que vous pourriez faire ou que vous ne feriez pas, etc... Tout ce qui est inscrit dans le document a ete teste. Je fais les manipulations et consigne les commandes dans le document quand le resultat me convient. Cependant, je vous rappelle que j'ai teste tout ceci sur mes stations et que, vous en ayant informe, je ne saurais etre tenu pour responsable de ce qui pourrait vous arriver si vous rencontriez des problemes. Ce document est decoupe en plusieurs parties. Les cinq premieres, numerotees de 1 a 5 et composees de plusieurs etapes, concernent l'installation et la securisation plus ou moins fine de la station : * La premiere partie commence au moment ou vous bootez sur le CD d'installation jusqu'au premier reboot. Rien de bien difficile. * La seconde partie commence apres le premier reboot jusqu'au moment ou le systeme vous propose le prompt. Toujours rien de bien complique. * La troisieme partie vous permet de proceder a la configuration initiale du systeme, a sa securisation minimale et a sa mise a jour. Vous obtenez en resultat une station stable avec le minimum de services actives et le firewall Ipchains active. * La quatrieme partie aborde une serie de procedures a suivre pour obtenir une securisation "moderee" de la station. Vous pouvez choisir d'ignorer des etapes. * La cinquieme partie presente diverses actions que vous pouvez suivre pour obtenir une securisation "approfondie" de la station. Libre a vous de vous y interesser ou non. Les parties finales du document numerotees de I a VII. presentent des aide-memoire ou des procedures a suivre pour ajouter des elements sur la station. Quand des ajouts d'elements sont presentes, ils ont toujours ete effectues sur une station installee suivant les etapes decrites dans les parties 1 a 5. Et pour finir, n'hesitez pas a me faire part de vos commentaires et/ou idees, surtout si : vous n'avez rien compris a ce que j'ai ecris :) ou si vous avez suivi une procedure qui n'a pas donne le resultat escompte. =============================================================================== CHANGEMENTS : ============= v0.1.12 (20/12/2003) : ---------------------- Modifications : # IV.b. Configuration initiale : Precision pour l'ajout du groupe webadm. # 4.4. Recherche et modifications de droits de fichiers : Note quand a la suppression des privileges. # 4.12. Preparation d'une restauration du systeme en cas d'incident : Note sur la compilation de gnu tar en statique. Ajouts : # III.c. SmartHost Exim # III.d. Client Samba # VIII. INSTALLATION D'UN DEMON NAGIOS # IX. GRAPHIQUES MRTG POUR LE SERVER-STATUS APACHE # ANNEXE 14 - Script d'initialisation Nagios v0.1.11 (02/11/2003) : ---------------------- Modifications : # V.c. Reccomandations: Reverse-Proxy Apache pour la console d'admin web WAS + localisation des donnees a editer pour modifier les ressources memoire. # 3.3. Fichiers de configuration de l'environnement administrateur: shortcuts pour bash dans le fichier .inputrc # 3.5. Securisation minimale (en mode super-utilisateur): Desactivation de lpr dans /etc/cron.weekly # ANNEXE 13 - ACLs GrSecurity pour Debian-secinst: Beaucoup de modifications et d'ajouts v0.1.10 (26/10/2003) : ---------------------- Ajouts : # 5.8. Securisation approfondie avec GrSecurity # ANNEXE 11 - Parametres de configuration d'un noyau GrSecurity # ANNEXE 12 - Configuration Sysctl de GrSecurity # ANNEXE 13 - ACLs GrSecurity pour Debian-secinst Modifications : # Quelques corrections v0.1.9 (01/06/2003) : --------------------- Ajouts : # REMERCIEMENTS : Ajout de remerciements avant les annexes. Modifications : # '1. INSTALLATION DU SYSTEME' : Une note sur le branchement reseau du systeme dans le cas d'une installation via un outil comme VmWare (tm). # '2.3. Creez un premier utilisateur' : Ajout d'une note sur l'utilisation de cet utilisateur. # '3.1 Logguez vous sous votre utilisateur puis en root' : precision. # '3.3. Fichiers de configuration de l'environnement administrateur' : Ajout une precision sur ce que sont les administrateurs. # '3.5. Securisation minimale (en mode super-utilisateur)' : Ajout d'une note sur les implications de modification de /etc/securetty. # '3.6. Recompilation du noyau pour le support firewall ipchains' : Ajout d' une note sur l'installation eventuelle d'autres sources de noyau 2.2.x. v0.1.8 (29/05/2003) : --------------------- Publication en ligne de la documentation. Ajouts : # WEBOGRAPHIE : Ajout d'une webographie avant les annexes. Modifications : # '5.7. Installation de Prelude-Lml pour une remontee de log securisee vers un serveur centralise' : Suppression de tout ce qui apparait deja dans la doc specifique Prelude. # 'ANNEXE 4 - Script d'arret/demarrage de prelude-lml' : Suppression du script desormais disponible dans la doc specifique Prelude. # 'ANNEXE 5 - Fichier de regles pour un support Ipchains avec Prelude-lml': Suppression du fichier de regle desormais disponible dans la doc Prelude. v0.1.7 (19/05/2003) : --------------------- Modifications : # '5.2. Installation du wrapper libsafe' : Quelques corrections. # '5.7. Installation de Prelude-Lml pour une remontee de log securisee vers un serveur centralise' : Corrections et utilisation des versions stables a la date de redaction. # 'V. INSTALLATION ET SECURISATION D'UN SERVEUR D'APPLICATION WEBSPHERE' : Indication sur l'installation reussie du wrapper libsafe apres installation de Websphere. v0.1.6 (13/05/2003) : --------------------- Modifications : # '4.12. Preparation d'une restauration du systeme en cas d'incident' : Ajout d'un fichier d'informations contenant les noms des archives a decompacter lors de la restauration => Il est ainsi par exemple possible de preciser de decompacter l'archive de /var avant celle de /usr. Ajout d'un binaire tar compile en statique. # 'ANNEXE 9 - Script de restauration' : Modification du script prenant en compte les modifications de '4.12.Preparation d'une restauration du systeme en cas d'incident'. # Formatage du document en 80 colonnes justifiees a l'exception des annexes. v0.1.5 (06/05/2003) : --------------------- Ajouts : # 4.12. Preparation d'une restauration du systeme en cas d'incident. # ANNEXE 9 - Script de restauration. # ANNEXE 10 - Exemple de script Fdisk. Modifications : # '4.11. Backup du systeme sur une partition specifique' : Modification des explications pour refleter le nouveau script. # 'III.a. J'ai oublie de preparer une partition ..': Ajout d'un appel a e2fsk pour verifier les partitions. # 'ANNEXE 8 - Script de backup' : Modification de la fonctionnalite de backup incremental. Par defaut, on fait un backup incremental de tous les changements survenus depuis la derniere sauvegarde 'full'. Vous pouvez egalement decommenter une ligne qui permet de faire un backup incremental jour apres jour des dernieres modifications effectuees apres le backup. Ajout du flag '-p'. Ajout d'un archivage cpio des repertoires exclus lors d'un backup full. v0.1.4 (23/04/2003) : --------------------- Ajouts : # 4.10. Systeme de fichiers ext3 avec un noyau 2.4 : de ext2 a ext3 # 4.11. Backup du systeme sur une partition specifique # IV.e. Sauvegarde du systeme # V.d. Empreinte du systeme # V.e. Sauvegarde du systeme # VII. INSTALLATION D'UN SERVEUR SAMBA POUR UNE GESTION DE BACKUP # ANNEXE 8 - Script de backup Modifications : # 'ANNEXE 1 ...' et 'ANNEXE 7 ...': Ajout de regles commentees pour autoriser certaines stations a nous envoyer certains types de requetes ICMP et pour autoriser les divers flux du protocole NetBios necessaires a l'integration de la fonctionnalite presentee dans 'VII. INSTALLATION D'UN SERVEUR SAMBA POUR UNE GESTION DE BACKUP'. # '3.5. Securisation minimale (en mode super-utilisateur)': Ajout d'un exemple de banniere de login. # '4.2. Securisation du systeme de fichiers' : Ajout de notes sur les options de montage relatives a la prevision d'installation d'un serveur Web et d'un serveur Was. # '5.3. Conserver une empreinte de verification d'integrite du systeme': Ajout de regles pour la verification d'empreintes. v0.1.3 (16/04/2003) : --------------------- Corrections : # '4.8. Installation et premiers pas avec Modular-Syslog' : Restauration d'un filtrage convenable vers fw_accept/fw_deny.log Modifications : # 'ANNEXE 1 - Parametrage du firewall Ipchains' : Maj de tous les scripts. # 'ANNEXE 7 - Parametrage du firewall NetFilter' : Maj de tous les scripts a l'image de ceux de l'ANNEXE 1. # 'ANNEXE 1 ...' et 'ANNEXE 7 ...' : Deplacement de la configuration /proc/sys/net vers un fichier disjoint. v0.1.2 (15/04/2003) : --------------------- Modifications : # Plusieurs corrections un peu partout. # Reecriture de '5.7. Installation de Prelude-Lml pour une remontee de log securisee vers un serveur centralise' Ajouts : # 1.5. 'Partitionnez le disque dur' : Notes sur le partitionnement relatif a l'installation d'un serveur Web et a l'installation d'un serveur IBM Websphere. # 3.6. 'Recompilation du noyau pour le support firewall ipchains' : Une note sur la faille ptrace. # IV. INSTALLATION ET SECURISATION D'UN SERVEUR APACHE MODSSL # V. INSTALLATION ET SECURISATION D'UN SERVEUR D'APPLICATION WEBSPHERE # VI. INTEGRATION DE NETFILTER / IPTABLES # ANNEXE 6 - Fichier de configuration Apache minimal # ANNEXE 7 - Parametrage du firewall NetFilter v0.1.1 (26/03/2003) : --------------------- Modifications : # 1.5. Partitionnez le disque dur : Changement des tailles prevues pour les partitions. # 4.3. Securisation des comptes : Ajout de la directive 'DEFAULT_HOME no' dans /etc/login.defs # 4.6. Synchronisation horaire avec un serveur NTP : Modification de l'appel crontab pour eviter de recevoir des mails lors des synchronisations periodiques. # 4.8. Installation et premiers pas avec Modular-Syslog: Ajout et modification des regles de filtrage des evenements securite. # ANNEXE 1 - Parametrage du firewall Ipchains : Corrections de regles pour le script de chargement des regles et Ajout de regles pour autoriser les communications avec un manager Prelude. # ANNEXE 2 - Generation automatisee de rapport systeme : Dans STRANGE_FILES, ajout du chemin vers 'find' et modification pour eviter d'envoyer les erreurs vers la sortie standard. Ajout : # 5.7. Installation de Prelude-Lml pour une remontee de log # ANNEXE 4 - Script d'arret/demarrage de prelude-lml # ANNEXE 5 - Fichier de regles pour un support Ipchains avec Prelude-lml v0.1.0 (21/03/2003) : Version initiale. --------------------- ================================================================================ A FAIRE : ========= # Gestions d'un restore disk (avec des scripts (?)) # 'Suppression' des binaires inutiles (gcc, gdb etc...) # Doc d'installation/configuration d'un client samba pour monter des fichiers vers win32. # Modification de la stack IP pour compliquer un OS fingerprinting. # Meme chose que precedemment pour les services actifs et accessibles a distance. # Serveur de packages # Monter la partition '/' en lecture seule ? # RAID ? A COMPLETER : ============= # 4.9. Verification des empreintes des packages a installer. # Reconfiguration des filtres PCRE pour Prelude avec le noyau 2.4 # Mettre en place une politique de limite au niveau du firewall NetFilter A PERFECTIONNER : ================= # Gestion des quotas sur toutes les partitions. # Gestion des delais de grace pour les quotas. # Gestion approfondie de la securite PAM (cracklib, etc...). # Chroot Websphere ? # 4.12. Preparation d'une restauration du systeme en cas d'incident # 5.8. Securisation approfondie avec GrSecurity # IX. GRAPHIQUES MRTG POUR LE SERVER-STATUS APACHE : Lancer les scripts sous une autre identite que celle du super-utilisateur. A PERFECTIONNER SI QUELQU'UN ME DONNE DES IDEES : ================================================= # Verifications periodiques et rapports # Amelioration de /etc/syslog.conf # Amelioration de l'installation prelude-lml ================================================================================ SOMMAIRE ======== 1. INSTALLATION DU SYSTEME 1.1. Booter sur le CD 1.2. Menu d'installation 1.3. Choisir la langue 'Francais (fr)' puis 'Francais (France)' 1.4. Configurer le clavier avec le mode 'azerty/fr latin1' 1.5. 'Partitionnez le disque dur' 1.6. 'Initialisez une partition d'echange' 1.7. 'Initialisez les partitions Linux' crees en 1.5. 1.8. 'Installez le noyau et les modules' 1.9. 'Configurez les modules et pilotes materiel' 1.10. 'Configurez le reseau' 1.11. 'Installez le systeme de base' 1.12. 'Rendez le systeme amorcable' 1.13. 'Creez une disquette d'amorcage' 1.14. Retirez la disquette et le CDROM et 'reamorcez le systeme' 2. CONFIGURATION INITIALE DU SYSTEME 2.1. GMT : Oui 2.2. Mots de passe 2.3. Creez un premier utilisateur 2.4. 'Retirer le package PCMCIA' => Oui, si vous ne l'avez pas deja supprime 2.5. 'Connexion PPP pour installer le systeme' => Non 2.6. 'Configuration APT' 2.7. 'Utiliser TaskSel' => Non 2.8. 'Utiliser Dselect' => Non 2.9. Si vous avez supprime le package PCMCIA en 2.4., repondez 'Oui' quand on vous demande de le retirer du systeme 2.10. 'Supprimer les .deb' => Oui 2.11. 'Configuration des Mails' 3. PREMIER ACCES AU SYSTEME ET SECURISATION MINIMALE 3.1 Logguez vous sous votre utilisateur puis en root 3.2. Lancez Dselect 3.3. Fichiers de configuration de l'environnement administrateur 3.4. Fichiers de configuration de l'environnement super-utilisateur 3.5. Securisation minimale (en mode super-utilisateur) 3.6. Recompilation du noyau pour le support firewall ipchains 3.7. Configuration du firewall Ipchains 3.8. Mise a jour securite du systeme (super-utilisateur) 4. SECURISATION MODEREE 4.1. Notes sur le boot du systeme et sur le noyau 4.2. Securisation du systeme de fichiers 4.3. Securisation des comptes 4.4. Recherche et modifications de droits de fichiers 4.5. Les administrateurs n'ont pas besoin de passer root 4.6. Synchronisation horaire avec un serveur NTP 4.7. Generation automatisee d'un rapport systeme 4.8. Installation et premiers pas avec Modular-Syslog 4.9. Verification des empreintes des packages a installer 4.10. Systeme de fichiers ext3 avec un noyau 2.4 : de ext2 a ext3 4.11. Backup du systeme sur une partition specifique 4.12. Preparation d'une restauration du systeme en cas d'incident 5. SECURISATION APPROFONDIE 5.1. Installation du patch OpenWall 5.2. Installation du wrapper libsafe 5.3. Conserver une empreinte de verification d'integrite du systeme 5.4. Gestion des quotas 5.5. Securisation PAM : Gestion des limites 5.6. Disquette de secours avec Tomsrtbt 5.7. Installation de Prelude-Lml pour une remontee de log securisee vers un serveur centralise 5.8. Securisation approfondie avec GrSecurity I. INFORMATIONS SUR LA GESTION DE PACKAGES DEBIAN I.a. Creation d'un package Debian II. COMPILATION DU NOYAU II.a. Compilation d'un noyau personnalise II.b. Installation du noyau III. ADMINISTRATION : QUELQUES CONSEILS III.a. J'ai oublie de preparer une partition ... III.b. Dselect ne parvient pas a configurer les packages a cause des permissions de /tmp III.c. SmartHost Exim III.d. Client Samba IV. INSTALLATION ET SECURISATION D'UN SERVEUR APACHE MODSSL IV.a. Installation IV.b. Configuration initiale IV.c. Integration des quotas IV.d. Empreinte du systeme IV.e. Sauvegarde du systeme V. INSTALLATION ET SECURISATION D'UN SERVEUR D'APPLICATION WEBSPHERE V.a. Installation V.b. Configuration initiale : Restauration du 'read-only' sur /usr, deplacement vers /var/was, attribution de permissions restreintes et execution du service WAS sous une identite restreinte V.c. Reccomandations V.d. Empreinte du systeme V.e. Sauvegarde du systeme VI. INTEGRATION DE NETFILTER / IPTABLES VI.a. Compilation du noyau VI.b. Scripts d'initialisation VII. INSTALLATION D'UN SERVEUR SAMBA POUR UNE GESTION DE BACKUP VII.a. Installation VII.b. Configuration VIII. INSTALLATION D'UN DEMON NAGIOS VIII.a Archives VIII.b Creation des groupes/utilisateurs VIII.c Compilation/Installation de Nagios VIII.d Deplacement des repertoires et attribution de permissions specifiques VIII.e Configuration d'Apache VIII.f Configuration des autorisations d'acces VIII.g Script d'initialisation et administrateurs Nagios VIII.h Et pour finir IX. GRAPHIQUES MRTG POUR LE SERVER-STATUS APACHE IX.a Archives IX.b Configuration WEBOGRAPHIE REMERCIEMENTS ANNEXE 1 - Parametrage du firewall Ipchains ANNEXE 2 - Generation automatisee de rapport systeme ANNEXE 3 - syslogd-listfiles.msyslog.patch ANNEXE 4 - Script d'arret/demarrage de prelude-lml ANNEXE 5 - Fichier de regles pour un support Ipchains avec Prelude-lml ANNEXE 6 - Fichier de configuration Apache minimal ANNEXE 7 - Parametrage du firewall NetFilter ANNEXE 8 - Script de backup ANNEXE 9 - Script de restauration ANNEXE 10 - Exemple de script Fdisk ANNEXE 11 - Parametres de configuration d'un noyau GrSecurity ANNEXE 12 - Configuration Sysctl de GrSecurity ANNEXE 13 - ACLs GrSecurity pour Debian-secinst ANNEXE 14 - Script d'initialisation Nagios ================================================================================ 1. INSTALLATION DU SYSTEME ========================== NDR : * Si le systeme est 'critique' ou l'environnement 'dangereux' et que l'adressage est statique, ne branchez pas la station sur le reseau. * Si l'adressage est dynamique 'DHCP' et que vous etes dans le cas precedent, branchez la station pour l'etape 1.10. uniquement. * Si vous effectuez une installation par VmWare (tm) (ou tout autre outil du meme genre, je suppose que vous devez avoir confiance dans votre systeme hote. Faites cependant attention a ce que votre systeme cible ne soit pas up sur le reseau avant d'etre securise un minimum ? 1.1. Booter sur le CD. 1.2. Menu d'installation : Si le disque dur ou des peripheriques sont SCSI => entrer compact puis 'enter' Sinon, => entrer 'enter' 1.3. Choisir la langue 'Francais (fr)' puis 'Francais (France)'. 1.4. Configurer le clavier avec le mode 'azerty/fr latin1'. 1.5. 'Partitionnez le disque dur' * Effacez toutes les partitions presentes. * Creez les partitions suivantes : => Les lignes suivantes sont baties sur le modele primaire/logique - nom de la partition - taille (Mo) - montage Partitionnement du disque : Primaire - /sda1 - 100 - / Primaire - /sda2 - 300 - Swap (pas de point de montage) Primaire - /sda3 - 20 - /boot Logique - /sda5 - 50 - /root Logique - /sda6 - 120 - /var Logique - /sda7 - 50 - /var/log Logique - /sda8 - 200 - /tmp Logique - /sda9 - 2000 - /usr Logique - /sda10 - 500 - /home Logique - /sda11 - ? - /local -> La premiere partition doit etre marquee comme bootable. -> Toutes les partitions doivent etre de type 'Linux' sauf la deuxieme partition qui doit etre de type 'Linux Swap'. -> La derniere partition est d'une taille relative a l'espace disque restant apres creation des partitions principales. Note sur le partitionnement relatif a l'installation d'un serveur Web : [...] Logique - /sda10 - 500 - /home Logique - /sda11 - 300 - /var/www Logique - /sda12 - ? - /local -> La taille 300M est arbitraire, prevoyez une allocation relative a VOTRE installation. N'oubliez pas de consulter 'IV. INSTALLATION ET SECURISATION D'UN SERVEUR APACHE MODSSL' Note sur le partitionnement relatif a l'installation d'un serveur IBM Websphere : [...] Logique - /sda10 - 500 - /home Logique - /sda11 - 300 - /var/www Logique - /sda12 - 200 - /var/was Logique - /sda13 - ? - /local -> La taille 200M est arbitraire, prevoyez une allocation relative a VOTRE installation. N'oubliez pas de consulter 'V. INSTALLATION ET SECURISATION D'UN SERVEUR D'APPLICATION WEBSPHERE' Note sur le partitionnement relatif a la creation d'une partition de backup : [...] Logique - /sda10 - 500 - /home Logique - /sda11 - 300 - /var/www Logique - /sda12 - 200 - /var/was Logique - /sda13 - 1000 - /backup Logique - /sda14 - ? - /local -> La taille 1000M est arbitraire, prevoyez une allocation relative a VOTRE installation. Personnellement, 500 Mo pour une sauvegarde full mensuelle + les sauvegardes incrementales journalieres me conviennent en faisant du menage tous les mois, mais je prefere voir large. N'oubliez pas de consulter 'VII. INSTALLATION D'UN SERVEUR SAMBA POUR UNE GESTION DE BACKUP' => Terminer en ecrivant les partitions sur le disque 'Write' puis en sortant du menu 'Quit'. 1.6. 'Initialisez une partition d'echange' => Pour se faire, acceptez de l'initialiser sur /dev/sda2 et recherchez les blocs defectueux. 1.7. 'Initialisez les partitions Linux' crees en 1.5. => 'Suivant' pour la premiere, 'Autre choix' pour les suivantes. => Recherchez les blocs defectueux pour chacune des partitions => Entrez les points de montage precises dans 1.5. 1.8. 'Installez le noyau et les modules' => 'CDROM Debian trouve ?', repondez 'Oui'. 1.9. 'Configurez les modules et pilotes materiel' => Choisissez des pilotes a ajouter au systeme. => NDR : pour Compaq, le pilote reseau peut etre 'net' -> 'tlan' et vous pouvez l'ajouter dans le noyau. 1.10. 'Configurez le reseau' => Choisissez DHCP ou Adressage statique. 1.11. 'Installez le systeme de base' => Utilisez le 'media' : 'CDROM'. => Utilisez le 'repertoire pour systeme de base' : 'instmnt'. 1.12. 'Rendez le systeme amorcable' => Installez dans le mbr. 1.13. 'Creez une disquette d'amorcage' => Ceci est optionnel. 1.14. Retirez la disquette et le CDROM et 'reamorcez le systeme'. ================================================================================ 2. CONFIGURATION INITIALE DU SYSTEME ==================================== NDR : Cette partie est relative a la configuration suivant le reboot de 1. 2.1. GMT : Oui. => Choisir 'Europe' puis 'Paris'. 2.2. Mots de passe : => 'Activation mots de passe MD5' : Oui => 'Activation mode shadow' : Oui => Entrez le mot de passe pour root 2.3. Creez un premier utilisateur. => Cet utilisateur sera par la suite utilise comme administrateur du systeme. 2.4. 'Retirer le package PCMCIA' => Oui, si vous ne l'avez pas deja supprime. 2.5. 'Connexion PPP pour installer le systeme' => Non 2.6. 'Configuration APT' => 'Cdrom' => Entrez le premier CD d'installation et validez '/dev/cdrom' => 'Scan another CD' : Oui pour tous les CD du set que vous possedez. => 'Ajouter une autre source APT' : Non => 'Use security update' : Non 2.7. 'Utiliser TaskSel' => Non 2.8. 'Utiliser Dselect' => Non 2.9. Si vous avez supprime le package PCMCIA en 2.4., repondez 'Oui' quand on vous demande de le retirer du systeme. 2.10. 'Supprimer les .deb' => Oui 2.11. 'Configuration des Mails' => '4. Local delivery only' => Entrez le nom de l'administrateur configure en 2.3. et confirmez. Le systeme doit maintenant vous donner un prompt. ================================================================================ 3. PREMIER ACCES AU SYSTEME ET SECURISATION MINIMALE ==================================================== Vous venez de finir la configuration initiale du systeme et votre station n'est normalement pas encore connectee au reseau. 3.1 Logguez vous sous votre utilisateur puis en root. => i.e. : connectez vous avec votre utilisateur en mode console, puis entrez la commande 'su -' pour obtenir l'identite super-utilisateur. 3.2. Lancez Dselect * 'Update' * 'Select' et selectionnez les packages que vous desirez a partir du CDROM (vim, gpm, emacs, etc...) * 'Install' NDR : Meme si vous ne selectionnez rien, passez quand meme par les etapes 'Update' et 'Install'. NDR : Il est conseille de ne pas faire plusieurs choses a la fois : Installation minimale, puis installation des packages absolument necessaires, puis installation du serveur X par exemple. NDR : Il FORTEMMENT conseille de n'installer que le STRICT necessaire. Finissez en lancant les commandes updatedb et mandb Man : dselect, apt, updatedb et mandb. Securisez un minimum le systeme : 3.3. Fichiers de configuration de l'environnement administrateur. NDR : J'appelle environnement administrateur, l'environnement des utilisateurs qui auront la possibilite d'administrer la station. Ajoutez un fichier ~/.bash_logout contenant : case "`tty`" in /dev/tty[0-9]) clear esac Ajoutez un fichier ~/.bash_profile contenant : umask 027 if [ -f ~/.bashrc ]; then source ~/.bashrc fi Modifiez le fichier ~/.bashrc pour y faire figurer : export TMOUT=300 alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias ll='ls -l' alias la='ll -A' alias l='ll -CF' alias do_term='eval `tset -s -Q vt100`' alias show_process='ps ax -o user,pid,command' # Decommentez ici si vous souhaitez ce type de prompt # export PS1='e[1;34mue[0m@h:[e[1;31mte[0m]:e[1;32mwe[0m$ ' Ajoutez un fichier ~/.inputrc contenant : set bell-style none "C-a": beginning-of-line "C-e": end-of-line "C-b": backward-word "C-f": forward-word "C-k": kill-line "C-j": backward-kill-line "C-x": kill-word "C-w": backward-kill-word "C-r": reverse-search-history "C-t": forward-search-history "C-space": set-mark "C-h": kill-region "C-y": yank "C-u": undo source ~/.bashrc => pour utiliser les parametres du fichier modifie. chmod 750 /home/username => gestion de droits. chmod 640 ~/.bash* => gestion de droits. chmod 640 ~/.inputrc Man : bash, chmod, chown 3.4. Fichiers de configuration de l'environnement super-utilisateur. Logguez vous en root et mettez en place les fichiers de configuration suivants : ~/.bashrc umask 027 export TMOUT=300 export PS1='!!!ROOT!!!@h:w$ ' export HISTFILE=/dev/null alias l='ls' alias ll='l -l' alias la='ll -a' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias userdel='echo "Why not deluser ?"' alias useradd='echo "Why not adduser ?"' ~/.bash_logout case "`tty`" in /dev/tty[0-9]) clear esac Ajoutez un fichier ~/.inputrc contenant : set bell-style none chmod 750 /root chmod 640 ~/.bash* ~/.profile chmod 640 ~/.inputrc Man : bash, chmod, chown 3.5. Securisation minimale (en mode super-utilisateur) Man : init, update-rc.d Inetd : Commentez l'integralite du fichier /etc/inetd.conf. /etc/init.d/inetd stop => Arret du service update-rc.d -f inetd remove => Suppression des services demarres au boot. Man : inetd, inetd.conf Dans /etc/rc2.d, supprimez tous les services non obligatoires : lpd, nfs-common, portmap Sshd : Dans /etc/ssh/sshd_config : PermitRootLogin no RSAAuthentication no PubkeyAuthentication no Banner /etc/issue.net ChallengeResponseAuthentication no ClientAliveInterval 20 ClientAliveCountMax 3 GatewayPorts no LoginGraceTime 60 Dans /etc/ssh/ssh_config : ForwardAgent no ForwardX11 no RhostsAuthentication no StrictHostKeyChecking ask Finissez par /etc/init.d/ssh restart NDR : Et notez le fingerprint SSH. Man : sshd, sshd_config Banniere de login : Dans /etc/issue.net et /etc/issue, entrez une banniere legale presentant les restrictions d'acces au systeme. Vous pouvez par exemple utiliser un message du type : ********************************************************** *** Serveur {HOSTNAME} *** *** (@IP) *** ********************************************************** *** *** *** Consultez les articles 323.1 a 323.3 du Nouveau *** *** Code Penal relatifs aux autorisations d'acces a ce *** *** systeme. *** ********************************************************** *** Toutes les connexions et acces a ce systeme font *** *** l'objet d'un enregistrement. *** ********************************************************** Dans /etc/securetty, commentez toutes les lignes commencant par tty. NDR : L'action precedente supprimera toute possibilite de vous connecter avec l'utilisateur 'root' en mode console. Vous devrez desormais vous connecter avec un utilisateur puis entrer la commande 'su'. Man : login, issue, securetty Modifiez /etc/lilo.conf de facon a obtenir ces lignes : password=motdepasse delay=100 default=Linux image=/vmlinuz label=Linux read-only restricted Puis : lilo chmod 640 /etc/lilo.conf Man : lilo, lilo.conf Syslogd : cp /etc/syslog.conf /etc/syslog.conf.orig chmod 640 /etc/syslog.conf Editez /etc/syslog.conf pour supprimer les lignes : # Logging for INN news system # news.crit /var/log/news/news.crit news.err /var/log/news/news.err news.notice -/var/log/news/news.notice daemon.*;mail.*; news.crit;news.err;news.notice; *.=debug;*.=info; *.=notice;*.=warn |/dev/xconsole lpr.* -/var/log/lpr.log uucp.* /var/log/uucp.log # # Logging for the mail system. Split it up so that # it is easy to write scripts to parse these files. # mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err Supprimez tous les '-' devant les noms de fichiers. Supprimez tous les commentaires restant apres *.emerg. Decommentez la ligne cron.* /var/log/cron.log Redemarrez le demon syslogd : /etc/init.d/sysklogd restart Effacez les fichiers de log superflus : cd /var/log && rm -rf mail.err mail.info mail.warn lp* news/ uucp.log Man : syslogd, syslog.conf Dans le repertoire '/etc/cron.weekly', commentez toutes les lignes du fichier 'lpr'. 3.6. Recompilation du noyau pour le support firewall ipchains NDR : Le noyau que nous configurons ici ne doit pas etre considere comme le noyau final. Une documentation abondante est presente sur Internet de meme que dans le repertoire Documentation figurant dans les sources du noyau. NOTE : Si vous utilisez le package de la version 2.2.20 comme presentee dans cette documentation, prenez garde a ne pas activer la fonctionnalite 'kernel loader' pour eviter la faille 'ptrace' ou pensez a patcher, securiser votre systeme. Lancez dselect et ajoutez le package relatif aux sources du noyau que vous desirez installer. L'installation suivante, relative au noyau 2.2.20 devrait cependant etre identique quelque soit le noyau 2.2.x dont vous installez les sources. cd /usr/src tar xjvf kernel-source-2.2.20.tar.bz2 mv kernel-source-2.2.20 kernel-source-2.2.20-fw ln -s kernel-source-2.2.20-fw linux && cd linux Au cas ou vous ne suivriez pas cette doc... : make clean && make mrproper Configurez le noyau : sed 's/^EXTRAVERSION =$/EXTRAVERSION = -fw/' Makefile > .fw cat .fw > Makefile && rm -f .fw make menuconfig Ajoutez les options suivantes au noyau installe : 'Networking Options -> Network firewalls' 'Networking Options -> Ip : Firewalling (NEW)' Dans 'Network Device Support', verifiez que votre pilote de carte reseau est selectionne. Quittez et sauvez la configuration Compilez le noyau : make dep && make modules && make bzImage Installez le nouveau noyau : cp arch/i386/boot/bzImage /boot/vmlinuz-2.2.20-fw cp System.map /boot/System.map-2.2.20-fw cd /boot/ ln -s vmlinuz-2.2.20-fw linux ln -s vmlinuz-2.2.20-compact linux_fst Installez les modules : cd /usr/src/linux && make modules_install Editer le fichier /etc/lilo.conf pour obtenir : default=linux22 image=/boot/linux label=linux22 read-only restricted image=/boot/linux_fst label=backup22 read-only Lancez la commande 'lilo' pour mettre ajour le systeme. Rebootez le systeme. Si tout c'est bien passe, sauvegardez la configuration : cp /usr/src/linux/.config /boot/config-2.2.20-fw 3.7. Configuration du firewall Ipchains Man : ipchains, sysctl, sysctl.conf Creez le repertoire pour le stockage des scripts du firewall : mkdir -p /home/system/scripts/fw chown -R root:adm /home/system chmod 4750 /home/system Creez les scripts d'activation/desactivation du firewall (voir ANNEXE 1 - Parametrage du firewall Ipchains) : /home/system/scripts/fw/rules_down_ipchains.sh /home/system/scripts/fw/rules_up_ipchains.sh Mettez les droits en place : 'chmod 750 /home/system/scripts/fw/*' Creez le script /etc/init.d/init_ipchains.sh (voir ANNEXE 1 - Parametrage du firewall Ipchains). Donnez les droits au script : 'chmod 750 /etc/init.d/init_ipchains.sh' Ajoutez le script pour le demarrage du system : update-rc.d init_ipchains.sh defaults Activez le firewall : /etc/init.d/init_ipchains.sh start 3.8. Mise a jour securite du systeme (super-utilisateur). Vous pouvez maintenant brancher la machine sur le reseau. Ajoutez le fichier /etc/apt/apt.conf contenant : DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt || true";}; Acquire::http::Proxy "http://@IP_PROXY:8080/"; Commentez toutes les lignes dans /etc/apt/sources.list Ajoutez dans /etc/apt/sources.list : deb http://http.us.debian.org/debian stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main non-free deb http://security.debian.org stable/updates main contrib non-free apt-get update apt-get dist-upgrade ================================================================================ 4. SECURISATION MODEREE ======================= 4.1. Notes sur le boot du systeme et sur le noyau ------------------------------------------------- NDR : Il est futile d'indiquer qu'un individu avec un acces physique au serveur implique que le serveur est compromis. Un seul noyau doit etre chargeable lors de l'invite par defaut. Tout passage de parametre au noyau lors du boot doit etre interdit. Le chargement dynamique de modules devrait etre interdit. => Dans le cas ou cela est impossible, appliquez un patch permettant de bloquer le chargement des modules apres le boot. Il peut egalement etre interessant de modifier la sequence d'amorcage du BIOS de facon a debuter par le chargement du MBR du disque dur. 4.2. Securisation du systeme de fichiers ---------------------------------------- ATTENTION - ATTENTION - ATTENTION : Pour ces modifications, je vous reccomande d'avoir un disque bootable (le CD d'installation Debian fait bien sur l'affaire) avec un systeme de fichier root sous la main - Systeme de fichier contenant les binaires appropries bien entendu. NDR : Apres ces modifications, n'oubliez pas que certaines partitions sont montees en lecture seule. Vous pouvez remonter une partition en lecture/ ecriture avec (par exemple) : mount -o remount,rw /local Editez le fichier /etc/fstab de facon a monter les partitions presentees en 1.5 selon le principe suivante : /dev/sda1 / ext2 errors=remount-ro 0 1 /dev/sda2 none swap sw 0 0 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto noauto,nosuid,nodev 0 0 /dev/cdrom /cdrom iso9660 ro,noauto,nosuid,nodev 0 0 /dev/sda3 /boot ext2 ro,noexec,nosuid,nodev 0 2 /dev/sda5 /root ext2 defaults 0 2 /dev/sda6 /var ext2 nodev 0 2 /dev/sda7 /var/log ext2 noexec,nosuid,nodev,sync 0 2 /dev/sda8 /tmp ext2 noexec,nosuid,nodev 0 2 /dev/sda9 /usr ext2 ro,nodev 0 2 /dev/sda10 /home ext2 nodev 0 2 /dev/sda11 /local ext2 ro,noexec,nosuid,nodev 0 2 Si vous avez procede a la preparation d'une partition pour un serveur web : /dev/sda11 /var/www ext2 rw,nosuid,nodev 0 2 /dev/sda12 /local ext2 ro,noexec,nosuid,nodev 0 2 Si vous avez procede a la preparation d'une partition pour un serveur was : /dev/sda11 /var/www ext2 rw,nosuid,nodev 0 2 /dev/sda12 /var/was ext2 rw,noexec,nosuid,nodev 0 2 /dev/sda13 /local ext2 ro,noexec,nosuid,nodev 0 2 Pour prendre en compte ces modifications, rebootez le systeme ou remontez les partitions. Man : fstab, mount. 4.3. Securisation des comptes ----------------------------- Durcissement de la politique de mots de passe : Modifiez le fichier /etc/login.defs de la facon suivante : LOG_OK_LOGINS yes SULOG_FILE /var/log/sulog ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin UMASK 027 PASS_MAX_DAYS 30 DEFAULT_HOME no MAN : login.defs Suppression des utilisateurs et groupes inutiles : unalias userdel for i in `echo games sync sys irc` ; do (echo -n "Removing user $i : " && userdel $i 2> /dev/null && echo "done.") || echo "failed."; done for i in `echo irc dialout fax voice audio dip video` ; do (echo -n "Removing group $i : " && groupdel $i 2> /dev/null && echo "done.") || echo "failed."; done source ~/.bashrc Desactivation des comptes inutiles : for i in `echo lp list uucp news proxy postgres www-data nobody` ; do (echo -n "Falsing $i : " && chsh -s /bin/false $i && echo "done.") || echo "failed."; done MAN : userdel, chsh, false Reappropriation des fichiers non affectes (N'oubliez pas les permissions du systeme de fichier /usr !) : for i in `find / -nouser -o -nogroup` ; do echo "Giving $i to root" && chown root:root $i && chmod 600 $i; done Deconnexion des comptes en inactivite : Ajoutez/Modifiez les lignes suivantes dans le fichier /etc/profile : export TMOUT=300 umask 027 Aggregation des comptes dans des groupes : Tous les comptes utilisateurs doivent faire partie de groupes appropries. Nous nous basons dans ce documents sur deux groupes existant, mais cette declinaison est arbitraire. Le groupe adm est reserve aux administateurs (voir 4.5. Les administrateurs n'ont pas besoin de passer root). Le groupe users est reserve aux utilisateurs non administrateurs. Modifiez /etc/adduser.conf pour faire figurer : USERGROUPS=no DIR_MODE=0700 Modification des squelettes de creation de compte : /etc/skel/.bash_profile : umask 027 if [ -f ~/.bashrc ]; then source ~/.bashrc fi if [ -f ~/.alias ]; then source ~/.alias fi /etc/skel/.alias : alias ls='ls --color=auto' alias md='mkdir' alias rd='rmdir' alias l='ls' alias ll='l -l' alias la='ll -a' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' Ajoutez les fichiers suivants : /etc/skel/.bash_logout : case "`tty`" in /dev/tty[0-9]) clear esac /etc/skel/.inputrc : set bell-style none Donnez les droits : 'chmod 640 /etc/skel/.bash_logout /etc/skel/.inputrc' Mettez en place la methode de suppression de comptes : Modifiez /etc/deluser.conf pour faire figurer : REMOVE_HOME = 1 BACKUP = 1 Creez le repertoire de backup des comptes supprimes : mkdir /home/system/deleted_accounts chown root:adm /home/system/deleted_accounts chmod 1750 /home/system/deleted_accounts Creez le fichier suivant : mount -o remount,rw /usr /usr/local/sbin/deluser.local : #!/bin/sh if [ -d /home/system/deleted_accounts ] && [ $1 ] then echo " deluser.local :" echo " Moving $1.tar.bz2 to /home/system/deleted_accounts..." if [ $PWD ] && [ $PWD != "/home/system/deleted_accounts" ] && [ -f $1.tar.bz2 ] then mv $1.tar.bz2 /home/system/deleted_accounts/$1.tar.bz2 fi if [ -f /home/system/deleted_accounts/$1.tar.bz2 ] then echo " Giving admins permissions to /home/system/deleted_ accounts/$1.tar.bz2" chown root:adm /home/system/deleted_accounts/$1.tar.bz2 else echo " Error : $1.tar.bz2 is no regular file !?!?!" fi else echo "deluser.local error:" if [ $1 ] then echo "No backup directory to store $1.tar.bz2." else echo "Error in arguments !?!?!" fi fi Puis : chmod 700 /usr/local/sbin/deluser.local mount -o remount,ro /usr 4.4. Recherche et modifications de droits de fichiers ----------------------------------------------------- Recherche de tous les fichiers sgid et suid : cd /root/tmp find / -type f ( -perm -004000 -o -perm -002000 ) -exec ls -la {} ; 2> /dev/null > sguid_original_list.txt Suppression du flag suid/sgid quand cela n'est pas indispensable : mount -o remount,rw /usr/ for i in `echo /bin/ping /bin/mount /bin/umount /usr/bin/at /usr/bin/newgrp /usr/bin/chfn /usr/bin/chsh /usr/bin/gpg /usr/bin/lpq /usr/bin/lpr /usr/bin/lprm /usr/bin/mtr`; do echo "Removing sguid bit from $i." && chmod -s $i ; done mount -o remount,ro /usr/ Note : Attention a ces suppressions de privileges si vos demons en ont besoin. Restreignez l'usage de l'utilitaire cron en creant un fichier /etc/cron.allow: touch /etc/cron.allow chmod 640 /etc/cron.allow => Pour qu'un utilisateur soit autorise a utiliser l'utilitaire cron et ses derives, vous devrez l'enregitrer dans ce fichier. MAN : cron, crontab 4.5. Les administrateurs n'ont pas besoin de passer root -------------------------------------------------------- Installation de sudo : mount -o remount,rw /usr/ dselect => Installez le package sudo mount -o remount,ro /usr/ Ajoutez les utilisateurs ADMINISTRATEURS requis {UserName} dans le groupe adm: usermod -g {UserName} -G adm,users {UserName} Configuration de sudo : Lancez visudo et editez le fichier de facon a ajouter (raccourcis vi) : # Cmnd alias specification Cmnd_Alias REBOOT=/sbin/reboot %adm ALL=NOPASSWD:REBOOT MAN : usermod, sudoers visudo, sudo 4.6. Synchronisation horaire avec un serveur NTP ------------------------------------------------ Installez les packages requis. mount -o remount,rw /usr dselect et installation des packages ntp, ntpdate, ntp-simple et ntp-doc : * Ne pas specifier de serveur NTP * Overwrite ntp.conf : Yes. mount -o remount,ro /usr Configurez le client ntp et le nouveau flux au niveau du firewall : Ajoutez l'adresse IP de votre serveur NTP dans /etc/default/ntp-servers Ajoutez l'adresse IP de votre serveur dans le fichier de configuration du firewall. /etc/init.d/init_ipchains.sh restart Stoppez le demon NTP et executez la synchronisation /etc/init.d/ntp stop update-rc.d -f ntp remove /etc/init.d/ntpdate start Ajoutez un appel au client ntp toutes les 6 heures dans /etc/crontab : # Met a jour la date et l'heure du systeme grace au serveur NTP 0 */6 * * * root /etc/init.d/ntpdate start > /dev/null MAN : ntpdate 4.7. Generation automatisee d'un rapport systeme ------------------------------------------------ Le script present en annexe 'ANNEXE 2 - Generation automatisee de rapport systeme' peut etre execute par la crontab a intervalles periodique. Il genere un rapport systeme succinct qui peut etre envoye par mail aux administrateurs ou stocke dans un repertoire. NDR : Attention a respecter l'indentation ! NDR : Je vous conseille de verifier le script de facon a ce qu'il n'execute que les commandes que vous desirez. Ainsi, le script recupere par exemple les fichiers de logs presentes en '4.8. Installation et premiers pas avec Modular-Syslog'. Installation du script (nous utilisons le script present en annexe qui envoie le rapport par mail) : mkdir /home/system/scripts/reports/ chmod 750 /home/system/scripts/reports/system_report.sh Configuration de /etc/crontab pour lancer le script tous les jours a 09H00 AM: # Genere le rapport system 0 9 * * * root /home/system/scripts/reports/system_report.sh chmod 640 /etc/crontab 4.8. Installation et premiers pas avec Modular-Syslog ----------------------------------------------------- Modular-Syslog est disponible a : http://sourceforge.net/projects/msyslog/ Compilation : cd /home/system/applis /usr/bin/md5sum /home/system/download/msyslog-v1_08e-src_tar.gz c3700571c675d8896c643c276f5e2dad /home/system/download/msyslog-v1_08e -src_tar.gz tar zxvf /home/system/download/msyslog-v1_08e-src_tar.gz find ./msyslog-v1.08e/ -type f ( -perm -004000 -o -perm -002000 ) -exec ls -la {} ; chown -R root:root msyslog-v1.08e/ cd msyslog-v1.08e/ ./configure make NDR : Vous pouvez tres bien decider, si vous en comprennez l'interet de modifier le chemin du fichier de configuration par defaut avant de compiler le demon modular-syslog. Installation : mount -o remount,rw /usr/ make install On sauvegarde l'ancien syslogd et son fichier de configuration : cp /etc/syslog.conf /etc/syslog.conf.orig2 cp /sbin/syslogd /sbin/syslogd.orig On remplace l'ancien syslogd par le notre : mv /usr/local/sbin/syslogd /sbin/syslogd chown root:root /sbin/syslogd && chmod 755 /sbin/syslogd mount -o remount,ro /usr/ On modifie le script d'initialisation du demon /etc/init.d/sysklogd : SYSLOGD="-i linux -i unix" On stoppe le demon klogd dont nous nous passerons desormais : /etc/init.d/klogd stop On le supprime des runlevels correspondants : update-rc.d -f klogd remove On redemmare le nouveau demon syslogd : /etc/init.d/sysklogd start Correction du script syslogd-listfiles : Ce script permet de lister les fichiers de logs pour permettre leur rotation. Il se sert pour cela du fichier de configuration /etc/syslog.conf. Or, ce fichier de configuration peut desormais contenir des lignes au format modular-syslog, ce qui empeche une rotation correcte. Le patch est disponible en 'ANNEXE 3 - syslogd-listfiles.msyslog.patch' mount -o remount,rw /usr/ cp /usr/sbin/syslogd-listfiles /usr/sbin/syslogd-listfiles.orig cd /usr/sbin patch -l -p0 /dev/null fi done /etc/init.d/sysklogd reload-or-restart chmod 750 /home/system/scripts/crond/sysklogd Nous editons /etc/crontab pour ajouter ce script : # Tourne les logs securite chaque jour 5 0 * * * root /home/system/scripts/crond/sysklogd 4.9. Verification des empreintes des packages a installer --------------------------------------------------------- Consultez d'abord : 'I. INFORMATIONS SUR LA GESTION DE PACKAGES DEBIAN - Mise a jour du systeme avec apt' [ A completer ] mount -o remount,rw /usr dselect => installation de 'debsums' mount -o remount,ro /usr mkdir /home/system/debsums cd /home/system/debsums Obtenez la liste des packages ne possedant pas de signature : /usr/bin/debsums -l > nosig.txt NDR : Si vous voulez verifier les empreintes des fichiers d'un package : debsums -s package_name. MAN : debsums 4.10. Systeme de fichiers ext3 avec un noyau 2.4 : de ext2 a ext3 ----------------------------------------------------------------- Pour modifier le systeme de fichier d'une partition de facon a passer de ext2 a ext3, sans perte de donnees et sans reboot (si votre noyau est deja compile avec ce support bien sur), vous pouvez suivre la procedure suivante. Commencons par recompiler le noyau en ajoutant le support ext3 : * Ajoutez 'File systems -> Ext3 journalling file system support'. * Recompilez et installez le nouveau noyau. * Modifiez /etc/lilo.conf * Rebootez. Apres le reboot, n'oubliez pas de mettre a jour la configuration lilo et de sauvegarder la configuration du noyau. Prenons comme exemple la partition /backup du type (precise dans /etc/fstab) suivant : /dev/hda13 /backup ext2 ro,noexec,nosuid,nodev,sync 0 2 La procedure a suivre est la suivante : umount /dev/hda13 tune2fs -j /dev/hda13 Editez /etc/fstab pour remplacer l'ancienne ligne /dev/hda13 par : /dev/hda13 /backup auto ro,noexec,nosuid,nodev,sync 0 2 mount /dev/hda13 4.11. Backup du systeme sur une partition specifique ---------------------------------------------------- Nous presentons ici un moyen de sauvegarde des donnees systeme sur une partition reservee a cet usage. Le backup du systeme est realise par un script 'fait maison' permettant une sauvegarde complete ou incrementale des fichiers/repertoires a sauvegarder et autorisant le backup chiffre (avec openssl) des repertoires/fichiers parametres. Ne sont pas presentes ici : * La restauration du systeme a partir des donnees sauvegardees. Referez vous a la partie '4.12. Preparation d'une restauration du systeme en cas d'incident'. * L'acces a cette partition depuis un serveur distant pour un stockage de backup specialise. Vous pouvez vous referer a 'VII. INSTALLATION D'UN SERVEUR SAMBA POUR UNE GESTION DE BACKUP' pour un acces Netbios via Samba. Vous devez avoir une partition /dev/sda13 dans /etc/fstab du type : /dev/sda13 /backup ext2 ro,noexec,nosuid,nodev,sync 0 2 mkdir /home/system/scripts/backup Et installez le script /home/system/scripts/backup/system_backup.sh presente en 'ANNEXE 8 - Script de backup'. chmod 750 /home/system/scripts/backup/system_backup.sh Editez le script pour configurer les fichiers ou repertoires que vous desirez sauvegarder en modifiant la variable 'BACKUP_FROM' : Creez un fichier '/home/system/scripts/backup/include_but_ciphered' qui contiendra les fichiers ou repertoires que vous voulez ajouter dans l'archive chiffree. Ce fichier doit exister mais peut etre vide si vous ne voulez pas utiliser cette fonctionnalite : NDR : # Le backup chiffre est toujours en mode 'full'. # Le script de backup effectuant un 'cd /', configurez ce fichier en supprimant le premier '/' devant le chemin vers votre fichier/repertoire. J'ai personnellement renseigne ce fichier de la maniere suivante : /home/system/scripts/backup/include_but_ciphered : etc/gshadow etc/gshadow- etc/passwd etc/passwd- etc/samba/smbpasswd etc/shadow etc/shadow- var/backups NDR : Est il trivial d'indiquer que : # vous devriez noter le mot de passe de chiffrement que vous utilisez dans le script ? # le script ne doit etre accessible que par root ? Creez un fichier '/home/system/scripts/backup/exclude' qui contiendra les fichiers ou repertoires que vous ne desirez pas sauvegarder par rapport aux arborescences que vous aurez definies dans la variable 'BACKUP_FROM'. NDR : # Ce fichier doit exister mais peut etre vide si vous ne desirez rien exclure. # Le script de backup effectuant un 'cd /', configurez ce fichier en supprimant le premier '/' devant le chemin vers votre fichier/repertoire. J'ai personnellement renseigne ce fichier de la maniere suivante : usr/src var/lock var/run var/tmp Creez un fichier '/home/system/scripts/backup/cpioed' qui contiendra les repertoires dont vous souhaitez conserver les localisations et permissions grace a une archive cpio. # Ce fichier doit exister mais peut etre vide si vous ne desirez rien exclure. # Le script de backup effectuant un 'cd /', configurez ce fichier en supprimant le premier '/' devant le chemin vers votre fichier/repertoire. # SEULS LES REPERTOIRES INDIQUES SONT SAUVEGARDES ! J'ai personnellement renseigne ce fichier de la maniere suivante (je ne tiens pas a sauvegarder /usr/src) : backup cdrom floppy initrd local lost+found mnt opt proc tmp var/lock var/run var/tmp Lancez le script pour le premier backup : /home/system/scripts/backup/system_backup.sh Backup: Full backup Backup: Remounting rw /backup Backup: Backuping /backup/full_060503-144947/bin_060503-144947.tar.gz Backup: Hash : c8f1b2863146f03ef686fa04d1fd0da5 /backup/full_060503-144947/bin_060503-144947.tar.gz Backup: Backuping /backup/full_060503-144947/boot_060503-144948.tar.gz Backup: Hash : 4bfd31759e05e14ed65b63dee26feb8d /backup/full_060503-144947/boot_060503-144948.tar.gz Backup: Backuping /backup/full_060503-144947/dev_060503-144950.tar.gz Backup: Hash : e5fd2dd7df68aba2f176faed07f44cd5 /backup/full_060503-144947/dev_060503-144950.tar.gz Backup: Backuping /backup/full_060503-144947/etc_060503-144951.tar.gz Backup: Hash : 348d9dd3f309c23703a3c24c83dda609 /backup/full_060503-144947/etc_060503-144951.tar.gz Backup: Backuping /backup/full_060503-144947/home_060503-144952.tar.gz Backup: Hash : 5495f04c230f7feaecb893f879297753 /backup/full_060503-144947/home_060503-144952.tar.gz Backup: Backuping /backup/full_060503-144947/lib_060503-144954.tar.gz Backup: Hash : dce418f7fd12bd9621f5429141eaddbb /backup/full_060503-144947/lib_060503-144954.tar.gz Backup: Backuping /backup/full_060503-144947/root_060503-144957.tar.gz Backup: Hash : 012a1be6fb9686c6ca49c3edd8a94c38 /backup/full_060503-144947/root_060503-144957.tar.gz Backup: Backuping /backup/full_060503-144947/sbin_060503-144958.tar.gz Backup: Hash : 0bf5b00b86826e195a9de88ef8d68a9f /backup/full_060503-144947/sbin_060503-144958.tar.gz Backup: Backuping /backup/full_060503-144947/usr_060503-144959.tar.gz Backup: Hash : f3ec8f659a17daa0cb318d0f687d632c /backup/full_060503-144947/usr_060503-144959.tar.gz Backup: Backuping /backup/full_060503-144947/var_060503-145357.tar.gz Backup: Hash : e200713da542da4c1bb0e8910b6aa76f /backup/full_060503-144947/var_060503-145357.tar.gz Backup: Backuping excluded files into a cpio archive Backup: Hash : a323d013c942bf30a6e0c76f5ae2ed2b /backup/full_060503-144947/excluded.cpio Backup: Backuping /home/system/scripts/backup/include_but_ciphered files Backup: Ciphering /backup/full_060503-144947/ ciphered_060503-145357.tar.gz Backup: Removing /backup/full_060503-144947/ ciphered_060503-145357.tar.gz Backup: Hash : 228dc72dd72ab99b2e58e3d083e72e5f /backup/full_060503-144947/ ciphered_060503-145357.tar.gz.des3 Backup: Syncing disks Backup: Remounting ro /backup ll -R /backup/ /backup/: total 28 drwxr-x--- 2 root root 4096 May 6 14:54 full_060503-144947 -rw-r----- 1 root root 94 May 6 14:49 full_060503-144947.log -rw-r----- 1 root root 1023 May 6 14:54 full_060503-144947.md5 /backup/full_060503-144947: total 335096 -rw-r----- 1 root root 1016158 May 6 14:49 bin_060503-144947.tar.gz -rw-r----- 1 root root 4390293 May 6 14:49 boot_060503-144948.tar.gz -rw-r----- 1 root root 592280 May 6 14:54 ciphered_060503-145357 .tar.gz.des3 -rw-r----- 1 root root 57067 May 6 14:49 dev_060503-144950.tar.gz -rw-r----- 1 root root 478588 May 6 14:49 etc_060503-144951.tar.gz -rw-r----- 1 root root 65024 May 6 14:54 excluded.cpio -rw-r----- 1 root root 1152206 May 6 14:49 home_060503-144952.tar.gz -rw-r----- 1 root root 2298150 May 6 14:49 lib_060503-144954.tar.gz -rw-r----- 1 root root 418679 May 6 14:49 root_060503-144957.tar.gz -rw-r----- 1 root root 1203847 May 6 14:49 sbin_060503-144958.tar.gz -rw-r----- 1 root root 285132220 May 6 14:53 usr_060503-144959.tar.gz -rw-r----- 1 root root 45928823 May 6 14:54 var_060503-145357.tar.gz du -ch /backup/ 328M /backup/full_060503-144947 328M /backup 328M total Vous avez desormais dans /backup : # Une sauvegarde 'full' des fichiers ou repertoires que vous avez specifie. # Un fichier de log contenant les erreurs rencontrees - vide si aucune erreur. # Un fichier d'empreinte md5 des archives creees pour chaque fichier/repertoire specifie. Dans /home/system/scripts/backup/.last_done (ou dans le fichier que vous avez vous meme specifie), vous avez la date de ce dernier backup. Note : Les 328M de sauvegarde full realisee precedemment l'ont ete en environ ~5 minutes sur un PIII 700 avec 160Mo de RAM. Vous pouvez desormais realiser un backup incremental des donnees sauvegardees precedemment. En appelant a nouveau le script : Backup: Incremental backup beginning : Tue May 6 14:49:47 CEST 2003 Backup:

 
Liens connexes
· Plus à propos de Securité
· Nouvelles transmises par Romain_Le_Guen


L'article le plus lu à propos de Securité:
Tutoriel Aircrack


Article Rating
Average Score: 0
Votes: 0

Please take a second and vote for this article:

Excellent
Very Good
Good
Regular
Bad


Options

 Format imprimable Format imprimable


Associated Topics

Linux

PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 1.68 Seconds