This page (revision-10) was last changed on 10-May-2012 19:51 by JensKapitza 

This page was created on 17-Apr-2012 12:40 by JensKapitza

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
10 10-May-2012 19:51 16 KB JensKapitza to previous format
9 10-May-2012 19:50 16 KB JensKapitza to previous | to last Aufräumen
8 10-May-2012 11:36 20 KB JensKapitza to previous | to last add sieve
7 10-May-2012 10:58 19 KB JensKapitza to previous | to last add sasl install
6 10-May-2012 10:09 19 KB JensKapitza to previous | to last --no-install-recommends
5 01-May-2012 18:07 19 KB JensKapitza to previous | to last tls ohne stunnel
4 01-May-2012 17:42 18 KB JensKapitza to previous | to last
3 17-Apr-2012 15:46 18 KB JensKapitza to previous | to last add tls support spam mailman etc.
2 17-Apr-2012 13:06 15 KB JensKapitza to previous | to last pam geht aber postfix nicht
1 17-Apr-2012 12:40 14 KB JensKapitza to last Start

Page References

Incoming links Outgoing links

Version management

Difference between version and

=Hier>> <<Zielnun>> <<=
meine Notizen zur
>>Installation eines <<Mail-ServerMail-Server.

Bekannte
>> <<derzu>> <<möglichstlösende>> <<wenig >>Probleme <<macht,wer>> <<voneine>> <<daherLösung>> <<wirdhat,>> <<mitbitte>> <<iptablesper>> <<eigentlicheine>> <<allesMail>> <<geblockt,an>> <<wasmich>> <<nicht über PORT 80/443/25/456/993/22 läuft.[JensKapitza].>>

<<Der
==
>> <<ServerPostfix>> <<soll möglichst wenig Aufwand zum Administrieren bereiten und ich bin kein Freund von adduser windowsNutzer also wird alles in einer Datenbank abgelegt, so vermeide ich einen echten Nutzer.==>>

<<DaPostfix>> <<dieunter>> <<DatenbankDebian>> <<nicht von den üblichen IMAP Diensten verwendet werden kann muss entweder ein Frontend direkt für die Datenbank geschrieben werden oder dbmails interner IMAP Dienst verwendet werden.installieren>>

<<Die{{{>> <<Installationapt-get>> <<istinstall>> <<eigentlichpostfix>> <<einfach.postfix-pgsql>> <<Man muss aber die apt liste erweitern um das dbmail (aktuelle version)}}}>>

<<nichts>> <<Konfigurieren.>>
<<
>>{{{ # <<einedie>> <<neueDatei>> <<sourcelistmain.cf>> <</etc/apt/sources.list.d/dbmail.list>>
<<deb#>> <<http://debian.nfgd.net/debianvon>> <<stablewo>> <<main
deb-src
soll
>> <<http://debian.nfgd.net/debianpostfix>> <<stable mainsenden>>
<<}}}

{{{
myorigin
>> <<apt-get >> <<update >> <<&& >> <<apt-get >> <<--no-install-recommends >> <<install >> <<dbmail >> <<postfix >> <<postfix-pgsql >> <<\
 
>>             <<libpam-pgsql >> <<sasl2-bin libsasl2-modules postgresql-8.4 postgresql-client-8.4 >> <<\
>>            <<=>> <<amavisd-newedv-gutachten.info
#
>> <<clamavwie>> <<clamav-daemonheist>> <<clamav-freshclamder>> <<spamassassinrechner
myhostname
>>  <<pyzor>> <<razor >>  <<\
>>             <<less >>  <<mailutils>> <<postgrey >> <<postgresql >> <<}}} >> <<


Dann
 
>> <<kommt >> <<das >> <<nicht >> <<so >> <<schöne >> <<Konfigurieren >> <<und >> <<nach =>> <<demmail.edv-gutachten.info
#
>> <<3SMTP>> <<Anlauf geht das unter 3Stunden Helo>>
<<
Wichtig
smtpd_banner
>> <<es >> <<müssen >> <<die >> <<Gruppen >> <<angepasst >> <<werden, >> <<da >> <<sonst >> <<einige >> <<Dienste >> <<nur >> <<mit >> <<Fehlern >> <<laufen.
sasl
 
>> <<ist >> <<einer >> <<dieser >> <<Dienste

