Postfilter. Kadlecsik József KFKI RMKI

Hasonló dokumentumok
Postfilter. Kadlecsik József KFKI RMKI

Szalai Ferenc

Postfilter I. Spamszűrési módszerek és eljárások. Kadlecsik József KFKI RMKI

LINUX LDAP címtár. Mi a címtár?

11. Gyakorlat: Certificate Authority (CA), FTP site-ok

és DKIM. Kadlecsik József MTA Wigner Fizikai Kutatóközpont ISZT 2018, Budapest

Levelező szerverek. Hargitai Gábor november 28.

Szolgáltatási csomagok I-SZERVIZ Kft. érvényes szeptember 1-től

Mérési útmutató a Secure Shell (SSH) controll és audit című méréshez

Elektronikus levelek vírus és SPAM szűrése

Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

LBRA6i integrált rendszer

Spamszűrési módszerek és eljárások. Kadlecsik József KFKI RMKI

Elektronikus Információs és Nyilvántartási Rendszer a Doktori Iskolák fiatal kutatói részére

DHA VÉDELMI RENDSZER EREDMÉNYEINEK STATISZTIKAI VIZSGÁLATA

Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009

Szalai Ferenc

Elektronikus levelek vírus és SPAM szűrése

SAMBA. Forrás: Lajber Zoltán: SAMBA alapok dia, SZIE

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

SQLServer. Védelmi struktúra

CentOS 7 OTRS telepítése, beállítása

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Postfix. KFKI RMKI Kadlecsik József

Nagios NSCA Indirect Monitoring, Passive Check

Adatbázisok webalkalmazásokban

Windows XP -> 7 - Samba4 a PPKE-n

1/9. Sunell IP kamerák webes felületének használati útmutatója. Élő kép (Live Video)

Weboldalak Biztonsági Kérdései

PC Connect. Unique ewsletter. program leírás

Összeállította: Sallai András. Levelezőszerver egyszerűen

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

Fábián Zoltán Hálózatok elmélet

1. Kapcsolók konfigurálása

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

SZAKDOLGOZAT. Sztancs László

Adatbázis rendszerek 7. előadás State of the art

HecPoll a vezérlő rendszer

BackupPC. Az /etc/hosts fájlba betehetjük a hosztokat, ha nem a tejles (fqdn, DNS név) névvel hivatkozunk rájuk: # /etc/hosts #

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

API tervezése mobil környezetbe. gyakorlat

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

Netfilter. Csomagszűrés. Összeállította: Sallai András

Moodle -egy ingyenes, sokoldalú LMS rendszer használata a felsőoktatásban

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

Sokan nehezen tudják elképzelni, hogy hogyan és hol tudják az jeiket megkapni.

Oracle Audit Vault and Database Firewall. Gecseg Gyula Oracle DBA

A Horde keretrendszer és az IMP Webmail rendszer

DSD DSD. Egy országos méretű orvosi adatbázissal kapcsolatos informatikai kihívások. Kovács László Pataki Balázs Pataki Máté MTA SZTAKI DSD

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk

Adatbányászat és Perszonalizáció architektúra

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Data Integrátorok a gyakorlatban Oracle DI vs. Pentaho DI Fekszi Csaba Ügyvezető Vinnai Péter Adattárház fejlesztő február 20.

Mikrotik 6.22 telepítés

Tűzfal építés az alapoktól. Kadlecsik József KFKI RMKI

Hálózati adminisztráció Linux (Ubuntu 8.04) 12. gyakorlat

Biztonság java web alkalmazásokban

S, mint secure. Nagy Attila Gábor Wildom Kft.

Verziókezelt konfigurációmanagement++ Pásztor György, SZTE Klebelsberg Könyvtár

CISCO gyakorlati segédlet. Összeállította: Balogh Zoltán

OOP és UML Áttekintés

Hálózati operációs rendszerek II.

Campus6 projekt megbeszélés Mohácsi János

Készítette: Szabóné Nacsa Rozália

Csináld magad naplóelemzés syslog-ng-vel

Megtanuljuk, hogyan lehet egy web-alkalmazással adatbázishoz csatlakozni Pontosan megnézzük a PHP lehetőségeit o MySQL-hez o Oracle-höz

