Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:mail_c7:spam_2 [05.11.2014 17:19. ] – [INSTALLATION] djangocentos:mail_c7:spam_2 [22.07.2019 15:02. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 ====== erweiterte gewichtete Prüfungen mittels policyd-weight ====== ====== erweiterte gewichtete Prüfungen mittels policyd-weight ======
-{{:centos:mail_c7:postfix-spam.png?nolink&125 |Bild: Symbolbild Postfix und SPAM}} Das zweite (wesentliche) Standbein bei unserer SPAM- und Schadcode-Prüfung von eMails kann der Policy-Dämon [[http://www.policyd-weight.org/|policyd-weight]] von [[http://selling-it.de|Robert Felber]]. Postfix leitet alle Client-Angaben bei der Einlieferung an den Policy-Dämon während des SMTP-Dialogs weiter, der dann eine Plausibilitätsprüfung vornimmt. Fälscht ein SPAMer den **HELO** Namen bzw. die Absenderangaben beim **MAIL FROM**, so wird dies ebenso bei der gewichteten Prüfung negativ bewertet, die das Vorhandensein, der Clioent-IP-Adresse auf einer oder mehreren RBLs. +{{:centos:mail_c7:postfix-spam.png?nolink&125 |Bild: Symbolbild Postfix und SPAM}} Das zweite (wesentliche) Standbein bei unserer SPAM- und Schadcode-Prüfung von eMails kann der Policy-Dämon [[http://www.policyd-weight.org/|policyd-weight]] von [[http://selling-it.de|Robert Felber]]. Postfix leitet alle Client-Angaben bei der Einlieferung an den Policy-Daemon während des SMTP-Dialogs weiter, der dann eine Plausibilitätsprüfung vornimmt. Fälscht ein SPAMer den **HELO** Namen bzw. die Absenderangaben beim **MAIL FROM**, so wird dies ebenso bei der gewichteten Prüfung negativ bewertet, die das Vorhandensein, der Client-IP-Adresse auf einer oder mehreren RBLs. 
  
 Policyd-weight nimmt vereinfacht und zusammengefasst folgende Prüfungen vor: Policyd-weight nimmt vereinfacht und zusammengefasst folgende Prüfungen vor:
-  - Passt der Hostname der beim **HELO** übertragen wurde, zu IP-Adresse und verweist seinerseits die IP-Adresse bei einer DNS reverse-Abfrage auf diesen Histnamen+  - Passt der Hostname der beim **HELO** übertragen wurde, zu IP-Adresse und verweist seinerseits die IP-Adresse bei einer DNS reverse-Abfrage auf diesen Hostnamen
-  - Steht die IP-Adresse des einliefernden Hosts auf mehreren Sperrlisten? Dabei unterscheidet der Policy-Dämon zwischen einzelnen RBLs und vergibt entsprechend negative Punkte, sofern die IP-Adresse gelistet ist aber auch positive Punkte, wenn die IP-Adresse eben nicht gelistet ist. +  - Steht die IP-Adresse des einliefernden Hosts auf mehreren Sperrlisten? Dabei unterscheidet der Policy-Daemon zwischen einzelnen RBLs und vergibt entsprechend negative Punkte, sofern die IP-Adresse gelistet ist aber auch positive Punkte, wenn die IP-Adresse eben nicht gelistet ist. 
  
 Wird bei der Prüfung durch das komplexe Regelwerk festgestellt, dass Kombinationen aus den oben genannten Punkten zu negativ aufgefallen sind, dann wird die weitere Bearbeitung beendet und die Annahme der eMail mit einem **500**er Fehler-Code final abgewiesen. Wird bei der Prüfung durch das komplexe Regelwerk festgestellt, dass Kombinationen aus den oben genannten Punkten zu negativ aufgefallen sind, dann wird die weitere Bearbeitung beendet und die Annahme der eMail mit einem **500**er Fehler-Code final abgewiesen.
Zeile 10: Zeile 10:
 ===== Installation ===== ===== Installation =====
 ==== via yum ==== ==== via yum ====
 +Die einfachste und schnellste Variante bei der Installation ist die aus dem Repository **[[centos:mailserver.guru|mailserver.guru]]**. Hier reicht ein einfacher Aufruf von **yum** und alles wird automatisch installiert inkl. der Paketabhängigkeiten. Will man nicht diesen weg beschreiten, steht immer noch der [[centos:mail_c7:spam_2?&#manuell|manuelle Weg]] offen.
    # yum install policyd-weight     # yum install policyd-weight 
  
 +Was das RPM alle mitbrachte zeigt ein Blick in die RPM-Datenbank.
    # rpm -qil policyd-weight    # rpm -qil policyd-weight
 <code>Name        : policyd-weight <code>Name        : policyd-weight
Zeile 69: Zeile 69:
 </code> </code>
  
 +Als nächstes schreiten wir direkt zur **[[centos:mail_c7:spam_2?&#konfiguration|Konfiguration]]**; d.h. wie überspringen das Kapitel "manuelle Installation".
  
 ==== manuell ==== ==== manuell ====
 +Will oder kann man nicht auf das Repository **[[centos:mailserver.guru|mailserver.guru]]** zurückgreifen, steht immer noch der Installation per Hand nichts im Wege.
 +
 +Wir holen uns also als erstes das besagte Perl-Script in der aktuellen Version von der [[http://www.policyd-weight.org/|Projektseite]]. 
 +   # wget http://www.policyd-weight.org/policyd-weight
 +
 +Als nächstes passen wir die Dateirechte an, so dass das Script ausgeführte werden kann.
 +   # chmod u+rx policyd-weight
 +
 +Zum Schluß verschieben wir das script noch an Ort und Stelle unter **/usr/local/bin**.  
 +   # mv policyd-weight /usr/local/bin/
 +
 +<WRAP round tip>Das vom daemon benötigte Perl-Paket **perl-Net-IP** installieren wir noch mit Hilfe von **yum**.</WRAP>
 +   
 +=== Programmcheck ===
 +Als erstes überprüfen wir, ob sich das Perl-Script ausführen lässt. Hierzu fragen wir den Versionsstand des Scripts ab.
 +   # policyd-weight -v
 +
 +   policyd-weight version: 0.1.15 beta-2, CacheVer: 5
 +   Perl version:           5.010001
 +   Net::DNS version:       0.65
 +   OS:                     Linux 2.6.32-220.17.1.el6.x86_64
 +
 +=== Konfigurationsdatei erzeugen ===
 +Als nächstes erstellen wir uns die Default-Konfigurationsdatei.
 +   # policyd-weight defaults > /etc/policyd-weight.conf
 +
 +
 +   # vim /etc/policyd-weight.conf
 +<file bash /etc/policyd-weight.conf># ----------------------------------------------------------------
 +#  policyd-weight configuration (defaults) Version 0.1.15 beta-2 
 +# ----------------------------------------------------------------
 +
 +
 +   $DEBUG        = 0;               # 1 or 0 - don't comment
 +
 +   $REJECTMSG    = "550 Mail appeared to be SPAM or forged. Ask your Mail/DNS-Administrator to correct HELO and DNS MX settings or to get removed from DNSBLs";
 +                                                                                                                                                                                 
 +   $REJECTLEVEL  = 1;               # Mails with scores which exceed this                                                                                                        
 +                                    # REJECTLEVEL will be rejected                                                                                                               
 +                                                                                                                                                                                 
 +   $DEFER_STRING = 'IN_SPAMCOP= BOGUS_MX=';                                                                                                                                      
 +                                    # A space separated case-sensitive list of                                                                                                   
 +                                    # strings on which if found in the $RET                                                                                                      
 +                                    # logging-string policyd-weight changes                                                                                                      
 +                                    # its action to $DEFER_ACTION in case                                                                                                        
 +                                    # of rejects.                                                                                                                                
 +                                    # USE WITH CAUTION!                                                                                                                          
 +                                    # DEFAULT: "IN_SPAMCOP= BOGUS_MX="                                                                                                           
 +                                                                                                                                                                                 
 +
 +   $DEFER_ACTION = '450';           # Possible values: DEFER_IF_PERMIT,
 +                                    # DEFER_IF_REJECT, 
 +                                    # 4xx response codes. See also access(5)
 +                                    # DEFAULT: 450
 +
 +   $DEFER_LEVEL  = 5;               # DEFER mail only up to this level
 +                                    # scores greater than DEFER_LEVEL will be
 +                                    # rejected
 +                                    # DEFAULT: 5
 +
 +   $DNSERRMSG         = '450 No DNS entries for your MTA, HELO and Domain. Contact YOUR administrator';
 +
 +   $dnsbl_checks_only = 0;          # 1: ON, 0: OFF (default)
 +                                    # If ON request that ALL clients are only
 +                                    # checked against RBLs
 +
 +   @dnsbl_checks_only_regexps = (
 +    # qr/[^.]*(exch|smtp|mx|mail).*\..*\../,
 +    # qr/yahoo.com$/
 +);                                  # specify a comma-separated list of regexps
 +                                    # for client hostnames which shall only
 +                                    # be RBL checked. This does not work for
 +                                    # postfix' "unknown" clients.
 +                                    # The usage of this should not be the norm
 +                                    # and is a tool for people which like to
 +                                    # shoot in their own foot.
 +                                    # DEFAULT: empty
 +                                    
 +
 +   $LOG_BAD_RBL_ONLY  = 1;          # 1: ON (default), 0: OFF
 +                                    # When set to ON it logs only RBLs which
 +                                    # affect scoring (positive or negative)
 +                                    
 +## DNSBL settings
 +   @dnsbl_score = (
 +#    HOST,                    HIT SCORE,  MISS SCORE,  LOG NAME
 +    'pbl.spamhaus.org',       3.25,          0,        'DYN_PBL_SPAMHAUS',
 +    'sbl-xbl.spamhaus.org',   4.35,       -1.5,        'SBL_XBL_SPAMHAUS',
 +    'bl.spamcop.net',         3.75,       -1.5,        'SPAMCOP',
 +#    'dnsbl.njabl.org',        4.25,       -1.5,        'BL_NJABL',
 +    'ix.dnsbl.manitu.net',    4.35,          0,        'IX_MANITU'
 +    #'rbl.ipv6-world.net',     4.25,          0,        'IPv6_RBL'  #don't use, kept for testing failures!
 +);
 +
 +   $MAXDNSBLHITS  = 2;  # If Client IP is listed in MORE
 +                        # DNSBLS than this var, it gets
 +                        # REJECTed immediately
 +
 +   $MAXDNSBLSCORE = 8;  # alternatively, if the score of
 +                        # DNSBLs is ABOVE this
 +                        # level, reject immediately
 +
 +   $MAXDNSBLMSG   = '550 Your MTA is listed in too many DNSBLs';
 +
 +## RHSBL settings
 +   @rhsbl_score = (
 +    'multi.surbl.org',             4,        0,        'SURBL',
 +    'rhsbl.ahbl.org',              4,        0,        'AHBL',
 +#    'dsn.rfc-ignorant.org',        3.5,      0,        'DSN_RFCI',
 +#    'postmaster.rfc-ignorant.org', 0.1,      0,        'PM_RFCI',
 +#    'abuse.rfc-ignorant.org',      0.1,      0,        'ABUSE_RFCI'
 +);
 +
 +   $BL_ERROR_SKIP     = 2;  # skip a RBL if this RBL had this many continuous
 +                            # errors
 +
 +   $BL_SKIP_RELEASE   = 10; # skip a RBL for that many times
 +
 +## cache stuff
 +   $LOCKPATH          = '/tmp/.policyd-weight/';    # must be a directory (add
 +                                                    # trailing slash)
 +
 +   $SPATH             = $LOCKPATH.'/polw.sock';     # socket path for the cache
 +                                                    # daemon. 
 +
 +   $MAXIDLECACHE      = 60; # how many seconds the cache may be idle
 +                            # before starting maintenance routines
 +                            # NOTE: standard maintenance jobs happen
 +                            # regardless of this setting.
 +
 +   $MAINTENANCE_LEVEL = 5;  # after this number of requests do following
 +                            # maintenance jobs:
 +                            # checking for config changes
 +
 +# negative (i.e. SPAM) result cache settings ##################################
 +
 +   $CACHESIZE       = 2000; # set to 0 to disable caching for spam results. 
 +                            # To this level the cache will be cleaned.
 +
 +   $CACHEMAXSIZE    = 4000; # at this number of entries cleanup takes place
 +
 +   $CACHEREJECTMSG  = '550 temporarily blocked because of previous errors';
 +
 +   $NTTL            = 1;    # after NTTL retries the cache entry is deleted
 +
 +   $NTIME           = 30;   # client MUST NOT retry within this seconds in order
 +                            # to decrease TTL counter
 +
 +
 +# positve (i.,e. HAM) result cache settings ###################################
 +
 +   $POSCACHESIZE    = 1000; # set to 0 to disable caching of HAM. To this number
 +                            # of entries the cache will be cleaned
 +
 +   $POSCACHEMAXSIZE = 2000; # at this number of entries cleanup takes place
 +
 +   $POSCACHEMSG     = 'using cached result';
 +
 +   $PTTL            = 60;   # after PTTL requests the HAM entry must
 +                            # succeed one time the RBL checks again
 +
 +   $PTIME           = '3h'; # after $PTIME in HAM Cache the client
 +                            # must pass one time the RBL checks again.
 +                            # Values must be nonfractal. Accepted
 +                            # time-units: s, m, h, d
 +
 +   $TEMP_PTIME      = '1d'; # The client must pass this time the RBL
 +                            # checks in order to be listed as hard-HAM
 +                            # After this time the client will pass
 +                            # immediately for PTTL within PTIME
 +
 +
 +## DNS settings
 +   $DNS_RETRIES     = 2;    # Retries for ONE DNS-Lookup
 +
 +   $DNS_RETRY_IVAL  = 2;    # Retry-interval for ONE DNS-Lookup
 +
 +   $MAXDNSERR       = 3;    # max error count for unresponded queries
 +                            # in a complete policy query
 +
 +   $MAXDNSERRMSG    = 'passed - too many local DNS-errors';
 +
 +   $PUDP            = 0;    # persistent udp connection for DNS queries.
 +                            # broken in Net::DNS version 0.51. Works with
 +                            # Net::DNS 0.53; DEFAULT: off
 +
 +   $USE_NET_DNS     = 0;    # Force the usage of Net::DNS for RBL lookups.
 +                            # Normally policyd-weight tries to use a faster
 +                            # RBL lookup routine instead of Net::DNS
 +
 +
 +   $NS              = '';   # A list of space separated NS IPs
 +                            # This overrides resolv.conf settings
 +                            # Example: $NS = '1.2.3.4 1.2.3.5';
 +                            # DEFAULT: empty
 +
 +
 +   $IPC_TIMEOUT     = 2;    # timeout for receiving from cache instance
 +
 +   $TRY_BALANCE     = 0;    # If set to 1 policyd-weight closes connections
 +                            # to smtpd clients in order to avoid too many
 +                            # established connections to one policyd-weight
 +                            # child
 +
 +# scores for checks, WARNING: they may manipulate eachother
 +# or be factors for other scores.
 +#                                       HIT score, MISS Score
 +   @client_ip_eq_helo_score          = (1.5,       -1.25 );
 +   @helo_score                       = (1.5,       -2    );
 +   @helo_from_mx_eq_ip_score         = (1.5,       -3.1  );
 +   @helo_numeric_score               = (2.5,        0    );
 +   @from_match_regex_verified_helo   = (1,         -2    );
 +   @from_match_regex_unverified_helo = (1.6,       -1.5  );
 +   @from_match_regex_failed_helo     = (2.5,        0    );
 +   @helo_seems_dialup                = (1.5,        0    );
 +   @failed_helo_seems_dialup         = (2,          0    );
 +   @helo_ip_in_client_subnet         = (0,         -1.2  );
 +   @helo_ip_in_cl16_subnet           = (0,         -0.41 );
 +   @client_seems_dialup_score        = (3.75,          );
 +   @from_multiparted                 = (1.09,          );
 +   @from_anon                        = (1.17,          );
 +   @bogus_mx_score                   = (2.1,        0    );
 +   @random_sender_score              = (0.25,          );
 +   @rhsbl_penalty_score              = (3.1,        0    );
 +   @enforce_dyndns_score             = (3,          0    );
 +
 +
 +   $VERBOSE = 0;
 +
 +   $ADD_X_HEADER        = 1;    # Switch on or off an additional 
 +                                # X-policyd-weight: header
 +                                # DEFAULT: on
 +
 +
 +   $DEFAULT_RESPONSE    = 'DUNNO default'; # Fallback response in case
 +                                           # the weighted check didn't
 +                                           # return any response (should never
 +                                           # appear).
 +
 +
 +
 +#
 +# Syslogging options for verbose mode and for fatal errors.
 +# NOTE: comment out the $syslog_socktype line if syslogging does not
 +# work on your system.
 +#
 +
 +   $syslog_socktype = 'unix';   # inet, unix, stream, console
 +
 +   $syslog_facility = "mail";
 +   $syslog_options  = "pid";
 +   $syslog_priority = "info";
 +   $syslog_ident    = "postfix/policyd-weight";
 +
 +
 +#
 +# Process Options
 +#
 +   $USER            = "polw";      # User must be a username, no UID
 +
 +   $GROUP           = "";          # specify GROUP if necessary
 +                                   # DEFAULT: empty, will be initialized as 
 +                                   # $USER
 +
 +   $MAX_PROC        = 50;          # Upper limit if child processes
 +   $MIN_PROC        = 3;           # keep that minimum processes alive
 +
 +   $TCP_PORT        = 12525;       # The TCP port on which policyd-weight 
 +                                   # listens for policy requests from postfix
 +
 +   $BIND_ADDRESS    = '127.0.0.1'; # IP-Address on which policyd-weight will
 +                                   # listen for requests.
 +                                   # You may only list ONE IP here, if you want
 +                                   # to listen on all IPs you need to say 'all'
 +                                   # here. Default is '127.0.0.1'.
 +                                   # You need to restart policyd-weight if you
 +                                   # change this.
 +
 +   $SOMAXCONN       = 1024;        # Maximum of client connections 
 +                                   # policyd-weight accepts
 +                                   # Default: 1024
 +                                   
 +
 +   $CHILDIDLE       = 240;         # how many seconds a child may be idle before
 +                                   # it dies.
 +
 +   $PIDFILE         = "/var/run/policyd-weight.pid";
 +</file>
 +
 +Hat man Änderungen an der Konfigurationsdatei vorgenommen, so kann mit mit Hilfe des folgenden Aufrufs einen Syntaxcheck durchführen.
 +   # perl -c /etc/policyd-weight.conf
 +
 +   /etc/policyd-weight.conf syntax OK
 +
 +=== User polw anlegen ===
 +Für den Betrieb benötigen wir noch einen User **polw**, den wir mit
 +   # useradd -r -s /sbin/false polw
 +
 +anlegen. 
 +
 +=== systemd Startscript anlegen ====
 +Zum Starten unseres Daemon legen wir uns noch ein Startscript an.
 +   # vim /usr/lib/systemd/system/policyd-weight.service
 +
 +<file bash /usr/lib/systemd/system/policyd-weight.service>[Unit]
 +Description=policyd-weight is a Perl policy daemon for the Postfix MTA (2.1 and later) intended to eliminate forged envelope senders and HELOs (i.e. in bogus mails).
 +Before=postfix.service
 +After=syslog.target network.target
 +
 +[Service]
 +Type=forking
 +EnvironmentFile=/etc/policyd-weight.conf
 +Restart=on-failure
 +ExecStart=/usr/local/bin/policyd-weight start
 +ExecReload=/usr/local/bin/policyd-weight reload
 +ExecStop=/usr/local/bin/policyd-weight stop
 +
 +[Install]
 +WantedBy=multi-user.target
 +</file>
 +
  
-FIXME 
 ===== Konfiguration ===== ===== Konfiguration =====
 ==== Ausnahmeregelungen für Absendeserver  ==== ==== Ausnahmeregelungen für Absendeserver  ====
-Leider kommt es auch vor, dass vor allem große Provider hinter ihren MX ein cluster betreiben, die mit wechselnden IP-Adrressen aus einem Pool aufschlagen. Damit können unter Umständen Probleme bei der Bewertung entstehen. Diese schalten wir dann bei Bedarf in der **policyd_weight_client_whitelist** frei.+Leider kommt es auch vor, dass vor allem große Provider hinter ihren MX ein cluster betreiben, die mit wechselnden IP-Adressen aus einem Pool aufschlagen. Damit können unter Umständen Probleme bei der Bewertung entstehen. Diese schalten wir dann bei Bedarf in der **policyd_weight_client_whitelist** frei.
  
  
Zeile 103: Zeile 424:
  
 ==== Postfix Konfiguration ==== ==== Postfix Konfiguration ====
-Bei den **smtpd_recipient_restrictions** tragen wir nun zur Aktivierung folgenden Eintrag nach dem greylisting-Eintrag ein.+Bei der [[centos:mail_c7:mta_4|Grundkonfiguration]] unseres Postfix-SMTP-Servers hatten wir bereits im Abschnitt [[centos:mail_c7:mta_4#smtp_recipient_restrictions|SMTP Recipient Restrictions]] die nötige Konfigurationszeile angelegt. Wir aktivieren also die zugehörigen beiden Optionen **check_client_access btree:/etc/postfix/policyd_weight_client_whitelist** und **check_policy_service inet:127.0.0.1:12525** in der Konfigurationsdatei.
    # vim /etc/postfix/main.cf    # vim /etc/postfix/main.cf
-<code bash>...    +<code bash>...
-# Greylisting via postgrey checken via Unix-Socket      (Kapitel 9.2.5 postgrey installieren) +
-        check_policy_service unix:postgrey/socket, +
-# Policyd-Weight check over TCP-Connection              (Kapitel 9.3 policyd-weight installieren) +
-        check_client_access btree:/etc/postfix/policyd_weight_client_whitelist, +
-        check_policy_service inet:127.0.0.1:12525, +
-... +
-</code>+
  
 +################################################################################
 +## SMTP RECIPIENT RESTRICTIONS
 +#
 +# Django : 2014-10-29 - Schutz unserer Empfänger mit Hilfe der Recipient 
 +#          Restrictions 
 +# default: smtpd_recipient_restrictions =
 +smtpd_recipient_restrictions =
 +#          Postmaster, abuse und andere aufgaben- oder funktionsgebundene 
 +#          eMail-Adressen (Role-Accounts) whitelisten
 +           check_recipient_access btree:/etc/postfix/access_recipient-rfc
  
 +#          Black- und Whitelisting       (Kapitel 8.2.3 White- und Blacklisting)
 +           check_client_access cidr:/etc/postfix/access_client
 +           check_helo_access btree:/etc/postfix/access_helo
 +           check_sender_access btree:/etc/postfix/access_sender
 +           check_recipient_access btree:/etc/postfix/access_recipient
  
 +#          Unsere eigenen Nutzer zulassen-/erlauben             
 +#                                (Kapitel 8.2.2 Relaying erlauben und verbieten)
 +           permit_sasl_authenticated
 +           permit_mynetworks
  
 +#          RBL überprüfen               (Kapitel 10.11 Realtime Blackhole Lists)
 +           reject_rbl_client zen.spamhaus.org
 +           reject_rbl_client ix.dnsbl.manitu.net
 +           reject_rbl_client bl.spamcop.net
 +           reject_rhsbl_client multi.uribl.com
  
 +#          Greylisting via postgrey checken via Unix-Socket
 +#                                          (Kapitel 9.2.5 postgrey installieren)
 +           check_policy_service unix:postgrey/socket
  
 +#          Policyd-Weight check over TCP-Connection 
 +#                                      (Kapitel 9.3 policyd-weight installieren)
 +           check_client_access btree:/etc/postfix/policyd_weight_client_whitelist
 +           check_policy_service inet:127.0.0.1:12525
  
 +#          Dynamische Prüfung auf existente Relay-Empfänger
 +#                            (Kapitel 12.2.2 Dynamische Empfänger-Verifizierung)
 +           reject_unverified_recipient
 +
 +#          Backupserver (MX) erlauben
 +           permit_mx_backup
 +
 +#          alles andere an relaying verbieten   
 +#                                (Kapitel 8.2.2 Relaying erlauben und verbieten)
 +           reject_unauth_destination
 +
 +#          Quota-Status-Policy-Daemon am Dovecot-Backend-System
 +#          Dovecotbuch (ISBN 978-3-95539-74-7) Seite 219 ff.  
 +#                          (Kapitel 11.11 "Der Quota-Policy-Server für Postfix")
 +           check_policy_service inet:10.0.0.77:10000
 +
 +#          Zu guter Letzt alles durchlassen, was bis jetzt noch nicht 
 +#          beanstandet wurde
 +           permit
 +</code>
  
 ===== Programmstart ===== ===== Programmstart =====
 +Das Starten des Daemon erfolgt über folgenden Aufruf.
    # systemctl start policyd-weight    # systemctl start policyd-weight
  
 +Den erfolgreichen Start bzw. den Status des policyd-weight Daemon können wir bei Bedarf mit folgendem Aufruf abfragen.
    # systemctl status policyd-weight    # systemctl status policyd-weight
 <code>policyd-weight.service - policyd-weight is a Perl policy daemon for the Postfix MTA (2.1 and later) intended to eliminate forged envelope senders and HELOs (i.e. in bogus mails). <code>policyd-weight.service - policyd-weight is a Perl policy daemon for the Postfix MTA (2.1 and later) intended to eliminate forged envelope senders and HELOs (i.e. in bogus mails).
Zeile 141: Zeile 508:
 </code> </code>
  
 +Im Maillog wird der Start des Daemon entsprechend dokumentiert.
    # less /var/log/maillog    # less /var/log/maillog
 <code>Nov  5 16:46:56 vml000087 postfix/policyd-weight[6316]: policyd-weight 0.1.15 beta-2 started and daemonized. conf:/etc/policyd-weight.conf; GID:995 995 EGID:995 995 UID:995 EUID:995; taint mode: 0 <code>Nov  5 16:46:56 vml000087 postfix/policyd-weight[6316]: policyd-weight 0.1.15 beta-2 started and daemonized. conf:/etc/policyd-weight.conf; GID:995 995 EGID:995 995 UID:995 EUID:995; taint mode: 0
Zeile 147: Zeile 515:
 </code> </code>
  
 +Mit Hilfe von **netstat** können wir überprüfen, ob der Port **12525** geöffnet wurde.
    # netstat -tulpen    # netstat -tulpen
 <code>Active Internet connections (only servers) <code>Active Internet connections (only servers)
Zeile 165: Zeile 533:
 udp        0      0 127.0.0.1:323           0.0.0.0:                                   20920      594/chronyd          udp        0      0 127.0.0.1:323           0.0.0.0:                                   20920      594/chronyd         
 </code> </code>
 +
 +Gleiches können wir natürlich auch mit dem Befehl **lsof** erreichen.
    # lsof -i:12525    # lsof -i:12525
  
Zeile 170: Zeile 540:
    policyd-w 6316 polw    4u  IPv4  67780      0t0  TCP localhost:12525 (LISTEN)    policyd-w 6316 polw    4u  IPv4  67780      0t0  TCP localhost:12525 (LISTEN)
  
 +Damit der Daemon automatisch beim Hochfahren des Servers gestartet wird, nutzen wir folgenden Aufruf.
    # systemctl enable policyd-weight.service    # systemctl enable policyd-weight.service
  
    ln -s '/usr/lib/systemd/system/policyd-weight.service' '/etc/systemd/system/multi-user.target.wants/policyd-weight.service'    ln -s '/usr/lib/systemd/system/policyd-weight.service' '/etc/systemd/system/multi-user.target.wants/policyd-weight.service'
 +
 +Wollen wir überprüfen ob der Dienst automatisch startet, verwenden wir folgenden Aufruf. 
  
    # systemctl is-enabled policyd-weight.service    # systemctl is-enabled policyd-weight.service
Zeile 179: Zeile 551:
    enabled    enabled
  
- +Die Rückmeldung **enabled** zeigt an, dass der Dienst automatisch startet; ein **disabled** zeigt entsprechend an, dass der Dienst __nicht__ automatisch startet.
- +
- +
- +
- +
- +
- +
- +
- +
- +
  
 ===== Bewertungsbeispiele ===== ===== Bewertungsbeispiele =====
Zeile 227: Zeile 589:
   - **Daemon starten** <code># systemctl start policyd-weight start</code>   - **Daemon starten** <code># systemctl start policyd-weight start</code>
  
 +===== FAZIT =====
 +Der Policy-Daemon **policyd-weight** hat sich, wie auch **[[centos:mail_c7:spam_1|greylisting]]** in der Abwehr von SPAM und anderen unerwünschten Verkehrs bestens bewährt, kann so doch jede Menge des unerwünschten Traffics abgelehnt werden.
 +
 +Da aber der Dienst **rfc-ignorant.org** mittlerweilen den Dienst eingestellt hat und die Gewichtung der unterschiedlichen Gewichtung von **[[http://de.wikipedia.org/wiki/DNS-based_Blackhole_List|DNSBL]]**s der Postfix Daemon **[[centos:mail_c7:spam_3|postscreen]]** bestens beherrscht, ist der Einsatz von **policyd-weight** gut zu überlegen!
 +
 +<WRAP center round tip>
 +**summa sumarum:**
 +
 +Wie auch schon beim **[[centos:mail_c7:spam_1|greylisting]]** setzt man statt auf **greylisting** und auf **policyd-weight** nunmehr besser auf **[[centos:mail_c7:spam_3|postscreen]]**!
 +
 +</WRAP>
  
 +====== Links ======
 +  * **⇐ [[centos:mail_c7:spam_1|Zurück zum Kapitel "SPAM-Abwehr mit Hilfe von Greylisting"]]**
 +  * **⇒ [[centos:mail_c7:spam_3|Weiter zum Kapitel "Postscreen - Schutz vor Überbelastung und SPAM-Abwehr"]]**
 +  * **[[centos:mail_c7:start|Zurück zum Kapitel >>Mailserverinstallation unter CentOS 7<<]]**
 +  * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
  
  • centos/mail_c7/spam_2.1415207985.txt.gz
  • Zuletzt geändert: 05.11.2014 17:19.
  • von django