gps – service de la politique de la liste grise de postfix

Original: http://mimo.gn.apc.org/gps/

 

Soumis par mimo sur Thu, 06/25/2009 – 17:09

Greylisting est une façon de réduire le spam entrée en boîtes aux lettres des utilisateurs sur le serveur de messagerie. gps (il sera bientôt appelée liste grise) est une mise en œuvre rapide et sécurisé d’un service de la politique de la liste grise pour le serveur de messagerie postfix.

gps n’est plus activement développé. Utilisez le démon liste grise à la place. Le démon de la liste grise est complètement compatible avec le GPS. Le même schéma de base de données est utilisée et toute configuration qui était possible avec le GPS peut être fait avec le démon de la liste grise (mais est un peu plus compliqué).
1.007

Auteur:
Michael Moritz mimo / à / restoel.net

Dernière mise à jour
10 juillet 2009

 

Introduction
gps, tout d’abord, est une mise en œuvre d’un service de la politique de la liste grise de postfix. Greylisting est un concept de réduire le montant de l’UCE («spam») par des moyens techniques. Tests sur les systèmes de production montrent que le greylisting est extrêmement efficace contre le spam. En savoir plus sur la liste grise sur http://www.greylisting.org et http://projects.puremagic.com/greylisting/whitepaper.html

Deuxièmement, gps prend greylisting un peu plus loin à partir de la version 1.0. Basé sur l’expérience de l’utilisation de listes grises dans un environnement de production, gps est livré avec des fonctionnalités qui réduisent énormément les problèmes de la notion de greylisting originale. Ces améliorations font gps “greylisting utilisable pour les FAI et les grandes configurations du système de messagerie.

principales caractéristiques de GPS sont:

  • Utilise un backend de base de données par DBI
  • Permet de partager une base de données entre tous les serveurs de messagerie
  • Prise en charge de différents types de bases de données, testés avec MySQL, PostgreSQL, SQLite
  • Écrit en C / C + +, en utilisant STL et libstdc + +
  • Bon compromis entre la vitesse et la sécurité
  • Connexion via syslog
  • Liste blanche par des adresses de réseau du client, le destinataire et l’expéditeur adresse e-mail
  • Liste blanche basée pattern matching (regex): wl_pattern
  • entretien de base de données via un script perl personnalisable géré par crond
  • Prise en charge de faible greylisting
  • Méthode unique de faible inverse greylisting / lumière d’identifier correctement le courrier de relais de messagerie
  • Confirmé pour fonctionner sur Linux et FreeBSD jusqu’ici

État du projet

  • Version 1.x
    • Stables, plus de deux années de fonctionnement sur le système de production de courrier avec deux serveurs de messagerie
  • Version 0.x
    • Testé sur Debian, RedHat 9 et 7.2
    • Testé sur RedHat 9 et 7.2
    • Essai en cours sur le système de production de courrier avec deux serveurs de messagerie partageant une base de données MySQL

Installation
Pour construire gps de source, les paquets suivants sont nécessaires:

  • C / C + + Compiler, de préférence GCC (testé avec 3.3.3)
  • STL
  • libstdc + +
  • libdbi de http://libdbi.sf.net (ou paquets libdbi et libdbi-dev), voir aussi cette discussion

Pour construire gps déballer le ballon source de goudron (pas si l’utilisation de SVN) et exécuter configure et la fabrication. Depuis gps est en cours de développement, vous pourriez avoir à faire:

.tar.gz “>tar xvfz gps-<version>. tar.gz
[OR]
.tar.gz “>tar xvfz gps-<version>. tar.gz
) “>cd gps-x.x (ou cd libération <version>)
make-f Makefile.cvs
. / Configure
faire
make install

Alternativement, il est souvent possible de construire gps manuellement en exécutant (travaux sur debian):

g+ +-s-o gps configreader.cpp db.cpp main.cpp read.cpp cfg.cpp dbdefs.cpp wlcacheddb.cpp signals.cpp-ldbi-LDL

Remarque:
Si vous êtes coincé avec gps installation poster votre problème dans le forum gps

Configuration
D’abord créer une base de données vide pour greylisting. Comment faire cela dépend de la base de données principale.

Exemple pour mysql (ce ne pas utiliser un mot de passe):

# Mysql-p
CREATE DATABASE greylist; “>> CREATE DATABASE liste grise;
GRANT ALL ON greylist TO ‘greylist’ IDENTIFIED BY ‘secret’; “>> GRANT ALL ON greylist A ‘liste grise’ identified by ‘secret’;
BYE “>> BYE

Remarque:
etc / gps.pgsql.conf dans le package contient une étape par exemple étape sur la façon de le faire dans PostgreSQL.

gps créeront sa table Triplets (et d’autres tables) quand il est exécuté en mode = initialisation.