A NÉGY BŰVÖS HÁRMAS WWW FTP SQL PHP. BRKK::Békéscsaba Linux rendszergazda képzés 2008

A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található. A CD-melléklet használata. 1. Elméleti áttekintés 1

SPF és spamszűrés. Kadlecsik József KFKI RMKI

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Összeállította: Sallai András. Levelezőszerver

Zimbra levelező rendszer

HBONE tábor 2005 november Mohácsi János

Web-fejlesztés NGM_IN002_1

1. Ismerkedés a Hyper-V-vel, virtuális gépek telepítése és konfigurálása

EMTP, EGY ÚJ LEVELEZÕ PROTOKOLL ÉS IMPLEMENTÁCIÓJA

Elektronikus levelezés

10. Gyakorlat: Alkalmazások publikálása Remote Desktop Szervízen keresztül

RH/CentOS felügyelet SUSE Manager segítségével. Kovács Lajos Vezető konzultáns

Budapesti Műszaki Egyetem

Hello, EJB! Egy egyszerű példa

Private Cloud architektúra keretrendszer

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Adatbázis-kezelés ODBC driverrel

eduroam konfiguráció workshop Mohácsi János NIIF Intézet

Microsoft SQL Server telepítése

Hálózati architektúrák és Protokollok GI Kocsis Gergely


Használati útmutató. PNI House IPMAX POE ONE készlet IP térfigyelő kamera

Elemi alkalmazások fejlesztése IV.

OZW V7.0 firmware frissítés, Remote Tool Access részletes ismertető

Beállítások 1. Töltse be a Planet_NET.pkt állományt a szimulációs programba! A teszthálózat már tartalmazza a vállalat

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET Core) Cserép Máté

Hargitai Zsolt Novell Mo.

1. beadandó feladat dokumentáció

Átírás:

Postfilter Kadlecsik József KFKI RMKI <kadlec@sunserv.kfki.hu>

Tartalom Bevezetés Postfilter rendszer felépítése Szűrési feltételek CGI felületek Demo 2

Előzmények Postfix per_user_uce patch: 1999-2002 postfilter 1.x: 2003-2004 postfilter 2.x: 2005-3

Postfilter rendszer felépítése Komponensek: Postfix SMTP szerver a postfilterd policy daemonnal HTTP szerver a CGI script-ekkel SQL adatbázis szerver naplózó szerver adminisztratív szerver (pfadm) Minden egy szerveren vs teljes disztributivitás 4

Példa SMTP postfilterd SQL slave HTTP[S]/CGI SQL master SMTP postfilterd SQL slave admin 5

postfilterd Teljes értékű policy daemon Postfix-hez: szintaktikai és DNS ellenőrzések RBL, RHSBL listák whitelist, blacklist, greylist. DHA captcha kihívás (completely automated public Turing test to tell computers and humans apart) egyéni kivétellisták egyéni szűrési feltételek standalone nem a master.cf-en keresztül indul 6

Postfilterd integrálása Postfix-be smtpd_recipient_restrictions = reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, check_policy_service inet:127.0.0.1:10255, permit_mynetworks, reject_unauth_destination smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:10255 7

CGI script-ek postfilter.cgi felhasználói felület az egyéni beállítások módosításához jelszóval védett, https fölött captcha.cgi captcha feladat teljesítéséhez 8

SQL szerver Jelenleg csak mysql támogatott Egyszerű portálhatóság más adatbáziskezelőre read-only és read-write táblázatok postfilterd szempontjából: rw: greylist, captcha, automatikus black/whitelisták ro: user, user_whitelist, nem automatikus listák read-only táblák replikálhatók az SMTP szerverekre 9

Naplózás mysql táblába report script összesítő a kiszűrt levelekről a felhasználóknak statisztika az adminisztrátoroknak 10

Adminisztratív szerver I. Konfiguráció három részben root.conf minden szerveren ott kell lenni minimális beállitások az SQL szerverekről schema.conf minden szerveren ott kell lenni integrálás létező SQL alapú autentikációs rendszerekbe, beágyazott táblanevek felülbírálása, jelszó-titkosítás root.conf, schema.conf: kézi frissítés 11

Adminisztratív szerver II. main.conf összes komponens minden beállítási paramétere, ~250 Postfix main.cf-hez hasonló szintaxis Perl-re fordított és adatbázisban tárolt pfadm script 12

