Precedent Haut Suivant


8.2.9 -  Serveur Pégase :

Le serveur Pégase héberge deux serveurs applicatifs :

            - un serveur Apache contenant les pages publiques de la société ACME,

            - un serveur de messagerie permettant l’émission et la réception de messages depuis Internet.

8.2.9.A -  Serveur Apache :

L’installation du serveur Apache hébergé par le serveur Pégase est décrite au paragraphe 8.2.6.B - . Ce serveur hébergeant les données publiques accessibles à tous il ne comprend pas d’interface sécurisée SSL.

8.2.9.B -  Serveur de messagerie :

8.2.9.B.1 -  Lecture des messages :

La lecture des messages s’effectue suivant le protocole IMAP dans sa version sécurisée IMAPS (IMAP over SSL) qui consiste à monter un tunnel SSL entre serveur et client avant de permettre la lecture des messages.

 

L’installation du serveur « courier-imap-ssl » (version 1.4.3-3) permettant de remplir cette fonctionnalité s’effectue sans problèmes particuliers en effectuant les manipulations suivantes :

è      Installation du package courier-imap-ssl :

      - apt-get install courier-imap-ssl

 

è      Ce package dépend des packages suivants :

      - exim ou mail-transport-agent ;

      - courier-imap (version >= 1.3.7-3) ;

      - courier-ssl (version >= 0.37.3) ;

      - openssl ;

      - libc6 (version >= 2.2.4-4) ;

      - libgdbmg1 ;

      - courier-base (version >= 0.37.3) ;

      - courier-authdaemon (version >= 0.37.3) ;

      - perl ;

      - debconf ;

      - libpam0g (version >= 0.72-1).

 

Le logiciel « courier-imap-ssl » se paramètre à l’aide du fichier de configuration « /etc/courier/imapd-ssl ». Le fichier correspondant au serveur « Pégase » est donné ci-dessous :

#

# Emplacement : Maquette de test SGA

# Description : Fichier de parametrage du serveur courier en mode SSL

# Serveur     : Pegase

# Copyright   : marc.boget@gendarmerie.org

#

 

# Definition des repertoires de travail de courier-imap-ssl

prefix=/usr

exec_prefix=/usr

 

# Port d'ecoute du protocole IMAPS

SSLPORT=993

 

# Adresse d'ecoute du serveur

# Cette addresse peut aussi etre de la forme SSLADDRESS=10.1.2.2

SSLADDRESS=0

 

# Fichier de stockage du PID courant

SSLPIDFILE=/var/run/courier/imapd-ssl.pid

 

# Passe la main au démon authdaemon pour la partie authentification

# des utilisateurs

AUTHMODULES="authdaemon"

 

# Demarre le mode SSL et TLS

IMAPDSSLSTART=YES

IMAPDSTARTTLS=YES

 

# force l'emploi de STARTTLS

IMAP_TLS_REQUIRED=0

COURIERTLS=/usr/bin/couriertls

 

# Utilisation du SSLv3 et du protocole TLSv1

# Les versions possibles sont SSL2, SSL3 et TLS1

TLS_PROTOCOL=SSL3

TLS_STARTTLS_PROTOCOL=TLS1

 

# Emplacement des différents certificats

TLS_CERTFILE=/etc/courier/pegase.pem

TLS_TRUSTCERTS=/etc/courier/ac.pem

 

# Demande la presentation obligatoire d'un certificat client

# Ceci n'est pas possible avec les clients Outlook qui n'offrent

# pas cette possibilité

# Cette variable peut etre mise a :

#    - NONE

#    - PEER : verification du certificat client si présenté

#    - REQUIREPEER : requiert un certificat client

TLS_VERIFYPEER=NONE

 

Le logiciel « courier-imap-ssl » s’appuie sur le démon d’authentification « authdaemon » dont le paramétrage s’effectue à l’aide du fichier de configuration « /etc/courier/authdaemonrc ». Le fichier correspondant du serveur « Pégase » est donné ci-dessous :

#

# Emplacement : Maquette de test SGA

# Description : Fichier de parametrage du démon authdaemon

#         permettant l'authentification des clients courier

