Informática Numaboa - Linux
Debian + Postfix + PostfixAdmin + SquirrelMail
Sab 16 Mai 2009 01:19 |
- Detalhes
- Categoria: Como fazer instalações
- Atualização: Quinta, 28 Janeiro 2010 21:08
- Autor: vovó Vicki
- Acessos: 59435
- Debian + Postfix + PostfixAdmin + SquirrelMail
- A lista de fontes
- Iptables e logcheck
- MySQL, Postfix e Dovecot
- Certificados SSL (Autoridade)
- Certificados SSL (Requisições)
- phpMyAdmin
- SquirrelMail e PostfixAdmin
- SquirrelMail e PostfixAdmin II
- SquirrelMail e PostfixAdmin III
- Configurar SASL e TLS
- Amavis e SpamAssassin
- Amavis, SpamAssassin, ClamAV, Razor, Pyzor
- Amavis
- Amavis II
- Tabelas Bayes e AWL
- Personalizar o SquirrelMail
- Razor, pflogsumm e BIND
- Configurações Postfix adicionais
- Férias no PostfixAdmin
- Quotas, MailGraph e mysql-zrm
- O problema dos Aliases
- Todas as Páginas
Agora vi /etc/amavis/conf.d/50-user e insira o texto abaixo no meio do arquivo (precisa ficar entre "use strict;" e "1;"). Talvez seja mais prático você usar o editor do WinSCP por que o vim tende a comentar (#) este texto quando ele for colado. Se você ainda estiver no WinSCP, clique no ícone refresh para que o diretório /etc/amavis seja mostrado. Edite @local_domains_maps e inclua todos os seus domínios. Também dê uma olhada em @mynetworks para ver se precisa ser modificado. Você provavelmente vai querer deixar sua rede temporariamente fora do @mynetworks durante os testes (assim você vai poder enviar spam para testar os destinatários):
# nice to have $log_level (1-5) available: $log_level = 0; # If sender matches ACL, turn debugging fully up, just for this one message #@debug_sender_maps = ( ["test\@$mydomain"] ); # let the amavisd program use the appropriate data type in SQL commands $sql_allow_8bit_address = 1; # explicitly set $mydomain and $myhostname: $mydomain = 'exemplo.com'; $myhostname = 'nome_do_host.exemplo.com'; # when amavisd-new sends notifications, they appear to come from here: $mailfrom_notify_admin = "postmaster\@$mydomain"; $mailfrom_notify_recip = "postmaster\@$mydomain"; $mailfrom_notify_spamadmin = "postmaster\@$mydomain"; $hdrfrom_notify_sender = "amavisd-new"; $notify_method = 'smtp:[127.0.0.1]:10035'; # where to submit notifications # Set number of processes. Rough guide for dual processor, 1GB = 6, 2GB = 12, 4GB = 24 # You MUST also change maxproc for the smtp-amavis transport to match this number, e.g: # smtp-amavis unix - - n - 5 smtp # However, if using MailZu to release mail on a very busy server, it may be necessary # to have the $max_servers number 1 greater than maxproc. This will leave a spare # amavisd-new process waiting for release requests. This may waste some memory, but # this may avoid some problems releasing mail from quarantine. $max_servers = 6; # Note: If you need to set maxproc > 20, instead use: # smtp-amavis_destination_concurrency_limit = # in /etc/postfix/main.cf and set the smtp-amavis transport like so: # smtp-amavis unix - - n - - smtp # We discard (and quarantine) viruses, discard (and quarantine) spam (>= kill_level), # bounce (and quarantine) banned files and pass bad headers: $final_virus_destiny = D_DISCARD; $final_banned_destiny = D_BOUNCE; $final_spam_destiny = D_DISCARD; $final_bad_header_destiny = D_PASS; # disable DKIM - for now $enable_dkim_verification = 0; # enable DKIM signatures verification $enable_dkim_signing = 0; # load DKIM signing code, keys defined by dkim_key # don't quarantine bad headers (no need since we pass them all): $bad_header_quarantine_to = undef; # Spam gets the Subject line prepended with: $sa_spam_subject_tag = 'Spam> '; # We tag all headers (for 'local' domains) with X-Spam info: $sa_tag_level_deflt = undef; # This is the system default spam tag level that will be overridden by user's preferences in MySQL $sa_tag2_level_deflt = 6.31; ## For relay domains not set up in MySQL you can create a static domain wide (or individual) map: #@spam_tag2_level_maps = ( # { 'postmaster@exemplo.net' => 99.0, # '.exemplo.net' => 8.0, # '.exemplo.org' => 6.0 }, # \$sa_tag2_level_deflt, # catchall default #); # The default is to not quarantine any spam (outside of what users get in their Spam folder), # so set default kill_level high. Users can choose their own kill_level however. kill_level # will trigger quarantining (to MailZu). $sa_kill_level_deflt = 9999; ## Once again, relay domains may want something different: #@spam_kill_level_maps = ( # { 'postmaster@exemplo.net' => 99.0, # '.exemplo.net' => 8.0, # '.exemplo.org' => 10.0 }, # \$sa_kill_level_deflt, # catchall default #); ## And some relay domains may wish to quarantine up to a certain level, then discard: #@spam_quarantine_cutoff_level_maps = ( # { '.exemplo.net' => 20.5, # '.exemplo.org' => 25 }, # \$sa_quarantine_cutoff_level, # catchall default (currently undef) #); # We will quarantine viruses to /var/lib/amavis/virusmails (the default). # We will use a cron job to automatically delete these files older than 14 days from the quarantine. # We can use amavisd-release or MailZu to release quarantined messages. We warn the recipients # and expect them to contact us (via the MailZu interface) if they need a banned file released. # Each domain can have their own administrators. @virus_admin_maps = ({ '.exemplo.com' => 'postmaster@exemplo.com', '.exemplo.net' => 'postmaster@exemplo.net', '.' => 'postmaster@exemplo.com', }); @banned_admin_maps = ({ '.exemplo.com' => 'postmaster@exemplo.com', '.exemplo.net' => 'postmaster@exemplo.net', '.' => 'postmaster@exemplo.com', }); $warnbannedrecip = 1; $defang_banned = 1; $defang_virus = 1; # list domains in an external file (created by local_domains.sh script): @local_domains_maps = ( read_hash("$MYHOME/local_domains") ); # Since we configured SQL, we can use penpals feature: $penpals_bonus_score = 5; $penpals_threshold_low = 1; $penpals_threshold_high = 18; # We are going to create policy banks that will notify us of internally created spam # but also let banned files out (provided they are compressed). @mynetworks = qw( 127.0.0.0/8 [::1] [FE80::]/10 [FEC0::]/10 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 ); $inet_socket_port = [10024, 10026]; ## If using Mailzu, use this instead: #$inet_socket_port = [10024, 10026, 9998]; $inet_socket_bind = '127.0.0.1'; ## If using Mailzu, use this instead: #$inet_socket_bind = undef; ## Interface to MailZu #$interface_policy{'9998'} = 'MAILZU'; #$policy_bank{'MAILZU'} = { # protocol => 'AM.PDP', # inet_acl => [qw( 127.0.0.1 [::1] 111.111.111.111 )], #}; # If using MailZu, store banned files and spam to MySQL if you want to give users the # ability to read those messages in the MailZu interface: #$banned_files_quarantine_method = 'sql:'; #$spam_quarantine_method = 'sql:'; # We create a custom set of banned rules for the MYNETS and TRUSTED policy # banks. See also the 'DEFAULT' $banned_filename_re settings in 20-debian_defaults %banned_rules = ( 'BLOCK_EXE' => new_RE( # block double extensions in names: qr'\.[^./]*\.(exe|vbs|pif|scr|bat|cmd|com|cpl|dll)\.?$'i, # allow any name or type (except viruses) within an archive: [ qr'^\.(Z|gz|bz2|rpm|cpio|tar|zip|rar|arc|arj|zoo)$' => 0], # blocks MS executable file(1) types, unless allowed above: qr'^\.(exe|exe-ms)$', ), 'DEFAULT' => $banned_filename_re, ); $policy_bank{'MYNETS'} = { # mail originating from @mynetworks originating => 1, os_fingerprint_method => undef, spam_admin_maps => ["postmaster\@$mydomain"], # alert of internal spam final_spam_destiny => D_BOUNCE, # so the sender knows they are a spammer spam_kill_level_maps => [9.0], spam_dsn_cutoff_level_maps => [9999], spam_dsn_cutoff_level_bysender_maps => [9999], banned_filename_maps => ['BLOCK_EXE'], }; # Note about spam_kill_level_maps in policy banks: the recipient's # spam_kill_level is overridden (ignored). This may cause unexpected # results, such as quarantining or passing of spam. In the two policy # banks shown here, this would only apply to mail sent from trusted users # (who typically would not send spam). $interface_policy{'10026'} = 'TRUSTED'; $policy_bank{'TRUSTED'} = { # mail originating from trusted senders originating => 1, os_fingerprint_method => undef, spam_admin_maps => ["postmaster\@$mydomain"], # alert of internal spam final_spam_destiny => D_BOUNCE, # so the sender knows they are a spammer spam_kill_level_maps => [9.0], spam_dsn_cutoff_level_maps => [9999], spam_dsn_cutoff_level_bysender_maps => [9999], banned_filename_maps => ['BLOCK_EXE'], }; # Here we set up access to MySQL data: @lookup_sql_dsn = ( ['DBI:mysql:amavis:localhost', 'amavis', 'amavis_senha'] ); @storage_sql_dsn = @lookup_sql_dsn; # disable quarantine subdirectories $quarantine_subdir_levels = undef; # Note: If you quarantine items locally (the default), you might also need to create a script # to eventually delete old quarantined items. Look to /etc/cron.daily/rmvirusquar as an example # required because we set msgs.time_iso to type TIMESTAMP (required by MailZu) $timestamp_fmt_mysql = 1; # specific to the amavisnewsql SquirrelMail plugin $sql_select_white_black_list = 'SELECT wb FROM wblist'. ' WHERE (rid=?) AND (wblist.email IN (%k))'. ' ORDER BY wblist.priority DESC'; # we may need to add items to this @additional_perl_modules = qw( ); #----------------------------------------------------------