Postfilter szűrési beállításai Több réteg a maximális rugalmasság érdekében Elemi szűrési feltételek és Postfix-szintű szűrési ítéletek Szűrési policy-k Szűrési osztályok Saját E-mail címek: user tábla PUBLIC és HIDDEN REAL és VIRTUAL STANDALONE és SLAVE 13

Postfix-szintű szűrési ítéletek permit [opcionális szöveg] dunno [opcionális szöveg] [45]nn [opcionális szöveg] discard [opcionális szöveg] hold [opcionális szöveg] prepend szöveg 14

Makró támogatás $sender, $recipient $client, $client_name, $client_address $helo_name $rbl_domain, $txt_record $lookup_type, $lookup_subject, $lookup_what $captcha_url $date 15

Szűrési policy-k Elemi szűrési feltételek és ítéletek: policy_név = feltétel [,feltétel...] [ítélet] AND kapcsolat az elemi feltételek negatív ítéletei között Catch-all ítéletek: daemon_template_* 16

Szűrési osztályok Szűrési policy-kből class_név = policy [,policy...] OR kapcsolat a policy-k eredménye között 17

postfilterd kiindulási pontok daemon_default_recipient_class = class,... quota: levelek száma és címzettek száma daemon_default_end_of_data_class = class,... quota: levelek mérete elvileg 18

Elemi szűrési feltételek <type>:<subject>[:arguments] argumentum: kulcsszó=érték Három visszatérési érték reject: negatív találat permit: pozitív találat dunno: nincs találat 19

Elemi szűrési feltételek I. lookup:<subject>:table=tablename :match=<value>:nomatch=<value> client, client_name, client_address, helo_name, sender, recipient SQL minták tárolhatók %.domain.com 10.% blacklist:<subject>:table=tablename whitelist:<subject>:table=tablename 20

Elemi szűrési feltételek II. rbl:client_address :domain=rbl.domain.name [:query_match=d.d.d.d] [:match=<value>][:nomatch=<value>] rhsbl:client_name sender_domain :domain=rhsbl.domain.name [:query_match=d.d.d.d] [:match=<value>][:nomatch=<value>] 21

Elemi szűrési feltételek III. unknown:client_name helo_name sender recipient [:match=<value>][:nomatch=<value>] [:nohide] 22

Elemi szűrési feltételek IV. invalid:helo_name [:match=<value>][:nomatch=<value>] non_fqdn:helo_name [:match=<value>][:nomatch=<value>] authenticated:sasl [:match=<value>][:nomatch=<value>] captcha:sender 23

Elemi szűrési feltételek V. update:<subject>:table=tablename [:netblock4=8*n][netblock6=4*n] [:type=user_list][:match=<value>] client_name, client_address, helo_name, sender, recipient, sender_domain, recipient_domain automatikus tiltólistára helyezés: update:client_address:table=blacklist:netblock4=24 automatikus kivétellistára helyezés: update:recipient:table=user_whitelist:type=user_list 24

Elemi szűrési feltételek VI. greylist:client:delay=secs[:train][:whitelist=num] greylist és greylist_white táblák greylist:client:delay=5*60 25

Elemi szűrési feltételek VII. throttle:<subject>:count_max=number :rcpt_max=number:quota_max=number :time_period=number [:match=<value>][:nomatch=<value>] [:noinsert] sender, client_address, client_name, client, sasl_username throttle:sender:count_max=10:rcpt_max=10 :time_period=10*60 26

Elemi szűrési feltételek VIII. counter:client_address:table=tablename :limit=number:time_period=number [:netblock4=8*n][netblock6=4*n] [:match=<value>][:nomatch=<value>] counter:client_address:table=dha :limit=4:time_period=2*60 27

Elemi szűrési feltételek IX. counter:client_address:table=tablename :limit=number:check [:netblock4=8*n][netblock6=4*n] [:match=<value>][:nomatch=<value>] counter:client_address:table=dha :limit=4:check 28

Elemi szűrési feltételek X. regexp:<subject>:pattern=regexp[:not=regexp] [:match=<value>][:nomatch=<value>] client, client_name, client_address, helo_name, sender, recipient regexp:client_address :pattern=/^192\.168\./ 29