{{{#
 
>> <</etc/group >> <<anpassen
sasl:x:45:postfix,dbmail,amavis
dbmail:x:108:amavis,clamav
clamav:x:109:amavis,dbmail
amavis:x:110:clamav,dbmail
}}}
 
>> <<


==
 
>> <<Postfix =>> <<==

Postfix
$myhostname
>> <<unterESMTP>> <<Debian$mail_name>> <<installieren(Debian/GNU)>>
<<


nichts
append_dot_mydomain
>> <<Konfigurieren.

{{{
 
>> <<# >> <<die >> <<Datei >> <<main.cf >> <<
#
 
>> <<virtuelle >> <<Zustellung >> <<macht >> <<sonst probleme >> <<
mydestination
>>                 <<= no
# postmaster = root
>> <<^^
alias_maps
>>          <<=>> <<localhost
append_dot_mydomain
>>                                   << >>= <<nohash:/etc/aliases>>
<<
>># TLS parameters
smtpd_tls_cert_file                                     = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file                                      = /etc/ssl/private/ssl-cert-snakeoil.key

smtpd_use_tls                                           = yes
smtpd_sasl_auth_enable                                  = yes
#plain login nur over tls
smtpd_sasl_security_options                             = noanonymous, noplaintext
smtpd_sasl_tls_security_options                         = noanonymous
smtpd_tls_auth_only                                     = yes
broken_sasl_auth_clients                                = yes
<<
>>smtpd_tls_security_level                                = may


smtpd_data_restrictions                                 = reject_unauth_pipelining
smtpd_helo_required                                     = yes
mailbox_size_limit                                      = 0
recipient_delimiter                                     = +


# gegen den spam
smtpd_recipient_restrictions =
   # lokales netz / der server selbst
   permit_mynetworks,
   permit_sasl_authenticated,
   reject_invalid_hostname,
   reject_non_fqdn_sender,
   reject_non_fqdn_recipient,
   reject_unknown_recipient_domain,
   reject_unauth_pipelining,
   reject_unauth_destination,
   reject_rbl_client multi.uribl.com,
   reject_rbl_client dul.dnsbl.sorbs.net,
   reject_rbl_client proxies.blackholes.wirehub.net,
   reject_rbl_client sbl.spamhaus.org,
   reject_rbl_client dnsbl.njabl.org,
   reject_rbl_client sbl-xbl.spamhaus.org,
   reject_rbl_client bl.spamcop.net,
   reject_rbl_client dnsbl.sorbs.net,
   reject_rbl_client cbl.abuseat.org,
   reject_rbl_client rabl.nuclearelephant.com,
   reject_rbl_client psbl.surriel.com,
   # postgray prüfen
   check_policy_service inet:127.0.0.1:60000,
   permit


smtpd_sender_restrictions =
   permit_sasl_authenticated,
   reject_unknown_sender_domain,
   reject_authenticated_sender_login_mismatch,
   reject_unauthenticated_sender_login_mismatch,
   reject_sender_login_mismatch,
   reject_unknown_recipient_domain,
   permit

# alles über dbmail
<<mailbox_transport
#mailbox_transport
>> = <<dbmail:dbmail-deliver:>>
<<virtual_transport#virtual_transport>> = <<dbmail:dbmail-deliver:>>
#default_transport = dbmail-deliver:
#relay_transport = error
<<#transport_maps = hash:/etc/postfix/transport>>

<<
>># dbmail
<<transport_maps = hash:/etc/postfix/transport
>>virtual_mailbox_domains = pgsql:/etc/postfix/sql-virtual_mailbox_domains.cf
virtual_mailbox_maps = pgsql:/etc/postfix/sql-virtual_mailbox_maps.cf
# fehler werden auf hdd gespeichert
virtual_mailbox_base = /opt/vmail

# limit the spammer
smtpd_error_sleep_time                     = 1s
smtpd_soft_error_limit                     = 10
smtpd_hard_error_limit                     = 20

smtpd_client_message_rate_limit            = 50
smtpd_client_connection_count_limit        = 100
smtpd_client_connection_rate_limit         = 100
smtpd_client_message_rate_limit            = 30
smtpd_client_new_tls_session_rate_limit    = 60
# spamfilter und virusscanner
content_filter                             = amavis:[127.0.0.1]:10024
receive_override_options                   = no_address_mappings

# all wenn man auch ipv6 haben will<< >>
<<# muss man in testing setzen warum auch immer
#
>>inet_protocols                             = ipv4

}}}