Ajouter à votre gps master.cf et fichiers main.cf comme décrit dans la documentation de postfix sous greylisting (prises de http://www.postfix.org/SMTPD_POLICY_README.html):

/ Etc / postfix / master.cf:
politique unix – nn – spawn
user = personne argv = / usr / local / bin / gps / usr / local / etc / gps.conf locale

/ Etc / postfix / main.cf:
smtpd_recipient_restrictions

reject_unauth_destination
check_policy_service unix: private / politique

policy_time_limit = 3600

Syntaxe
gps [-v] fichierconfig

Paramètres:
-V permet messages journaux détaillés
ConfigFile votre fichier de configuration, y compris chemin

fichier de configuration
Les options suivantes sont utilisées dans le fichier de configuration.

Remarque:
les clés et les valeurs sont sensibles à la casse.

Les valeurs possibles des paramètres ou plage de valeurs
(Par défaut en gras) Description du Dépend de la version
mode normal | initialisation | faible | inverse Définit le mode de greylisting
weakbytes 0 – 4 (3) Nombre d’octets significatifs du mode d’adresse IP du client = faible (| inverse) 0,92
dbtype mysql | sqlite | Type de base de données pgsql
db_host nom d’hôte ou l’adresse IP serveur de base de données dbtype
db_username nom d’utilisateur de base de données identifiant dbtype
mot de passe db_password mot de passe de base de données dbtype
base de données db_dbname Nom base de données dbtype
numéro de port de la base de données db_port le port dbtype = pgsql 0,9
Options db_pgsql_options Postgres les options Postgres dbType = pgsql 0,9
db_pgsql_tty / dev / ttyX (/ dev / null) Postgres enregistrement dbtype = pgsql 0,9
db_sqlite_dbdir chemin (permissions!) Base de données SQLite chemin dbtype = sqlite 0,9
timeout secondes (3600 = 1 heure) Les listes grises délai d’attente (mode = init)
wl_network off | mode liste blanche dbcached (off) du réseau 0.8 | db
wl_recipient off | mode liste blanche dbcached (off) du bénéficiaire de 0,8 | db
wl_sender off | Mode dbcached (off) l’expéditeur de la liste blanche de 0,8 | db
wl_pattern off | db | dbcached (off) Le filtrage en mode liste blanche 0,91
mode
le mode dit gps dans quel mode RUN. Par défaut initialisation

  • initialisation Crée une table (s) de base de données qui n’avez pas exister. Retournera toujours “dunno” mais ajouter des enregistrements à la base de données. Il peut donc être utilisé pour recueillir un nombre suffisant de dossiers de la base de données avant de basculer sur le mode inverse, normal ou faible qui effectuent réellement le greylisting. A noter que ceci provoque plusieurs requêtes SQL comme il vérifie si les tables existent liste grise. Cela ne devrait être utilisé pour initialiser la base de données et de tester le GPS.

Remarque:
Ce qui n’empêchera pas le courrier.

Dans le mode d’initialisation de la version 1.x ne doit être utilisé pour créer les tables de base de données et de ne pas remplir le tableau de triplet de données. Les triplets que ce mode écrit à la base de données sont incompatibles avec l’exécution gps en mode inverse plus tard. Il en résulte dans certains courrier étant laisser passer sans aucun contrôle. Si c’est le cas, il ya des messages sur les exceptions dans le journal de messagerie. La solution est de supprimer toutes les entrées qui ont des adresses des clients commençant par le numéro de la table de triplet. Quelque chose comme ceci va faire le travail:

DELETE FROM triplet WHERE client_address RLIKE ‘1’;         “>> DELETE FROM triplet OÙ adresse_client RLIKE ‘1 ‘;

DELETE FROM triplet WHERE client_address RLIKE ‘2’;         “>> DELETE FROM triplet OÙ adresse_client RLIKE ‘2 ‘;

  • Nom inverser base greylisting: au lieu de vérifier l’adresse IP du client du triplet cela résout l’adresse IP et utilise seulement une partie significative du nom de l’hôte pour vérifier si un triplet a déjà été vérifiée. (Par exemple Étant donné l’adresse IP 1.2.3.4 décide de messagerie server255.someisp.com gps vérifie si un triplet (someisp.com, expéditeur, destinataire) existe déjà. En mode normal, il vérifiera (1.2.3.4, expéditeur, destinataire) rejette ainsi mail s’il venait d’une autre machine sur le même relais) Ce mode est utile pour les FAI, car elle réduit la nécessité de liste blanche et donc réclamations des usagers concernant pas récupérer le courrier. Dans le même temps, il est toujours efficace pour arrêter de spam. Dans le cas de la résolution de noms échoue cela est connecté et greylisting faible sur la base de l’adresse IP se fait à la place.

Remarque:
Ceci est supporté depuis la version 1.0 et qu’il est le mode recommandé d’utiliser

  • mode normal de greylisting normale: gps vérifie les triplets (adresse IP du client, expéditeur, destinataire) contre la base de données et blocs courrier jusqu’à ce que le délai est atteint pour le premier courrier. Mails ultérieurs avec le même triplet sont loués par immédiatement.
  • faible (A partir de la version 0.7) greylisting faible. En bref, cela signifie ignorer le dernier octet des adresses IP des clients. Il est utile si vous êtes coincé avec les serveurs de messagerie expéditeur qui utilisent un bloc d’adresses de réseau sur le même sous-réseau pour envoyer des messages. Utilisation de la faiblesse des résultats de mode dans significativement plus élevée de charge CPU. Il est donc recommandé d’utiliser une combinaison de méthodes de liste blanche (pour la version 0.x).

Remarque:
Depuis la version 1.0 sur gps utilise une autre façon de stocker et de la recherche d’adresses IP des clients. Cela réduit la charge CPU. Un nouveau paramètre de configuration est ajouté:
weakbytes définit le nombre d’octets significatifs de l’adresse du client dans mode de faible greylisting. La valeur par défaut est 3.

temps mort
Le livre blanc délai greylisting suggère un délai de 3600 secondes (1 heure) avant un nouveau triplet de l’expéditeur, le destinataire, l’adresse du client doit être autorisé par le système de listes grises. Réduire le délai d’attente sera de garder la satisfaction des utilisateurs et est toujours très efficace (par exemple 60 secondes). Par défaut est 3600
dbtype
dbtype définit le type de base de données à utiliser. Ce doit être réglé sur le même nom libdbi attend. Actuellement, libdi-pilotes supportent mysql, pgsql (version 0.9 +), sqlite (version 0.9 +), msql (?), Oracle (?). GPS quitter et enregistrer une liste de pilotes disponibles si le pilote spécifié n’est pas installé (est pratique pour vérifier l’installation libdbi). La valeur par défaut est mysql
“>db_ <DB parameter>
This is the list of paramters to be passed on to libdbi to make the database connection.”>db_ <DB parameter> C’est la liste des paramters être transmis à libdbi pour établir la connexion de base de données. Les paramètres db dépendent du pilote. Voir le fichier ci-dessous exemple de configuration et la gps.conf inclus, gps.sqlite.conf et gps.pgsql.conf des exemples de la façon d’utiliser les différents backends de base de données. Exemple Les paramètres de DB pour dbtype = mysql:

db_host = localhost
db_username = gps
db_password = secrète
db_dbname = liste grise

Liste blanche
Une bonne mise en œuvre de greylisting devrait inclure plusieurs façons de liste blanche. De nombreux systèmes de messagerie ne sont pas conformes à la spécification SMTP, certains grands FAI utilisent plusieurs serveurs de messagerie sur le même sous-réseau. Dans le pire des cas mails se rebondi. Greylisting faible (parfois appelée lumière greylisting) est une façon de s’attaquer à ce problème, la liste blanche est mieux en charge de la CPU et les résultats dans une meilleure réduction de spam. Dans la série 1.x GPS utilise une meilleure approche à ce problème. Utilisation du mode inverse permet de résoudre les problèmes de relais de messagerie et réduit ainsi la nécessité de la liste blanche.

Les options de liste blanche suivantes sont fournies par le GPS. L’peut être utilisé dans n’importe quelle combinaison. Si vous essayez d’optimiser votre ours de configuration à l’esprit que les tables de liste blanche se traitées avant la table des triplés.
Modes de base de données de liste blanche (version 0.8 +)
Tous les modules de listes blanches peuvent utiliser différents moyens de stockage de données et la recherche des entrées. Le mode d’utilisation est définie dans le fichier de configuration.

= “>wl_ <module> = <mode>

Les modes supportés sont:

Paramètres:
Est-off par défaut. Ce module de listes d’autorisation n’est pas utilisée.
db (version 0.7b +) Les données de la liste blanche est stocké dans une table avec le nom du module de la liste blanche. Si gps est exécuté en mode = initialiser il va vérifier si la table existe et créer si nécessaire. Définition d’un module à db fait gps vérifier triplet evry contre la table du module de la liste blanche avant de vérifier la table principale de triplets. Par conséquent, pour chaque liste blanche modules activés un plus requête SQL est généré.
dbcached (version 0.8 +) lorsque le GPS est lancé, il lit la table de la liste blanche du module et crée une mémoire cache de celui-ci qui l’utilise pour faire des recherches ultérieures. Il utilise plus de mémoire que db et les résultats dans des temps de démarrage, mais signifie moins de requêtes SQL, et est – une fois initialisé – beaucoup plus rapide que db.

wl_network
wl_network (version 0.7b +) Ceci définit le mode de liste blanche de réseau. Si elle est définie à wl_network = db il va vérifier le réseau de la table avant tout le reste si le bloc de réseau de l’adresse du client a été la liste blanche. Pour désactiver l’utilisation wl_network = off. Par défaut off

Exemple d’ajout d’une entrée de la liste blanche dans mysql

use greylist; “>> Utiliser la liste grise;
insert into network values (‘192.168.0.’,’my home network’); “>> Insérer dans les valeurs de réseau (‘192 .168.0 ‘,’ mon réseau domestique.);
bye (or CTRL+D) “>> Revoir (ou CTRL + D)

Remarque:
Le dernier point de la netblock est obligatoire!

wl_recipient, wl_sender
wl_recipient (version 0.8 +) Cette option définit le destinataire (ou expéditeur) le mode liste blanche. Si elle est définie à wl_recipient = db il va vérifier le destinataire de table avant tout le reste si l’adresse du destinataire a été la liste blanche. Pour désactiver l’utilisation wl_recipient = off. Par défaut off

Exemple d’ajout d’une entrée de la liste blanche dans mysql

use greylist; “>> Utiliser la liste grise;
insert into recipient values (‘[email protected]’,’this user wants his spam’); “>> Insérer dans les valeurs de bénéficiaires (‘[email protected] »,« cet utilisateur veut que son spam »);
bye (or CTRL+D) “>> Revoir (ou CTRL + D)

wl_pattern
wl_pattern (version 0.91 +) permet de liste blanche sur la base d’une expression régulière.

Les expressions régulières dans wl_pattern peuvent, en théorie, être utilisés pour remplacer l’un des autres modules de liste blanche. En outre, il peut être utilisé pour mettre en œuvre les règles de listes blanches complexes combinant plusieurs conditions. Néanmoins, il ne doit être utilisée que si aucun des autres modules fonction de la tâche. Il est beaucoup plus lente par lui-même et aussi parce que tous ses modèles seront testés contre tout triplet entrant. Les autres modules utilisent la base de données ou carte à base de cordes recherches. Si wl_pattern doit être utilisé, il doit être fait par la mise à wl_pattern = dbcached réduisant ainsi le nombre de requêtes de base de données.

gps construit un texte que les expressions peuvent être comparées à des solutions de liste blanche de pointe. Le format de la représentation interne gps est:

s = [email protected]
r = [email protected]
c = 216.145.54.171
h = mrout1.yahoo.com

Si un modèle contient gps ah = de ligne fait une recherche inversée de nom. Cela rend gps plus lent. Si aucun des modèles contiennent h = la recherche inversée est ignorée (C’est une bonne idée de lancer nscd dans une situation de recherche inversée). Depuis la version 1.x sur gps fait aussi la recherche si elle est exécutée en mode inverse. Dans ce cas, seul le nom de recherche inversée est déjà exécuté il n’y a donc pas de différence dans la performance. Les tests montrent également que les recherches effet inverse n’est pas aussi mauvais que orginially supposé.

Dans l’exemple ci-dessus l’adresse IP décide de l’un des serveurs de Yahoo. Ce modèle utilise le nom de recherche inversée et correspond à l’exemple:

insert into pattern values(“.+^h=.*yahoo\.com.+$”,”yahoo”); “>> Insérer dans les valeurs de configuration (“+ ^ h = * yahoo \ com + $….”, “Yahoo”);

Un autre exemple: ce Whitelists un de vos domaines de messagerie complètement

insert into pattern values(“.+^r=.*@someorg\.org.+$”,”someorg want all spam”); “>> Insérer dans les valeurs de configuration (“…. + ^ R = * @ someorg \ org + $”, “someorg veulent tous les spams”);

Un exemple plus complexe pour une situation courante. Un utilisateur a des problèmes avec la réception du courrier de quelqu’un en particulier. Dans cet exemple, nous savons même l’adresse IP de serveur de messagerie de l’expéditeur – bien au moins le premier octet:

^ S = utilisateur. + ^ R = myuser @ mydomain. + ^ C = 210

Si vous voulez spécifier l’adresse complète utilisateurs, il devrait ressembler à ceci

^ S = utilisateur. + ^ R = myuser @ mydomain \. Org. + ^ C = 210

Remarque:
l’. + après l’organigramme dans l’exemple est toujours nécessaire!

Depuis l = utilisateur est au début de ne pas utiliser le premier. + Avant l’ancre ^

^ S = expéditeur @ exemple \. Com. + $

weakbytes
weakbytes définit le nombre d’octets significatifs de l’adresse du client dans mode de faible greylisting. La valeur par défaut est 3.
fichier de configuration Exemple:

mode = inverse
dbtype = mysql
db_host = localhost
db_username = gps
db_password = secrète
db_dbname = liste grise
timeout = 60
wl_recipient = dbcached
wl_network = db
wl_sender = off
wl_pattern = dbcached

Pour tester votre configuration GPS et utilisez la commande suivante. Les erreurs de configuration seront enregistrés à syslogd (installation électronique). Voir aussi Exécution.

. / Src / gps-v etc / gps.conf <tests/testinput4.txt

Si tout est correctement installé un couple de “action = permit_if_defer” doit être imprimé. Si ce n’est pas le cas, vérifiez le journal de messagerie pour les erreurs. Si vous êtes bloqué à ce stade publier votre fichier de configuration, la section correspondante du journal électronique, et les versions de gps, libdbi, libdb-conducteurs dans le Forum gps.

Maintenant, attendez pour le nombre de secondes indiquées dans le délai et exécuter la même ligne de nouveau. Elle doit retourner “action =” dunno lignes. Si c’est le cas gps est prêt.

Remarque:
Si vous prévoyez d’utiliser le GPS en mode inverse (fortement recommandé), alors vous devez maintenant clair sur la table de triplet. Par exemple

TRUNCATE TABLE `triplet`;     “>> TRUNCATE TABLE `triplet`;

Encore une fois, consultez le journal et les poster dans le forum si quelque chose va mal.

fichiers de configuration exemple pour Postgres et SQLite sont dans le dossier / etc après avoir déballé le GPS. Le gps.pgsql.conf contient instructions étape par étape sur la façon d’installer et de configurer postgres sur debian et comment créer la base de données de la liste grise et l’utilisateur.

Postgres délivre des informations sur la création d’une table et une erreur sur la création de l’index secondaire lorsqu’il est exécuté en mode = initialisation. Néanmoins, il est utilisable après cela.

Remarque:
Si vous êtes coincé avec gps configuration poster votre problème dans le forum gps

Fonctionnement
Pour exécuter gps les exigences sont les suivantes:

dbd pilotes pour le backend de base de données choisi de http://libdbi-drivers.sf.net (ou libdbd (pilote) paquet)

GPS enregistre toutes ses actions à l’installation de messagerie syslog. La sortie d’un testrun est montré ci-dessous:

Remarque:
Courir GPS en mode verbose (interrupteur-v) génère beaucoup de la sortie du journal et est seulement recommandé pour initialiser et dépannage.

gps de messagerie [2225]: commencé (v.: 0,8 construit: 14 septembre 2004 18:35:14)
gps de messagerie [2225]: config lecture: / etc / gps.conf
gps de messagerie [2225]: config: préfixe: clé: valeur de mode = normal
gps de messagerie [2225]: config: préfixe: clé db: valeur de host = localhost
gps de messagerie [2225]: config: préfixe: clé db: valeur de nom d’utilisateur = liste grise
gps de messagerie [2225]: config: préfixe: clé db: valeur de mot de passe =
gps de messagerie [2225]: config: préfixe: clé db: valeur dbname = liste grise
gps de messagerie [2225]: config: préfixe: clé: valeur de timeout = 60
gps de messagerie [2225]: la connexion à la DB, en utilisant mysql pilote
gps de messagerie [2225]: la mise DB possibilité: dbname à: greylist
gps de messagerie [2225]: l’option de réglage de DB: hôte: localhost
gps de messagerie [2225]: option de réglage DB: mot de passe:
gps de messagerie [2225]: option de réglage DB: username à: root
gps de messagerie [2225]: connecté à DB
‘barfoo.tld’, ‘1.2.3.4’ (3, 152 secs)  “>gps de messagerie [2225]: ok: ‘foobar.tld’ -> ‘barfoo.tld’, ‘1 .2.3.4 ‘(3, 152 secondes)
gps de messagerie [2225]: action = dunno
[email protected]’, ‘192.168.0.1’  “>gps de messagerie [2225]: nouvelles: «[email protected] ‘->’ [email protected] ‘, ‘192’ .168.0.1
gps de messagerie [2225]: action = Service defer_if_permit est indisponible
[email protected]’, ‘192.168.0.1’ (0, 34 secs)  “>gps de messagerie [2225]: attendre: «[email protected] ‘->’ [email protected] ‘, ‘192 .168.0.1’ (0, 34 secondes)
gps de messagerie [2225]: action = Service defer_if_permit est indisponible
gps de messagerie [2225]: la déconnexion de DB

Alors que le GPS est en cours d’exécution, il enregistre des informations sur les dossiers qu’elle reçoit de postfix. Le chemin typique d’un enregistrement non-spam est

recipient, client_address|client_name     “>nouveau: l’expéditeur -> destinataire, adresse_client | client_name
recipient, client_address|client_name (count, time_difference first seen)     “>attendre: l’expéditeur -> destinataire, adresse_client | client_name (compter, time_difference vu la première fois)
recipient, client_address|client_name (count, time_difference last seen) “>ok: expéditeur -> destinataire, adresse_client | client_name (compter, time_difference la dernière fois)

Paramètres:
expéditeur l’adresse de l’expéditeur
destinataire Adresse du destinataire
Client_Address l’adresse du client
CLIENT_NAME la partie significative du nom de client résolu lorsqu’il est exécuté en mode inverse
compter le nombre de fois triplet a été passé de postfix
intervalle de time_difference entre maintenant et le moment de l’enregistrement

GPS enregistre également des informations sur les listes blanches. Le format de ces messages est:

[email protected]’, ‘192.168.0.254’: this user wants his spam    “>gps de messagerie [18838]: bénéficiaires wl: «foobar.tld ‘->’ [email protected] ‘, ‘192 .168.0.254’: cet utilisateur veut que son anti-spam

[email protected]’, ‘192.168.0.254’: my home network “>gps de messagerie [18452]: réseau WLAN: «foobar.tld ‘->’ [email protected] ‘, ‘192 .168.0.254’: mon réseau domestique

Remarque:
Si vous avez des questions sur l’exécution gps poste dans le Forum gps

Base de données de maintenance
L’approche de greylisting nécessite un niveau de maintenance de base de données. Cette implémentation utilise un exemple de script perl pour l’entretien de base de données. Ceci peut être exécuté à partir de cron.

gps-maintain.pl [-v] [-supprimer]-eq |-ll compter âge secondes fichierconfig

Un exemple typique d’utilisation serait:

/ Usr / local / bin / gps-maintain.pl-delete-eq 0-âge 18000 / usr / local / etc / gps.conf locale

Ceci peut être exécuté horaire pour supprimer des entrées qui n’ont pas été reçues à nouveau dans les 5 heures.

/ Usr / local / bin / gps-maintain.pl-delete-âge 3110400 / usr / local / etc / gps.conf locale

Cela pourrait être exécuté quotidiennement pour supprimer les entrées qui sont âgés de plus de 35 jours.
Todo et bogues connus

  • Un couple de savoir SQLite et PostgreSQL problèmes, en particulier sur la création de la table. Contourner le moment: créer manuellement, consultez les forums pour plus de détails
  • Un problème avec le DNS inverse: un couple de sociétés ont décidé d’utiliser plus d’un nom canoniques pour leurs serveurs. Greylisting inverse a des problèmes (non critiques) avec qui
  • Résoudre les problèmes Solaris + SQLite: Un utilisateur a signalé que le GPS rapports d’exceptions et le spam passe par sa machine à la suite (aide nécessaire)
  • Outre gps-maintain.pl pour les statistiques de liste blanche et de collecte
  • Construire des paquets Debian (besoin d’aide)
  • Ajouter une configuration howto deux serveurs d’un base de données
  • Corriger les erreurs PostgreSQL sur create index. Postgres pense expéditeur (15), bénéficiaire (15) est un appel à une fonction.

Remarque:
Si vous pensez avoir trouvé un bug ou si vous avez amélioré poste gps dans le Forum gps

Crédits

Merci à Cédric pour proposer la nouvelle mode inverse.
Merci à Marek Tichy pour proposer ce projet et aider la mise en œuvre et grâce à Cédric Chevalier pour tous les commentaires.
Merci à la personne dont le nom je dois regarder dans mon E-mail pour les informations sur la mise en œuvre et de le tester sur Postgres SQL.
Crédits à Michael Hubbard pour le portage gps pour FreeBSD et la réécriture gps-maintain.pl

Des modifications

  • 10/07/2009 – Version 1.007, r41, corrections de bugs, la mise à niveau recommandé (Cedric)
    • correctifs: utiliser faibles, pas rDNS «inconnus»
    • fixer gethostbyaddr redondant appels ()
    • fixer la syntaxe de création de la table de triplet
  • 3/04/2007-24/04/2007 – Version 1.005, correction de bugs, la mise à niveau recommandée
    • Projet déménagé à Sourceforge et SVN Sourceforge page
    • Correction de bug lors de deux machines fonctionnent à des moments différents et l’horodatage sont dans le passé
    • Correction de bugs pour la politique erreurs de service de délai
    • Soutien à l’arrêt propre des signaux
    • utiliser Reverse DNS fournis par postfix au lieu de résoudre – décide encore si nécessaire
  • 03/02/2005 – Version 1.004, correction de bugs, la mise à niveau recommandée
    • Correction de bug avec les adresses électroniques, les noms des clients, etc qui contiennent% s ou toute autre / / dbi_conquery type de syslog analysé expression printf qui a entraîné gps erreurs de segmentation et de courrier étant laisser passer sans contrôle (Bug signalé par Jamie L. Penman-Smithson )
    • Nouveau script gps-maintain.pl de Michael Hubbard
  • 15/02/2005 – version 1.003, corrections de bugs
    • Patches de Michael Hubbard pour compiler gps sur FreeBSD
    • Correction d’un problème dans triplet définition de la table (merci à David Dakdo)
    • Fixe REMPLACER MySQLism (grâce à Jared)
    • Problèmes de compatibilité fixes gps-maintain.pl avec sqlite (grâce à mhubbard)
  • 28/01/2005 – version 1.002, corrections de bugs pour 1.001

Remarque:
avant de passer à cette version lire les Notes pour la version 1.001

Algorithme de résolution de nom fixe dans gps et gps-db-update.pl, devraient cesser de se chaînes hôtes non valides pour les noms d’hôtes valides
Le nom d’hôte se calcule à l’aide de tout enlever jusqu’à et y compris le premier point
Si le nom d’hôte ne contient pas un point de la chaîne entière est prise (j’ai remarqué que certains hôtes de messagerie qui résolvent à ‘localhost’, sérieusement)
Correction d’un problème avec les guillemets “dans les adresses e-mail quand de l’ancienne bibliothèque dbi est utilisé
Réactivé module réseau de la liste blanche
Correction d’un bug dans la commande INSERT, l’ordre de l’expéditeur, le destinataire a eu tort

  • 25/01/2005 – Version 1.001, des changements majeurs
    • Modification de la structure de base de données. Il n’est pas compatible avec la série de 0.x.
    • Ajout d’un nouveau mode de greylisting inverse: voir la description dans le mode
    • Les adresses IP sont maintenant stockées numériquement (voir les notes la version 0.92)
    • weakbytes maintenant fonctionnelle, mais une meilleure utilisation en mode inverse et fallover à faible si nécessaire
    • Rebaptisé le tableau Triplettes de triplet (ce qui devrait rendre plus facile de suivre les changements de version des problèmes)
    • Ajout d’un script PERL pour la base de données mise à jour gps-db-update.pl – lire attentivement les commentaires dans le fichier avant d’utiliser
  • 13/01/2005 – Version 0.93, petites corrections de bugs (dernière stable en série 0.x)
    • Correction d’un bug qui empêchait la création des tables de liste blanche en mode d’initialisation
    • résolu le problème avec des commentaires vides dans les listes blanches des tables
  • 20/11/2004 – Version 0.92
    • modifié le comportement quand quelque chose se passe mal lors de la phase d’initialisation: GPS utilisé pour quitter et signaler l’erreur. Il en est résulté REJECT pour le message. En règle générale, ce qui s’est passé quand la db est en baisse. Maintenant GPS poursuivre et permettre à tous les messages à travers sans effectuer des vérifications. Si cela arrive, le fichier journal contient des entrées de gps dire NON greylisting SERA EFFECTUE
    • Correction du support de motif regex de sorte qu’il fonctionne avec de multiples conditions. Par exemple maintenant un modèle qui exprime “l’expéditeur et le destinataire = [email protected] = [email protected]” peut être utilisé. Pour plus de détails voir wl_pattern
    • Prise en charge expérimentale pour un nouveau système de db qui stocke les adresses des clients en chiffres au lieu de chaînes
    • Cela devrait accélérer faible greylisting
  • Weakbytes ajoutés aux options de configuration – pas encore fonctionnel
    Notez que cette option est désactivée par défaut, commentez cette ligne dans defs.h à tester:
  • # Define OLDWEAK (vrai)
  • Il est également un script de conversion db gps-db-update.pl (en PERL) mais il faut noter que les noms de la procédure de conversion et de table peuvent changer
    Ajout de 4 nouvelles colonnes de la table. Pour mettre à niveau une utilisation db existant alter table avant d’installer cette version.
    C’est ce que le tableau devrait ressembler (l’ordre des champs est important):
  • explain Triplets;             “>mysql> Triplettes expliquer;
    + —————- + ————– + —— + —– + —- —– + ——- +
    | Champ | Type | Null | Key | Default | extra |
    + —————- + ————– + —— + —– + —- —– + ——- +
    | Adresse_client | varchar (40) | | PRI | | |
    | Bénéficiaire | varchar (160) | | PRI | | |
    | Expéditeur | varchar (160) | | PRI | | |
    | IP64 | décimal (4,0) | | PRI | 0 | |
    | IP32 | décimal (4,0) | | PRI | 0 | |
    | IP16 | décimal (4,0) | | PRI | 0 | |
    | IP8 | décimal (4,0) | | PRI | 0 | |
    | Nombre | int (11) | | | 0 | |
    | Pcs | int (11) | | | 0 | |
    + —————- + ————– + —— + —– + —- —– + ——- +
  • Liste blanche version basée 0,91 motif – 18/10/2004
  • support pour les listes blanches basé sur les expressions régulières ajoutée: Voir wl_pattern pour plus de détails de cette puissante fonctionnalité.
  • 18/09/2004 – Version 0.9 corrections de bugs
    • Incompatibilités SQL fixes avec SQLite et PostgreSQL
    • Correction de quelques bugs avec tables vide / base de données de la liste blanche non existante
    • fichiers d’exemple de configuration inclus pour SQLite et PostgreSQL
    • Correction d’une faute dans le GPS-maintain.pl grâce à un poste dans le Forum gps
  • 14/09/2004 – version 0.8 liste blanche revisité
    • changé pour un système basé sur des modules de wl: wl_sender, wl_recipient
    • wl modules offrent Mode dbcached: lit base de données au début et conserve en mémoire au lieu d’interroger db
    • indices optimisés pour la table des triplets
  • 13/07/2004 – Version 0.7b petites corrections de bugs
    • Ajout de l’option de configuration – with-syslog-facility = {} installation par défaut: LOG_MAIL
    • Correction d’un bug dans la commande CREATE TABLE réseau
    • = 0.7.2)     “>détection fixe et de soutien pour les nouveaux dbi_conn_queryf libdbi (version libdbi> = 0.7.2)
  • 07/07/2004 – Version 0.7b
    • Soutien listes blanches ajouté: wl_network
    • 06/07/2004 – version 0.7
    • Alimentaire modifiée pour faible greylisting. mode = faible utilisation
    • Changé instructions SQL pour travailler avec pgsql
  • Triplets changé index de la table
  • 09/06/2004 – version 0.6: Ajout du support pour les listes grises faible: utiliser ignorelastbyte = true dans le fichier de configuration (voir l’exemple fourni) pour permettre à n’importe quelle adresse dans le même netblock

