Installation et sécurisation d'une station Debian 3.0 stable15/05/2004 
  
	
	
	
	
	 
	 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. Sécurisation minimale (en mode super-utilisateur)
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
				
				 3.6. Recompilation du noyau pour le support firewall ipchains 
				
					
					
					
					
					
					
					
					
					
				
					
					
					
						
				
				 3.7. Configuration du firewall Ipchains
				
					
					
					
					
					
					
					
					
					
					
				
				 3.8. Mise à jour sécurite du système (super-utilisateur)
					
					
					
					
					
				
			
	
  
	
	
	
	
	 
	
 3. PREMIER ACCES AU SYSTEME ET SECURISATION MINIMALE 
  
				
				
				Vous venez de finir la configuration initiale du système et votre station  n'est
				normalement pas encore connectée au réseau.
				  
				
 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'identité super-utilisateur.
					  
				
				
 
  
					
					
						- 
						Update
						
 
						- 
						'Select' et sélectionnez les packages que vous désirez  à  partir  du  CD-ROM
						(vim, gpm, emacs, etc...)
						
 
						- 
						'Install'
						
 
					 
					
						NDR : Même si vous ne sélectionnez rien, passez  quand  même  par  les  étapes
						'Update' et 'Install'. 
						NDR : Il  est  conseillé  de  ne  pas  faire  plusieurs  choses  à  la  fois :
						Installation   minimale,   puis  installation  des  packages  absolument
						nécessaires, 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. 			  
						Sécurisez un minimum le système : 
					  
				
				
 3.3. Fichiers de configuration de l'environnement administrateur. 
  
					
					
					NDR : J'appelle environnement administrateur, l'environnement des utilisateurs
					qui auront la possibilité 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'
# Décommentez ici si vous souhaitez ce type de prompt
# export PS1='\e[1;34m\u\e[0m@\h:[\e[1;31m\t\e[0m]:\e[1;32m\w\e[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 paramètres du fichier modifié.
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  
				
				
 3.5. Sécurisation minimale (en mode super-utilisateur) 
  
					
					
						Man : init, update-rc.d 
						Inetd : 
											Commentez l'intégralité du fichier /etc/inetd.conf.
					  
					/etc/init.d/inetd stop # Arrêt du service
						update-rc.d -f inetd remove # Suppression des services demarrés 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  
					
						Et notez le fingerprint SSH. 
						Man : sshd, sshd_config 		
						Bannière de login :  
						Dans /etc/issue.net et /etc/issue, entrez une bannière légale présentant les
						restrictions d'accès au système. 
						Vous pouvez par exemple utiliser un message du type :
					  
					**********************************************************
***                  Serveur {HOSTNAME}                ***
***                        (@IP)                       ***
**********************************************************
***                                                    ***
***   Consultez les articles 323.1 a 323.3  du Nouveau ***
*** Code Pénal relatifs aux autorisations d'accès à ce ***
*** système.                                           ***
**********************************************************
***   Toutes les connexions et accès à ce système font ***
*** l'objet d'un enregistrement.                       ***
**********************************************************  
					
						  Dans /etc/securetty, commentez toutes les lignes commencant par tty. 
						
						  NDR : L'action précédente supprimera toute possibilité de vous connecter  avec
						  l'utilisateur 'root' en mode console. Vous  devrez  désormais  vous  connecter
						  avec un utilisateur puis entrer la commande 'su'. 
						
						  Man : login, issue, securetty 
						
						  Modifiez /etc/lilo.conf de facon à 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 après *.emerg. 
						Décommentez la ligne
					  
					cron.*                          /var/log/cron.log  
					
						Redémarrez le démon 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 répertoire '/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 être  considéré  comme  le
						noyau final. Une documentation abondante est présente sur Internet de même que
						dans le répertoire Documentation figurant dans les sources du noyau. 
						NOTE : Si vous utilisez le package de la version 2.2.20 comme  présenté  dans
						cette documentation, prenez garde à ne pas activer la  fonctionnalité  'kernel
						loader' pour éviter la faille 'ptrace' ou pensez  à  patcher, sécuriser  votre
						système. 
						Lancez dselect et ajoutez le package relatif aux sources  du  noyau  que  vous
						désirez installer. L'installation suivante, relative au noyau  2.2.20  devrait
						cependant être 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', vérifiez que votre pilote de carte réseau est
						selectionné. 
						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 à jour le système. 
						Rebootez le système. 
						 			
						Si tout c'est bien passé, 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 
						Créez le répertoire pour le stockage des scripts du firewall :
					  
					mkdir -p /home/system/scripts/fw
chown -R root:adm /home/system
chmod 4750 /home/system  
					
						Créez les scripts d'activation/désactivation  du  firewall  (voir  ANNEXE  1 -
						Paramètrage 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/*  
					
						Créez le script /etc/init.d/init_ipchains.sh (voir ANNEXE 1 -  Paramétrage  du
						firewall Ipchains). 
						
						Donnez les droits au script : 'chmod 750 /etc/init.d/init_ipchains.sh' 
						
						Ajoutez le script pour le démarrage du système :
					  
					update-rc.d init_ipchains.sh defaults  
					
						Activez le firewall : 
				/etc/init.d/init_ipchains.sh start	  
					/etc/init.d/init_ipchains.sh start  
				
				
 3.8. Mise à jour sécurite du système (super-utilisateur) 
  
					
					
						Vous pouvez maintenant brancher la machine sur le réseau. 
						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  
				
			
	
 
 
		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 présent 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.
	 
       |