{{{ #master.cf
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd
<<#submission inet n       -       -       -       -       smtpd
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       -       -       -       smtpd
 -o smtpd_tls_wrappermode=yes
 -o smtpd_sasl_auth_enable=yes
 -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#628       inet  n       -       -       -       -       qmqpd
>>pickup    fifo  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
#qmgr     fifo  n       -       -       300     1       oqmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay     unix  -       -       -       -       -       smtp
       -o smtp_fallback_relay=
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
<<# für limt bei den spammern nötig
>>anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache

<<# >>dbmail<<
dbmail
>>    unix  -       n       n       -       -       pipe
 <<          >>flags=  user=dbmail:dbmail
 <<              >>argv=/usr/sbin/dbmail-deliver -d ${recipient} -r ${sender}

amavis    << >>unix    -     <<  >>-       n       -       5       smtp
 -o smtp_data_done_timeout=1200s
 -o disable_dns_lookups=yes
 -o smtp_send_xforward_command=yes

#wiedereinliefern<< >>
127.0.0.1:10025 inet    n       -       n       -       -       smtpd
 -o content_filter=
 -o local_recipient_maps=
 -o relay_recipient_maps=
 -o smtpd_restriction_classes=
 -o smtpd_client_restrictions=
 -o smtpd_helo_restrictions=
 -o smtpd_sender_restrictions=
 -o smtpd_recipient_restrictions=permit_mynetworks,reject
 -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
 -o mynetworks=127.0.0.0/8
 -o strict_rfc821_envelopes=yes
<<    >>
<<    # uni duisbug-essen sperrt port 25
   # und alles was nicht SSL spricht ;)
smtps    inet  n       -       n       -       -       smtpd
 -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes  

>>}}}

{{{ #sql-virtual_mailbox_domains.cf
user     = dbmail
password = dbmail
# gehe über unix socket, sasl will hier kein unix: stehen haben
hosts    = unix:/var/run/postgresql
dbname   = dbmail
query    = SELECT DISTINCT 1  FROM dbmail_aliases WHERE SUBSTRING(alias FROM POSITION('@' in alias)+1) = '%s';
}}}

{{{ #sql-virtual_mailbox_maps.cf
user     = dbmail
password = dbmail
hosts    = unix:/var/run/postgresql
dbname   = dbmail
query    = SELECT DISTINCT 1  FROM dbmail_aliases WHERE alias= '%s';
}}}


Hiermit ist postfix fertig, startet noch <<nicht.nicht, da dbmail noch zu installieren ist.>>

<<Zuerst aber Postgesql, ich mag mysql einfach nicht und um das setup einfach zu lassen läuft postgresql auf dem server nur local und erlaubt alle Verbindungen die lokal gemacht werden, da es hier keine anderen User außer root gibt (die etwas einspielen können) brauch man nur schaun, dass postfix und dbmail auf die selbe Datenbank können.


>>=== Postgresql ===
<<{{{ apt-get install postgresql-8.4 postgresql-client-8.4 }}}>>

<<Nun ein wenig Konfiguration

>>{{{ # pg_hba.conf
<<# reihenfolge ist wichtig!!!
>>local   all         postgres                          ident
# "local" is for Unix domain socket connections only
local   all         all                               trust
# alles andere kann auskommentiert werden
}}}

{{{ #postgresql.conf
# hier gibt es die socket information,
# da postfix im chroot läuft muss hier ein wenig was angepasst werden
# damit man auch über sockets reden kann.
external_pid_file = '/var/spool/postfix/var/run/postgresql/8.4-main.pid'        
listen_addresses = 'localhost'          # what IP address(es) to listen on;
unix_socket_directory = '/var/spool/postfix/var/run/postgresql'         # (change requires restart)
}}}

