Solution anti-pourriel basée sur des logiciels libres. Solution installée à la Commission scolaire des Affluents



Documents pareils
M2-ESECURE Rezo TP3: LDAP - Mail

S E C U R I N E T S C l u b d e l a s é c u r i t é i n f o r m a t i q u e I N S A T. Tutoriel Postfix

Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à Lille. Mars

CASE-LINUX MAIL. Introduction. CHARLES ARNAUD Linux MAIL

Configuration avancée de Postfix

Mise en place d un serveur de messagerie

Installation d un Serveur de Messagerie

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

Mise en place d un Webmail

Installation du DNS (Bind9)

Installer un domaine DNS

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Installation GLPI-OCSNG-SSL Linux Debian Sarge

Zimbra. S I A T. T é l : ( ) F a x : ( )

DNS et Mail. LDN 15 octobre DNS et Mail. Benjamin Bayart, Fédération FDN. DNS - fichier de zone. DNS - configuration

NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel.

Installer un serveur de messagerie avec Postfix

Guide d'installation de. Esup-ECM. version G.E.D. Nuxeo

Gestion d identités PSL Installation IdP Authentic

Résolution de nom avec Bind

Polux Développement d'une maquette pour implémenter des tests de sécurité

Imprimantes et partage réseau sous Samba avec authentification Active Directory

Domain Name System. F. Nolot

Sécurité des réseaux Firewalls

Tutoriel compte-rendu Mission 1

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

OpenLDAP, un outil d administration Réseau. Une implémentation d OpenLDAP

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition)

Dossier d analyse et de comparaison 2012

contact@nqicorp.com - Web :

Procédure d'installation

EPREUVE PRATIQUE DES TECHNIQUES INFORMATIQUES ACTIVITE N 1. Thème de l activité : Configuration d un firewall

titre : CENTOS_BIND_install&config Système : CentOS 5.7 Technologie : Bind 9.3 Auteur : Charles-Alban BENEZECH

Installation et configuration de Vulture Lundi 2 février 2009

Ce TP consiste à installer, configurer et tester un serveur DNS sous Linux. Serveur open source : bind9 Distribution : Mandriva

TP4 : Firewall IPTABLES

Guide à l'installation d'une infrastructure de courriel basée sur des composantes de logiciel libre

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Présentation du logiciel Free-EOS Server

Linux. Sécuriser un réseau. 3 e édition. l Admin. Cahiers. Bernard Boutherin Benoit Delaunay. Collection dirigée par Nat Makarévitch

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

Phase 1 : Introduction 1 jour : 31/10/13

1 Configuration réseau des PC de la salle TP

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

Netfilter & Iptables. Théorie Firewall. Autoriser le trafic entrant d'une connexion déjà établie. Permettre le trafic entrant sur un port spécifique

Fonctionnement de Iptables. Exercices sécurité. Exercice 1

Messageries Rapport sur l administration et la gestion des services de messageries Messageries

PUPPET. Romain Bélorgey IR3 Ingénieurs 2000

Messagerie. Dominique MARANT CRI Lille 1. Octobre 2006

Bind, le serveur de noms sous Linux

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

pare - feu généralités et iptables

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Réaliser un inventaire Documentation utilisateur

Dr.Web Les Fonctionnalités

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

RAPPORT DE STAGE OUVRARD VALENTIN. «Assistance et Conseils en Informatique». LYCEE DU GRAND NOUMEA DU 04/11 AU 29/

PROXY SQUID-SQARD. procédure

Annexes. OpenVPN. Installation

Guide Installation Serveur Extensive Testing

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

Sécurité des applications web. Daniel Boteanu

Pack Evolix Serveur Mail Documentation d'utilisation

Serveur mail sécurisé

Domain Name System ot ol F. N 1

Session N : 5 Relais de messagerie sécurisé et libre

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

Guide administrateur AMSP

Domaine Name System. Auteur: Congduc Pham, Université Lyon 1. Figure 1: Schéma des salles TP11 et TD4

GUIDE D INSTALLATION DE FIREWALL OPEN SOURCE

Configuration d'un annuaire LDAP

SECURIDAY 2012 Pro Edition

Installation de GFI MailSecurity en mode passerelle

Projet Semestre2-1SISR

TP SECU NAT ARS IRT ( CORRECTION )

Devoir Surveillé de Sécurité des Réseaux

Guide Installation Serveur Extensive Testing

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

UE5A Administration Réseaux LP SIRI

Documentation technique OpenVPN

Chapitre IX : Virtualisation

Procédure d utilisation et de paramétrage (filtrage) avec IPFIRE

Présentation du Serveur SME 6000

Sendmail milter/greylisting

Déploiement d OCS 1.02 RC2 sous Debian Etch 64

Le spam introduction. Sommaire