Elemi szűrési feltételek XI. filter:recipient sender:table=user [:enable=policyname][:disable=policyname] [:default=<value>][:nohide] filter:recipient:table=user :enable=auto_whitelist:default=dunno user táblában class_name policy_name0[,policy_name1...] 30

Elemi szűrési feltételek XII. user_list:recipient:table=tablename :lookup=sender[:type=blacklist] [:match=<value>][:nomatch=<value>] user_list:recipient :table=user_whitelist :lookup=sender 31

Elemi szűrési feltételek XIII. Pszeudo szűrési feltételek: and_group:begin[:default=<value>] and_group:end or_group:begin[:default=<value>] or_group:end or_group:begin authenticated:sasl:match=reject:nomatch=dunno regexp:client_address:pattern=/^192\.168\.0\./ or_group:end 32

Példák policy definíciókra I. Érvénytelen EHLO/HELO név ellenőrzés policy_invalid_helo = invalid:helo 501 [{$helo_name}]: EHLO/HELO name rejected Spamtrap-ba gyűjtött kliensek leveleinek eldobása policy_spamtrap = blacklist:client:table=spamtrap discard Client caught by spamtrap 33

Példák policy definíciókra II. Greylisting automatikus fehérlistával policy_greylist = lookup:client_address:table=greylist_white :match=dunno:nomatch=reject greylist:client:delay=4:whitelist=3 401 Service is unavailable, try again later. 34

Policy és class a felhasználók felé novice user: class cgi_novice_classes full, expert, slave expert users: policy cgi_expert_policies mark támogatás: cgi_expert_policies_without_mark daemon_mark_template = X-Postfilter: SPAM marked by {$lookup_class} 35

Felhasználói felületek postfilter.cgi captcha.cgi 36

pfadm admin interfész pfadm help [command] pfadm list add del mod search upload cleanup <object> <args> object: user, cookie, greylist, captcha, throttle object: user_list, lookup IPv4/IPv6 netblock konverzió 37

Integrálás más rendszerekkel SASL (SMTP Auth) I. Postfix master.cf: # submission port hostname:587 inet n n smtpd o smtpd_use_tls=yes o smtpd_sasl_auth_enable=yes o smtpd_tls_auth_only=yes 38

Integrálás más rendszerekkel: SASL (SMTP Auth) II. SASL: /usr/lib/sasl2/smtpd.conf # pwcheck_method: auxprop auxprop_plugin: sql mech_list: plain login sql_engine: mysql sql_hostnames user passwd database: sql_statement: select _passwd from user where _address = '%u@%r' and _passwd!= '' 39

Integrálás más rendszerekkel: PAM (OpenVPN) server.conf: # pwfile PAM module plugin /usr/lib/openvpn auth pam.so openvpn PAM: /etc/pam.d/openvpn auth required pam_mysql.so user=foo passwd=foo host=sqlhost db=postfilter table=user usercolumn=user._address passwdcolumn=user._passwd crypt=0 [where user._passwd!= ''] account required pam_permit.so 40

Integrálás más rendszerekkel: FreeRADIUS I. radiusd.conf: modules {.. $INCLUDE ${confdir}/sql.conf authorize {.. sql session {... sql 41

Integrálás más rendszerekkel: FreeRADIUS II. sql.conf: sql { driver server login password =... radius_db = postfilter authcheck_table = user authreply_table = user groupcheck_table = user groupreply_table = user usergroup_table = user 42

Integrálás más rendszerekkel: FreeRADIUS III.... sql_user_name = %{User Name} authorize_check_query = SELECT _userid, \ _address, 'Password', _passwd, '==' \ FROM ${authcheck_table} \ WHERE _address = '%{SQL User Name}' \ and _passwd!= '' \ ORDER BY _userid 43

Integrálás más rendszerekkel: FreeRADIUS IV.... authorize_reply_query = SELECT _userid, \ _address, 'foo', 'foo', '==' \ FROM ${authreply_table} \ WHERE _address = '_never_match' authorize_group_check_query =... authorize_group_reply_query =... 44

Integrálás más rendszerekkel: Spamassassin doc/spamassassin 45

Letöltési cím http://www.kfki.hu/cnc/projekt/postfilter 46