# Serveur     : Pegase

# Copyright   : marc.boget@gendarmerie.org

#

 

# The term "authentication" is used in the following documentation to

# refer to either one of these two functions. The library contains

# several alternative authentication implementations, that may be

# selected at runtime.

#

# authdaemon authenticates through a background daemon proxy. This is

# now the installation default. Unless otherwise specified, the

# authdaemon module will always be installed. authdaemon is installed

# instead of the other authentication modules. Those modules are

# instead compiled into a separate executable program, authdaemond that

# is initialized at system start, and runs in the background. The

# authdaemon authentication module forwards the authentication requests

# to authdaemond, which forwards the authentication request to the real

# authentication module, and the result of the request is eventually

# returned back to the application. Because the real authentication

# process runs as a persistent background process, it is possible for

# the authentication process to open and hold permanent connections to

# the back-end authentication database (be it an LDAP directory, a

# MySQL or a PostgreSQL server), instead of connecting and

# disconnecting for every request. Obviously, this tremendously

# improves the authentication performance.

#

# authpam authenticates using the system's PAM library (pluggable

# authentication module). This is, essentially, a way to use existing

# PAM modules for authentication functionality. Note, however, that the

# authenticated account's home directory, userid and groupid are still

# read from the /etc/passwd file, since PAM functionality is limited to

# validating account passwords.

#

# authpwd authenticates from the /etc/passwd file.

#

# authshadow like authpwd except passwords are read from /etc/shadow.

#

# authuserdb authenticates against the userdb(8) database.

#

# authvchkpw supports existing vpopmail/vchkpw virtual domains.

#

# authcram authenticates against the userdb(8) database using the

# challenge/response authentication mechanism (CRAM), instead of the

# traditional userid/password.

#

# authmysql authenticates against a list of mail accounts stored in an

# external MySQL database. The /etc/courier/authmysqlrc configuration

# file defines the particular details regarding the MySQL database and

# the schema of the mail account list table.

#

# authpgsql authenticates against a list of mail accounts stored in an

# external PostgreSQL database. The authpgsqlrc configuration file

# defines the particular details regarding the PostgreSQL database and

# the schema of the mail account list table.

#

# authldap authenticates against a list of mail accounts stored in an

# external LDAP directory. The /etc/courier/authldaprc configuration

# file defines the particular details regarding the LDAP directory

# layout.

#

# authcustom this is a stub where custom authentication code can be

# added. This authentication module is just a stub that doesn't really

# do anything. It's purpose is to serve as a placeholder where custom

# authentication code can be easily added.

#

# This is a complete list of available authentication modules. The

# actual installed authentication modules are determined by the

# resources on the server. For example, the authmysql authentication

# module will be installed only if the system provides MySQL support

# libraries.

 

# La liste des modules d'authentification disponibles est celle ci

# dessous. On peut definir dans la directive "authmodulelist" la liste

# des modules a employer

authmodulelistorig="authcustom authcram authuserdb authldap authmysql authpam"

 

# Nombre de démons a lancer au demarrage

daemons=5

 

# On peut specifier la version du démon a employer quand il existe plusieurs

# demons tournant en meme temps sur la machine

version=""

 

# Ne surtout pas enlever la ligne ci dessous sous peine de tout faire

# planter !

authdaemonvar=/var/run/courier/authdaemon

 

NB : De manière à permettre au logiciel « courier-imap-ssl » de lire les messages d’un utilisateur et compte tenu du fait que ce logiciel utilise le format de boites aux lettres « Maildir » situé sous le répertoire racine de l’utilisateur, la création de la boite aux lettres d’un utilisateur devra être effectuée à l’aide de la commande « maildirmake » lancée depuis le répertoire racine du dit utilisateur.

8.2.9.B.2 -  Emission des messages :

Le principe de fonctionnement général mis en place dans le cadre de la maquette est le suivant :

-                     réception d’un message par le serveur « Postfix » sur le port TCP 25 ;

-                     envoi du message pour analyse à l’anti-virus sur le port TCP 10024 ;

-                     réception du message par le serveur « Postfix » sur le port TCP 10025 ;