Comment fonctionne le serveur cache (1) DNS Session 2: Fonctionnement du cache DNS. Historique du support de cours

DNS : Domaine Name System

L installation du module Webmail nécessite également quelques prérequis, à savoir :

Guide d installation rapide

Installer un serveur de messagerie sous Linux

Sécurité et Firewall

Transcription:

Solution anti-pourriel basée sur des logiciels libres Solution installée à la Commission scolaire des Affluents Version 1.0 Inverse groupe conseil inverse.ca 24 mars 2005

Solution anti-pourriel Configuration minimum requises : Un serveur capable de répondre aux exigences des 4 serveurs virtuels : - Envoie et réception / SMTP (postfix) - Boîtes de courrier / IMAP (cyrus imap) - Base de données / Postgresql - Courrier Web et Interface Web pour configuration / Horde, Spamity (Apache) Les paquets vserver-0.33-1 (admin, noyau adéquat) doivent être installés sur les serveurs racines. Les rpms et le noyau sont disponibles sur le site ftp.solucorp.qc.ca ou sur ftp.csaffluents.qc.ca/mille/vservers/. Il faudra ensuite décompresser les 4 vservers sur le(s) serveur(s) racine (dans /vservers). Une bonne connaissance de Linux, de la fonctionnalité vservers est nécessaire pour l installation de cette solution. Les tests ont été faits sur un serveur Fedora Core 2 avec le noyau 2.6.9-vssmp1.9.3. Dans la configuration actuelle, le serveur LDAP contenant les informations doit possèder un code capable de faire une recherche sur l ensemble de l annuaire. dn: uid=apcourrier,ou=application,dc=csaffluents,dc=qc,dc=ca Description des composantes La section présente décrit les composantes suggérées par Inverse groupe conseil. Ces composantes sont entièrement gratuites, utilisées par des centaines d entreprises et universités. Les solutions telles que Linux, OpenLDAP, Network Associates Virus Scan et Apache ne sont pas décrites, étant donné que la Commission scolaire des Affluents est familière avec celles-ci. Composante : Postfix Version : 2.1.5 Licence : IBM Public License Description : Postfix est une alternative au populaire programme Sendmail. Le but de Postfix est de fournir une implantation d un agent de transfert de messages qui est gratuite, performante, facile à maintenir et sécuritaire. Par ailleurs, Postfix s intègre parfaitement avec des solutions d antivirus, de gestion de polluriels ainsi qu avec Cyrus. Postfix est utilisé comme serveur SMTP. Site Internet : http://www.postfix.com Composante : Cyrus IMAP Server Version : 2.2.8 Licence : Carnegie Mellon University License Description : Cyrus est une implantation gratuite d un serveur de messagerie supportant des accès par l intermédiaire du protocole POP3, KPOP, IMAP ou même NNTP. Cyrus effectue la gestion et le stockage des messages des utilisateurs dans un système de fichiers. L architecture de Cyrus permet de fournir un environnement extrêmement sécuritaire, extensible et facile à maintenir. Cyrus supporte les concepts de quotas, de liste de droits d accès (ACL) et plus encore. Site Internet : http//asg.web.cmu.edu/cyrus/ 2

Composante : PHP Version : 4.3.2 Licence : The PHP License Description : PHP est un langage de script orienté «WEB». Sa syntaxe est similaire au langage Perl et il est couramment utilisé afin de construire des applications «WEB» dynamiques. Site Internet : http://www.php.net Composante : Horde IMP Webmail Client Version 3.2.6 Licence : GNU General Public License (GPL) Description : Horde IMP est un système de webmail entièrement développé en PHP4. Horde IMP se connecte à Cyrus en utilisant le protocole IMAP et ce, afin d offrir toutes les fonctionnalités d un système webmail haut de gamme. Par ailleurs, Horde est extensible par l utilisation de plugiciels. Dans le cadre de l installation chez CSDA, les plugiciels de gestion des messages en cas d abscence prolongée, du carnet d adresse personnel ainsi que celui de Spamity seront installés. Site Internet : http://www.horde.org Composante : AMaViS Version : 2.1.2 Licence : GNU General Public License (GPL) Description : AMaVis est une interface entre Postfix et les logiciels d antivirus et d anti-polluriels. Site Internet : http://www.ijs.si/software/amavisd/ Composante : SpamAssasin Version : 3.0 Licence : Apache Software License Description : SpamAssassin est une solution d analyse heuristique d en-têtes et de contenus de courriers électroniques utilisée pour contrer les polluriels. Site Internet : http://www.spamassassin.org Composante : Spamity Version : 0.8 Licence : GNU General Public License (GPL) Description : Spamity est une solution permettant aux utilisateurs ainsi qu aux administrateurs d inspecter les messages (pourriels ou virus informatiques) rejetés (et potentiellement mis en quarantaine) par la passerelle de courriers électroniques. Site Internet : http://www.collaboration-world.com/spamity 3

