Security Tips
Warning! Ces informations ont plus de 10 ans! Elle pourraient etre impr�cises et non applicables! 

Derni�re version: 0.31 . 24/8/2003

Vous d�sirez s�curiser votre installation Linux de base tout en �tant toujours capable de vous logger, de faire tourner un serveur ftp ou http publique sur Internet ? Cette page est faite pour Vous ! English version here !

Vous y trouverez des astuces pour am�liorer la s�curit� de votre syst�me par l'utilisation d'IPChains, IPTables, et des TCP Wrappers. Vous découvrirez aussi des options de configuration subtiles pour Sendmail, Postfix, Bind, NFS et autres.

Ces informations ont �t� test�es sur des distributions Red Hat et Mandrake mais elles devraient �tre valables pour d'autre �galement.

Envoyez vos commentaires ou astuces ici !.

Contenu

  Votre syst�me est-il s�r ? (Pour les nuls)
  IP Chains (kernel 2.2.x)
  IP Tables (kernel 2.4.x)
  TCP Wrappers et Inetd
  Mail Transport Agents:
      Sendmail
      Exim
      Postfix
      Smail
  DNS, Bind
  Samba
  Apache
  RPC et NFS
  Lpd

Votre syst�me est-il s�r ? (Pour les nuls)

Pour r�pondre � cette question, vous devez dresser la liste des trous potentiels de s�curit� r�seau. Chaque port Tcp ou Udp ouvert, peut �tre utilis� pour attaquer votre syst�me, et est donc un trou de s�curit� potentiel. Pour voir quels ports sont ouverts, lancez 'netstat -a'. Vous obtiendrez par exemple:

Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        1      0 localhost:12653         localhost:www           CLOSE_WAIT  
tcp        1      0 localhost:12652         localhost:www           CLOSE_WAIT  
tcp        1      0 sone.cf.fr:12642        chaines.voila.fr:www    CLOSE_WAIT  
tcp       81      0 sone.cf.fr:11709        graft.XCF.Berkeley.:ftp CLOSE_WAIT  
tcp        0      0 sone.cf.fr:1023         graft.XCF.Berkeley.o:22 ESTABLISHED 
tcp        0      0 *:6000                  *:*                     LISTEN      
tcp        0      0 *:1024                  *:*                     LISTEN      
tcp        0      0 *:22                    *:*                     LISTEN      
tcp        0      0 *:www                   *:*                     LISTEN      
tcp        0      0 *:printer               *:*                     LISTEN      
tcp        0      0 *:login                 *:*                     LISTEN      
tcp        0      0 *:ftp                   *:*                     LISTEN      
udp        0      0 *:177                   *:*                                 
udp        0      0 *:syslog                *:*                                 
raw        0      0 *:1                     *:*                                 
Active UNIX domain sockets (including servers)
....
....

Ci-dessus, Vous pouvez voir la liste des connections ouvertes (Celles o� 'State=ESTABLISHED'), et des serveurs Tcp � l'�coute des connections entrantes (State=LISTEN). Des serveurs Udp �coutent �galement bien que 'LISTEN' ne soit pas indiqu�. La colonne 'Local Address' des serveurs � l'�coute (LISTEN) est une des plus importantes de par les informations qu'elle d�livre:

Si vous lancez 'netstat -nap' vous pouvez m�me conna�tre le nom des programmes ayant ouvert ces ports (et 'fuser -n tcp [port]' peut �galement �tre utilis� pour identifier des ports ouverts).

Sur l'exemple nous avons vu, les services de login,www,ftp,printer,syslog tournaient sur le syst�me et aussi d'autres comme ssh (port 22), X11 (port 6000). (r�f�rez-vous au fichier '/etc/services' pour les conversions nom<->num�ro de port).

Lorsque l'interface r�seau est '*', alors le service concern� sera certainement vu depuis votre r�seau externe, et donc n'importe qui peut ESSAYER de se connecter � ce service. Ceci est un MAUVAIS signe pour votre s�curit� et vous devriez essayer de trouver si le serveur permet de mettre en place une Liste de Controle d'acc�s (LCA) pour s�curiser les choses (pour tout savoir sur les LCA, voir plus bas).