Télécharger
Depuis la version 1.005 gps code source est hébergé sur sourceforge. Il ya maintenant deux (trois) façons d’obtenir gps.

Pour la caisse de la version stable usage courant subversion (svn):

svn co https://greylist.svn.sourceforge.net/svnroot/greylist/trunk liste grise
cd greylist
make-f Makefile.cvs
. / Configure
faire
make install

  • ensemble du code source de la page Sourceforge. Suivez le lien pour une liste des communiqués.
    Utilisation de SVN:
  • svn co https://greylist.svn.sourceforge.net/svnroot/greylist/tags/release-1.005 greylist-1.005
  • Nouveau: paquet Debian expérimental non officiel. Ce n’est pas testé. S’il vous plaît laissez votre rapport de bogue ou commentaires sur le forum

La version actuelle de développement est disponible à partir de subversion sur sourceforge

  • Utilisation de SVN:
  • svn co https://greylist.svn.sourceforge.net/svnroot/greylist liste grise
  • Les versions plus anciennes ne sont pas disponibles fom ce site plus. Les anciennes versions seront disponibles sur ce site, mais surtout pour des raisons d’archivage. Si vous utilisez l’un d’eux envisager de passer à la dernière version stable.

Remarque:
Mise à niveau de versions 0.x à 1.x versions nécessite la mise à niveau de la base de données vers le nouveau format de base de données. La distribution comprend un script de mise à niveau gps-db-update.pl Il contient plus d’informations sur la façon d’effectuer la mise à niveau.

  • Version stable en série 0.x http://mimo.gn.apc.org/gps/gps-0.93.tar.gz (dernier en série 0.x)