Composante : PostgreSQL Version : 7.4.5 Licence : BSD Description : PostgreSQL est un système de gestion de base de données. Site Internet : http://www.postgresql.org Architecture Le diagramme suivant a pour but d expliquer l interconnexion entre les diverses composantes de l infrastructure de courriels proposée par Inverse groupe conseil. Schéma *Cette installation n a aucune redondance. 4

Description Le tableau ci-dessous décrit sommairement le schéma d architecture : SERVEUR COMPOSANTES FONCTION Cyrus1 Cyrus IMAP Server Serveur IMAP, POP3 et Sieve principal. Postfix1 Postfix AMaViSd-new Spam Assassin Network Associates Virus Scan Serveur acceptant les courriels provenant du réseau Internet et effectuant un filtrage dans le but d éliminer les virus informatiques ainsi que les polluriels. Sql1 PostgreSQL Serveur de base de données. Webmail1 Apache PHP4 Horde Framework Horde IMP Plugiciels Horde Spamity Serveur «webmail» et Spamity. 5

Le diagramme suivant a pour but d expliquer le cheminement d un courriel dans l infrastructure proposée par Inverse groupe conseil. 6

Voici les fichiers que vous devez modifier pour adapter la solution à votre environnement. Serveur VPOST (postfix/smtp) Voici les fichiers à modifier : /etc/postfix/main.cf : soft_bounce = no queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix mail_owner = postfix myhostname = vpost.csaffluents.qc.ca mydomain = csaffluents.qc.ca myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, $mydomain unknown_local_recipient_reject_code = 450 unknown_relay_recipient_reject_code = 450 relay_domains_reject_code = 450 #Les 3 valeurs (450) précédentes devront être modifiées à 550 lorsque tous les tests seront terminés. mynetworks = 127.0.0.0/8, 10.29.250.196, 10.29.250.197, 10.29.250.198, 10.29.250.199 ### Inscrire les adresses des serveurs BD, IMAP, POSTFIX et WEB. relay_domains = $mydestination in_flow_delay = 1s max_use = 10 recipient_delimiter = + virtual_alias_maps = hash:/etc/postfix/virtual ldap:ldap_users ### Pour configurer votre annuaire LDAP ldap_users_server_host = ldap.csaffluents.qc.ca ldap_users_servier_port = 389 ldap_users_domain = ele.csaffluents.qc.ca ldap_users_timeout = 60 ldap_users_search_base = dc=csaffluents,dc=qc,dc=ca ldap_users_query_filter = (&( (mail=%s)(mailalternateaddress=%s))( (businesscategory=10)(businesscategory=11))) ### Contrainte ajouter par la C.S. l adressse doit être valide et l usager autoriser à recevoir du courrier. ldap_users_result_attribute = uid ldap_users_bind = yes ldap_users_bind_dn = uid=apcourrier,ou=application,dc=csaffluents,dc=qc,dc=ca ldap_users_bind_pw = <motdepasse> ### Entrer l information du code de recherche LDAP relay_domains = ti.csaffluents.qc.ca eco.csaffluents.qc.ca fc.csaffluents.qc.ca gr.csaffluents.qc.ca csaffluents.qc.ca ### Inscire les domaines pour lesquels ce serveur fait le relais. relay_recipient_maps = ldap:ldap_notes ldap:ldap_fc ### Exemple de configuration pour relayer à un serveur Lotus Notes et un serveur Firstclass. (Les 2 ont un annuaire LDAP accessible) 7

ldap_notes_server_host = notes2.csaffluents.qc.ca ldap_notes_domain = ti.csaffluents.qc.ca eco.csaffluents.qc.ca gr.csaffluents.qc.ca csaffluents.qc.ca ldap_notes_version = 3 ldap_notes_server_port = 389 ldap_notes_timeout = 60 ldap_notes_search_base = o=csaffluents ldap_notes_query_filter = (mail=%s) ldap_notes_result_attribute = mail ldap_notes_bind = no ldap_fc_server_host = fc.csaffluents.qc.ca ldap_fc_domain = fc.csaffluents.qc.ca ldap_fc_server_port = 3899 ldap_fc_timeout = 60 ldap_fc_search_base = ou=firstclass,o=lll,c=ca ldap_fc_query_filter = (sn=%s) ldap_fc_result_attribute = mail ldap_fc_bind = yes transport_maps = hash:/etc/postfix/transport alias_database = hash:/etc/postfix/aliases alias_maps = hash:/etc/postfix/aliases mailbox_transport = lmtp:vcimap.csaffluents.qc.ca:24 ### Adresse de votre serveur imap header_checks = regexp:/etc/postfix/maps/header_checks mime_header_checks = regexp:/etc/postfix/maps/mime_header_checks body_checks = regexp:/etc/postfix/maps/body_checks sender_bcc_maps = ldap:ldap_wl ldap_wl_server_host = ldap.csaffluents.qc.ca ldap_wl_servier_port = 389 ldap_wl_domain = ele.csaffluents.qc.ca ldap_wl_timeout = 60 ldap_wl_search_base = dc=csaffluents,dc=qc,dc=ca ldap_wl_query_filter = ( (mail=%s)(mailalternateaddress=%s)) ldap_wl_result_attribute = mail ldap_wl_result_filter = ajout_destinataire ldap_wl_bind = yes ldap_wl_bind_dn = uid=apcourrier,ou=application,dc=csaffluents,dc=qc,dc=ca ldap_wl_bind_pw = <motdepasse> ### Pour la liste blanche des élèves. Ces lignes ajoute le destinataire dans la liste blanche de l élève qui envoie le courrier. smtpd_banner = $myhostname ESMTP 8