Par contre, si l'interface réseau est une adresse IP, cela signifie que le serveur ne répond aux éventuelles connexions que sur l'interface réseau qui a CETTE adresse IP. Par exemple si nous avons 'localhost:ftp', alors le serveur ftp est lié à l'interface de localhost (le 'loopback'), et il ne sera donc pas vu depuis votre r�seau Ethernet ou votre connection internet PPP. C'est CE BUT qu'il FAUT atteindre, car vous pourrez faire tourner des services sur votre machine sans que personne sur l'internet ne les voient !

Notez donc qu'un numéro d'interface r�seau autre que 'localhost', est mauvais, car cela signifie certainement que le service peut �tre vu à l'ext�rieur de votre machine. V�rifiez donc alors vos LCAs !

Maintenant que vous avez identifié les services trounant sur votre machine, vous voulez certainement v�rifier votre serveur de l'ext�rieur. Pour ceci loggez vous sur un compte distant et utilisez Nmap, LE scanneur de ports furtif (téléchargez le ici). Ensuite, par exemple, lancez 'nmap votre.adress.ip', et vous obtiendrez la liste de tous les services ouverts sur votre machine et qui peuvent �tre vus par n'importe qui depuis l'ext�rieur (Internet peut-�tre).

Avec toutes ces informations réunies, il est enfin temps de fermer les trous de sécurité et de désactiver les serveurs / services dont vous n'avez pas l'utilité.

IP Chains

Une des meilleures facons de fermer ces trous de sécurité (les ports réseau ouverts) est d'utiliser le mécanisme de parre-feu du kernel Linux 2.2: IP Chains. ('man ipchains' pour plus d'info). Les noyaux de la s�rie 2.4.x utilisent 'iptables' qui sera couvert dans la section suivante.

Plus bas, vous trouverez un script type de configuration IPChains à ajouter au fichier '/etc/rc.d/rc.local', et qui va:

# Script IPChains generique, accepte tout par defaut

# chemin de l'executable ipchains
IPC=/sbin/ipchains
# mettez l'adresse de votre r�seau local ci-dessous
mynet=10.0.0.0/24
# l'interface r�seau que vous voulez s�curiser
# Ici,toute interface PPP si vous vous connectez � internet grace � une lien modem PPP.
iface=ppp+
# exclure le serveur dns, X11 , lpd
tcp="53 6000:6010 515"
# exclure dns,xdmcp,nfS;
udp="53 177 2049"

# effacer les pr�c�dentes r�gles
$IPC -F input
$IPC -F forward
$IPC -F output
# r�gles pour l'IP masquerading (utile seulement pour prot�ger les machines 
# se connectant �  internet grace � votre serveur)
$IPC -N user_msq
$IPC -F user_msq
$IPC -A user_msq -s 0/0 -d 0/0 -j MASQ
$IPC -A forward -s $mynet -d 0/0 -i $iface -j user_msq
/sbin/modprobe ip_masq_ftp
# d�sactive les r�ponses ping et les logger, vous aurez dans /var/log/messages
#les adresses IP des petits Hackers essayant de v�rifier si votre serveur est en marche.
$IPC -A input -l -i $iface -p icmp -s 0.0.0.0/0 echo-request -j DENY 
# am�lioration des d�bits (0x08) et d�lais (0x10)
$IPC -A output -p tcp -d 0/0 telnet -t 0x01 0x10               
$IPC -A output -p tcp -d 0/0 ssh -t 0x01 0x10               
$IPC -A output -p tcp -d 0/0 ftp -t 0x01 0x10                  
$IPC -A output -p tcp -s 0/0 ftp-data -t 0x01 0x08             
# blocage des tentatives d'IPspoofing (et log)  
$IPC -A input -i $iface -s $mynet -l -j DENY
# blocage des ports serveurs
for p in $tcp ; do
    $IPC -A input -p tcp -i $iface -s 0/0 -d 0/0 $p -j REJECT --syn
done
for p in $udp ; do
    $IPC -A input -p udp -i $iface -s 0/0 -d 0/0 $p -j REJECT
done

Bien s�r, vous pouvez rejeter plus de ports si vous le d�sirez en ajoutant leurs num�ros dans les variables tcp et udp.

