From: Vincent Le Gallic Date: Mon, 8 Jul 2013 15:01:58 +0000 (+0200) Subject: Première version de .procmailrc X-Git-Url: http://gitweb.pimeys.fr/?p=config-20-100.git;a=commitdiff_plain;h=149db60d8a5e629b2e03f5b2da83173c341eafb0 Première version de .procmailrc Il manque encore quelques mailing-listes extérieures. On pourrait inclure les filtres wikis dans le procmail général. --- diff --git a/.procmail/logs/.placeholder b/.procmail/logs/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/.procmail/rc/ML_MA_crans.administratif.prive b/.procmail/rc/ML_MA_crans.administratif.prive new file mode 100644 index 0000000..f45559f --- /dev/null +++ b/.procmail/rc/ML_MA_crans.administratif.prive @@ -0,0 +1,6 @@ +bureau +disconnect +impression +respbats +spoof +tresorier diff --git a/.procmail/rc/ML_MA_crans.administratif.public b/.procmail/rc/ML_MA_crans.administratif.public new file mode 100644 index 0000000..30793e5 --- /dev/null +++ b/.procmail/rc/ML_MA_crans.administratif.public @@ -0,0 +1,5 @@ +ca +crans-crous +dsi-crans +install-party +saclay diff --git a/.procmail/rc/ML_MA_federez b/.procmail/rc/ML_MA_federez new file mode 100644 index 0000000..884bb7a --- /dev/null +++ b/.procmail/rc/ML_MA_federez @@ -0,0 +1,4 @@ +federez +admin +saclay +saclay-reseau diff --git a/.procmail/rc/ML_bda b/.procmail/rc/ML_bda new file mode 100644 index 0000000..8d7a530 --- /dev/null +++ b/.procmail/rc/ML_bda @@ -0,0 +1,5 @@ +bda-paris +bda-paris-orga +infoconcert +sorties.bda +voyages-bda diff --git a/.procmail/rc/ML_campus b/.procmail/rc/ML_campus new file mode 100644 index 0000000..0972d72 --- /dev/null +++ b/.procmail/rc/ML_campus @@ -0,0 +1,29 @@ +aeronormale +amap +aumonerie-c4 +assoces +beekeepersociety +bureau.forum +com-ens +cvi +debats-ens +forum +gt-cve +hazara +kultte +kultte-bureau +la5emeparallele +lasauce +lasauce-adherents +lika-diffusion +likeamembres +likeanewsletter +normaliens.autrement +paris-sorties +pde-ens +praccis +programme-cineclub +sciences-croustillantes +sciencescroustillantes-actifs +sporz +vachenoire diff --git a/.procmail/rc/ML_clubs b/.procmail/rc/ML_clubs new file mode 100644 index 0000000..f53a791 --- /dev/null +++ b/.procmail/rc/ML_clubs @@ -0,0 +1,62 @@ +aikido +arts +atelier-ecriture +club-barbapapa +club-basket +club-basket-feminin +club-bassine +club-biere +club-biere-bureau +club-bierepong +club-billard +club-bridge +club-c2 +club-c3 +club-capriccio +club-cave +club-cave-gestion +club-dessin +club-disnens +club-djkens +club-ebm +club-escalade +club-esperanto +club-finance +club-fruitensmix +club-go +club-irraiductibles +club-jeu-de-role +club-jeuxvideo +club-jeuxvideo-bureau +club-karaokens +club-kbaret +club-kchant +club-kitchens +club-krobot +club-leffesive +club-machine +club-magicthegathering +club-meca +club-nanar +club-nsr +club-photo +club-piano +club-poker +club-rock +club-rom +club-salsa +club-sekte +club-skat +club.astro +detenste +eurovisioens +fensfoire +impro +jonglage +k-dens +magie +numens +seksi +shape +wooo +wrc diff --git a/.procmail/rc/ML_perso b/.procmail/rc/ML_perso new file mode 100644 index 0000000..e69de29 diff --git a/.procmail/rc/ML_sono b/.procmail/rc/ML_sono new file mode 100644 index 0000000..ea6d5ea --- /dev/null +++ b/.procmail/rc/ML_sono @@ -0,0 +1,3 @@ +commerce-equitable +laos +senegal diff --git a/.procmail/rc/cron.folders b/.procmail/rc/cron.folders new file mode 100644 index 0000000..69bf848 --- /dev/null +++ b/.procmail/rc/cron.folders @@ -0,0 +1,19 @@ +munin_apt_all /etc/munin/plugins/apt_all +monit /usr/sbin/monit +iscsi-update /usr/scripts/gestion/iscsi/update.sh +print_status /usr/scripts/impression/print_status.py +bcfg2 /usr/sbin/bcfg2 +psql_filtrage /usr/bin/psql filtrage +ntpdate /usr/sbin/ntpdate +wifi_new /usr/scripts/wifi_new/updates.py +sshFingerprint /usr/scripts/gestion/gen_confs/populate_sshFingerprint.py +deconnexion /usr/scripts/surveillance/deconnexion.py +secours /usr/scripts/secours/check-vpn-from-ovh +secours /usr/scripts/secours/secours.py +check_cert /usr/scripts/utils/check_cert.py +proxy-watch /etc/cron.script/proxy-watch +generate /usr/scripts/gestion/gen_confs/generate.py +sip_multidial /usr/scripts/sip/sip_multidial.py +named-checkzone /usr/sbin/named-checkzone +pages-wiki Impossible de dumper les pages proxy du wiki +anacron anacron diff --git a/.procmail/rc/cron.rules b/.procmail/rc/cron.rules new file mode 100644 index 0000000..b0864d1 --- /dev/null +++ b/.procmail/rc/cron.rules @@ -0,0 +1,27 @@ +# Complémentaire au .procmailrc générique mis à votre disposition +# par les gentils membres actifs du Cr@ns +# Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance. +# Des questions, des suggestions : {nounou,ca}@lists.crans.org +# Licence : WTFPL + +# Ce fichier permet de trier les mails envoyés par les Cron des serveurs Cr@ns + +CRONMUNINDIR="${CRONDIR}.munin" + +:0 +* ^X-Cron-Env:.*LOGNAME=munin +${CRONMUNINDIR}/ + +# * Trier php ? + +# La plupart des cronjobs sont triés sur le Subject: +# grâce à au fichier cron.folders +:0 +* ^Subject:\/.*$ +{ + SUBJECT=${MATCH} + GOTO=`cat ${CONFIGDIR}/cron.folders | while read -r line; do if [[ "${SUBJECT}" = *"$(echo $line | sed 's@[-_a-zA-Z0-9]\+\s\+@@')"* ]]; then (echo -n $line | sed 's@\s\+.*$@@'); fi; done | head -n 1` + :0 + * ? echo "$GOTO" | egrep -v '^$' + ${CRONDIR}.${GOTO}/ +} diff --git a/.procmail/rc/custom.final.rules b/.procmail/rc/custom.final.rules new file mode 100644 index 0000000..4abd966 --- /dev/null +++ b/.procmail/rc/custom.final.rules @@ -0,0 +1,14 @@ +# Complémentaire au .procmailrc générique mis à votre disposition +# par les gentils membres actifs du Cr@ns +# Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance. +# Des questions, des suggestions : {nounou,ca}@lists.crans.org +# Licence : WTFPL + +# Ce fichier permet contient des règles personnelles qui sont appliquées +# après toutes les autres règles + +#------------------------------------------------------------------------------ + +#~# # Supposons que je n'aime pas .INBOX comme boîte par défaut +#~# :0 +#~# .mon_inbox_custom/ diff --git a/.procmail/rc/custom.high.rules b/.procmail/rc/custom.high.rules new file mode 100644 index 0000000..7d72cd4 --- /dev/null +++ b/.procmail/rc/custom.high.rules @@ -0,0 +1,10 @@ +# Complémentaire au .procmailrc générique mis à votre disposition +# par les gentils membres actifs du Cr@ns +# Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance. +# Des questions, des suggestions : {nounou,ca}@lists.crans.org +# Licence : WTFPL + +# Ce fichier permet contient des règles personnelles qui sont appliquées +# avant toutes les autres règles + +#------------------------------------------------------------------------------ diff --git a/.procmail/rc/custom.normal.rules b/.procmail/rc/custom.normal.rules new file mode 100644 index 0000000..9529c44 --- /dev/null +++ b/.procmail/rc/custom.normal.rules @@ -0,0 +1,36 @@ +# Complémentaire au .procmailrc générique mis à votre disposition +# par les gentils membres actifs du Cr@ns +# Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance. +# Des questions, des suggestions : {nounou,ca}@lists.crans.org +# Licence : WTFPL + +# Ce fichier permet contient des règles personnelles qui sont appliquées +# avant la gestion automatique des mailing-lists (pour que vous puissiez +# en gérer certaines différemment), mais après les règles souvent sollicitées +# par les mails des membres actifs Cr@ns. +# C'est dans ce fichier que vous devriez mettre la plupart de vos règles perso + +#------------------------------------------------------------------------------ + +### Notifications wikis +# Wiki Cr@ns +:0 +* ^From:.*wiki@crans\.org +.wikis.Crans/ + +# Wikoeur +:0 +* ^From:.*webmaster@acoeur\.info +* ^Subject:.*WiKoeur.* +.wikis.Wikoeur/ + +# Wiki FedeRez +:0 +* ^X-Dokuwiki-Server:.*wiki\.federez\.net +.wikis.FedeRez/ + + +### Mails recus de Kokarde.net +:0 +* ^From:.*administrateur@webaaee\.ens-cachan\.fr +.Kokarde/ diff --git a/.procmail/rc/main b/.procmail/rc/main new file mode 120000 index 0000000..7a3fea7 --- /dev/null +++ b/.procmail/rc/main @@ -0,0 +1 @@ +../../.procmailrc \ No newline at end of file diff --git a/.procmail/rc/retrocompatibility_patch.rules b/.procmail/rc/retrocompatibility_patch.rules new file mode 100644 index 0000000..def9890 --- /dev/null +++ b/.procmail/rc/retrocompatibility_patch.rules @@ -0,0 +1,43 @@ +# Complémentaire au .procmailrc générique mis à votre disposition +# par les gentils membres actifs du Cr@ns +# Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance. +# Des questions, des suggestions : {nounou,ca}@lists.crans.org +# Licence : WTFPL + +# Ce fichier permet contient des règles pour trier les mails qui ont été +# reçus avant le 30/06/13, car certaines règles de tri du .procmailrc +# n'étaient pas encore valables à l'époque. + +#------------------------------------------------------------------------------ + +# Statistiques des dernières 24h n'avait pas de X-Mailer +:0 +* ^Subject:.*Statistiques.*24h +${STATUPLOADDIR}/ + +:0 +* ^List-Id:.*impression\.lists\.crans\.org +{ + # Les modifications de solde n'avaient pas de X-Mailer + :0 + * ^Subject: .*Modification de solde + ${LDAPSOLDEDIR}/ + + # print_status.py n'avait pas de X-Mailer + :0 + * ^Subject: .*\[print_status.py\] + ${PRINTSTATUSDIR}/ +} + +# Les machines supprimées pour chambre invalide n'avaient pas de X-Mailer +:0 +* ^List-Id:.*respbats\.lists\.crans\.org +* ^Subject: \[Respbats\] Machines supprim.*es pour chambre invalide +${DELETEDMACHINES}/ + +# bcfg2-report n'avait pas de X-Mailer +:0 +* ^To: roots@crans.org +* ^Subject: Serveurs non synchronis.*s avec bcfg2 +${BCFG2DIR}/ + diff --git a/.procmailrc b/.procmailrc new file mode 100644 index 0000000..ab5a8d9 --- /dev/null +++ b/.procmailrc @@ -0,0 +1,893 @@ +################################################################################ +### Still being tested. Use at your own risks… ### +################################################################################ + +# .procmailrc générique mis à votre disposition +# par les gentils membres actifs du Cr@ns +# Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance. +# Des questions, des suggestions : {nounou,ca}@lists.crans.org +# Licence : WTFPL + +# Les sections commentées par #~# sont des features qui ne sont pas activées +# par défaut. Sentez-vous libre de les décommenter pour les utiliser. + +# Attention : le path par défaut des fichiers de logs est $HOME/.procmail/logs +# Assurez-vous que le dossier en question existe avant d'utiliser ce .procmailrc + +#------------------------------------------------------------------------------ +# Ce fichier commence par une grosse section de commentaire qui donne un aperçu +# de l'arborescence de dossiers qui sera obtenue en utilisant ce .procmailrc. +# Les règles ne sont pas dans le même ordre, en effet, il est plus efficace +# de mettre en premier les règles qui sont le plus souvent vérifiées pour +# diminuer le temps moyen de traitement. + +# Vous pouvez ajouter vos propres règles de tri sans modifier ce fichier, +# en effet, ce .procmailrc inclus trois autres fichiers de règles +# (pour l'instant commentés par #~#) +# Ils doivent être tous les trois dans ${CONFIGDIR} +# * Le premier, custom.high.rules contient des règles qui overrident tout +#  le comportement ce .procmailrc,pour des mails qui doivent être classés +# sans autre condition. +# * Le deuxème, custom.normal.rules doit contenir la plupart de vos règles +# personnelles, il est géré après les mails envoyés par le Cr@ns mais avant +# le comportement par défaut des mailing-lists, ce qui vous permet d'en +# trier certaines selon un autre schéma +# * Le troisième, custom.final.rules est appliqué tout à la fin, il peut par +# exemple servir à définir un dossier par défaut autre que .INBOX + + + +################################################################################ +##### Commentaires ##### +################################################################################ +# +# Les tags suivants expliquent quels membres actifs reçoivent quels mails : +# $: câbleur/imprimeur +# *: apprenti +# +: nounou +# B: bureau +# T: trésorier +# M: modérateur +# F: admin federez +# +### /!\ pour cron, faire attention à ne pas envoyer les mails cron perso sur +### zamok dans les dossiers cron ! +### +### pour les ml : faire des sous-dossiers bounces --> IDEA DROPPED +### +### dans le main procmailrc : (ouais enfin finalement on met tout dans le même) +### - le bidule pour trier les crons persos --> DONE +### - le truc trop bien de Harry pour trier les ml du campus --> DONE +### +### Multi-déco upload dans un autre dossier --> DONE +# +# Cr@ns +# | +# ./|-[$*+BT] Administratif (le côté administratif : bot free !) +# ./| | +# ./| |-[$*+B] public +# ./| | | +# ./| | |-[$*+B] ca +# ./| | |-[+B] dsi-crans +# ./| | |-[*+B] install-party +# ./| | |-[B] crans-crous +# ./| | +# ./| |-[$*+BT] privé +# ./| | +# ./| |-[B] bureau +# ./| |-[T] trésorier +# ./| |-[$*+] respbats (bot free) +# ./| |-[$*+] impression (sans modif_solde, munin, print_status) +# ./| |-[+B] spoof +# ./| |-[+B] disconnect (sans les bots) +# ./| +# ./| +# ./|-[*+BF] Federez (bah, federez quoi !) +# ./| | +# ./| |-[*+B] federez +# ./| |-[F] admin +# ./| |-[(F)] monit +# ./| +# ./| +# ./|-[$*+BM] Surveillance (on stalke, pour vérifier ce que font les autres) +# ./| | +# ./| |-[+] Irrelevant : logcheck +# ./| | +# ./| |-[+BM] modérateur +# ./| | +# ./| |-[+] ovh (connexions au manager) +# ./| | +# ./| |-[*+] caméras (à trier) +# ./| | +# ./| |-[$*+] LDAP +# ./| | | +# ./| | |-[$*+] modif-solde +# ./| | |-[*+] modifications de la base ldap +# ./| | +# ./| |-[+] cranspasswords +# ./| +# ./| +# ./|-[*+] Monitoring (une machine fait-elle de la merde ?) +# ./| | +# ./| |-[*+] monit +# ./| | | +# ./| | |- trier dynamiquement par serveur ! +# ./| | +# ./| |-[+] nagios +# ./| | | +# ./| | |- trier dynamiquement par serveur ! +# ./| | +# ./| |-[$*+] munin +# ./| | | +# ./| | |-[$*+] impression +# ./| | +# ./| |-[+] arpwatch +# ./| | | +# ./| | |-[+] changed ethernet address +# ./| | |-[+] flip-flop +# ./| | |-[+] new_activity +# ./| | |-[+] new_station +# ./| | +# ./| |-[+B] stats d'upload --> À vérifier que le X-Mailer marche +# ./| +# ./| +# ./|-[$*+] Problèmes (à regarder avant d'aller se coucher) +# ./| | +# ./| |-[*+] self-sloving +# ./| | | +# ./| | |-[*+] SQL errors +# ./| | |-[+] ftp +# ./| | +# ./| |-[+] modéré +# ./| | | +# ./| | |-[+] intranet1 +# ./| | |-[+] intranet2 (en fait, django en général) +# ./| | |-[*+] backuppc +# ./| | +# ./| |-[*+] attention (cron) +# ./| | | +# ./|  | |-[*+] à trier : roots/root ou par serveur +# ./| | +# ./| |-[*+] Argh +# ./| | | +# ./| | |-[*+] nols +# ./| | |-[*+] pulsar +# ./| | +# ./| |-[$*+] Humain +# ./| | +# ./| |-[$*+] print_status +# ./| | +# ./| |-[+] mailman +# ./| | +# ./| |-[B+] déco N fois en un mois +# ./| +# ./| +# ./|-[*+] Information (keep up to date) +# ./| | +# ./| |-[*+] apt-listchanges +# ./| | +# ./| |-[+] ovh (newsletters, factures) +# ./| | +# ./| |-[$*+] machines supprimées +# ./| | +# ./| |-[*+] git (commits) +# ./| | | +# ./| | |-[*+] what's new +# ./| | +# ./| |-[*+] darcs (records) +# ./| | | +# ./| | |-[*+] what's new +# ./| | +# ./| |-[+] bcfg2 (Serveurs non synchronisés avec bcfg2) +# ./| | +# ./| |-[+] inn (stats des servuers de news) +# ./| +# ./| +# ./|-[$*+B] Technique (les discussions et les trucs reliés) +# ./ | +# ./ |-[*+] Nounou +# ./ | +# ./ |-[*+] Roots +# ./ | +# ./ |-[$*+] câblages à effectuer +# ./ | +# ./ |-[*+B] tracker +# + + + +################################################################################ +##### Variables ##### +################################################################################ + +################################################################# +## Variables d'environnement ## +################################################################# +# Path du dossier où sont rangés les mails +MAILDIR="${HOME}/Mail" +# Shell à utiliser pour exécuter des commandes +SHELL="/bin/bash" +# Dossier contenant tout le garbage procmail-related +# (le .procmailrc lui-même est dans le home) +PROCMAILDIR="${HOME}/.procmail" +# Dossier où sont les fichiers de configuration supplémentaires pour procmail +CONFIGDIR="${PROCMAILDIR}/rc" +# Path du fichier de log de procmail +LOGFILE="${PROCMAILDIR}/logs/procmail.log" + + +################################################################# +## Noms de dossiers ## +################################################################# +# /Attention à ne pas mettre de . ou d'espace au mauvais endroit…/ + +### Dossiers personnels +## Dossier pour ranger les mails de Cron +## (ceux envoyés par un serveur Cr@ns seront rangés ailleurs) +CRONPERSODIR=".Cron" + +## Dossier de Spam +SPAMDIR=".Spam" +# Spam reçu sur (usenet|news)@(crans.org|crans.ens-cachan.fr) +SPAMINNDIR="${SPAMDIR}.usenet" + + +### Dossiers pour les MLs qui ne sont pas catchées par une autre règle +## Dossier racine +MLDIR=".ML" + +### Dossiers pour les MLs du campus +MLCAMPUSDIR="${MLDIR}.Campus" +MLBDEDIR="${MLCAMPUSDIR}.BDE" +MLCLUBSDIR="${MLCAMPUSDIR}.Clubs" +MLMEDDIR="${MLCLUBSDIR}.Med" +MLBDLDIR="${MLCAMPUSDIR}.BDL" +MLBDADIR="${MLCAMPUSDIR}.BDA" +MLSDADIR="${MLCAMPUSDIR}.SDA" +MLGALADIR="${MLCAMPUSDIR}.Gala" +MLSONODIR="${MLCAMPUSDIR}.SoNo" + +## Dossier où atterrira une ML non-répertoriée +MLFAILSUFFIX="Fail" + +### Dossier pour les MLs de promo +MLPROMODIR="${MLDIR}.Promo" + +### Dossier pour les MLs non répertoriées plus haut et non-MA-crans +MLPERSODIR="${MLDIR}.Divers" + +### Dossiers pour les Membres Actifs du Cr@ns +## Dossier racine +CRANSDIR=".Cr@ns" +## Dossiers de mailing lists +CRANSADMINISTRATIFDIR="${CRANSDIR}.Administratif" +CRANSADMINISTRATIFPUBLICDIR="${CRANSADMINISTRATIFDIR}.public" +CRANSADMINISTRATIFPRIVATEDIR="${CRANSADMINISTRATIFDIR}.prive" + +## Dossiers pour les mails de monitoring +MONITORINGDIR="${CRANSDIR}.Monitoring" +MONITDIR="${MONITORINGDIR}.Monit" +NAGIOSDIR="${MONITORINGDIR}.Nagios" +NAGIOSSWITCHSDIR="${NAGIOSDIR}.0-switchs" +ARPWATCHDIR="${MONITORINGDIR}.Arpwatch" +MUNINDIR="${MONITORINGDIR}.Munin" +MUNINIMPRESSIONDIR="${MUNINDIR}.Imprimante" +STATUPLOADDIR="${MONITORINGDIR}.Stats-upload" + +## Dossiers pour le mails concernant des "problèmes" +# Racine +PROBLEMSDIR="${CRANSDIR}.Problems" +# Par ordre de gravité croissant +SELFSOLVINGDIR="${PROBLEMSDIR}.0-Self-solving" +SOFTDIR="${PROBLEMSDIR}.1-Soft" +WILDDIR="${PROBLEMSDIR}.2-Wild" +ARGHDIR="${PROBLEMSDIR}.3-Argh" +HUMANPROBLEMSDIR="${PROBLEMSDIR}.4-Human-made" +# Sous-dossiers +FTPDIR="${SELFSOLVINGDIR}.ftp" +SQLGREYDIR="${SELFSOLVINGDIR}.sql-errors" +BACKUPPCDIR="${SOFTDIR}.backuppc" +DJANGODIR="${SOFTDIR}.Django" +INTRANET2DIR="${SOFTDIR}.Intranet2" +INTRANET1DIR="${SOFTDIR}.intranet-bugreport" +CRONDIR="${WILDDIR}.cron" +NOLSDIR="${ARGHDIR}.nols" +PULSARDIR="${ARGHDIR}.pulsar" +MAILMANDIR="${HUMANPROBLEMSDIR}.Mailman" +PRINTSTATUSDIR="${HUMANPROBLEMSDIR}.print_status" +MULTIDECODIR="${HUMANPROBLEMSDIR}.multi-deco" + +## Dossier de surveillance (= surveillance d'actions humaines) +# Racine +SURVEILLANCEDIR="${CRANSDIR}.Surveillance" +# Par ordre de sensibilité croissant +LOGCHECKDIR="${SURVEILLANCEDIR}.0-logcheck" +MODERATEURSDIR="${SURVEILLANCEDIR}.1-Moderateurs" +OVHMANAGERDIR="${SURVEILLANCEDIR}.2-OVH" +CAMERASDIR="${SURVEILLANCEDIR}.3-Cameras" +LDAPDIR="${SURVEILLANCEDIR}.4-LDAP" +LDAPSOLDEDIR="${LDAPDIR}.Solde" +LDAPMODIFDIR="${LDAPDIR}.Modification" +CRANSPASSWORDSDIR="${SURVEILLANCEDIR}.5-cranspasswords" + +## Dossier informatif (= pour se tenir au courant de ce qui se passe au Cr@ns) +# Racine +INFORMATIONDIR="${CRANSDIR}.Information" +# Mails d'ovh autre que les notifications de connexion au manager +OVHDIR="${INFORMATIONDIR}.OVH" +# apt-listchanges +APTLISTCHANGESDIR="${INFORMATIONDIR}.apt-listchanges" +# Machines supprimées pour chambre invalide +DELETEDMACHINES="${INFORMATIONDIR}.machines_supprimees" +# Repositories +GITDIR="${INFORMATIONDIR}.git" +DARCSDIR="${INFORMATIONDIR}.darcs" +# Mail envoyé quotidiennement par bcfg2 avec la liste des serveurs non synchro +BCFG2DIR="${INFORMATIONDIR}.bcfg2" +# Statistiques des serveurs de news +INNDIR="${INFORMATIONDIR}.inn" + +## Dossier de discussion techniques +# Racine +TECHNIQUEDIR="${CRANSDIR}.Technique" +# Mails de roots@ non catchées avant +ROOTSDIR="${TECHNIQUEDIR}.roots" +# Mails de câblages demandé/effectué +CABLAGEDIR="${TECHNIQUEDIR}.Cablages" +# Mails du tracker +TRACKERDIR="${TECHNIQUEDIR}.Tracker" +# Mails de la ML nounou +NOUNOUDIR="${TECHNIQUEDIR}.Nounou" +# Messages laissés sur la Freebox +FREEBOXDIR="${TECHNIQUEDIR}.Freebox" +# Dossier où atterriront les mails de root@ non triés +ROOTDEFAULTDIR="${TECHNIQUEDIR}.root" + +### Dossier racine pour Federez +FEDEREZDIR="${CRANS_FOLDER}.FedeRez" +FEDEREZMONITDIR="${FEDEREZDIR}.Monit" + + + +################################################################################ +##### Règles ##### +################################################################################ + +#~# # Patch pour traiter les mails qui ont été +#~# # reçus avant le 30/06/13, car certaines règles de tri du .procmailrc +#~# # n'étaient pas encore valables à l'époque. +#~# # très utile si on veut retrier tous ses mails +#~# INCLUDERC="${CONFIGDIR}/retrocompatibility_patch.rules" + +#~# # Fichier de règles prioritaires à personnaliser +#~# INCLUDERC="${CONFIGDIR}/custom.high.rules" + +################################################################# +## Gestion des mails d'Arpwatch ## +################################################################# +:0 +* ^From:.*arpwatch@crans\.org +{ + # On trie les différents types de mails d'Arpwatch, + # en faisant attention aux . et aux espaces après avoir éliminé + # tout ce qui se trouve après " (". + :0 + * ^Subject: \/.* \( + { + TYPE=`echo $MATCH | sed 's/ (.*//;s/\( \|\.\)/_/g;'` + :0 + ${ARPWATCHDIR}.${TYPE}/ + } + + :0 + ${ARPWATCHDIR}/ +} + + +################################################################# +## Gestion des mails de Monit ## +################################################################# + +# Les mails de Monit à propos du serveur A sont envoyés dans le dossier +# ${MONITDIR}.A/ si le dossier n'existe pas, il est créé mais il +# faut encore s'y abonner... +:0 +* ^(X-Mailer|User-Agent):.*monit +{ + # Avant de tester les hotsnames Cr@ns, règle spéciale utile pour + # certains admin de FedeRez + :0 + * ^To: federez-monit@ + ${FEDEREZMONITDIR}/ + + :0 + * ^Subject:.*monit \/[^ \.]+ + ${MONITDIR}.${MATCH}/ + + # Dossier de Monit par défaut, si Monit se met à envoyer d'autres mails + :0 + ${MONITDIR}/ +} + + +################################################################# +## Gestion des mails de Nagios ## +################################################################# + +# Les mails de Nagios à propos du serveur A sont envoyés dans le dossier +# ${NAGIOSDIR}.A/ si le dossier n'existe pas, il est créé mais il +# faut encore s'y abonner +:0 +* ^(From: nagios@crans\.org|User-Agent:.*nagios) +{ + # Tous les switchs vont dans le dossier ${NAGIOSSWITCH} + :0 + * ^Subject:.*Alert: bat[^/]+- + ${NAGIOSSWITCHSDIR}/ + + # Chaque serveur a son dossier + :0 + * ^Subject:.*Alert: \/[^/\.]+ + ${NAGIOSDIR}.${MATCH}/ + + # Si l'envie prenait à Nagios de raconter un peu plus sa vie + :0 + ${NAGIOSDIR}/ +} + + +################################################################# +## Gestion des mails de Cron ## +################################################################# + +# Attention, si on enlève la ligne qui filtre sur le To:, on catche +# aussi tous les mails Cron qui ne sont pas envoyés par un serveur Cr@ns +:0 +* ^To:.*(roots?|postgres|www-data|list)@crans\.org +* ^(X-Cron-Env|From: Anacron) +{ + #~# # Par défaut, on ne trie pas les mails de Cron, pensez à décommenter + #~# # le INCLUDERC (et à copier le fichier complémentaire) pour les trier + #~# INCLUDERC=${CONFIGDIR}/cron.rules + + :0 + ${CRONDIR}/ +} + + +################################################################# +## Gestion des mails de root@crans.org ## +################################################################# + +# Statistiques du serveur de news +# Désolidarisé du bloc root@crans.org pour séparer les spams +# sans qu'ils tombent dans ${ROOTDEFAULTDIR} +:0 +* ^To:.*(usenet|news)@(crans\.org|crans\.ens-cachan\.fr) +{ + # L'intérêt c'est que plein de spam arrive sur ces addresses + # et seules les stats d'inn sont censées y arriver. + # Donc on peut bazarder tout ce qui n'est pas stat au Spam + :0 + * ^From: news@crans.org + ${INNDIR}/ + + :0 + ${SPAMINNDIR}/ +} + +# On matche tous les alias de root@crans.org +:0 +* ^(To|Cc): .*(root|abuse|amavis|backup|bind|bin|clamav|daemon|ftpadm|ftpmaster|ftp-mirror|ftp|games|gnats|irc|list|logcheck|lp|mail|majordom|man|msql|munin|news|operator|postgres|proxy|sync|sys|usenet|uucp|webmaster|www-clubs|www-data|www-perso|postmaster|mailer-daemon)@crans\.org +{ + # Spam de logcheck + :0 + * ^From:.*logcheck@crans\.org + ${LOGCHECKDIR}/ + + # Mails envoyés par munin quand il trouve qu'un graphe sort des limites + :0 + * ^From: munin@crans\.org + ${MUNINDIR}/ + + # Mails envoyés en cas d'erreur de synchronisation du ftp + :0 + * ^From: mirror@crans\.org + ${FTPDIR}/ + + # Mails envoyés en cas d'erreur sur l'intranet2 + :0 + * ^Subject: \[Intranet2 Cr@ns\] + ${INTRANET2DIR}/ + + # Mails envoyés en cas d'une autre erreur Django + :0 + * ^Subject: \[Django\] + ${DJANGODIR}/ + + # Mails envoyés lors de la modification d'un fichier de mot de passe + :0 + * ^X-Mailer: cranspasswords + ${CRANSPASSWORDSDIR}/ + + # Mails envoyés par OVH… + :0 + * ^From:.*support@ovh\.com + { + # …lors d'une connexion au manager + :0 + * ^X-Ovh-Template: nic/fr/loginNotification.model + ${OVHMANAGERDIR}/ + + # Pour autre chose (facture, newsletter) + :0 + ${OVHDIR}/ + } + + # Mail envoyés par apt-listchanges lors d'une mise à jour + :0 + * ^Subject:.*apt-listchanges + ${APTLISTCHANGESDIR}/ + + # Serveurs non synchronisés avec bcfg2 + :0 + * ^X-Mailer: bcfg2-reports + ${BCFG2DIR}/ + + # Tout ce qui traîne sur root et qui n'est pas catché par quelque chose + :0 + ${ROOTDEFAULTDIR}/ +} + + +################################################################# +## Gestion des mails de roots@crans.org ## +################################################################# + +:0 +* ^(To|Cc|List-Id):.*roots(@|\.lists\.)crans\.org +{ + # Il y a aussi des apt-listchanges sur roots@ + :0 + * ^Subject:.*apt-listchanges + ${APTLISTCHANGESDIR}/ + + # Mails envoyés par la baie de disques + :0 + * ^From: nols@crans\.org + ${NOLSDIR}/ + + # Mails envoyés par l'onduleur + :0 + * ^From: pulsar@adm\.crans\.org + ${PULSARDIR}/ + + # Mails envoyés par le script qui détecte les changements dans la base LDAP + :0 + * ^Subject:.*Surveillance modifications de la base LDAP + ${LDAPMODIFDIR}/ + + # Mails envoyés lors d'une erreur sur la base de donnée sqlgrey + :0 + * ^From: sqlgrey@crans\.org + ${SQLGREYDIR}/ + + # Mails envoyés par backuppc + :0 + * ^From: backuppc@crans\.org + ${BACKUPPCDIR}/ + + # Souriez, vous êtes photographiés + :0 + * ^From:.*cameras@crans\.org + { + # On trie par lieu de la caméra + :0 + * ^Subject:.*0B + ${CAMERASDIR}.0B/ + + :0 + * ^Subject:.*0H + ${CAMERASDIR}.0H/ + } + + # I'm in your mailbox, watching your commits + # Attention à bien filtrer git avant darcs parce que les mails git + # contiennent aussi le header X-DarcsInfo ! + :0 + * ^X-GitInfo + { + :0 + * ^X-Mailer: /usr/scripts/utils/git-whatsnew + ${GITDIR}.whatsnew/ + + :0 + ${GITDIR}/ + } + :0 + * ^X-DarcsInfo + { + :0 + * ^X-Mailer: Python Darcs Check + ${DARCSDIR}.whatsnew/ + + :0 + ${DARCSDIR}/ + } + + # Tracker + :0 + * ^X-Mailer:.*Redmine + ${TRACKERDIR}/ + + # Messages sur la Freebox + :0 + * ^From: telephonie.freebox@freetelecom.fr + ${FREEBOXDIR}/ + + # Si il n'y pas de condition de tri, ça va dans le dossier Technique + :0 + ${ROOTSDIR}/ +} + + +################################################################# +## Mails envoyés sur des MLs mais par des bots ## +################################################################# +# Il n'y jamais de dossier par défaut, le mail sera rattrapé +# au moment de la gestion gobale des mailing-lists + +# Sur la ML disconnect@ +:0 +* ^List-Id:.*disconnect\.lists\.crans\.org +{ + # Statistiques d'upload + :0 + * ^X-Mailer: /usr/scripts/surveillance/statistiques.py + ${STATUPLOADDIR}/ + + :0 + * ^Subject:.*fois.*en un mois + ${MULTIDECODIR}/ +} + +# Câblage demandé/effectué +:0 +* ^X-Crans-Intranet: cablage +${CABLAGEDIR}/ + +# Sur la ML impression@ +:0 +* ^List-Id:.*impression\.lists\.crans\.org +{ + # Modification de solde + :0 + * ^X-Mailer: modif_solde + ${LDAPSOLDEDIR}/ + + # Informations de print_status + :0 + * ^X-Mailer: /usr/scripts/impression/print_status.py + ${PRINTSTATUSDIR}/ + + # Munin stock papier et toners + :0 + * ^From: munin@crans\.org + ${MUNINIMPRESSIONDIR}/ +} + +# Sur la ML respbats@ +:0 +* ^List-Id:.*respbats\.lists\.crans\.org +{ + # Machines supprimées pour chambre invalide + :0 + * ^X-Mailer: /usr/scripts/gestion/chambres_vides.py + ${DELETEDMACHINES}/ +} + +#WIP# ############################################################################### +#WIP# # ^^^^^^^ Classés le plus possible par ordre de spammage décroissant + +#WIP# # vvvvvvv Les MLs, à laisser en bas +#WIP# ############################################################################### + + +################################################################# +## Gestion des cron perso ## +################################################################# +# Les Subjects des mails de (Ana)?Cron +# sont de la forme "(Ana)?Cron " +# On parse pour récupérer le host et trier avec +:0 +* ^(X-Cron-Env|From: Anacron) +{ + :0 + * ^Subject:.*Cron <[^@>]+@\/[^>]+ + { + # On prend garde à ne pas créer un sous-dossier + # si jamais le host contient un . ou un espace + HOST_=`echo "$MATCH" | sed 's/\(\.\| \)/_/g'` + :0 + ${CRONPERSODIR}.${HOST_}/ + } + + # Dans le cas (improbable) où le Subject de matche pas + :0 + ${CRONPERSODIR}/ +} + + +################################################################# +## Inclusion des règles personnelles ## +################################################################# +#~# # Fichier de règles à personnaliser +#~# INCLUDERC="${CONFIGDIR}/custom.normal.rules" + +################################################################# +## Gestion des mails de Mailman ## +################################################################# +# La ML mailman@ est un peu particulière +:0 +* ^(List-Id:.*mailman\.|(To|Cc):.*mailman-(owner|bounces)@)lists\.crans\.org +${MAILMANDIR}/ + + +################################################################# +## Gestion des mailing-listes ## +################################################################# +# Ajouter à la suite vos propres règles pour les mailing-listes non gérées ici + +:0 +# On récupère tous les mails qui sont arrivés par l'intermédaire d'une ML +* ^List-Id:.*\/<[^<>]+>$ +{ + ML=$MATCH + ML=`echo "${ML}" | sed 's///'` + + ################################################################# + ## Gestion des mailing-listes Cr@ns ## + ################################################################# + :0 + * ^List-Id:.*lists\.crans\.org + { + # On veut ne garder que le nom de la ML sans le nom de domaine + ML=`echo "${ML}" | sed 's/\.lists\.crans\.org//'` + # On prend garde à ne pas créer un sous-dossier + # si jamais le List-Id contient un . ou un espace + ML_=`echo "${ML}" | sed 's/\(\.\| \)/_/g'` + + ################################################################# + ## Cas où la ML est une ML de membre actif du Cr@ns ## + ################################################################# + + # MLs publiques (au sens où il n'y a pas que des cranseux abonnés) + :0 + * ? grep "^${ML}$" ${CONFIGDIR}/ML_MA_crans.administratif.public + ${CRANSADMINISTRATIFPUBLICDIR}.${ML_}/ + + # MLS où il n'y a que des membres actifs abonnés + # (on peut y envoyer des informations privées) + :0 + * ? grep "^${ML}$" ${CONFIGDIR}/ML_MA_crans.administratif.prive + ${CRANSADMINISTRATIFPRIVATEDIR}.${ML_}/ + + # La ML federez@lists.crans.org va quand même dans le dossier FedeRez + :0 + * ? echo "${ML}" | grep federez + ${FEDEREZDIR}.${ML_}/ + + # La ML modérateurs va dans le dossier Surveillance + :0 + * ^List-Id:.*moderateurs\.lists\.crans\.org + ${MODERATEURSDIR}/ + + # La ML intranet-bugreport va dans le dossier Problèmes + :0 + * ^List-Id:.*intranet-bugreport\.lists\.crans\.org + ${INTRANET1DIR}/ + + # La ML nounou va dans le dossier Technique + :0 + * ^List-Id:.*nounou\.lists\.crans\.org + ${NOUNOUDIR}/ + + ################################################################# + ## Gestion des autres mailing-list (du campus) ## + ################################################################# + # MLs génériques du campus (des assos et d'autres random trucs) + :0 + * ? grep "^${ML}$" ${CONFIGDIR}/ML_campus + ${MLCAMPUSDIR}.${ML_}/ + + # MLs BDE + :0 + * ? echo "${ML}" | grep bde + ${MLBDEDIR}.${ML_}/ + + # MLs BDA + :0 + * ? (grep "^${ML}$" ${CONFIGDIR}/ML_bda) || (echo "${ML}" | grep bda) + ${MLBDADIR}.${ML_}/ + + # MLs SoNo + :0 + * ? (grep "^${ML}$" ${CONFIGDIR}/ML_sono) || (echo "${ML}" | grep sono) + ${MLBDADIR}.${ML_}/ + + # MLs Med + :0 + * ? echo "${ML}" | grep med + ${MLMEDDIR}.${ML_}/ + + # MLs SDA + :0 + * ? echo "${ML}" | grep sda + ${MLSDADIR}.${ML_}/ + + # MLs BDL + :0 + * ? echo "${ML}" | egrep "(bdl|interludes)" + ${MLBDLDIR}.${ML_}/ + + # MLs Gala + :0 + * ? echo "${ML}" | egrep "(gala|geec)" + ${MLGALADIR}.${ML_}/ + + # MLs des clubs + :0 + * ? (grep "^${ML}$" ${CONFIGDIR}/ML_clubs) || (echo "${ML}" | egrep '^club-') + ${MLCLUBSDIR}.${ML_}/ + + ################################################################# + ## Gestion des MLs de promo ## + ################################################################# + :0 + * ? echo "${ML}" | egrep '^(ens-|a\.coeur)' + ${MLPROMODIR}.${ML_}/ + + ################################################################# + ## Gestion des MLs perso ## + ################################################################# + :0 + * ? grep "^${ML}$" ${CONFIGDIR}/ML_perso + ${MLPERSODIR}.${ML_}/ + + # Si on est tombés sur un ML non-répertoriée + :0 + ${MLCAMPUSDIR}.${MLFAILSUFFIX}.${ML_}/ + } + + ################################################################# + ## Gestion des mailing-listes FedeRez ## + ################################################################# + # On veut ne garder que le nom de la ML sans le nom de domaine + ML=`echo "${ML}" | sed 's/\.lists\.federez\.net//'` + # On prend garde à ne pas créer un sous-dossier + # si jamais le List-Id contient un . ou un espace + ML_=`echo "${ML}" | sed 's/\(\.\| \)/_/g'` + + :0 + * ^List-Id:.*lists.federez.net + { + :0 + ${FEDEREZDIR}.${ML_}/ + } + + ################################################################# + ## Gestion des autres mailing-listes ## + ################################################################# + # On récupère le nom de domaine et le nom de la ML + DOMAIN=`echo "${ML}" | sed 's/.*\.\([^\.]\+\)\.[^\.]\+$/\1/'` + # On ne sait jamais ce qu'on peut rencontrer… + DOMAIN_=`echo "${DOMAIN}" | sed 's/ /_/g'` + # On prend garde à ne pas créer un sous-dossier + # si jamais le List-Id contient un . ou un espace + ML_=`echo "${ML}" | sed 's/\.[^\.]\+\.[^\.]\+$//;s/\.lists\?$//;s/\(\.\| \)/_/g'` + :0 + ${MLDIR}.${DOMAIN_}.${ML_}/ +} + +#~# # Fichier de règles de faible priorité à personnaliser +#~# INCLUDERC="${CONFIGDIR}/custom.final.rules"