-                     en cas de messages destiné à un utilisateur local traitement du message par le démon « procmail » pour analyse de SPAM par l’outil « SpamAssassin » puis dépose dans la boite aux lettres de l’utilisateur ;

 

Il est à noter que l’émission de messages s’effectue à l’aide du protocole SMTP dans sa version sécurisée (TLS over SMTP) qui consiste à envoyer des messages SMTP au contenu chiffré (et non des messages clairs au sein d’une session SSL).

 

L’installation du serveur « postfix » (version 1.1.11-0.woody2) permettant de remplir cette fonctionnalité s’effectue en effectuant les manipulations suivantes :

è      Installation des packages nécessaires :

      - apt-get install postfix postfix-tls

 

è      Ces packages dépendent des packages suivants :

      - libc6 (version >= 2.2.4-4) ;

      - libdb3 (version >= 3.2.9-16) ;

      - libgdbmg1 ;

      - netbase ;

      - adduser ;

      - debconf ;

      - dpkg (version >= 1.8.3) ;

      - postfix-ldap (version = 1.1.11-0.woody2) ;

      - postfix-pcre (version = 1.1.11-0.woody2) ;

      - libsasl7;

      - libssl0.9.6.

 

Le logiciel « Postfix » se paramètre à l’aides des deux fichiers de configuration suivants :

-                     « /etc/postfix/main.cf »,

-                     « /etc/postfix/master.cf »

 

Les deux fichiers correspondants du serveur « Pégase » sont donnés ci-dessous :

#

# Emplacement : Maquette de test SGA

# Description : Fichier de configuration serveur Postfix

# Serveur     : Pegase

# Copyright   : marc.boget@gendarmerie.org

#

 

# Definition des repertoires PostFix

command_directory = /usr/sbin

daemon_directory = /usr/lib/postfix

program_directory = /usr/lib/postfix

 

# Definition du type de boites aux lettres. Par defaut Postfix

# ecrit dans /var/spool/mail. Le fait de preciser la directive

# home_mailbox permet d'indiquer a Postfix d'ecrire dans le repertoire

# Maildir situé sous la racine du repertoire de l'utilisateur. C'est

# indispensable dans le cas présent car courier-imap utilise ce type

# de boites aux lettres.

home_mailbox=Maildir/

 

# Banniere SMTP a presenter

smtpd_banner = Site protege - Ne pas penetrer sans autorisation

 

setgid_group = postdrop

biff = no

append_dot_mydomain = no

myhostname = Pegase

 

# Definition de la table contenant les alias de messagerie

# Une modification de ce fichier doit etre suivie du lancement

# de la commande "newaliases" pour regenerer la base de données

# interne Postfix

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

 

myorigin = /etc/mailname

mydestination = Pegase, localhost.localdomain, , localhost

relay_domains = dauphin

mynetworks = 127.0.0.0/8

 

# Delivrance du courrier

# On passe la main a procmail de manière à pouvoir faire jouer la

# détection de SPAM avec SpamAssassin

# Pour une question de sécurité il faut savoir que cette commande

# est désactivée si l’utilisateur de destination est « root »

mailbox_command=/usr/bin/procmail

mailbox_size_limit = 0

recipient_delimiter = +

loglevel=3

 

# Mise en place des parametres TLS pour la partie serveur (smtpd)

# qui est la partie qui recoie les messages en provenance des clients

# et la partie client (smtp) qui est la partie qui envoie les messages

# vers un autre MTA

smtpd_use_tls=yes

smtpd_tls_cert_file            = /etc/postfix/pegase-server.crt

smtpd_tls_key_file             = /etc/postfix/pegase-server.key

smtpd_tls_CAfile               = /etc/postfix/ac.pem

smtpd_tls_loglevel             = 1

smtpd_tls_received_header      = yes

smtpd_tls_ask_ccert            = yes

smtpd_tls_session_cache_timeout = 3600

 

smtp_use_tls                  = yes

smtp_tls_cert_file            = /etc/postfix/pegase-client.crt

smtp_tls_key_file             = /etc/postfix/pegase-client.key

smtp_tls_CAfile               = /etc/postfix/ac.pem

