Openbsd Spamd
Total Page:16
File Type:pdf, Size:1020Kb
OpenBSD Spamd Nicolas Greneche MAPMO Projet SDS Mathrice Rouen 2008 Sommaire 1 Introduction 2 Architecture et Algorithmes 3 Composants 4 Lancement et Param`etres 5 Exploitation 2 / 15 ... mais aussi OpenSSH, OpenNTPD, OpenCVS, OpenBGPD et Packet Filter ! Introduction - OpenBSD Syst`emed'exploitation Orient´es´ecurit´e S´eparation syst`eme de base / ports Support des mod`elesMAC et DAC Audit strict de s´ecurit´edu syst`emede base OpenBSD c'est Spamd ... 3 / 15 Introduction - OpenBSD Syst`emed'exploitation Orient´es´ecurit´e S´eparation syst`eme de base / ports Support des mod`elesMAC et DAC Audit strict de s´ecurit´edu syst`emede base OpenBSD c'est Spamd ... ... mais aussi OpenSSH, OpenNTPD, OpenCVS, OpenBGPD et Packet Filter ! 3 / 15 Introduction - Packet Filter Macros de remplacement (attribut unique ou liste) Redirections (NAT / RDR / BiNAT) R`egles Tables (rapidit´edes lookups / dynamiques) Ancres (r`eglesdynamiques) QoS authpf CARP & PFSync Port \expiretable" 4 / 15 ! Rien `afaire, c'est dans le syst`emede base Configuration de spamd Dans /etc/pf.conf : table <spamd-white> persist no rdr inet proto tcp from <spamd-white> to any port smtp rdr pass inet proto tcp from any to any port smtp ! 127.0.0.1 port spamd Dans /etc/rc.conf.local : spamd flags=““ Merci de votre attention, des questions ? Introduction - (et fin ?) Installation de spamd 5 / 15 Dans /etc/pf.conf : table <spamd-white> persist no rdr inet proto tcp from <spamd-white> to any port smtp rdr pass inet proto tcp from any to any port smtp ! 127.0.0.1 port spamd Dans /etc/rc.conf.local : spamd flags=““ Merci de votre attention, des questions ? Introduction - (et fin ?) Installation de spamd ! Rien `afaire, c'est dans le syst`emede base Configuration de spamd 5 / 15 Dans /etc/rc.conf.local : spamd flags=““ Merci de votre attention, des questions ? Introduction - (et fin ?) Installation de spamd ! Rien `afaire, c'est dans le syst`emede base Configuration de spamd Dans /etc/pf.conf : table <spamd-white> persist no rdr inet proto tcp from <spamd-white> to any port smtp rdr pass inet proto tcp from any to any port smtp ! 127.0.0.1 port spamd 5 / 15 Merci de votre attention, des questions ? Introduction - (et fin ?) Installation de spamd ! Rien `afaire, c'est dans le syst`emede base Configuration de spamd Dans /etc/pf.conf : table <spamd-white> persist no rdr inet proto tcp from <spamd-white> to any port smtp rdr pass inet proto tcp from any to any port smtp ! 127.0.0.1 port spamd Dans /etc/rc.conf.local : spamd flags=““ 5 / 15 Introduction - (et fin ?) Installation de spamd ! Rien `afaire, c'est dans le syst`emede base Configuration de spamd Dans /etc/pf.conf : table <spamd-white> persist no rdr inet proto tcp from <spamd-white> to any port smtp rdr pass inet proto tcp from any to any port smtp ! 127.0.0.1 port spamd Dans /etc/rc.conf.local : spamd flags=““ Merci de votre attention, des questions ? 5 / 15 Architecture 6 / 15 Algorithmes Blacklist : Stock´eedans une table Aliment´eepar le spamd.conf et / ou par l'administrateur H^otesde cette table ne parlent jamais au vrai MTA Discussion : Source des blacklist ? Fr´equencede r´eassignationdes IP par les FAI 7 / 15 Algorithmes Whitelist : Stock´eedans une table <spamd-white> Aliment´eepar le spamd.conf et / ou par l'administrateur H^otesde cette table court-circuitent spamd pour parler directement avec le MTA Discussion : Combiner avec SPF (ou pas !) SPF - Sender Policy Framework Pour lutter contre les utilisations erron´eesde noms de domaines dans les mails forg´es,SPF propose d'associer une liste de MTA l´egitimes(autoris´es`aenvoyer du courrier) `aun nom de domaine dans le serveur DNS servant la zone associ´eeau domaine. Pour r´ecup´ererces enregistrements, il suffit de demander au DNS les enregistrements de type TXT. Listes maison 8 / 15 Algorithmes Greylist : Refuse premi`eretransaction (erreur 451) Le MTA ´emetteurest stock´edans la base de donn´eesde spamd (spamdb) en attente d'une retransmission de messages Si le message est retransmis, alors l'´emetteur passe en whitelist Discussion : Efficace : les 20% d'administration qui suppriment 80% du spam Attention aux MTA ´emetteursmal configur´es (et il y en a ...) Attention aux fermes de serveurs SMTP (multiple IP sources pour le m^ememessage) 9 / 15 Algorithmes Greytrapping : Cr´eationd'une (ou plusieurs) adresse(s) bidon(s) pour capter le spam (honeypot `aspam) Si une machine en greylist cherche `aenvoyer un message ´a cette adresse, alors elle est ajout´eedans la table <spamd-greytrap> Les r´eponses de spamd vers les machines de cette table sont tarpit´ees(r´eponses lentes) Discussion : Fun, surtout si l'adresse est inscrite dans les commentaires HTML de votre page web Attention `abien choisir une adresse qui ne sera jamais utilis´ee (gestion des mails s´epar´eede cr´eationde comptes) Pourrir la vie des spammers 10 / 15 Composants Spamd : un faux MTA traditionnellement bind´esur l'interface de loopback. Son r^oleest d'examiner les transactions mail (`a destination du port smtp) passant par le pare-feu. Il va g´erer les listes blanches, grises et noires. Spamlogd : programme qui surveille les requ^etesmail (`a destination du port smtp) sur l'interface pflog. C'est lui qui va entretenir la liste blanche propre `aspamd. Les r`egles d'acceptation du trafic SMTP au niveau PF doivent ^etre loggu´ees. 11 / 15 Triplet de temps 7 : Temps au del`aduquel une tentative de reconnexion en liste grise fait passer la connexion en liste blanche (en minutes) 4 : Temps au del`aduquel une connexion sur liste grise est supprim´eede la base de donn´eesde Spamd (en heures) 864 : Temps d'inactivit´emaximum d'un h^otesur liste blanche (spamd-white) avant sa suppression Lancement et Param`etres Dans /etc/rc.conf.local spamd flags=”-v -l 127.0.0.1 -n Postfix -h realmta.example.org -G 7 :4 :864\ spamd grey=YES spamlogd flags=“-l pflog0” 12 / 15 Lancement et Param`etres Dans /etc/rc.conf.local spamd flags=”-v -l 127.0.0.1 -n Postfix -h realmta.example.org -G 7 :4 :864\ spamd grey=YES spamlogd flags=“-l pflog0” Triplet de temps 7 : Temps au del`aduquel une tentative de reconnexion en liste grise fait passer la connexion en liste blanche (en minutes) 4 : Temps au del`aduquel une connexion sur liste grise est supprim´eede la base de donn´eesde Spamd (en heures) 864 : Temps d'inactivit´emaximum d'un h^otesur liste blanche (spamd-white) avant sa suppression 12 / 15 Analyse de la sortie 1/2 GREY j 62.209.218.70 j usgs.gov j <[email protected]> j <[email protected]> j 1194181594 j 1194195994 j 1194195994 j 3 j 0 - Le type d'enregistrement (WHITE ou GREY) - L'IP de l'´emetteurdu message - Le message HELO envoy´epar l'´emetteur - Adresse mail source - Adresse mail destination Commandes utiles spamdb j grep GREY spamdb j grep [email protected] 13 / 15 Commandes utiles spamdb j grep GREY spamdb j grep [email protected] Analyse de la sortie 1/2 GREY j 62.209.218.70 j usgs.gov j <[email protected]> j <[email protected]> j 1194181594 j 1194195994 j 1194195994 j 3 j 0 - Le type d'enregistrement (WHITE ou GREY) - L'IP de l'´emetteurdu message - Le message HELO envoy´epar l'´emetteur - Adresse mail source - Adresse mail destination 13 / 15 Commandes utiles spamdb j grep GREY spamdb j grep [email protected] Analyse de la sortie 2/2 GREY j 62.209.218.70 j usgs.gov j <[email protected]> j <[email protected]> j 1194181594 j 1194195994 j 1194195994 j 3 j 0 - Date de la premi`ereentr´eedans la spamdb (premi`eretentative de connexion) - Date `alaquelle l'enregistrement sera promu sur liste blanche - Date d'expiration de l'enregistrement dans la spamdb - Nombre de fois o`uune telle connexion a re¸cuune temporary failure de Spamd - Nombre de fois o`uune telle connexion est pass´eesur liste blanche 14 / 15 Commandes utiles spamdb -a <IP `a whitelister> pfctl -t spamd-white -T show pfctl -f /etc/pf.conf tcpdump -netti /dev/pflog0 15 / 15.