Anciennes versions

  • Version 1.x
    • Version 1.004 http://mimo.gn.apc.org/gps/gps-1.004.tar.gz
    • Version 1.003 (15/02/2002) http://mimo.gn.apc.org/gps/gps-1.004.tar.gz
    • Version 1.002 (28/01/2005) http://mimo.gn.apc.org/gps/gps-1.002.tar.gz (poussette)
  • Version 0.x
    • Version 0.92 (20/11/04) http://mimo.gn.apc.org/gps/gps-0.92.tar.gz
    • Version 0.91 (18/10/04) http://mimo.gn.apc.org/gps/gps-0.91.tar.gz
    • Version 0.9 (18/9/04) http://mimo.gn.apc.org/gps/gps-0.9.tar.gz (stable)
    • Version 0.8 (14/9/04) http://mimo.gn.apc.org/gps/gps-0.8.tar.gz (poussette)
    • Version 0.7b (13/7/04) http://mimo.gn.apc.org/gps/gps-0.7b.tar.gz (stable)
    • Version 0.6 (9/7/04) http://mimo.gn.apc.org/gps/gps-0.6.tar.gz

Discussion & Support
J’ai mis en place un forum accessible au public où vous pouvez poster de rapports de bugs, questions et réponses (de préférence) autour de gps.

Le Forum gps

Links
Permettez-moi savoir si vous avez un lien à ajouter ici.