<<ichdamit>> <<musteist>> <<nochpostgresql>> <<diekonfiguriert>> <<Ordnerund>> <<erstellenman>> <<{{{kann>> <<mkdirdbmail>> <<-pnun>> <</var/spool/postfix/var/runinstallieren.

===
>> <<&&DBmail>> <<chmod===

{{{
>> <<777#>> <</var/spool/postfix/var/runeine>> <<}}}neue>> <<dannsourcelist>> <<sollte/etc/apt/sources.list.d/dbmail.list
deb
>> <<dashttp://debian.nfgd.net/debian>> <<aberstable>> <<laufen.main>>
<<deb-src http://debian.nfgd.net/debian stable main>>
<<===}}}
{{{
>> <<DBmailapt-get>> <<===update && apt-get install dbmail }}} >>
<<
>>Sollte version 3.0.2 installieren

dann muss die Datenbank angelegt werden.

{{{
$ cd /usr/share/doc/dbmail/examples

$ su postgres
$ createuser dbmail
$ createdb dbmail
$ psql
$ SQL> GRANT ALL ON DATABASE dbmail TO dbmail;

# wieder root werden STRG-D
$ gunzip create_tables.pgsql.gz
$ psql -U dbmail dbmail < create_tables.pgsql

}}}

Nun sind alle Daten Tabellen da, man kann nun mit psql nachsehen ob alles da ist,

in psql einfach mal \dt eingeben und dann sehen was ausgegeben wird.

schön an postgresql ist, das der consolen client *code-completion* kennt.
Nun ist alles da, und man kann einen user anlegen, für mail.

{{{
<<# es muss dbmail laufen!!
>>dbmail-users -a jens
# hier bin ich noch dran, wie man digest-md5 unterstüzen kann.
# bislang klappt es nur, wenn passwörter in plaintext gespeichert werden,
# aber beim connect verschlüsselt gesentet werden (für imap)
dbmail-users -c jens -w password -p plaintext
dbmail-users -c jens -s jens@mail.edv-gutachter.info
}}}

Das schöne an dbmail ist dass nach einer kleine Einstellung des mx und A records im DNS
auch subdomains ganz einfach einzustellen sind.
für df.eu ist das
{{{
edv-gutachter.info -> IP
*.edv-gutachter.info -> IP
MX edv-gutachter.info -> IP
MX *.edv-gutachter.info -> IP
}}}

das halt für alle domains, für die man Emails annehmen und versenden will.
df.eu hat auch einen SPF Assistent, der Spammen verhindern sollte, so dass nur der eigene Mailserver mails
versenden darf, die diese domain nutzen.

Da dbmail noch eine kleine Konfiguration hat,
{{{ # /etc/default/dbmail
# comment out to disable the pop3 server
#START_POP3D=true

# comment out to disable the imapd server
START_IMAPD=true

# uncomment to enable the lmtpd server
#START_LMTPD=true

# <<wer es brauch!
#
>>uncomment to enable the timsieved server
<<#START_SIEVE=trueSTART_SIEVE=true>>

# comment out to enable the stunnel SSL wrapper
#START_SSL=true

# specify the filename for the pem file as
# it resides in /etc/ssl/certs
#PEMFILE="dbmail.pem"
}}}

ich mag kein pop3 also bleibt der deamon aus.


{{{ <<

>># <<Stunnel/etc/dbmail/dbmail.conf>> <<bruach
[DBMAIL]
driver
>> <<man >> <<ab >> <<v.3 >> <<nicht >> <<mehr
#
 
>> <<SSL >> <<kann >> <<hier=>> <<konfiguriertpostgresql
authdriver
>> <<werden, >> <<dann >> <<muss >> <<aber >> <<bindip >> <<!==>> <<localhost seinsql>>
<<und


>># <<A file containing a list of CAs in PEM formatwichtig>>
<<tls_cafilehost>>            <<=>> <</etc/ssl/certs/ssl-cert-snakeoil.pem

#
 
>> <<A >> <<file=>> <<containing a PEM format certificatelocalhost>>
<<tls_certsqlport>>              =<< /etc/ssl/certs/ssl-cert-snakeoil.pem>>
<<
>># <<Aüber>> <<filesockel>> <<containing a PEM format RSA or DSA keyverbinden>>
<<tls_keysqlsocket>>            <<   >>= <</etc/ssl/private/ssl-cert-snakeoil.key/var/spool/postfix/var/run/postgresql>>
<<#user>> <<leer >> <<lassen >> <<klappt >> <<besser als was eintragen ^^
#tls_ciphers
>>          = <<SSL_RSA_WITH_3DES_EDE_CBC_SHAdbmail>>
<<hash_algorithm = SHA1

[IMAP]
>># <<Youauch>> <<canwenn>> <<setda>> <<antrust>> <<alternatesteht
#
>> <<bannerein>> <<topw>> <<displaywill>> <<whendie>> <<connectingbibliothek>> <<to the servicedennoch.>>
# <<bannerich>> <<=habe>> <<imapkein>> <<4r1password>> <<serverdem>> <<(dbmaildbmailuser>> <<2.3.x)zugeteilt.>>
<<
#
#
pass
>> <<Port to bind to.
#
#port
>>                << >>= <<143dbmail>>
<<tls_portdb>>              <<=>> <<993

# /etc/dbmail/dbmail.conf
[DBMAIL]
driver
>>    << =>> <<dbmail
table_prefix
>>        = <<postgresqldbmail_>>
<<authdriverencoding>>           <<  >>= <<sqlutf8>>
<<#default_msg_encoding>> <<wichtig= utf8>>
<<host
#
>> << logging>> << kann>> << man>> << beeinflussen>> << damit>> <<man alles sieht ;)
# file_logging_levels
>>      = <<localhost511>>
<<sqlport#>> << syslog_logging_levels>>     << =>> << 511>> <<   =>>
<<#}}}


Hier
>> <<überendet>> <<sockelmein>> <<verbinden
sqlsocket
wissen,
>> << so>> << dass>> << ich>> << TLS>> << und>> << =SSL>> <</var/spool/postfix/var/run/postgresql
user
nicht
>> << über>> << DBmail>> << mache.

===
>> << stunnel4>> << ===

{{{
>> << apt-get>> << install>> << stunnel4>> <<=}}}

{{{
>> <<dbmail#/etc/stunnel/stunnel.conf >>
<<
>># <<auchwie>> <<wennin>> <<dapostfix>> <<trust steht;)>>
# <<einirgendwo>> <<pwstand>> <<willmal>> <<diewas>> <<bibliothekvon>> <<dennoch.multi-domain certs.>>
# <<muss >>ich <<habeaber>> <<keinnochmal>> <<passwordnachsehen,>> <<demevtl>> <<dbmailusereinfach>> <<zugeteilt.
pass
einen
>> << globalen>> << server>> << für>> << verscheidene>> << domains
cert
>> << =>> << /etc/ssl/certs/ssl-cert-snakeoil.pem
key
>> <<  >>= <<dbmail/etc/ssl/private/ssl-cert-snakeoil.key>>
<<db
;
>> << Protocol>> << version>> << (all,>> << SSLv2,>> << SSLv3,>> <<TLSv1)
sslVersion = SSLv3
session
>>        = <<dbmail14400>>
<<table_prefixTIMEOUTidle>>     << =>> << 14400

;
>> <<=Service-level>> <<dbmail_configuration>>
<<encoding;>> << anderes>> << ist>> << auskommentiert>> << 
[imaps]
accept
>>  <<   >>= <<utf8993>>
<<default_msg_encodingconnect>> = <<utf8143>>
<<}}}>>
<<#
Stunnel
>> <<loggingkümmert>> <<kannsich>> <<mannun>> <<beeinflussenum>> <<damitdie>> <<manSSL>> <<allesVerbindung>> <<siehtzwischen>> <<;)IMAP und CLient.>>
<<#

==
>> <<file_logging_levelsSASL>> << ==
Ich
>> << habe>> << nun>> <<=noch>> <<511
#
ein
>> <<syslog_logging_levelsProblem>> << mit>> << sasl,>> <<=postfix>> <<511will>> <<nicht so reagieren wie die konsole.>>
<<}}}>>
<<

==
aber
>> <<SASLhier>> <<==
mit
nun
>> <<diesemmeine>> <<hackerkentnisse.

in
>> <<sollterc.local>> <<auchein>> <<derquick>> <<testsalauthdfix>> <<laufen>>
<<
>>{{{
/etc/init.d/saslauthd stop
rm -rf /var/run/saslauthd
/etc/init.d/saslauthd start
ln -s /var/spool/postfix/var/run/saslauthd  /var/run/
<<
/etc/init.d/dbmail restart
/etc/init.d/postfix restart
>>}}}
<<ich linke den socked einfach vom chroot in das normale /var/run
>>damit testsaslauthd -u jkapitza -p jens läuft.

<<dann kann man sasl einstellen, dass es rimap nutzt so dass der imap login ein gültiges passwort anzeigt.

>>{{{ # /etc/default/saslauthd
START=yes
<<MECHANISMS="rimap"
# imap auf loclahost
MECH_OPTIONS="localhost"
>>OPTIONS="-m /var/spool/postfix/var/run/saslauthd"
PWDIR="/var/spool/postfix/var/run/saslauthd"
PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"
}}}

<<nun muss noch >>postfix <<nutztbeigebracht>> <<werden dass es doch bitte >>sasl <<überanfragt.

Hier
>> <<pamaber>> <<meine Baustelle.>>
<<
das ist keine Lösung, sondern nur eine Notiz.

>>{{{
# /etc/postfix/sasl/smtpd.conf
<<log_level: 7
>>pwcheck_method: <<saslauthdauxprop>>
mech_list: <<loginCRAM-MD5>> <<plainDIGEST-MD5
auxprop_plugin:
>> << sql>>
<<#password_format: crypt
sql_engine: pgsql
sql_verbose: yes
>># <<leiderhier>> <<dasdarf>> <<einzigekein>> <<wasunix>> <<unterstüztstehen>> <<wird/var/log/auth.log>> <<;(meldet>> << sonst ein fehler>>
<<}}}sql_hostnames: /var/run/postgresql>>
<<sql_user: dbmail>>
<<sql_passwd: dbmail>>
<<==sql_database:>> <<pamdbmail
sql_select:
>> <<==select passwd from dbmail_users where userid = '%u' OR userid = '%u@%r'>>

<<}}}