/etc/postfix/master.cf Avoir cette partie à la fin du fichier : -L adresse au début du bloc, doit être celle du serveur postfix. -L adresse sur la ligne o mynetworks doit être celle du serveur Web/Spamity 10.29.250.198:2526 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=10.29.250.199/32 #Adresse du serveur web -o mynetworks_style=host -o strict_rfc821_envelopes=yes /etc/hosts 10.29.250.198 vpost-demo.csaffluents.qc.ca vpost-demo localhost Modifier l adresse IP et le nom d hôte du vserver. /etc/named.conf: options { directory "/var/named"; query-source address 10.29.250.191 port 53; }; controls { inet 10.29.250.191 allow { localhost; } keys { rndckey; }; ### Adresse du serveur postfix ###Adresse du serveur postfix }; zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; }; zone "csaffluents.qc.ca" { ###Inscrivez votre zone type slave; masters{ 172.16.200.7; ###Adresse de votre serveur DNS }; }; include "/etc/rndc.key"; 9

/etc/resolv.conf Entrez les adresses de vos serveurs DNS ainsi que l adresse du serveur Postfix : nameserver 10.29.250.191 nameserver 10.29.250.33 /etc/amavisd.conf Présentement aucun anti-virus n est configuré sur le serveur. Voir la documentation d amavisd.conf pour l ajout de votre anti-virus. $mydomain = 'csaffluents.qc.ca'; ### Inscrivez votre domaine de courrier @inet_acl = qw( 127.0.0.1 10.29.250.191 ); ### Inscrivez l adresse du serveur SMTP (vpost) @lookup_sql_dsn = (['DBI:Pg:host=vmaildb.csaffluents.qc.ca;dbname=spamity;port=5432', 'spamity', '<motdepasse>']); ### Inscrivez le serveur de base de données ainsi que l utilisateur et le mot de passe. /etc/postfix/aliases Ajuster selon vos besoins : postmaster: admin.linux@titech.csaffluents.qc.ca MAILER-DAEMON : postmaster ajout_destinataire: "/usr/local/bin/ajout_destinataire.pl" ### Cette ligne est en rapport avec le courriel pour les élèves du primaire root: admin.linux@titech.csaffluents.qc.ca Vous devez ensuite exécuter cette commande : % postalias /etc/postfix/aliases /etc/postfix/virtual Lorsqu une adresse n existe pas, vous pouvez la rediriger vers une autre adresse : Ex : postmaster@vpost.csaffluents.qc.ca admin.linux@titech.csaffluents.qc.ca postmaster@csaffluents.qc.ca Denis.Forcier@ti.csaffluents.qc.ca info@csaffluents.qc.ca info@csaffluents.qc.ca root@ele.csaffluents.qc.ca admin.linux@titech.csaffluents.qc.ca root@vpost.csaffluents.qc.ca admin.linux@titech.csaffluents.qc.ca root@elecsa.org admin.linux@titech.csaffluents.qc.ca Vous devez ensuite exécuter cette commande : % postmap /etc/postfix/virtual /etc/postfix/transport Inscrire le serveur sur lequel le courrier est relayé. Domaine Serveur destination fc.csaffluents.qc.ca smtp:[smtp-fc.csaffluents.qc.ca] educsa.org smtp:[vcimap.csaffluents.qc.ca] gr.csaffluents.qc.ca smtp:[notes1.csaffluents.qc.ca] ti.csaffluents.qc.ca smtp:[notes1.csaffluents.qc.ca] Vous devez ensuite exécuter cette commande % postmap /etc/postfix/transport 10