smtp_tls_loglevel             = 1

smtp_tls_session_cache_timeout = 3600

smtp_tls_note_starttls_offer   = yes

 

# Definition du répertoire de spool temporaire

queue_directory = /cages/postfix

 

# Pour se passer de l'interrogation DNS-MX

# Ce fichier contient les deux lignes suivantes :

# dauphin       smtp:52.30.184.1:25

# dauphin.sga.def    smtp:[52.30.184.1]

# A l'issue de la modification de ce fichier, il faut passer la

# commande "postmap /etc/postfix/transport" de maniere a regenerer

# la base de données postfix

transport_maps            = hash:/etc/postfix/transport

 

# Permet de definir si la connexion TLS est obligatoire ou non pour un

# site donné. Ce fichier contient la ligne suivante :

# dauphin MUST

smtp_tls_per_site         = hash:/etc/postfix/tls_per_site

 

# Permet de passer la main au demon anti-virus sur le port 10024

content_filter = smtp-amavis:[127.0.0.1]:10024

 

#

# Emplacement : Maquette de test SGA

# Description : Fichier de configuration des services Postfix

# Serveur     : Pegase

# Copyright   : marc.boget@gendarmerie.org

#

 

# ==========================================================================

# service          type   private  unpriv chroot wakeup   maxproc  command + args

#                         (yes)    (yes)  (yes)  (never)  (50)

# ==========================================================================

smtp               inet   n        -      -      -        -        smtpd

pickup             fifo   n        -      -      60       1        pickup

cleanup            unix   n        -      -      -        0        cleanup

qmgr               fifo   n        -      -      300      1        qmgr

rewrite            unix   -        -      -      -        -        trivial-rewrite

bounce             unix   -        -      -      -        0        bounce

defer              unix   -        -      -      -        0        bounce

flush              unix   n        -      -      1000?    0        flush

smtp               unix   -        -      -      -        -        smtp

showq              unix   n        -      -      -        -        showq

error              unix   -        -      -      -        -        error

local              unix   -        n      n      -        -        local

virtual            unix   -        n      n      -        -        virtual

lmtp               unix   -        -      n      -        -        lmtp

 

# Interfaces vers des logiciels externes

cyrus              unix   -        n      n      -        -        pipe

  flags=R user=cyrus argv=/usr/sbin/cyrdeliver -e -m ${extension} ${user}

uucp               unix   -        n      n      -        -        pipe

  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)

ifmail             unix   -        n      n      -        -       pipe

  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)

bsmtp              unix   -        n      n      -        -       pipe

  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -d -t$nexthop -f$sender $recipient

scalemail-backend  unix   -        n      n      -        2        pipe

  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}

 

# Interface avec l'anti-virus

smtp-amavis        unix   -        -      n      -        2        smtp

    -o smtp_data_done_timeout=1200

    -o disable_dns_lookups=yes

 

# Mise en place d'une ecoute supplémentaire sur le port 10025 en localhost

# uniquement pour reception des messages renvoyés apres analyse par l'anti-virus

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

    -o mynetworks=127.0.0.0/8

    -o strict_rfc821_envelopes=yes

8.2.9.B.3 -  Anti-Spam :

L’outil de détection des messages spam choisi est l’outil « SpamAssassin ». Il permet grâce à des scripts tous situés dans le répertoire « /etc/spamassassin » de donner une « note » aux différents messages stockée dans son entête et permettant par la suite un traitement des dits messages (déplacement dans le dossier « SPAM » dans le cadre de la maquette).

 

Le principe de l’outil d’analyse de « SPAM » est le suivant :

-                     lors de la réception de messages destinés à un utilisateur local, traitement du message par le démon « procmail » (grâce à la directive « mailbox_command » du fichier « main.cf » du serveur « Postfix ») ;

-                     gestion du message par le démon « Procmail » (liste des directives données dans le fichier « /etc/procmailrc » ou dans le fichier utilisateur « $HOME/.procmailrc ») ;

-                     analyse du résultat de l’analyse de « SPAM » contenu dans la balise d’entête SMTP « X-Spam-Status » et dépose dans le dossier SPAM de la boite aux lettres de l’utilisateur.

 