Au dessus, la politique par d�faut �tait d'ACCEPTer les paquets IP et de rejeter (REJECT) certains d'entre eux. Nous pouvons faire l'inverse. Cette derni�re technique est plus sure mais elle peut conduire � de nombreux programmes ne fonctionnant plus (car on risque d'exclure alors plus de ports que necessaire). Voici le script:

# Script IPChains generique, rejette tout par defaut

# chemin de l'executable ipchains
IPC=/sbin/ipchains
# mettez l'adresse de votre r�seau local ci-dessous
mynet=10.0.0.0/24
# l'interface r�seau que vous voulez s�curiser
# Ici,toute interface PPP si vous vous connectez � internet grace � une lien modem PPP.
iface=ppp+
# autoriser le web et ssh
tcp="80 22"
# autoriser talk ntalk, et les requetes DNS;
udp="517 518 53"

# politique par d�faut: rejeter
$IPC -P input reject
# effacer les pr�c�dentes r�gles
$IPC -F input
$IPC -F forward
$IPC -F output
# r�gles pour l'IP masquerading (utile seulement pour prot�ger les machines 
# se connectant �  internet grace � votre serveur)
...
... idem
...
# d�sactive les r�ponses ping et les logger, vous aurez dans /var/log/messages
#les adresses IP des petits Hackers essayant de v�rifier si votre serveur est en marche.
...
# am�lioration des d�bits (0x08) et d�lais (0x10)
...
... idem
...
# d�blocage des ports serveurs
for p in $tcp ; do
    $IPC -A input -p tcp -i $iface -s 0/0 -d 0/0 $p -j ACCEPT
done
for p in $udp ; do
    $IPC -A input -p udp -i $iface -s 0/0 -d 0/0 $p -j ACCEPT
done

IP Tables

Cet outil de filtrage de nouvelle g�n�ration fait partie des nombreuses nouveaut�s des noyaux Linux 2.4.x. N�anmoins, vous pouvez toujours utiliser ipchains avec le 2.4 mais vous feriez mieux de l'oublier, iptables est plus rapide, plus flexible, extensible et peut faire beaucoup d'autres choses, comme: le NAT source, NAT destination, �viter plusieurs formes d'attaques par surcharge de service (DoS, Denial of Service), et plus encore...

Mais, pour l'instant nous allons voir comment modifier notre script g�n�rique ipchains pour qu'il utilise iptables. Le voil�:

# Script IPTables generique, accepte tout par defaut

# chemin de l'executable iptables
IPT=/sbin/iptables
# mettez l'adresse de votre r�seau local ci-dessous
mynet=10.0.0.0/24

# l'interface r�seau que vous voulez s�curiser
# Ici,toute interface PPP si vous vous connectez � internet grace � une lien modem PPP.
iface=ppp+

# les listes de ports a rejeter 
# rejeter tous les ports privil�gi�s (<1024) sauf ssh, + squid postgres linuxconf
tcp="1:21 23:1023 3128 5432 10000"
# rejeter tous les ports privil�gi�s (<1024) sauf dns, + nfs 
udp="1:52 54:1023 2049"

# effacer les pr�c�dentes r�gles
$IPT -F INPUT
$IPT -F OUTPUT
$IPT -F FORWARD
$IPT -F POSTROUTING -t nat
$IPT -F PREROUTING -t nat
$IPT -F OUTPUT -t nat

# r�gles pour l'IP masquerading
$IPT -t nat -A POSTROUTING -s $mynet -o $iface -d 0/0 -j MASQUERADE

# d�sactive les r�ponses ping et les logger, vous aurez dans /var/log/messages
#les adresses IP des petits Hackers essayant de v�rifier si votre serveur est en marche.
$IPT -A INPUT -i $iface -p icmp -s 0.0.0.0/0 --icmp-type echo-request -j LOG
$IPT -A INPUT -i $iface -p icmp -s 0.0.0.0/0 --icmp-type echo-request -j DROP 