>>{{{<<
#
>> <<#/etc/pam_pgsql.confoder>> <<anderer ansat>>
<<#debug=1>>
<<databasehttp://www.dbmail.org/dokuwiki/doku.php/gentoo:postfix_-_sasl_tls_-_mailscanner_-_dbmail?s[]=pwcheck&s[]=method

pwcheck_method:
>> <<=auxprop>> <<
auxprop_plugin: sql
allowanonymouslogin: no
allowplaintext: yes
mech_list: PLAIN LOGIN
srp_mda: md5
srvtab: /dev/null
opiekeys: /dev/null
password_format: crypt
sql_user:
>>dbmail<< >>
<<usersql_passwd:>> <<=mypassword>> <<
sql_hostnames: localhost
sql_database:
>>dbmail<< >>
<<tablesql_select:>> <<=SELECT>> <<passwd FROM >>dbmail_users<<
user_column
>> <<=WHERE>> userid<<
pwd_column
>> = <<passwd'%u@%r' >>
<<#log_level:>> <<später10>> <<auf
sql_verbose:
>> <<cryptyes>> <<ändern>>
<<pw_type=clear>>
<<}}}dann aber pam nutzen!>>
<<{{{#SASLAUTHD_OPTS="">> <<
SASLAUTHD_OPTS="${SASLAUTH_MECH} -a pam -r"


# in
>>/etc/pam.d/smtp<<
>> <<# mit pam_mysql bzw. pam_pgsql?>>
auth    <<sufficient>>    <<sufficient>>  <<pam_pgsql.sopam_mysql.so>> <<verbose=1 >>user=dbmail <<\passwd=password host=127.0.0.1 db=dbmail table=dbmail_users usercolumn=userid passwdcolumn=passwd crypt=1 >>
<<
account
>> << required>>        <<pam_mysql.so>> << user=dbmail>> << passwd=password>> << host=127.0.0.1>> << db=dbmail>> << table=sbmail_users>> << usercolumn=userid>> << passwd=secretpasswdcolumn=passwd>> <<host=/var/spool/postfix/var/run/postgresqlcrypt=1 >>
<<account
}}}