/etc/saslauthd.conf Configure le démon SASL (saslauthd) pour que ce dernier utiliser LDAP comme méchanisme d'authentification. Pour ce faire, remplacez le contenu du fichier /etc/saslauthd.conf par les lignes suivantes: ldap_servers: ldap://ldap.csaffluents.qc.ca/ ldap_version: 3 ldap_bind_dn: uid=apcourrier,ou=application,dc=csaffluents,dc=qc,dc=ca ldap_bind_pw: <mot de passe> ldap_auth_method: bind ldap_search_base: dc=csaffluents,dc=qc,dc=ca ldap_filter: (&(uid=%u)( (businesscategory=10)(businesscategory=11))) #Ce filtre vérifie si l usager à les droits au courrier électonique (10 ou 11 = Oui) /usr/lib/sasl2/smtpd.conf ### Seulement si vous désirez utiliser l authentification SMTP pwcheck_method: saslauthd mech_list: plain login Ce fichier contrôle le fonctionnement de l'authentification SMTP (ie., par l'utilisation de saslauthd) et quels méchanismes SASL peuvent être utilisés. Toutefois, l'authentification SMTP est présentement désactivée (paramètre smtpd_sasl_auth_enable dans le fichier /etc/postfix/main.cf). Ensuite, créez le fichier /etc/cron.daily/postfix_maps avec le contenu suivant: #!/bin/sh if [! -d /etc/postfix/maps ] then mkdir /etc/postfix/maps fi wget -q http://www.securitysage.com/files/header_checks -O /etc/postfix/maps/header_checks wget -q http://www.securitysage.com/files/mime_header_checks -O /etc/postfix/maps/mime_header_checks wget -q http://www.securitysage.com/files/body_checks -O /etc/postfix/maps/body_checks Ajustez la permission sur le fichier comme suite et exécutez-le: % chmod 755 /etc/cron.daily/postfix_maps % /etc/cron.daily/postfix_maps /etc/spamity.conf master_domain = ele.csaffluents.qc.ca ### Inscrire le domaine de courrier par défaut database_backend = pgsql db_url = dbi:pg(raiseerror=>0):dbname=spamity;host=vmaildb.csaffluents.qc.ca;port=5432 db_username = spamity db_password = <mot de passe> quarantine_size_max = 1024 ### Inscrire les informations sur la connexion à la bd. lookup_backend = ldap users_ldap_server = ldap.csaffluents.qc.ca users_ldap_search_base = dc=csaffluents,dc=qc,dc=ca users_ldap_attribute_username = uid users_ldap_attributes_email = mail,mailalternateaddress 11

notes_ldap_server = notes2.csaffluents.qc.ca notes_ldap_search_base = o=csaffluents notes_ldap_attribute_username = uid notes_ldap_attributes_email = mail ldap_domains = elecsa.org,educsa.org,fc.csaffluents.qc.ca,csaffluents.qc.ca,aut.csaffluents.qc.ca,dg.csaffl uents.qc.ca,eco.csaffluents.qc.ca,ele.csaffluents.qc.ca,ens.csaffluents.qc.ca,gr.csaffluents.qc.ca,os.csaffluents.qc.ca,re.csaffluents.qc.ca,rf.csaffluents.qc.ca,rh.csaffluents.qc.ca,rm. csaffluents.qc.ca,sg.csaffluents.qc.ca,ti.csaffluents.qc.ca,titech.csaffluents.qc.ca,eco.cfp moulins.qc.ca,ens.cfpmoulins.qc.ca,cfpmoulins.qc.ca ### Inscrire tout les domaines qui seront utilisés sur le serveur. Serveur VCIMAP /etc/hosts 10.29.250.190 vcimap.csaffluents.qc.ca vcimap localhost /etc/resolv.conf nameserver 10.29.250.33 # Entrez les adresses de vos serveurs DNS /etc/mail/submit.mc MASQUERADE_AS(`vpost.csaffluents.qc.ca') FEATURE(`masquerade_envelope') FEATURE(`allmasquerade') FEATURE(`msp', `[vpost.csaffluents.qc.ca]')dnl ### Inscrire l adresse de votre serveur postfix. % m4 /etc/mail/submit.mc > /etc/mail/submit.cf /etc/saslauthd.conf ldap_servers: ldap://ldap.csaffluents.qc.ca/ ### Inscrire l adresse de votre serveur LDAP ldap_version: 3 ldap_bind_dn: uid=apcourrier,ou=application,dc=csaffluents,dc=qc,dc=ca ldap_bind_pw: <mot de passe> ldap_auth_method: bind ldap_search_base: dc=csaffluents,dc=qc,dc=ca ldap_filter: (&(uid=%u)( (businesscategory=10)(businesscategory=11))( (mail=*csa.org)(mailalternateaddre ss=*csa.org))) /etc/imapd.conf admins : apcourrier ### code ldap admin 12

Serveur VMAILDB /etc/hosts: 10.29.250.189 vmaildb.csaffluents.qc.ca vmaildb localhost /etc/resolv.conf: nameserver 10.29.250.33 # Entrez les adresses de vos serveurs DNS /etc/mail/submit.cf: MASQUERADE_AS(`vpost-demo.csaffluents.qc.ca') FEATURE(`masquerade_envelope') FEATURE(`allmasquerade') FEATURE(`msp', `[vpost-demo.csaffluents.qc.ca]')dnl ### Inscrire l adresse de votre serveur postfix. % m4 /etc/mail/submit.mc > /etc/mail/submit.cf /var/lib/pgsql/data/pg_hba.conf # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD local all all trust host all all 127.0.0.1 255.255.255.255 trust host horde horde 10.29.250.189 255.255.255.255 trust # vmaildb host sameuser horde, spamity 10.29.250.191 255.255.255.255 trust # vpost host sameuser horde, spamity 10.29.250.192 255.255.255.255 trust # cweb Créez d'abord la base de données dans laquelle seront insérées l'information concernant les messages rejetés par le serveur SMTP : % su - postgres % createuser --no-createdb --no-adduser --encrypted --pwprompt spamity Enter password for new user: (spamity) Enter it again: CREATE USER % createdb -U postgres -O spamity spamity CREATE DATABASE Seveur racine Sur le serveur racine du vserver de BD vous devez modifier le fichier /etc/sysctl.conf afin d'y ajouter les lignes suivantes, en toute fin de fichier: kernel.shmall = 805306368 kernel.shmmax = 805306368 13

Serveur CWEB-DEMO Les données de Horde sont gérées par le serveur PostgreSQL. % su - postgres % createuser --no-createdb --no-adduser --encrypted --pwprompt horde % createdb -U postgres -h localhost -O horde horde % cd /var/www/html/horde/scripts/db % cat auth.sql psql -h localhost -U horde horde % cat category.sql psql -h localhost -U horde horde % cat prefs.sql psql -h localhost -U horde horde % cat sessionhandler.sql psql -h localhost -U horde horde % cat log.sql psql -h localhost -U horde horde % cd /var/www/html/horde/turba/scripts/drivers % cat pgsql_create.sql psql -U horde horde /etc/hosts : 10.29.250.192 cweb.csaffluents.qc.ca cweb localhost /etc/httpd/conf.d/ssl.conf SSLCertificateFile /etc/httpd/conf/ssl.crt/star_csaffluents_qc_ca.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/gen.csaffluents.qc.ca.key /etc/httpd/conf/httpd.conf: ServerAdmin admin.linux@titech.csaffluents.qc.ca ServerName cweb.csaffluents.qc.ca:80 /etc/imapproxy.conf server_hostname vcimap.csaffluents.qc.ca listen_address 10.29.250.192 /etc/mail/submit.mc: MASQUERADE_AS(`vpost-demo.csaffluents.qc.ca') FEATURE(`msp', `[vpost-demo.csaffluents.qc.ca]')dnl ### Inscrire l adresse de votre serveur postfix. % m4 /etc/mail/submit.mc > /etc/mail/submit.cf /etc/php.ini session.cookie_domain = csaffluents.qc.ca Pour l'interface web, les paramètres additionnels suivants doivent être définis dans /etc/spamity.conf: master_domain = ele.csaffluents.qc.ca db_url = dbi:pg(raiseerror=>0):dbname=spamity;host=vmaildb.csaffluents.qc.ca;port=5432 db_username = spamity 14

db_password = <motdepasse> quarantine_size_max = 1024 lookup_backend = ldap users_ldap_server = ldap.csaffluents.qc.ca users_ldap_search_base = dc=csaffluents,dc=qc,dc=ca users_ldap_attribute_username = uid users_ldap_query_filter = BusinessCategory=11 users_ldap_attributes_email = mail,mailalternateaddress notes_ldap_server = notes2.csaffluents.qc.ca notes_ldap_search_base = o=csaffluents notes_ldap_attribute_username = uid notes_ldap_attributes_email = mail ldap_domains = ele.csaffluents.qc.ca,eco.csaffluents.qc.ca,gr.csaffluents.qc.ca,ti.csaffluents.qc.ca maillog_path = /var/log/maillog sleep = 1 pidfile = /var/run/spamity_parser.pid unknown_recipient = apcourrier quarantine_path = /var/spool/amavis/virusmails db_reconnect_interval = 60 default_language = fr_ca authentication_backend = ldap admin_id = _admin templates_path = /var/www/cgi-bin/spamity/templates graph_font = /usr/share/fonts/bitstream-vera/vera.ttf reinjection_smtp_server = vpost.csaffluents.qc.ca:2526 allow_virus_reinjection = false session_handler = file session_path = /var/www/cgi-bin/spamity/cgisessid show_graph_dow = false prefs_backend = pgsql amavis_lookups = true amavis_table_users = users amavis_table_policy = policy amavis_table_mailaddr = mailaddr amavis_table_wblist = wblist spam_tag_level = 3.0 spam_tag2_level = 6.3 spam_kill_level = 10.0 15

/etc/imapproxy.conf server_hostname vcimap.csaffluents.qc.ca listen_address 10.29.250.192 /etc/resolv.conf nameserver 10.29.250.33 # Entrez les adresses de vos serveurs DNS /var/www/html/horde/imp/config/servers.php $servers['imap'] = array( 'name' => 'IMAP Server', 'server' => 'localhost', 'protocol' => 'imap/notls', 'port' => 8143, 'folders' => '', 'namespace' => '', 'maildomain' => 'educsa.org', 'smtphost' => '', 'realm' => 'educsa.org', 'preferred' => '' ); /var/www/html/horde/config/horde.php $conf['log']['params']['dsn'] = 'pgsql://horde:<mot de passe>@tcp(vmaildb.csaffluents.qc.ca:5432)/horde'; $conf['prefs']['params']['hostspec'] = 'vmaildb.csaffluents.qc.ca'; $conf['mailer']['params']['host'] = 'vpost.csaffluents.qc.ca'; $conf['sessionhandler']['params']['hostspec'] = 'vmaildb.csaffluents.qc.ca'; $conf['problems']['email'] = 'admin.linux@titech.csaffluents.qc.ca'; /var/www/html/horde/imp/config/conf.php $ldapserver = 'ldap.csaffluents.qc.ca'; $searchbase = 'dc=csaffluents,dc=qc,dc=ca'; /var/www/html/horde/ingo/config/backends.php $backends['timsieved'] = array( 'driver' => 'timsieved', 'preferred' => 'vcimap.csaffluents.qc.ca', 'script' => 'sieve', 'hordeauth' => 'user', 'params' => array('hostspec' => 'vcimap.csaffluents.qc.ca', 'port' => 2000)); $conf['storage']['params'] = array(); $conf['storage']['params']['phptype'] = 'pgsql'; $conf['storage']['params']['hostspec'] = 'vmaildb.csaffluents.qc.ca'; //$conf['storage']['params']['hostspec'] = 'localhost'; $conf['storage']['params']['username'] = 'spamity'; $conf['storage']['params']['password'] = '<mot de passe>'; $conf['storage']['params']['database'] = 'spamity'; $conf['storage']['params']['table'] = 'spamity'; /var/www/html/horde/turba/config/sources.php $cfgsources['localsql'] = array( 'title' => 'Mon carnet', 'type' => 'sql', 'params' => array( 16

'phptype' => 'pgsql', 'hostspec' => 'vmaildb.csaffluents.qc.ca', 'username' => 'horde', 'password' => 'motdepasse', 'database' => 'horde', 'table' => 'turba_objects' ), /* A local address book in an LDAP directory. This implements a public * (shared) address book. */ $cfgsources['ldapempl'] = array( 'title' => 'C.S.A. Employés', 'type' => 'ldap', 'params' => array( 'server' => 'ldapsec.csaffluents.qc.ca', 'port' => 389, 'root' => 'ou=employe,ou=personne,dc=csaffluents,dc=qc,dc=ca', //'bind_dn' => 'cn=admin,ou=users,dc=example,dc=com', //'bind_password' => '********', 'dn' => array('cn'), 'objectclass' => 'person', 'version' => 3 ), 'map' => array( ' key' => 'dn', 'name' => 'gecos', 'email' => 'mail', // 'homephone' => 'homephone', // 'workphone' => 'telephonenumber', // 'cellphone' => 'mobiletelephonenumber', 'homeaddress' => 'l' ), 'search' => array( 'name', 'email', // 'homephone', // 'workphone', // 'cellphone', 'homeaddress' ), 'strict' => array( 'dn' ), 'public' => true, 'readonly' => true, 'admin' => array(), 'export' => false ); 17

/var/www/html/horde/imp/config/conf.php /* This is another example how to get the from address from an ldap server. */ if (!function_exists('imp_expand_fromaddress')) { function imp_expand_fromaddress($imp) { $ldapserver = 'ldap2.csaffluents.qc.ca'; $ldapport = '389'; $searchbase = 'dc=csaffluents,dc=qc,dc=ca'; $ds = ldap_connect($ldapserver, $ldapport); $searchresult = @ldap_search($ds, $searchbase, 'uid='. $imp['user']); $information = @ldap_get_entries($ds, $searchresult); $name = $information[0]['mail'][0]; //for ($i=0;!eregi("educsa",$name) $i > count($information[0]['mailalternateaddress'][$i]); $i++) { for ($i=0;!eregi("educsa",$name); $i++) { $name = $information[0]['mailalternateaddress'][$i]; } ldap_close($ds); return (empty($name)? $imp['user'] : $name); } } ### Ces lignes sont pour trouver la bonne adresse à utiliser pour la connexion de l usager, certains de nos usagers ont 2 adresses de courriel dans l annuaire LDAP, donc ici nous vérifions le champ mailalternateaddress pour vérifier si il y a une adresse @educsa /var/www/html/horde/spamity/config/conf.php $conf['storage']['params'] = array(); $conf['storage']['params']['phptype'] = 'pgsql'; $conf['storage']['params']['hostspec'] = 'vmaildb-demo.csaffluents.qc.ca'; $conf['storage']['params']['username'] = 'spamity'; $conf['storage']['params']['password'] = '<mot de passe>'; $conf['storage']['params']['database'] = 'spamity'; $conf['storage']['params']['table'] = 'spamity'; Créez le certificat SSL temporaire: % cd /tmp % openssl req -new > cweb.cert.csr % openssl rsa -in privkey.pem -out cweb.cert.key % openssl x509 -in cweb.cert.csr -out cweb.cert.cert -req -signkey cweb.cert.key -days 365 % mv cweb.cert.cert /etc/httpd/conf/ssl.crt % mv cweb.cert.key /etc/httpd/conf/ssl.key 18

Serveur racine Voici un exemple de pare-feu pour ces serveurs. Ces lignes doivent être ajouter dans la configuration du pare-feu du serveur racine. /etc/sysconfig/iptables # IPTABLES du serveur contenant vmaildb vcimap et ldapsec *filter :INPUT ACCEPT [528:53900] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [286:130647] -A INPUT -s 10.29.250.198 -d 10.29.250.197 -p tcp -m tcp --dport 24 -j ACCEPT -A INPUT -s 10.29.250.198 -d 10.29.250.197 -p udp -m udp --dport 24 -j ACCEPT -A INPUT -d 10.29.250.197 -p tcp -m tcp --dport 24 -j DROP -A INPUT -d 10.29.250.197 -p udp -m udp --dport 24 -j DROP -A INPUT -s 10.29.250.199 -d 10.29.250.197 -p tcp -m tcp --dport 2000 -j ACCEPT -A INPUT -s 10.29.250.199 -d 10.29.250.197 -p udp -m udp --dport 2000 -j ACCEPT -A INPUT -s 10.29.250.197 -d 10.29.250.197 -p tcp -m tcp --dport 2000 -j ACCEPT -A INPUT -s 10.29.250.197 -d 10.29.250.197 -p udp -m udp --dport 2000 -j ACCEPT -A INPUT -d 10.29.250.197 -p tcp -m tcp --dport 2000 -j DROP -A INPUT -d 10.29.250.197 -p udp -m udp --dport 2000 -j DROP -A INPUT -s 10.29.250.199 -d 10.29.250.196 -p tcp -m tcp --dport 5432 -j ACCEPT -A INPUT -s 10.29.250.199 -d 10.29.250.196 -p udp -m udp --dport 5432 -j ACCEPT -A INPUT -s 10.29.250.196 -d 10.29.250.196 -p tcp -m tcp --dport 5432 -j ACCEPT -A INPUT -s 10.29.250.196 -d 10.29.250.196 -p udp -m udp --dport 5432 -j ACCEPT -A INPUT -s 10.29.250.198 -d 10.29.250.196 -p tcp -m tcp --dport 5432 -j ACCEPT -A INPUT -s 10.29.250.198 -d 10.29.250.196 -p udp -m udp --dport 5432 -j ACCEPT -A INPUT -d 10.29.250.196 -p tcp -m tcp --dport 5432 -j DROP -A INPUT -d 10.29.250.196 -p udp -m udp --dport 5432 -j DROP COMMIT # IPTABLES du serveur contenant vpost et cweb *filter :INPUT ACCEPT [85290:17921357] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [16656:2067137] -A INPUT -s 10.29.250.199 -d 10.29.250.199 -p tcp -m tcp --dport 8143 -j ACCEPT -A INPUT -s 10.29.250.199 -d 10.29.250.199 -p udp -m udp --dport 8143 -j ACCEPT -A INPUT -d 10.29.250.199 -p tcp -m tcp --dport 8143 -j DROP -A INPUT -d 10.29.250.199 -p udp -m udp --dport 8143 -j DROP -A INPUT -s 10.29.250.199 -d 10.29.250.198 -p tcp -m tcp --dport 2526 -j ACCEPT -A INPUT -s 10.29.250.199 -d 10.29.250.198 -p udp -m udp --dport 2526 -j ACCEPT -A INPUT -d 10.29.250.198 -p tcp -m tcp --dport 2526 -j DROP -A INPUT -d 10.29.250.198 -p udp -m udp --dport 2526 -j DROP COMMIT 19