Documente Academic
Documente Profesional
Documente Cultură
4
4
5
6
2 Serveur DHCP
2.1 Client DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Conguration dun serveur DHCP . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
9
3 Partage de chiers
3.1 Installation de NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Installation de Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
11
13
17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
18
19
20
21
22
24
5 Conguration dApache
5.1 Conguration de base . . . . . . .
5.2 Contrle des accs un rpertoire .
5.3 Congurer laccs aux scripts CGI
5.4 Le module PHP . . . . . . . . . . .
5.5 Grer les pages WEB personnelles .
5.6 Virtual hosts . . . . . . . . . . . .
5.7 Gestion des ressources du serveur .
5.8 Statistiques WEB avec awstats . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
27
29
31
32
32
33
33
33
35
35
37
.
.
.
.
.
.
.
.
39
et TLS
Cryptographie asymtrique et lattaque Man In The Middle . . . . . . . . .
Scurisation dun serveur web par SSL/TLS . . . . . . . . . . . . . . . . . . .
Exemple : la gnration dun cericat autosign . . . . . . . . . . . . . . . . .
41
41
41
42
III
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Routage, rewall
49
49
51
52
54
55
58
9 Routage
9.1 Adresses IP et MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2 Sous-rseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3 Routage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
59
60
60
63
63
64
66
66
67
68
68
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
IV LDAP
70
71
71
72
72
75
76
77
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Premire partie
Conguration dun rseau local (LAN )
Chapitre 1
Conguration dune station
Un ordinateur communique avec les autres ordinateurs par des interfaces rseaux. En gnral,
on a une interface rseau pour chaque carte rseaux (pour les ordinateurs qui ont plusieurs
cartes rseaux). Une carte rseau (ethernet ou wi) possde une adresse MAC, qui identie la
carte rseau sur le rseau. Pour faire fonctionner une carte rseau, il faut congurer linterface
qui li correspond.
# /etc/init.d/networking start
Pour rinitialiser le rseau aprs un changement dans les chiers de conguration, il faut faire :
# /etc/init.d/networking restart
de l'interface eth0
static
192.168.0.2
255.255.255.0
no wireless extensions.
eth1
Invalid misc:2
no wireless extensions.
Missed beacon:98
Chapitre 2
Serveur DHCP
2.1 Client DHCP
Le protocole DHCP (pour Dynamic Host Conguration Protocol). Dans un tel rseau, la station
na pas besoin de connatre son adresse IP pour se connecter, mais laddresse IP est xe
directement par le serveur DHCP. Dans ce cas, le chier interfaces est nettement simpli
et ne dpend que de linterface :
# cat /etc/network/interfaces
auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
Lorsque le client ainsi congur dmare le rseau, cela lance un processis dhclient qui
cherche contacter un serveur DHCP. Le serveur DHCP rpond en allouant une adresse IP
pour un certain temps.
On peut limiter les serveur DHCP une (ou plusieurs) intefaces en ditant le chier /etc/default/dhcp3-ser
10
Chapitre 3
Partage de chiers
3.1 Installation de NFS
Le protocole NFS (Network File System) permet de partager facilement des chiers entre des
machines Unix, et donc Linux. Cest un modle client-serveur : une machine exporte, i.e. met
disposition, des rpertoires de son systme de chier local sur le rseau. Suivant les droits
daccs, les autres stations du rseau peuvent monter ces rpertoires, qui seront alors vus
comme des rpertoires locaux. Bien videmment, un ordinateur peut tre la fois client et
serveur NFS.
11
/home
ollinux(rw)
station1(ro)\\
/projet
station1(rw) (ro)\\
/brouillon\\
Lordinateur exporte son rpertoire /home : la machine ollinux pourra le monter en lecture/criture (rw), la machine station1 en lecture seule (ro), les autres machine ne pourront pas se connecter. De mme, station1 pourra accder en lecture/criture au rpertoire
projet et toutes les autres stations en lecture seule. Enn, tout le monde pourra accder en
lecture/criture au rpertoire brouillon (loption rw est celle par dfaut).
Notez bien que les droits en criture via le rseau seront toujours inhibs par les droits sur
le systme de chier. Prenons par exemple un chier test appartenant root, situ dans le
rpertoire projet et avec les droits 600 (lecture/criture pour root uniquement , aucun droit
pour les autres). Si lutilisateur toto accde via la station station1 au rpertoire /projet, il
ne pourra pas accder au chier test, bien quil ait les droits rseaux read-write.
Un fois le chier /etc/exports correctement congur, il sut de relancer le service NFS
par la commande suivante pour que les modications soient prises en compte :
\textit{/etc/init.d/nfs-kernel-server reload}
Les options sont les mmes que pour le systme de chier local (ext2fs) avec en plus, spciques
NFS.
[homes]
comment = Home Directories
browseable = no
14
16
Deuxime partie
Applications WEB, FTP et Mail
17
Chapitre 4
Initiation la programmation WEB
4.1 Principales balises HTML
Le langage HTML (ou Hyper Tex Modeling Language) permet dcrire en texte ASCII du texte
qui sera interprt par les navigateurs Web pour acher des doncuments mis en forme.
La mise en forme, ainsi que les liens hypertexte, etc... sont indiqus dans le source HTML
par des balises. Voici un certain nombre de balises HTML.
Voici un exemple de chier source HTML, dont le rendu sous les navigateur Iceweasel est
montr sur la gure 4.1.
4.4.1 INPUT
La balise INPUT cre des des champs dans une page HTML permettant de recueillir soit du
texte, soit un choix parmis une liste, soit un boolen. Voici la syntaxe dINPUT :
<INPUT TYPE="text" {\em ou} "submit" {\em ou} checkbox {\em ou} radio...
NAME=nom\_de\_l'entre
SIZE=taille du champs
VALUE="valeur par defaut du champ ou tiquette du bouton submit"
>
Le type text indique quil sagit dune input permettant de recueillir des donnes
texte.
Le type checkbox cre une case cocher.
Le type submit permet la cration dun bouton. Lorsque lon clique dessus et que
lon a cre un formulaire, le programme cgi est appel.
Dans tout les cas, lattribut NAME indique le nom de lentre. Il est inutile avec le
type submit mais dans les autres cas il permet au script CGI de sy retrouver entre les
dirents champs du formulaire.
Size indique la taille dun champ de type texte dans la page HTML (nombre de caractres).
VALUE est la valeur par dfaut du champ ou ltiquette du bouton ou de la case.
4.4.2 SELECT
La balise SELECT cre une liste droulante o lutilisateur na plus qu slectionner sur lun
des choix proposs. Voici sa syntaxe :
<SELECT NAME="nom\_de\_l'entre">
<OPTION> un des choix que vous voulez mettre
<OPTION> un autre choix
</SELECT>
On peut placer autant de choix que lon souhaite.
21
4.5 Un exemple
Voici (voir gure 4.2) un exemple de formulaire HTML avec les script CGI crit en bash qui
traite les donnes. Ici, le chemin au script my_script.cgi est donn en relatif.
<html>
<head>
<title>Exemple de formulaire</title>
</head>
<body>
<p>
Veuillez saisir les données suivantes :
</p>
<br>
<form name="formulaire exemple"
action=/cgi-bin/my_script.cgi method="post">
<p>
Nom patronymique
<input type="text" name=nom size=12 value="">
</p>
<p>
Genre
<select name=sexe value="Choisissez">
<option>Choisissez
<option>Homme
<option>femme
<option>autre
</select>
</p>
<p>
Cochez ici pour accepter les conditions
<input type="checkbox" name=accepte value="true" unchecked>
</p>
<p>
<input type="submit" value="Envoyer">
<input type="reset" value="Tout effacer">
</p>
</form>
</body>
</html>
Voici le script my_script.cgi
#!/bin/bash
echo -e "Content-type: text/html\n\n"
read ENTREE
echo "L'enrée standard du script est :"
22
</form>
</select>
</p>
<p>
Cochez ici pour accepter les conditions
<input type="checkbox" name=accepte value="true" unchecked>
</p>
<p>
<input type="submit" value="Envoyer">
<input type="reset" value="Tout effacer">
</p>
</form>
</body>
</html>
Voici le chier my_script.php :
<html>
<head>
<title>Traitement d'un formulaire en PHP</title>
</head>
<body>
<?php
if (\$_POST['sexe'] == 'Choisissez')
{
echo 'Erreur, vous devez obligatoirement faire un choix ';
echo '<a href="./formulaire.html">Cliquez ici</a> pour vous ressaisir.';
}else
{
echo 'Votre nom est ';
echo htmlspecialchars(\$_POST['nom']);
echo '<br>Vous êtes de genre ';
echo \$_POST['sexe'];
if (\$_POST['accepte'] == 'true')
echo '<br>Vous avez accepté les conditions';
else
echo '<br>Vous avez refusé les conditions';
}
?>
</body>
</html>
26
Chapitre 5
Conguration dApache
Apache est un serveur http libre, cest un des serveurs http les plus utilis sur Internet avec
plus de 60% des sites dInternet (contre environ 20% pour IIS).
En rsum, un serveur http est un serveur hbergeant un ou plusieurs sites Web cest
dire des pages html ou des programmes gnrant des pages html (programmes cgi) qui sont
accessibles par des navigateurs de type mozilla ou autre. Le protocole, permettant lchange de
pages html est le protocole http, dou le nom de serveur http. Ce protocole utilise gnralement
le port 80.
On trouvera une documentation complte sur apache (en anglais) sur le site suivant :
http://httpd.apache.org/docs/.
Premirement, sous Debian, il faut savoir lancer le dmon apache :
# /etc/init.d/apache2 start.
Pour vrier que le dmon apache tourne :
# ps -ef|grep apache
Pour relancer apache aprs un changement de conguration, tapez :
# /etc/init.d/apache2 start.
5.2.1 Exemple.
NameVirtualHost *
<VirtualHost *>
DocumentRoot /home/monRepertoire/ # racine du site
<Directory />
# droits du rpertoire racine
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/monRepertoire/> # droits sur l'ensemble du site
Options Indexes FollowSymLinks MultiViews
AllowOverride None # interdit les .htaccess
Order allow,deny # donnne l'ordre des permissions
allow from all
# autorise tous les clients
# avec la directive suivante, il faut mettre la
# page d'acueil dans /home/monRepertoire/apache2-default/
# Commentez si vous voulez mettre les fichiers la
# racine de /home/monRepertoire/
RedirectMatch ^/\$ /apache2-default/
</Directory>
etc...
</VirtualHost>
3. Indexes : Permet aux utilisateurs davoir des index gnr par le serveur. Cest dire si
lindex du rpertoire (index.html ou index.php par exemple) est manquant, cela autorise
le serveur a lister le contenu du rpertoire (dangereux suivant les chiers contenu dans
ce rpertoire).
4. FollowSymLinks : Autorise a suivre les liens symboliques.
5. ExecCGI : Autorise excuter des scripts CGI dans ce rpertoire.
6. Includes : Autorise des chiers include cot serveur SSI.
7. IncludesNOEXEC : Permet mais les includes mais empche la commande EXEC (qui
permet dexecuter du code).
8. Multiviews : Autorise les vue multiples suivant un contexte. Par exemple permet dafcher les pages dans une langue dirente suivant la conguration du client.
9. SymLinksIfOwnerMatch : Autorise a suivre les liens seulement si luser ID du chier
(ou rpertoire) sur lequel le lien pointe est le mme que celui du lien.
Les CGI ont normalement t intgrs au serveur Apache sous forme dun module chargeable, le chier mod_cgi.so, situ comme tous les autres modules dApache dans /usr/lib/apache2/modu
La liste des modules activs se trouve dans le rpertoire
/etc/apache2/mods-enabled/
Vriez que le module cgi sy trouve bien. Sil ny est pas, crez des liens symbolique vers les
chiers correspondant dans /etc/apache2/mods-available :
# cd /etc/apache2/mods-enabled/
# ln -s ../mods-available/cgi.* .
ou plus simplement :
# a2enmod cgi
Pour quApache prenne en charge un script, il est ncessaire deectuer un minimum de
paramtrage. Il faut ajouter la directive ScriptAlias qui prcise le nom du seul rpertoire
autoris contenir des scripts :
31
cd /etc/awstats/
cp awstats.conf awstats.default.conf
On dite ensuite ce chier, qui comprend principalement les options suivantes :
34
Chapitre 6
Congurer un serveur FTP avec proftp
FTP est un protocole dchange de chiers. Le serveur indique quels sont les rpertoires partages et gre les mots de passe.
Un client ftp peut se connecter un serveur en donnant le nom de la machine serveur, en
donnant un login et mot de passe.
Sous linux, le serveur le plus couramment utilis est wu-ftp. Or celui-ci est trs peu scuris
et laisse passer les mots de passe en clair.
ProFTP est un serveur ftp demandant moins de ressources et orant une scurit accrue.
Les mots de passe sont crypts par dfaut (si le client le supporte !), les donnes peuvent ltre
grce un systme de certicats. De plus, la gestion des droits daccs et la conguration sont
proches de celles dapache. Il faut cependant tre conscient quFTP est loin dorir les mmes
condition de scurit quSSH ou SFTP.
On dmare proftpd par la commande :
/etc/init.d/proftpd start
On relance proftpd aprs un changement de conguration par la commande :
/etc/init.d/proftpd restart
On arette proftpd par la commande :
/etc/init.d/proftpd stop
"Debian"
standalone
off
MultilineRFC2228
DefaultServer
ShowSymlinks
on
on
on
TimeoutNoTransfer
TimeoutStalled
TimeoutIdle
600
600
1200
DisplayLogin
DisplayFirstChdir
ListOptions
welcome.msg
.message
"-l"
DenyFilter
\*.*/
49152 65534
TransferLog /var/log/proftpd/xferlog
SystemLog
/var/log/proftpd/proftpd.log
<IfModule mod_tls.c>
TLSEngine off
</IfModule>
<IfModule mod_quota.c>
QuotaEngine on
</IfModule>
<IfModule mod_ratio.c>
Ratios on
</IfModule>
off
serveur utiliser la commande put. Pour clturer la session, utilisez la commande quit.
Il existe de nombreuses autres commandes. Tapez help pour avoir la liste des commandes
et help cmd pour avoir la description dune commande cmd.
40
Chapitre 7
SSL et TLS
Pour la communication scurise entre un serveur (web, de mail par exemple) et un client
sur internet, la connection doit tre crypte. La plupart des systmes actuels reposent sur le
cryptage asymtrique, ou cryptographie cl plublique, dont RSA est un paradime phare. La
faiblesse de ces systmes repose dans la ncessit pour le destinataire du message de communiquer la clef publique lexpditeur du message. Lorsque lexpditeur du message est un client
web qui doit crypter ses donnes pour les envoyer serveur, comment ce client peut-il sassurer
quil a bien aaire au bon serveur et nutilise pas la clef publique dun site pirate ?
ne peut pas signer lui-mme sa clef publique car il faudrait la clef publique pour vrier la
signature (cest le fameux serpent qui se mord la queue). Pour cette raison, on fait appel
une autorit de certication pour signer la clef publique du serveur. Il faut que lautorit de
certication, qui a en principe pignon sur rue, mette disposition des clients potentiels sa cl
publique pour que le client puisse vrier la signature et par l lauthenticit de la cl publique
du serveur. (vous me suivez ?) Le schma dune connexion crypte un site web de e-commerce
suivant le protocole SSL ou TLS est reprsent sur la gure 7.6.
$ openssl x509 -req -CA ca.crt -CAkey ca.key -in apache.csr -out apache.crt
Signature ok
subject=/C=FR/L=Billom/O=Remy's tech tests/OU=Technical tests department/CN=www.remystuto
Getting CA Private Key
Enter pass phrase for ca.key:**********
On stocke les clefs publique et prive dans le mme rpertoire pour apache2 Attention aux
droits des chiers contenant une clef prive !
$ chown root.www-data apache.crt apache.csr apache.pem ca.crt ca.key ca.srl
$ chmod 640 apache.pem apache.csr
$ chmod 600 ca.key
Dans la ralit, ca.key est conserve prcieusement sur une autre machine scurise !
$ ls -l /etc/apache2/certs
insgesamt 24
-rw-r--r-- 1 root www-data 1123 Mai 24 08:46 apache.crt
43
1
1
1
1
1
root
root
root
root
root
apache.csr
apache.pem
ca.crt
ca.key
ca.srl
44
message clair
de A pour B
A
crypte
Chez A
message chiffre
de A pour B
cle publique de B
envoie
communique
cle publique de B
cle privee de B
message chiffre
de A pour B
Boite aux lettres de B
genere
Chez B
decrypte
message clair
de A pour B
45
Chez A
A
genere
cle publique de A
cle privee de A
code
message signe
de A pour B
message clair
de A pour B
envoie
communique
message signe
de A pour B
cle publique de A
B
Chez B
decode
message clair
de A pour B
46
message clair
de A pour B
A
crypte
Chez A
message chiffre
de A pour B
intercepte
cle publique de X
message chiffre
de A pour B
envoie
cle publique de X
cle privee de X
communique
genere
intercepte
communique
cle publique de B
cle privee de B
envoie
cle publique de B
crypte
genere
Chez B
message clair
de A pour B
Chez X
decrypte
Figure 7.3 : Lattaque dite Man In The Middle dans le cas denvoi dun message crypt.
Serveur web
Client
3) communique son numro de carte bancaire crypte
Figure 7.4 : Ide simple et nave dune connexion un site de e-commerce (non recommand).
47
6)
pu
ero
num
c
de
e
ar t
ca
b an
ire
p
cr y
3)
te
4)
2) intercepte
5)
co
u
mm
niq
s
ue
le
ac
u
liq
7)
tra
n sm
et
co m
num
ero
mu
ni
de
que
ca r
te
init
sa
b an
ie u
cl e
ca i
ne
pub
re
c
co n
liqu
ryp
Client
n ec
t i on
te
Serveur web
Figure 7.5 : Application de lattaque Man In The Middle un site e-commerce (non recommand).
Certificate Authority
cle
rnit
u
o
F
gn a
n si
o
i
t
a
rific
r ve
u
o
e (p
liqu
pub
ture
)
1)
(id
en
tifi
an
td
2)
us
Fo
u
rn
er v
eu
it
rs
de
ma
cer
nd
eu
nc
tifi
ca
t
i gn
e p
ar
le
CA
er t
ific
at
au
pr
ea
la
ble
Client
5) verifie la signature du certificat et lidentite du serveur
Serveur web
Figure 7.6 : Principe dune connection SSL ou de sa version plus rcente TLS.
48
Chapitre 8
Congurer un serveur de mail avec
postfix
8.1 Le Mail Transfer Agent Postx
Un Mail Tranfer Agent (MTA), ou SMTP daemon, permet de transmettre des messages (mail)
dun ordinateur un autre. Pour envoyer un mail, on se connecte au serveur SMTP en sautentiant en utilisant un client de mail (outlook, thunderbird,...), qui transmet le message. Le
serveur SMTP applique des ltres (souvent antispam) sur le mail. Le MTA postx a aussi des
fonctionnalits de Mail Delivery Agent qui lui permettent de livrer le courrier dans une mailbox
(mbox ou Maildir). Les clients utilisateur utilisent ensuite un serveur POP pour aller chercher
le mail dans la mailbox qui se trouve sur le serveur.
La conguration de base de Postx se fait dans le chier /etc/postfix/main.cf. On y
spcie essentiellement les ltres appliquer au mail pour viter que les utilisateurs ne reoivent
trop de spams, mais aussi pour viter que le MTA ne soit utilis comme relai par des spammeurs.
Voici un exemple de chier /etc/postfix/main.cf :
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
delay_warning_time = 4h
myhostname = mondomaine.com
# dfinitions d'alias dans /etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
myorigin = /etc/mailname
49
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
# definition du reseau local privilegie
mynetworks = 127.0.0.0/8 192.168.1.0/24
smtpd_recipient_restrictions=
# rgles eliminant une partie du spam
# en vrifiant la conformit des paramtres
# (expditeur, destinataire,...) a certains protocoles
reject_invalid_hostname,
# commenter cette ligne pour les utilisateurs d'outlook :
#
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
# vrifie que l'expediteur est bien enregistr DNS
reject_unknown_sender_domain,
# vrifie que le destinataire est bien enregistr DNS
reject_unknown_recipient_domain,
# rejette certains logiciels d'envoi de mail non conformes
reject_unauth_pipelining,
# autorise a partir du rseau local
permit_mynetworks,
# viter de servir de relai de spammer avec pop-before-smtp
# (ncessite l'installation de pop-before-smtp)
check_client_access hash:/var/lib/pop-before-smtp/hosts,
# ne pas changer sans savoir pourquoi
reject_unauth_destination,
# activer le greylisting postgrey :
# ncessite l'installation de postgrey
check_policy_service inet:[127.0.0.1]:60000,
# politique par dfaut
permit
# blacklist antispam (voir fichier /etc/postfix/access)
smtpd_sender_restrictions =
check_client_access hash:/etc/postfix/access
50
check_policy_service inet:[127.0.0.1]:60000,
De plus, il faut congurer postgrey (notamment le temps que le SMTP expditeur doit attendre avant de reprsenter le mail) dans le chier /etc/default/postgrey :
#
#
#
#
cat /etc/default/postgrey
postgrey startup options, created for Debian
(c)2004 Adrian von Bidder <avbidder@fortytwo.ch>
Distribute and/or modify at will.
8.3
spamassassin
Le logiciel spamassassin permet de dtecter les spams, et ventuellement de les rediriger. Pour
cel, spamassassin attribue un score chaque mail. Plus le score est lev, plus le mail a de
chances dtre un spam.
Pour utiliser spamassassin, il faut lactiver dans postx en modiant le chier /etc/postfix/master.c
1) Rajouter loption -o content_filter=spamassassin au service smtp :
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args #
(yes)
# ==========================================================================
smtp
inet n
smtpd
-o content_filter=spamassassin
2) Rajouter une interface postx.
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# maildrop. See the Postfix MAILDROP_README file for details.
52
(yes
pipe
#
Save spam messages as a message/rfc822 MIME attachment instead of
#
modifying the original message (0: off, 2: use text/plain instead)
#
#report_safe 1
#
Set which networks or hosts are considered 'trusted' by your mail
#
server (i.e. not spammers)
#
trusted_networks 193.49.118.0/24.
#
Set file-locking method (flock is not safe over NFS, but is faster)
#
# lock_method flock
#
Set the threshold at which a message is considered spam (default: 5.0)
#
required_score 5.0
#
Use Bayesian classifier (default: 1)
#
use_bayes 1
53
#
Bayesian classifier auto-learning (default: 1)
#
bayes_auto_learn 1
smtp-amavis
unix
-o smtp_data_done_timeout=1200
-o disable_dns_lookup=yes
smtp
127.0.0.1:10025 inet
n
n
smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
# ne pas oublier de personaliser le rseau local
-o mynetworks=127.0.0.0/8 192.168.1.0/24
-o strict_rfc821_envelopes=yes
8.5
spamass-milter
Le logiciel spamass-milter est un milter qui permet dliminer certains mails qui sont des spams.
spamassassin est un antispam qui attribue un score aux mails suivant leurs chances dtre des
spams. Plus le score est lev, plus le mail a de chances dtre un spam. On peut mettre
spamass-milter en sortie de spamassassin pour rejeter les mails qui ont un score lev dans
spamassassin. Il vaut mieux mettre un seuil lev (>15 par exemple) pour viter tout faux
positifs (il nest pas trop grave daccepter un faux ngatif : lutilisateur reoit un spam, mais
cest trs gnant de rejeter un faux positifs : un vrai mail ne parvient pas au client)
8.5.1 Conguration
a) main.cf Dans le chier de conguration de postx /etc/postx/main.cf , ajoutez les lignes :
# spamass-milter configuration
# l'option accept est plus sre pour ne pas perdre de mails
milter_default_action = accept
smtpd_milters = unix:/var/run/spamass.sock
# change to this for use as a non_smtpd_milter :
#non_smtpd_milters = unix:/var/run/spamass.sock
Les donnes sont transmises du dmon de spamassassin (appel spamd) spamass-milter
via une socket. Cette socket est transmise suivant le protocole unix (sur la machine locale) via
un chier physique de type socket ici nomm spamass.sock.
55
8.5.2 /etc/default/spamass-milter
Voici le chier /etc/default/spamass-milter
# spamass-milt startup defaults
# OPTIONS are passed directly to spamass-milter.
# man spamass-milter for details
# Default, use the nobody user as the default user, ignore messages
# from localhost
# this one is the right one for use a smtpd_milters
# Reject emails with spamassassin scores > 15 : option -r 15
# Do not modify Subject:, Content-Type: or body option -m
OPTIONS="-u nobody -m -r 15 -i 127.0.0.1 -f -p /var/spool/postfix/var/run/spamass.sock"
SOCKET="/var/spool/postfix/var/run/spamass.sock"
SOCKETOWNER="postfix:postfix"
SOCKETMODE="0660"
(si jai bien compris, postx tourne en chroot et pas spamass-milter et il faut crer les
deux sockets deux endroits dirents pour quil y ait communication entre les deux sockets.
feedback wellcome)
Comme il faut faire ces quatres dernires commandes chaque reboot, on peut les mettre
dans un script (par exemple) appel /etc/init.d/initspamass et faire lancer ce script au dmarage
# chown +x /etc/init.d/initspamass
# update-rc.d initspamass defaults 99
Il faut mettre 99 pour tre sr que ce script est excut aprs le dmon /etc/init.d/spamassmilter au dmarage.
56
57
Troisime partie
Routage, rewall
58
Chapitre 9
Routage
9.1 Adresses IP et MAC
Chaque interface de chaque ordinateur sera identi par
Son adresse IP : une adresse IP (version 4, protocole IPV4) permet didentier un hte
et un sous-rseau. Ladresse IP est code sur 4 octets. (les adresses IPV6, ou IP next
generation seront codes sur 6 octets).
Ladresse mac de sa carte rseau (carte ethernet ou carte wi) ;
Une adresse IP permet didentier un hte. Une passerelle est un ordinateur qui possde
plusieurs interfaces et qui transmet les paquets dune interface lautre. La passerelle peut ainsi
faire communiquer dirents rseaux. Chaque carte rseau possde une adresse MAC unique
garantie par le constructeur. Lorsquun ordinateur a plusieurs plusieurs interfaces, chacune
possde sa propre adresse MAC et son adresse IP. On peut voir sa conguration rseau par
ifconfig.
$ /sbin/ifconfig eth0
eth0
Link encap:Ethernet HWaddr 00:B2:3A:24:F3:C4
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::2c0:9fff:fef9:95b0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:5
collisions:0 txqueuelen:1000
RX bytes:1520 (1.4 KiB) TX bytes:2024 (1.9 KiB)
Interrupt:10
On voit ladresse MAC 00:B2:3A:24:F3:C4 et ladresse IP 192.168.0.2. Cela signie que
le premier octet de ladresse IP est gal 192, le deuxime 168, le troisme octet est nul, et le
quatrime vaut 2.
59
9.2 Sous-rseaux
9.2.1 Classes de sous-rseaux
Les addresses IPV4 sont organises en sous-rseaux. Chaque sous-rseau possde une adresse,
qui est une partie de ladresse IP des machines de ce sous-rseau.
Par exemple, ladresse IP 192.168.4.35 appartient au sous-rseau 192.168.4, parfois aussi
not 192.168.4.0.
Les sous-rseaux sont organiss en classes. Chaque classe de sous-rseaux correspond des
rseaux pouvant contenir un certain nombre de machines.
Classe A : les adresses de de 1.0.0.0 127.0.0.0.
Lidentiants du rseau est alors sur 8 bits et les identiants de machine sont sur 24 bits
(plusieurs millions de machines par sous-rseau ;
Classe B : les adresses de de 128.0.0.0 191.255.0.0. Lidentiants du rseau est
alors sur 16 bits et les identiants de machine sont sur 16 bits (plus de 65000 machines
par sous-rseau) ;
Classe C : les adresses de de 192.0.0.0 223.255.255.0. Lidentiants du rseau est
alors sur 24 bits et les identiants de machine sont sur 8 bits (au plus 254 machines par
sous-rseau, numrotes de 1 254) ;
9.3 Routage
Le routage permet de faire communiquer plusieurs sous-rseaux. Une passerelle (en anglais
gateway) est en communication avec dirents sous-rseaux sur direntes interfaces, et assure
la communication entre les dirents sous-rseaux (voir gure 9.1).
9.3.1 Routes
Une route dnie sur une station est un chemin que doivent prendre les paquets destination
dun certain sous-rseau. Prenons lexemple (voir gure 9.1) dune station, appele station 1,
60
Chapitre 9 : Routage
dadresse IP 121.65.77.8 sur un rseau 112.0.0.0/8. Elle est connecte une passerelle qui a
pour IP dans ce rseau 112.65.123.3 sur son interface eth0. La passerelle est aussi connecte
au rseau 192.168.0.0/24 via son interface eth1 qui a pour IP 192.168.0.1. Si la station 1
On peut voir ltat des routes avec la commande route -n. Par exemple, sur la station 1 :
# route -n
Destination
192.168.0.0
etc...
Gateway
112.65.123.3
Genmask
255.255.255.0
Use Iface
0 eth2
Gateway
192.168.0.1
Genmask
255.0.0.0
Use Iface
0 wlan0
Sur la station 6
# route -n
Destination
112.0.0.0
etc...
Pour supprimer une route, par exemple vers le rseau 193.86.46.0/24 via une passerelle
196.24.52.1, on fait :
# route del -net 193.86.46.0/24 gw 196.24.52.1
Chapitre 10
Protocoles, services, ports
10.1 La listes des protocles connus du systmes
Un protocole (IP, TCP, UDP,...) est un mode de communication rseau, cest dire une
manire dtablir le contact entre machine et de transfrer les donnes. Sous linux, la liste des
protocoles reconnus par le systme se trouve dans le chier /etc/protocols.
$ cat /etc/protocols
# Internet (IP) protocols
ip
0
IP
#hopopt 0
HOPOPT
icmp
1
ICMP
igmp
2
IGMP
ggp
3
GGP
ipencap 4
IP-ENCAP
st
5
ST
tcp
6
TCP
egp
8
EGP
igp
9
IGP
pup
12
PUP
udp
17
UDP
hmp
20
HMP
xns-idp 22
XNS-IDP
rdp
27
RDP
etc...
etc...
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
# resource location
# IEN 116
49/tcp
49/udp
50/tcp
50/udp
53/tcp
53/udp
57/tcp
# name-domain server
# deprecated
65
Chapitre 11
Firewall congurs avec iptables
Le pare-feu (en anglais rewall) netlter, congur avec la commande iptables, permet de
ltrer les paquets rseau entrants, sortants, et transmis, sur une machine. On peut ltrer par
interface, par port, par adresse de source ou de destination des paquets. La conguration
diptables permet aussi de partager une adresse IP (par exemple sur internet) entre plusieurs
machines dun rseau local.
11.4
Dans cette section, on suppose que les routes ont t tablies correctement et que la passerelle
a t congure pour forwarder les paquet IP (voir chapitre 9).
68
69
Quatrime partie
LDAP
70
Chapitre 12
Protocole dannuaire LDAP
LDAP (Lightweight Directory Access Protocol) est le protocole dannuaire sur TCP/IP. Un
annuaire est une base de donnes pouvant reprsenter des personnes ou des lments dinfrastructure rseau ou autre. Le but est laccs rapide linformation des attributs des objets en
lecture via des requtes. Les accs en criture sont moins optimiss. Cest ce qui direncie les
services dannuaire des systme de gestion de bases de donnes (SGBD) traditionnels. Pour
cel, les donnes de lannuaire sont organises de manire arborescente.
Par exemple, une personne de lobject class person doit avoir un objectclass, un nom
de famille sn, nom usuel ou nom complet cn, et peut avoir un prnom (givenname), une
description, un telephonenumber, un userpassword,...
Les classes peuvent driver les unes des autres comme inetOrgPerson qui hrite des attributs de person.
Lorsquon cre une nouvelle objectClass, il faut la soumettre lInternet Assigned Numbers Authority (IANA) pour que la classe soit ociellement rfrence dans LDAP.
12.3.1 Requtes
Les requtes permettent de rechercher des objets et dacher leurs attributs suivant dirents
critres.
base object : lendroit de larbre o doit commencer la recherche (voir gure 12.3). En
eet, on neectue pas ncessairement la recherche dans larbre entier. Par exemple, si
lon recherche une personne, dans lexemple de la gure 12.1, on recherchera en dessous
de lou personnes. On vite ainsi le cot de la recherche dans le reste de larbre.
72
Achage du nom commun (cn) et de la description de tous les objets de la classe simpleSecurityObject
Connection en tant quadministrateur avec prompt de mot de passe.
secret
{crypt}ijFYNcSNctBYg
77
objectClass,uid,uidNumber,gidNumber,memberUid
cn,mail,surname,givenname
eq
eq,subinitial
78