==
>> << pam>> << ==

{{{
root@mail:~#
>> <<requiredcat>> << /etc/postfix/sasl/smtpd.conf>> << pam_pgsql.so
pwcheck_method:
>> <<verbose=1saslauthd
mech_list:
>> <<user=dbmaillogin>> <<\plain>>
<<


cat
>> << /etc/pam_pgsql.conf>> << 
debug=1
database
>> <<= dbmail
user = dbmail
table = dbmail_users
user_column = userid
pwd_column = passwd
# später auf crypt ändern
pw_type=clear

cat /etc/pam.d/smtp
auth
>>       <<sufficient>>  <<pam_pgsql.so>> <<verbose=1 user=dbmail passwd=secret host=/var/spool/postfix/var/run/postgresql
account
>>    <<required >>   <<pam_pgsql.so>> << verbose=1 user=dbmail >>passwd=secret host=/var/spool/postfix/var/run/postgresql

<<
>>}}}



== Amavis ==

{{{<< apt-get install amavisd-new clamav clamav-daemon clamav-freshclam spamassassin  pyzor razor }}}>>
<<
{{{
>># /etc/spamassassin/updatechannels.txt
sa.zmi.at
updates.spamassassin.org
<<70_sare_stocks.cf.sare.sa-update.dostech.net
70_sare_adult.cf.sare.sa-update.dostech.net
70_sare_spoof.cf.sare.sa-update.dostech.net
70_sare_bayes_poison_nxm.cf.sare.sa-update.dostech.net
70_sare_genlsubj_x30.cf.sare.sa-update.dostech.net
70_sare_oem.cf.sare.sa-update.dostech.net
70_sare_random.cf.sare.sa-update.dostech.net
70_sare_specific.cf.sare.sa-update.dostech.net
70_zmi_german.cf.zmi.sa-update.dostech.net
88_FVGT_Bayes_Poison.cf.sare.sa-update.dostech.net
88_FVGT_Tripwire.cf.sare.sa-update.dostech.net
88_FVGT_rawbody.cf.sare.sa-update.dostech.net
88_FVGT_subject.cf.sare.sa-update.dostech.net
chickenpox.cf.sare.sa-update.dostech.net
>>sought.rules.yerp.org

<<}}}>>
<<{{{ >># /etc/default/spamassassin
# Change to one to enable spamd
ENABLED=1
# Cronjob
# Set to anything but 0 to enable the cron job to automatically update
# spamassassin's rules on a nightly basis
CRON=1
<<}}}>>
<<{{{ >># /etc/spamassassin/local.cf
<<
>>#pyzor
use_pyzor 1
pyzor_path /usr/bin/pyzor
#pyzor_add_header 1

#razor
use_razor2 1
razor_config /etc/razor/razor-agent.conf
<<
>>#bayes
use_bayes 1
<<



>>bayes_auto_learn 1


bayes_path /opt/bayes
#bayes_use_chi2_combining 1
bayes_auto_expire 0
bayes_journal_max_size 15000000
bayes_expiry_max_db_size 20000000

bayes_ignore_header Return-Path
bayes_ignore_header Received
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Level
bayes_ignore_header X-purgate
bayes_ignore_header X-purgate-ID
bayes_ignore_header X-purgate-Ad
bayes_ignore_header X-GMX-Antispam
bayes_ignore_header X-Resent-For
bayes_ignore_header X-Resent-By
bayes_ignore_header X-Resent-To
bayes_ignore_header Resent-To
bayes_ignore_header Sender
bayes_ignore_header Precedence
bayes_ignore_header X-Antispam
bayes_ignore_header X-Sieve
bayes_ignore_header X-Spamcount
bayes_ignore_header X-Spamsensitivity
bayes_ignore_header To
bayes_ignore_header X-Sieve
<<
#   Set headers which may provide inappropriate cues to the Bayesian
#   classifier
#
>>bayes_ignore_header X-Bogosity
<<bayes_ignore_header X-Spam-Flag>>
<<bayes_ignore_header X-Spam-Status

>>#   Save spam messages as a message/rfc822 MIME attachment instead of
#   modifying the original message (0: off, 2: use text/plain instead)
#
report_safe 1


}}}