# am�lioration des d�bits (0x08) et d�lais (0x10)
$IPT -t mangle -A OUTPUT -p tcp -d 0.0.0.0/0 --dport telnet -j TOS --set-tos 0x10
$IPT -t mangle -A OUTPUT -p tcp -d 0.0.0.0/0 --dport ssh -j TOS --set-tos 0x10
$IPT -t mangle -A OUTPUT -p tcp -d 0.0.0.0/0 --dport ftp -j TOS --set-tos 0x10
$IPT -t mangle -A OUTPUT -p tcp -d 0.0.0.0/0 --dport ftp-data -j TOS --set-tos 0x08

# blocage des tentatives d'IPspoofing (et log)  
$IPT -A INPUT -i $iface -s $mynet -j LOG
$IPT -A INPUT -i $iface -s $mynet -j DROP

# blocage des ports serveurs
for p in $tcp ; do
  $IPT -A INPUT -p tcp -i $iface -s 0/0 -d 0/0 --dport $p -j REJECT --reject-with tcp-reset
done
for p in $udp ; do
  $IPT -A INPUT -p udp -i $iface -s 0/0 -d 0/0 --dport $p -j REJECT
done

Une nouvelle option '--reject-with tcp-reset' permet de rendre le firewall totalement transparent vis-a-vis des scanneurs de port. (Si vous voulez faire la meme chose avec ipchains, vous aurez besoin du d�mon 'Return-RST'). Comme vous le voyez, un script de base IPTables n'est pas vraiment diff�rent d'un IPChains. Et si vous voulez faire des choses beaucoup plus compliqu�es, iptables sera plus � l'aise qu'ipchains.

Attention ! Si vous avez des probl�mes de r�solution de noms, c'est que vous avez rejet� trop de ports UDP. Si vous n'utilisez pas un serveur de noms local, des ports al�atoires UDP (au dessus de 1024), vont �tre utilis�s par la libc pour la r�solution de noms, c'est pour cela que vous devez laisser ouvert les ports sup�rieurs � 1024, ce qui n'est pas satisfaisant d'un point de vue s�curit�. Pour avoir le contr�le sur ces ports UDP, vous devez installer un serveur de noms (bind 8.x ou 9.x), et ajouter la ligne "query-source address * port 53;" dans named.conf pour fixer le port qui servira aux requ�tes DNS � 53. Apr�s cela, il vous suffit d'ouvrir le port 53 sur votre firewall (vous pouvez bien s�r utiliser un port autre que le 53).

TCP Wrappers et Inetd

Une des choses les plus importantes est de s�curiser les TCP Wrappers. En effet, une installation de base va activer de nombreux services (lanc�s par Inetd) que vous n'utiliserez jamais. Souvenez-vous que plus de services activ�s, signifie plus de trous de s�curit� potentiels.

Donc �ditez /etc/inetd.conf et effacez toute ligne qui n'est pas utile. En particulier: echo, discard, daytime, chargen, telnet, gopher, shell, login (et � la place utilisez SSH ), exec, *talk, pop-*, imap, uucp, *finger, netstat, time, linuxconf. Vous devriez laisser le service 'auth' , afin d'�tre capable d'obtenir quelques informations suppl�mentaires au cas o� votre syst�me �tait utilis� pour en attaquer un autre: Il permet � un serveur de connaitre l'utilisateur qui est derri�re un socket ce qui aide � trouver les coupables. (ou d�sactivez le si vous voulez devenir un Cr4CkeR ;-)

Ensuite, si vous avez Vraiment BESOIN de certains services comme ftp, smtp, nntp, imap, pop-3, v�rifiez qu'ils sont lanc�s par l'interm�diaire des TCP Wrappers (/usr/sbin/tcpd) et et que ces derniers sont correctement configur�s. Par exemple, si ftp est lanc� par les TCP Wrappers, vous devez avoir la ligne suivante dans /etc/inetd.conf :

ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  in.ftpd -l -a

Pour restreindre l'acc�s � un service, vous devez �diter les fichiers /etc/hosts.deny et /etc/hosts.allow. Un bon point de d�part est d'ajouter la ligne suivante � /etc/hosts.deny pour refuser tout acc�s aux services d'Inetd:

ALL: ALL

Vous pouvez �galement d�cider de lancer un script lorsqu'un acc�s est refus�:

ALL: ALL: (/usr/sbin/safe_finger -l @%h -s %d-%h | mail root) &

Cette ligne va tenter un 'finger' sur la machine du cracker et va envoyer un rapport � root. Ou vous pouvez tenter d'utiliser le service ident (rfc931) de l'attaquant afin de logger son login ainsi que son IP:

ALL: ALL: rfc931

Ensuite dans /etc/hosts.allow, vous pouvez donner acc�s � certaines machines de votre r�seau local:

ALL: LOCAL 10.0.0. 

Vous pouvez ajouter une ligne par type de service:

ftp: 10.0.0.1 

va autoriser l'utilisation du serveur ftp seulement depuis la machine 10.0.0.1

Ou m�me

ftp: linus@10.0.0.1

pour autoriser un seul utilisateur.

Pour plus d'information sur la syntaxe de ces fichiers faire un 'man hosts_acces'. Et utilisez ssh / openssh en tant qu'alternative s�curis�e � rcp, rlogin, telnet, ftp...

Sendmail

Sendmail a �t� un des logiciels les plus bugg�s et a souvent �t� utilis� pour compromettre des syst�mes.

La premi�re r�gle de s�curit� avec Sendmail est donc de toujours utiliser la derni�re version (Ceci est aussi de toutes facon vrai pour les autres serveurs).

La deuxi�me est de bidouiller l'inf�me fichier /etc/sendmail.cf:
- si vous utilisez Sendmail seulement pour envoyer du mail sans passer par la passerelle de votre FAI, alors ajoutez 'O DaemonPortOptions=Addr=127.0.0.1'. Ainsi, Sendmail sera li� uniquement � l' interface loopback, et il ne sera donc pas vu l'Internet ! (netstat affichera '127.0.0.1:smtp' et non pas '*:smtp'). Vous pouvez aussi mettre l'IP de votre interface ethernet � la place de 127.0.0.1 mais, cette fois vous ne pourrez pas envoyer de mail localement mais les autres machines de votre r�seau pourront utiliser votre Sendmail, sans que des hackers sur internet ne puissent le voir !
- Ajoutez 'O PrivacyOptions=goaway' pour d�sactiver la commande smtp VRFY qui peut �tre utilis�e pour d�couvrir des informations sur les comptes utilisateur de votre serveur.

La troisi�me r�gle est de mettre les adresses IP qui peuvent utiliser Sendmail dans le fichier /etc/mail/ip_allow.

Si votre Sendmail doit �tre vu depuis n'importe quelle interface et que vous n'avez pas peur de charger votre CPU, vous pouvez le faire tourner sous Inetd (avec 'sendmail -bs') , de facon � utiliser les LCA des TCPWrappers. Dans ce cas, lancez p�riodiquement 'sendmail -q30m' pour vider la queue.

Pour terminer, voici un petit truc pour r�soudre un probl�me courant si vous utilisez Netscape Communicator pour surfer et envoyer du mail: votre email sera utilis� � la fois pour le ftp et pour l'email. Par cons�quent, n'importe qui sur le WEB, peut r�cup�rer votre adresse email:
- Ils mettent un lien bidon en ftp sur leur page Web
- lorsque vous visualisez la page, Communicator se connecte au site ftp (pour r�cup�rer une image par example)
- et votre email est logg� par le serveur ftp, pret � �tre diffus� par les spammers !

Pour �viter ceci, mettez en place un masquage d'adresse email. Pour ce faire utilisez Linuxconf ou bidouillez 'sendmail.cf'. Si vous les lignes suivantes � 'sendmail.cf':

# Masquerading rules                                                            
S1                                                                              
Rwarez<@mail.net>        $@ me < @ mail.net>                                 
Rwarez<@mail.net.>       $@ me < @ mail.net.>                                

ET ensuite initialisez votre email dans Communicator � 'warez@mail.net',
-si vous vous connectez � un site ftp, vous enverrez 'warez@mail.net' et votre v�ritable email ne sera pas d�voil�.
- mais si vous envoyez un mail, Sendmail va remplacer 'warez@mail.net' par votre v�ritable email 'me@mail.net'.
Et � l'arriv�e, tout ce que vous remarquerez, ce sera beaucoup moins de Spam dans votre courrier.