L’installation de l’outil « SpamAssassin » (version 2.20-1woody) s’effectue en réalisant les manipulations suivantes :

è      Installation du package spamassassin :

      - apt-get install spamassassin

 

è      Ce package dépend des packages suivants :

      - perl (>= 5.6.0-16);

      - perl-modules;

      - dpkg (>= 1.8.1).

 

è      Installation du package procmail (version 3.22-4):

      - apt-get install spamassassin

 

è      Ce package dépend des packages suivants :

      - exim ou mail-transport-agent ou fetchmail.

 

L’outil « SpamAssassin » peut être paramétré en modifiant les fichiers contenus dans le répertoire « /etc/spamassassin » et notamment le fichier « /etc/spamassassin/10_misc.cf » dont le contenu sur le serveur « Pégase » est donné ci-dessous :

#

# Emplacement : Maquette de test SGA

# Description : Fichier de configuration de l'outil d'analyse de SPAM

#             : Voir man Mail::SpamAssassin::Conf pour tous les details

# Serveur     : Pegase

# Copyright   : marc.boget@gendarmerie.org

#

 

 

# Definition de l'entete a afficher en cas de SPAM

#      ......................................................................

clear-report-template

report -------------------- Resultats de l'analyse de SPAM ------------------

report Ce message apparait etre un message SPAM.

report

report Detail de l'anayse :   (_HITS_ hits, _REQD_ required)

report _SUMMARY_

report ---------------------- Fin de l'analyse de SPAM ----------------------

#      ......................................................................

 

# Definition du message que l'on peut envoyer a l'emetteur du SPAM

clear-spamtrap-template

spamtrap Sujet: Adresse indisponible

 

spamtrap [Ce message a ete automatiquement généré]

spamtrap

spamtrap Bien vouloir noter que cette adresse n'est plus disponible et que

spamtrap de plus elle recoit des messages non désirés. C'est pourquoi, tous

spamtrap les messages envoyés à cette adresse sont systématiquement détruits.

spamtrap

spamtrap Le message envoyé est reproduit ci dessous pour vous permettre de le

spamtrap réemettre à une adresse correcte.

spamtrap

spamtrap [-- L'outil d'analyse de SPAM]

spamtrap

 

###########################################################################

 

# Terse report template.

#

#            ......................................................................

clear-terse-report-template

terse-report ---- Start SpamAssassin results

terse-report _HITS_ hits, _REQD_ required;

terse-report _SUMMARY_

terse-report ---- End of SpamAssassin results

#            ......................................................................

 

# Valeur à partir de laquelle le message est considéré comme du SPAM

required_hits           5

 

# Nombre de messages avant que l'adresse emetteur soit envoyé à un service de blacklist.

# Attention à bien vérifier qu'il s'agit d'une adresse de SPAM !!!

auto_report_threshold   30

 

# Language préférentiel

ok_locales              fr

 

# Il est possible de redéfinir les options suivantes :

# rewrite_subject       1

# report_header         0

# subject_tag           *****SPAM*****

# use_terse_report      0

# defang_mime           1

# skip_rbl_checks       0

# check_mx_attempts     3

# check_mx_delay        5

 

Le démon « ProcMail » est lui paramétré grâce notamment au fichier « /etc/procmailrc » dont le contenu sur le serveur « Pégase » est donné ci-dessous :

#

# Emplacement : Maquette de test SGA

# Description : Fichier de configuration du démon ProcMail

#             : Voir man procmailrc pour tous les details et la syntaxe

# Serveur     : Pegase

# Copyright   : marc.boget@gendarmerie.org

#

 

VERBOSE=Yes

SHELL=/bin/sh

PATH=/usr/bin:/bin

MAILDIR=$HOME/Maildir/

LOGFILE=$HOME/log_procmail

DEFAULT=$MAILDIR/new

 

:0fw

| /usr/bin/spamassassin -P

 

:0:

* ^X-Spam-Status: Yes

$MAILDIR/.SPAM/

 

8.2.9.B.4 -  Anti-Virus :