Von hand freshcalm aufrufen und sa-update

{{{
sa-update --channelfile /etc/mail/spamassassin/updatechannels.txt --nogpg
freshclam

}}}

<<dann ist der mailserver fertig.>>

<<sollte nun spam erkennen automatisch bewerten.


wer mag kann nun mit sa-lern den spamfilter von hand antrinieren.


Durch das ganze setup kommt die mail auf einem Vserver nun 10 secunden später an und wird von thunderbird erst alle 10 Min. Aktuallisiert oder man macht das von hand selber. da via IMAP das push noch nicht unterstüzt wird.


>>So noch eine schöne Woche ;)
<<---->>
<<TODOund>> <<Webservermorgen>> <<mitgibts dann >>

* http://roundcube.net/
* nginx oder apache2
* mailman oder phplist
<<*
Dafür
>> <<wird >>postfix dann als relay-smtp <<


----

*
konfiguriert,
>> <<http://www.dbmail.org/dokuwiki/doku.php/sieve
{{{
dbmail-sievecmd
der
>> <<-ukeine>> <<USERNAMEmails>> <<-iannimmt,>> <<MYSCRIPTsondern>> <<sieve.script
dbmail-sievecmd
nur
>> <<-uversendet>> <<USERNAMEund>> <<-afetchmail>> <<MYSCRIPTzum einliefern, um alle mails zu laden und entweder an den passenden user weiterleiten, oder an mailman übergeben.>>
<<}}}
<<