Finalement, ne n�gligez pas l'option de lancer Sendmail dans une prison 'chroot' (ou de ou de le faire tourner sans les droits du superutilisateur 'root'. La plupart des serveurs (http, ftp,...) proposent ce type d'options, pour maximiser la s�curit�, et pour se prot�ger de 'bugs pas encore d�couverts'.

Exim

Exim, mon MTA favori, et également le MTA choisi par défaut par le projet Debian, comporte de nombreuses options orientées sécurité. Par exemple, vous pouvez restreindre l'acces a Exim avec l'option 'host_reject' :

    host_reject = !1.1.1 : *.com

La ligne ci-dessus, rejettera toute machine du domaine .com, ou n'appartenant pas au sous réseau 1.1.1 . Comme Exim est tres flexible, si vous désirez un controle d'acces plus dynamique, rien ne vous empeche d'exécuter des requettes LDAP ou MySQL :

    host_reject = ${lookup ldap {user="cn=manager,o=mysite,c=com" pass=secret 
		    ldap:///o=mysite,c=com?host?(cn=foo)} {$value}fail}

ou

    host_reject = ${lookup mysql{select host from acl where id='ph10'}{$value}fail}

Dans le meme genre, avec l'option 'host_accept_relay' vous pouvez controler quelles machines peuvent utiliser votre MTA en tant que relais vers des domines arbitraires.

Et si en plus, vous desirez faire écouter Exim sur une interface réseau specifique, il vous suffit simplement utiliser l'option 'local_interfaces' comme indiqué ci-dessous:

    local_interfaces = 127.0.0.1 : ::::1               # adresse IPv6

Tout ceci n'est qu'une infime partie des possibilites d'Exim, et j'espere donc que vous allez vous jeter dans la doc d'Exim et y decouvrir sa puissance (qui plus est, a la portee de tous).

Postfix

Postfix a une option, 'inet_interfaces', similaire � l'option "DaemonPortOptions=Addr" de Sendmail mais ce qui est super ici est que vous pouvez sp�cifier plus d'une interface !

Smail

Smail poss�de l'option 'listen_name' similaire au "DaemonPortOptions=Addr" de Sendmail.

De plus, avec l'option 'smtp_remote_allow' vous pouvez un controle d'acc�s simple bas� sur le nom de la machine cliente.

DNS, Bind

Si vous jetez un coup d'oeil � des archives s�curit�, vous verrez que, comme Sendmail, Bind a un lourd pass�. Donc, installez toujours la derni�re version.

Mais heureusement, vous pouvez facilement ajouter des LCA dans '/etc/named.conf'. Dans l'exemple plus bas vous pouvez voir l'init d'une LCA nomm�e 'internal' qui contient la sp�cification d'un r�seau local. Vous pouvez ajouter autant de sections 'acl' que vous le voulez. Ensuite dans la sous-section 'allow-query' de la section 'options', vous pouvez ajouter vos LCA globales . L'option 'allow-query' peut peut aussi �tre locale � une zone de votre DNS.

    acl internal {                                                               
            10.0.0.0/24;                                                        
            127.0.0.0/24;                                                       
    };                                                                          
    options {                                                                   
           allow-query {                                                        
                   internal;                                                       
         };                                                                    
     };                                                                          

De la m�me facon vous devriez restreindre les transferts de zones avec la directive 'allow-transfer' dans la d�finition d'une zone, �tant donn� que la topologie de votre r�seau peut �tre une source d'information importante pour un cracker qui voudrait s'introduire.

Ajouter l'option "query-source address * port 53;", permet de fixer le port UDP utilis� pour les requ�tes DNS, et donc de n'avoir qu'un seul port UDP bien identifi� � ouvrir sur le firewall (le 53, ou un autre de votre choix).

Comme avec la majorit� des serveurs, vous pouvez aussi faire tourner Bind dans une prison 'chroot' (option -t en ligne de commande), et/ou sous un autre utilisateur que 'root' (option -u en ligne de commande), pour minimiser les d�g�ts en cas d'intrusion.

Samba

Les LCA sont ici initialis�es par le param�tre 'hosts allow' . Il peut �tre pr�sent soit dans la section '[global]' du fichier 'smb.conf', soit dans toute section de partage. Comme vous le voyez plus bas, la syntaxe est triviale:

    hosts allow = 10.0.0., 127. , myhost.mydomain 

ou

    hosts allow = 10.0.0. EXCEPT 10.0.0.200

ou m�me,

    hosts allow = 10.0.0.0/255.255.255.0

Vous pouvez aussi vous amuser avec le param�tre 'host deny' qui a l'effet inverse. Bien sur, Samba propose un support pour li� le serveur � une seule interface r�seau avec le param�tre 'bind interface only' qui peut �tre pr�sent dans la section 'global'.

Illustration:

    bind interfaces only = True
    interfaces = 192.168.0.0/255.255.255.0

Apache

Le contr�le d'acc�s sous Apache est extr�mement puissant et flexible.

Ci-dessous, vous pouvez voir comment prot�ger une seule page (ajoutez ceci dans le fichier 'httpd.conf'). Bien sur, vous pouvez prot�ger des r�pertoires entiers en remplacant '<Files' par '<Directory'. Notez que le domaine d'autorisation (chaine de caract�res apr�s AuthName) doit �tre unique. Pour cr�er le fichier de mots de passe (/home/bill/apache.htpasswd dans cet exemple), utilisez l'utilitaire 'htpasswd'.

        <Directory /home/bill/public_html>
	        <Files thesecret.file>
		        AuthName "Bill secret stuff"
			AuthType Basic
			AuthUserFile /home/bill/apache.htpasswd
			Require valid-user
		</Files>
	</Directory>

Ci-dessous, un exemple de configuration plus int�ressant.
Il montre comment faire pour, obtenir un acc�s sans restrictions � un fichier lorsque le client est sur un r�seau local (10.0.0.0/255.0.0.0), mais lors d'un acc�s externe, un mot de passe devient n�cessaire:

    <Files foo.html>
            Order Deny,Allow
               Deny from All
               Allow from 10.0.0.0/255.0.0.0 
            AuthName "Insiders Only"
            AuthType Basic
            AuthUserFile /home/httpd/etc/htpasswd
            Require valid-user
            Satisfy Any
    </Files>

Au lieu d'un r�seau entier (10.0.0.0/255.0.0.0), vous pouvez �galement rejeter une seule machine avec 'Allow from 10.2.3.4' ou 'Allow from foo.com', cependant la derni�re forme peut ralentir le serveur � cause des requetes DNS inverses qu'elle entrainera.

En fait, les possibilit�s de s�curisation et de log d'Apache sont si puissantes, qu'une description compl�te d�passe le but de cette page. Referez vous au manuel d'Apache pour plus d'informations.

RPC and NFS

La derni�re version de RPC (qui est utilis� par NFS) utilise les m�mes fichiers qu'Inetd pour le contr�le d'acc�s. Donc, pour que votre NFS soit un peu plus s�r vous pouvez ajouter une ligne de ce type � '/etc/hosts.allow'

      
    portmap: 127.0.0.1 10.0.0.2 10.0.0.1 255.255.255.255 0.0.0.0                

et ceci, � '/etc/hosts.deny':

                                                   
    portmap: ALL: (/usr/sbin/safe_finger -l @%h | mail root) &                  

Autre problème: les programmes utilisant les RPC, choisissent souvent un port de facon aléatoire, ce qui rend la configuration d'un pare-feu plus compliquée. Par example 'NFS' utilise la plupart du temps le port 2049 mais 'mountd' choisit un port inutilisé supérieur à 1024. Heureusement, vous pouvez forcer le port de 'mountd': ajoutez l'option '-P 909' sur la ligne de lancement de rpc.mount. Le filtrage des port UDP de mountd est maintenant trivial !

Lpd

Le d�mon standard de gestion d'impression permet de d�finir des LCA de base en ajoutant les machines autoris�es au fichier '/etc/hosts.lpd'. Je ne sais pas si Lprng, le 'new generation line printer daemon', propose plus d'options de s�curit� r�seau. Mais de toute facon il devrait �tre plus robuste que Ldp. Si vous pouvez, passez � Lprng.