Le logiciel d’anti-virus choisi est le logiciel « clamav ». La procédure décrite dans le présent paragraphe peut également s’appliquer aux anti-virus suivants :

-                     File::Scan ;

-                     OpenAntiVirus ScannerDaemon ;

-                     Kaspersky Antivirus ;

-                     Bitdefender ;

-                     F-Prot ;

-                     F-Secure ;

-                     H+BEDV Antivir ;

-                     MKS-Vir ;

-                     Network Associates uvscan ;

-                     Panda Antivirus ;

-                     Sophie ;

-                     Sophos ;

-                     Trend Filescan ;

-                     Trophie.

 

L’installation de l’outil « ClamAv » (version 0.60-1) s’effectue en réalisant les manipulations suivantes :

è      Modification du fichier /etc/apt/sources.list pour crise en compte de la version testing (le package « clamav-daemon » ne fait pas encore partie des packages stables)

 

è      Installation du package clamav-daemon :

      - apt-get install clamav-daemon

 

è      Ce package dépend des packages suivants :

      - debconf (version >= 0.5) ;

      - libbz2-1.0 ;

      - libc6 (version >= 2.3.1-1) ;

      - libclamav1 ;

      - zlib1g (version >= 1:1.1.4) ;

      - clamav;

      - clamav-base (version = 0.60-1) ;

      - clamav-freshclam ;

      - cron ;

      - debianutils (version >= 1.6);

      - ucf.

 


Cet outil se paramètre à l’aide du fichier « /etc/clamav.conf » donné ci-dessous :

#

# Emplacement : Maquette de test SGA

# Description : Fichier de configuration permettant l'interaction entre les

#             : modules PAM et le serveur LDAP

#             : Voir meme fichier sur serveur GrandeOurse pour tous les details

# Serveur     : Dauphin

# Copyright   : marc.boget@gendarmerie.org

#

 

#This file is created using debconf, don't modify it by hand!

#To reconfigure clamd run #dpkg-reconfigure clamd

LocalSocket /var/run/clamd.ctl

ScanMail

ScanArchive

ArchiveMaxRecursion 5

ArchiveMaxFiles 1000

ArchiveMaxFileSize 10M

FollowFileSymlinks

ThreadTimeout 180

MaxThreads 5

MaxConnectionQueueLength 15

LogSyslog

PidFile /var/run/clamd.pid

DataDirectory /var/lib/clamav/

 

L’interface entre l’anti-virus et le serveur de messagerie « Postfix » s’effectue à l’aide du paramétrage de « Postfix » décrit plus haut et du logiciel « amavis-ng ».

 

Cet outil s’installe de la façon suivante :

è      Installation du package amavis-ng (version 0.1.6.2-1):

      - apt-get install amavis-ng

 

è      Ce package dépend des packages suivants :

      - logrotate ;

      - perl (version >= 5.6.0-16) ;

      - libnet-perl

      - libfile-mmagic-perl (version >> 1.15) ;

      - libconfig-inifiles-perl ;

      - libmime-perl (version >=5.313) ;

      - libmime-base64-perl ;

      - libconvert-tnef-perl (version >=0.06) ;

      - libconvert-uulib-perl ;

      - libcompress-zlib-perl (version >=1.14) ;

      - libarchive-tar-perl;

      - libarchive-zip-perl;

      - suidmanager;

      - perl-suid;

      - nomarch;

      - debconf (version >= 0.5).

 

Le fichier de configuration « /etc/amavis/amavisd.conf » doit être modifié sur les trois lignes suivantes :

$mydomain = 'dauphin';

$daemon_user  = 'amavis';

$daemon_group = 'amavis';

8.2.9.C -  Serveur SSH :

L’installation du serveur SSH est décrite dans le paragraphe 8.2.3.E - .

8.2.9.D -  Déport des logs :

Le paramétrage du déport des logs est décrit dans le paragraphe 8.2.3.C - .

8.2.9.E -  Authentification des utilisateurs sur l’annuaire LDAP :

Le paramétrage de l’authentification des utilisateurs sur l’annuaire GrandeOurse est décrit au paragraphe 8.2.6.D - .



Precedent Haut Suivant