Skip to content

Antispam

Ahtapot projesi kapsamında Antispam işlevinin kurulumunu ve yönetimini sağlayan playbook’dur. “/etc/ansible/playbooks/” dizini altında bulunan “antispam.yml” dosyasına bakıldığında, “hosts” satırında Ansible’a ait “/etc/ansible/” altında bulunan “hosts” dosyasında “[antispam]” satırı altına yazılmış tüm sunucularda bu playbookun oynatılacağı belirtilir. “sudo” satırı ile çalışacak komutların sudo yetkisi ile çalışması belirlenir. “vars_files” satırı antispam playbookunun değişken dosyalarını belirtmektedir. “roles” satırı altında bulunan satırlarda ise bu playbook çalıştığında “base” ve “spamassassin”rollerinin çalışacağı belirtilmektedir.

- hosts: antispam
  sudo: yes
  vars_files:
  - /etc/ansible/roles/base/vars/group.yml
  - /etc/ansible/roles/base/vars/user.yml
  - /etc/ansible/roles/base/vars/repo.yml
  - /etc/ansible/roles/base/vars/rsyslog.yml
  - /etc/ansible/roles/base/vars/ntp.yml
  - /etc/ansible/roles/base/vars/package.yml
  - /etc/ansible/roles/base/vars/kernelmodules_remove.yml
  - /etc/ansible/roles/base/vars/kernelmodules_blacklist.yml
  - /etc/ansible/roles/base/vars/host.yml
  - /etc/ansible/roles/base/vars/audit.yml
  - /etc/ansible/roles/base/vars/sudo.yml
  - /etc/ansible/roles/base/vars/ssh.yml
  - /etc/ansible/roles/base/vars/grub.yml
  - /etc/ansible/roles/base/vars/logger.yml
  - /etc/ansible/roles/base/vars/logrotate.yml
  - /etc/ansible/roles/base/vars/directory.yml
  - /etc/ansible/roles/base/vars/profile.yml
  - /etc/ansible/roles/base/vars/fusioninventory.yml
  - /etc/ansible/roles/spamassassin/vars/main.yml
  - /etc/ansible/roles/spamassassin/vars/clamd.conf.yml
  - /etc/ansible/roles/spamassassin/vars/freshclam.conf.yml
  - /etc/ansible/roles/spamassassin/vars/local.cf.yml
  - /etc/ansible/roles/spamassassin/vars/main.cf.yml
  - /etc/ansible/roles/spamassassin/vars/master.cf.yml

  roles:
    - role: base
    - role: spamassassin

Spamassassin Rolü Değişkenleri

Bu roldeki değişkenler “/etc/ansible/roles/spamassassin/vars/” dizini altında bulunan yml dosyalarında belirtilmiştir. yml dosyalarının içerikleri ve değişken bilgileri aşağıdaki gibidir;

  • main.yml” dosyasında bulunan değişkenlerin görevi şu şekildedir. “antispam_smtpd_tls_cert_file” değişkeni, antispam sisteminde oluşturulan cert dosyasının bulunduğu dosya yolunu belirtmektedir. Varsayılan olarak bu konumda oluşturulmaktadır. “antispam_smtpd_tls_key_file” değişkeni, antispam sisteminde oluşturulan key dosyasının bulunduğu dosya yolunu belirtmektedir. Varsayılan olarak bu konumda oluşturulmaktadır.. “antispam_smtpd_tls_CAfile” değişkeni, antispam sisteminde oluşturulan ca dosyasının bulunduğu dosya yolunu belirtmektedir. Varsayılan olarak bu konumda oluşturulmaktadır. “antispam_mail_hostname” değişkeni antispam sisteminin temiz e-postaları aktaracağı e-posta sunucusunun alan adıdır. “antispam_domain” değişkeni antispam sisteminin bulunduğu alanın adının belirtildiği değişkendir. “antispam_inet_protocols” değişkeni antispam sisteminin çalışacağı IP protokolünün belirtildiği değişkendir. ipv4, ipv6 veya all yazılabilir. “antispam_nameserver” değişkeni antispam sistemi tarafından kullanılacak DNS sunucusunun belirtildiği değişkendir. “antispam_block_encrypted_archive” şifreli arşiv dosyalarının engellenip engellenmeyeceğinin belirtildiği değişkendir. “antispam_create_ssl”, ssl sertifikasının yaratilip yaratilmayacaginin belirlendigi değişkendir. “antispam_ssl_” ile başlayan değişkenler, antispam sistemi üzerinde oluşturulacak ssl anahtarı ile ilgili bilgilerin ayarlandığı değişkenlerdir. “antispam_default_relay_server” varsayılan relay sunucunun IP adresinin belirtildiği değişkendir. “antispam_allowed_senders” bizim antispam sunucumuza mail relay edebilecek guvenilir smtp adreslerinin tanımlandığı değişkendir. “antispam_spam_subject_tag”, spam olarak işaretlenen e-postaların başlığına yazılacak etiketin isminin belirtildiği değişkendir. “antispam_spam_modifies_subj” spam olarak belirlenen e-postalarının başlığının değiştirilip değiştirilmeyeceğinin belirlendiği değişkendir. 1 ise başlık değiştirilir, 0 ise değiştirilmez. “antispam_tag_level_deflt” spam olması muhtemel e-postalar için minimum skorun belirtildiği değişkendir. “antispam_tag2_level_deflt” spam olması muhtemel e-postalar için maksimum skorun belirtildiği değişkendir. “antispam_kill_level_deflt” kesin spam olduğuna karar verilmesi için gereken minimum skorun belirtildiği değişkendir. “antispam_smtpd_recipient_limit” bir e-postanın gönderilebileceği maksimum alıcı sayısının belirtildiği değişkendir. “antispam_smtp_tls_ciphers” oportünistik TLS şifreleme sırasında asgari olarak kullanılacak TLS şifreleme seviyesinin belirtildiği değişkendir. “antispam_parent_domain_matches_subdomains“ “example.com” paterninin example.com alan adının alt alan adlarına da açıkca “.example.com” yazmadan eşleştirileceği özellik listesinin belirlendiği parametredir. “antispam_smtp_tls_security_level“SMTP TLS güvenlik seviyesinin belirtildiği değişkendir. “antispam_smtpd_use_tls” oportünistik TLS kullanımının belirtildiği değişkendir. “antispam_smtp_tls_note_starttls_offer” uzak bir SMTP sunucusunun, o sunucu için TLS aktif edilmemişken, STARTTLS önerdiği durumda kayıt altına alınıp alınmayacağının belirtildiği parametredir. “antispam_smtpd_tls_session_cache_timeout” Postfix SMTP sunucusunun TLS oturum önbellek bilgisinin sonlanma süresinin belirtildiği değişkendir. “antispam_message_size_limit” Bir mesajın, zarf bilgileri de dahil olabileceği maksimum boyutun byte cinsinden belirtildiği değişkendir. “antispam_smtpd_tls_received_header” Postfix SMTP sunucusunun, kullanılan protokol, şifreleme, uzak sunucu CommonName ve istemci sertifika sağlayıcısının CommonName bilgilerini içeren Recieved: mesaj başlığı oluşturmasının açılıp kapatıldığı değişkendir. “antispam_MaxScanSize” her bir dosyanın maksimum ne kadarlık kısmının taratılacağının belirtildiği değişkendir. “antispam_MaxFileSize” antivirüs taramasından geçirilecek maksimum dosya boyutunun belirtildiği değişkendir. “antispam_MaxDirectoryRecursion” Antivirüs taramasında bakılacak maksimum dizin derinliğinin belirtildiği değişkendir. “antispam_MaxRecursion” Antivirüs taramasında bakılacak maksimum arşiv derinliğinin belirtildiği değişkendir. “antispam_OLE2BlockMacros” VBA makrolarına sahip OLE2 dosyalarının engellenip engellenmeyeceğinin belirtildiği değişkendir. “antispam_MaxFiles” bir arşiv, döküman veya herhangi bir başka konteyner içinde taranacak maksimum dosya sayısının belirtildiği değişkendir. “antispam_StreamMaxLength” antivirüs uygulaması tarafından kabul edilecek maksimum dosya boyutudur. “antispam_spoof_sender” ile tanımlanmış göndericiden ve “antispam_spoof_recipient” ile tanımlanmış alıcıya giden e-postaların aldatmaca olarak tanımlanıp engellenmesi sağlanmaktadır. “antispam_relay_domains” antispam tarafından e-postaların hangi sunuculara relay edileceğinin belirtildiği değişkendir. “antispam_transport_domains” bu anahtar-değer biçimindeki değişken ile anahtar kısmına yazılmış sunucundan, değer kısmına yazılmış sunucuya e-postalar iletilmektedir. “clamav_check_freq” clamav veritabanı güncelliğinin bir gün içinde kaç kez kontrol edileceğinin belirtildiği değişkendir. “use_quarantine” ile sistemde karantina sunucusunun kullanılıp kullanılmayacağı belirtilmektedir. “quarantine_db_host” karantina sunucusunun veritabanının IP adresinin belirtildiği değişkendir. “quarantine_db_user” karantina sunucusunun veritabanının kullanıcı adının belirtildiği değişkendir. “quarantine_db_pass” karantina sunucusunun veritabanının şifresinin belirtildiği değişkendir. “antispam_smtpd_banner” bu anahtar-değer biçimindeki değişkende anahtar tarafına yazılan sunucu adına sahip sunucu için (ansible host dosyasındaki isimle aynı olmalı), dış dünyaya, sunucu adı olarak değer tarafına yazılan girdi gösterilmektedir. Bunun amaci sunucu isminin dış dünyaya afişe edilmemesinin sağlanmasıdır. Ornegin asagidaki yapilandirma dosyasinda gerçek alan adi ANSIBLE_FQDN olan sunucu için dış dünyaya sunucu adı MAIL_HOSTNAME_TO_BE_SHOWED olarak gösterilecektir. “clamav_mirrors” clamav’ın hangi sunuculardan güncelleme alacağının belirtildiği değişkendir. “spam_regexes” altına tek tek spam olarak algılanması istenen düzenli ifadeler eklenmelidir. Burada “name” kullanıcı tarafından belirlenen ayırt edici bir isimdir. “where” ise bu düzenli ifadenin mailin hangi kesiminde aratılacağının belirtildiği parametredir. “regex” istenen düzenli ifadenin yazıldığı parametredir. “score” parametresi spamassasin tarafından bu düzenli ifadeye uyan bir e-postaya kaç skor verileceğinin belirlendiği parametredir. “describe” parametresi ise bu düzenli ifade kuralının açıklamasının yazıldığı parametredir. “antispam_block_filetypes” değişkeninde her satırda engellenmesi istenen dosya tipleri belirtilir. “antispam_block_mimetypes” değişkeninde her satırda engellenmesi istenen mime tipleri belirtilir. “antispam_block_fileextensions” değişkeninde her satırda engellenmesi istenen dosya uzantıları belirtilir. “antispam_whitelist_address_domain” değişkeninde her satırda engellenmesi istenmeyen alan adları belirtilir. “antispam_blacklist_address_domain” değişkeninde her satırda engellenmesi istenen alan adları belirtilir. “antispam_whitelist_receiver_ip” değişkeninde her satırda engellenmesi istenmeyen alıcı IP adresleri belirtilir. “antispam_whitelist_sender_ip” değişkeninde her satırda engellenmesi istenmeyen gönderici IP adresleri belirtilir. “antispam_blacklist_receiver_ip” değişkeninde her satırda engellenmesi istenen alıcı IP adresleri belirtilir. “antispam_blacklist_sender_ip” değişkeninde her satırda engellenmesi istenen gönderici IP adresleri belirtilir.
---
antispam_smtpd_tls_cert_file: /etc/postfix/ssl/smtpd.crt
antispam_smtpd_tls_key_file: /etc/postfix/ssl/smtpd.key
antispam_smtpd_tls_CAfile: /etc/postfix/ssl/cacert.pem
antispam_mail_hostname: mail
antispam_domain: ahtapot
antispam_inet_protocols: ipv4 #ipv4, ipv6, all
antispam_nameserver: 8.8.8.8
antispam_create_ssl: False
antispam_ssl_country: "TR"
antispam_ssl_state: "Ankara"
antispam_ssl_locality: "Ankara"
antispam_ssl_organization: "organizasyon_adi"
antispam_ssl_organizationalunit: "organizasyon_birimi"
antispam_ssl_commonname: "alan_adi"
antispam_default_relay_server: "IP"
antispam_allowed_senders: "IP"
antispam_spam_subject_tag: "***SPAM***"
antispam_spam_modifies_subj: 1
antispam_tag_level_deflt: 2.0
antispam_tag2_level_deflt: 6.31
antispam_kill_level_deflt: 6.31
antispam_smtpd_recipient_limit: 1000
antispam_smtp_tls_ciphers: "medium"
antispam_parent_domain_matches_subdomains: "debug_peer_list,fast_flush_domains,mynetworks,permit_mx_backup_networks,qmqpd_authorized_clients,relay_domains,smtpd_access_maps"
antispam_smtp_tls_security_level: "may"
antispam_smtpd_use_tls: "yes"
antispam_smtp_tls_note_starttls_offer: "yes"
antispam_smtpd_tls_received_header: "yes"
antispam_smtpd_tls_session_cache_timeout: "3600s"
antispam_message_size_limit: "26214400" # bytes
antispam_block_encrypted_archive: "true"
antispam_MaxDirectoryRecursion: "15"
antispam_OLE2BlockMacros: "true"
antispam_MaxScanSize: "100M"
antispam_MaxFileSize: "25M"
antispam_MaxRecursion: "16"
antispam_MaxFiles: "10000"
antispam_StreamMaxLength: "25M"
antispam_spoof_sender: "example.net"
antispam_spoof_recipient: "example.net"
antispam_relay_domains: "{{antispam_domain}},example.org"
antispam_transport_domains: { transport.example.org: 10.10.10.10 } 
use_quarantine: "True"
quarantine_db_host: "10.10.10.10"
quarantine_db_user: "ahtapot"
quarantine_db_pass: "ahtapot"
antispam_smtpd_banner: { ANSIBLE_FQDN: MAIL_HOSTNAME_TO_BE_SHOWED  }
clamav_check_freq: 24
clamav_mirrors:
  - db.local.clamav.net
  - database.clamav.net
spam_regexes:
  - name: PORN
    where: full
    regex: /porn/i
    score: 20
    describe: Spam Warning
antispam_block_filetypes:
  - exe-ms
antispam_block_mimetypes:
  - application/x-msdownload
  - application/x-msdos-program
  - application/hta
antispam_block_fileextensions:
  - exe
  - vbs
  - pif
  - scr
  - bat
  - cmd
  - com
  - cpl
antispam_whitelist_address_domain:
  - example.com
antispam_blacklist_address_domain:
  #-
antispam_whitelist_receiver_ip:
  - 192.0.2.254
antispam_whitelist_sender_ip:
  #-
antispam_blacklist_receiver_ip:
  #-
antispam_blacklist_sender_ip:
  #-
  • clamd.conf.yml” dosyasında bulunan “clamd_conf” değişkeni, clamd.conf dosyasının işlenmemiş halini içermektedir. Eğer ana ayar dosyamız olan “main.yml” dosyasında bulunan değişkenler ile, karşılanamayan bir isteriniz mevcut ise bu değişkenin içerisinden direk hedef sistemde çalışacak olan “clamd.conf” dosyasını düzenleyebilirsiniz.
---
clamd_conf: |
  LocalSocket /var/run/clamav/clamd.ctl
  FixStaleSocket true
  LocalSocketGroup clamav
  LocalSocketMode 666
  # TemporaryDirectory is not set to its default /tmp here to make overriding
  # the default with environment variables TMPDIR/TMP/TEMP possible
  User clamav
  ScanMail true
  ScanArchive true
  ArchiveBlockEncrypted {{antispam_block_encrypted_archive}}
  MaxDirectoryRecursion {{antispam_MaxDirectoryRecursion}}
  FollowDirectorySymlinks false
  FollowFileSymlinks false
  ReadTimeout 180
  MaxThreads 12
  MaxConnectionQueueLength 15
  LogSyslog false
  LogRotate true
  LogFacility LOG_LOCAL6
  LogClean false
  LogVerbose false
  DatabaseDirectory /var/lib/clamav
  OfficialDatabaseOnly false
  SelfCheck 3600
  Foreground false
  Debug false
  ScanPE true
  MaxEmbeddedPE 10M
  ScanOLE2 true
  ScanPDF true
  ScanHTML true
  MaxHTMLNormalize 10M
  MaxHTMLNoTags 2M
  MaxScriptNormalize 5M
  MaxZipTypeRcg 1M
  ScanSWF true
  DetectBrokenExecutables false
  ExitOnOOM false
  LeaveTemporaryFiles false
  AlgorithmicDetection true
  ScanELF true
  IdleTimeout 30
  CrossFilesystems true
  PhishingSignatures true
  PhishingScanURLs true
  PhishingAlwaysBlockSSLMismatch false
  PhishingAlwaysBlockCloak false
  PartitionIntersection false
  DetectPUA false
  ScanPartialMessages false
  HeuristicScanPrecedence false
  StructuredDataDetection false
  CommandReadTimeout 5
  SendBufTimeout 200
  MaxQueue 100
  ExtendedDetectionInfo true
  OLE2BlockMacros {{antispam_OLE2BlockMacros}}
  ScanOnAccess false
  AllowAllMatchScan true
  ForceToDisk false
  DisableCertCheck false
  DisableCache false
  MaxScanSize {{antispam_MaxScanSize}}
  MaxFileSize {{antispam_MaxFileSize}}
  MaxRecursion {{antispam_MaxRecursion}}
  MaxFiles {{antispam_MaxFiles}}
  MaxPartitions 50
  MaxIconsPE 100
  PCREMatchLimit 10000
  PCRERecMatchLimit 5000
  PCREMaxFileSize 25M
  ScanXMLDOCS true
  ScanHWP3 true
  MaxRecHWP3 16
  StatsEnabled false
  StatsPEDisabled true
  StatsHostID auto
  StatsTimeout 10
  StreamMaxLength {{antispam_StreamMaxLength}}
  LogFile /var/log/clamav/clamav.log
  LogTime true
  LogFileUnlock false
  LogFileMaxSize 0
  Bytecode true
  BytecodeSecurity TrustSigned
  BytecodeTimeout 60000

  • freshclam.conf.yml” dosyasında bulunan “freshclam_conf” değişkeni, clamd.conf dosyasının işlenmemiş halini içermektedir. Eğer ana ayar dosyamız olan “main.yml” dosyasında bulunan değişkenler ile, karşılanamayan bir isteriniz mevcut ise bu değişkenin içerisinden direk hedef sistemde çalışacak olan “freshclam.conf” dosyasını düzenleyebilirsiniz.
---
freshclam_conf: |
  DatabaseOwner clamav
  UpdateLogFile /var/log/clamav/freshclam.log
  LogVerbose false
  LogSyslog false
  LogFacility LOG_LOCAL6
  LogFileMaxSize 0
  LogRotate true
  LogTime true
  Foreground false
  Debug false
  MaxAttempts 5
  DatabaseDirectory /var/lib/clamav
  DNSDatabaseInfo current.cvd.clamav.net
  ConnectTimeout 30
  ReceiveTimeout 30
  TestDatabases yes
  ScriptedUpdates yes
  CompressLocalDatabase no
  SafeBrowsing false
  Bytecode true
  NotifyClamd /etc/clamav/clamd.conf
  # Check for new database 24 times a day
  Checks {{clamav_check_freq}}
  • local.cf.yml” dosyasında bulunan “local_cf” değişkeni, clamd.conf dosyasının işlenmemiş halini içermektedir. Eğer ana ayar dosyamız olan “main.yml” dosyasında bulunan değişkenler ile, karşılanamayan bir isteriniz mevcut ise bu değişkenin içerisinden direk hedef sistemde çalışacak olan “local.cf” dosyasını düzenleyebilirsiniz.
---
local_cf: |
  # This is the right place to customize your installation of SpamAssassin.
  #
  # See perldoc Mail::SpamAssassin::Conf for details of what can be
  # tweaked.
  #
  # Only a small subset of options are listed below
  #
  ###########################################################################

  #   Add *****SPAM***** to the Subject header of spam e-mails
  #
  # rewrite_header Subject *****SPAM*****


  #   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


  #   Set which networks or hosts are considered trusted by your mail
  #   server (i.e. not spammers)
  #
  # trusted_networks 212.17.35.


  #   Set file-locking method (flock is not safe over NFS, but is faster)
  #
  # lock_method flock


  #   Set the threshold at which a message is considered spam (default: 5.0)
  #
  # required_score 5.0


  #   Use Bayesian classifier (default: 1)
  #
  # use_bayes 1


  #   Bayesian classifier auto-learning (default: 1)
  #
  # bayes_auto_learn 1


  #   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


  #   Whether to decode non- UTF-8 and non-ASCII textual parts and recode
  #   them to UTF-8 before the text is given over to rules processing.
  #
  # normalize_charset 1

  #   Some shortcircuiting, if the plugin is enabled
  # 
  ifplugin Mail::SpamAssassin::Plugin::Shortcircuit
  #
  #   default: strongly-whitelisted mails are *really* whitelisted now, if the
  #   shortcircuiting plugin is active, causing early exit to save CPU load.
  #   Uncomment to turn this on
  #
  # shortcircuit USER_IN_WHITELIST       on
  # shortcircuit USER_IN_DEF_WHITELIST   on
  # shortcircuit USER_IN_ALL_SPAM_TO     on
  # shortcircuit SUBJECT_IN_WHITELIST    on

  #   the opposite; blacklisted mails can also save CPU
  #
  # shortcircuit USER_IN_BLACKLIST       on
  # shortcircuit USER_IN_BLACKLIST_TO    on
  # shortcircuit SUBJECT_IN_BLACKLIST    on

  #   if you have taken the time to correctly specify your trusted_networks,
  #   this is another good way to save CPU
  #
  # shortcircuit ALL_TRUSTED             on

  #   and a well-trained bayes DB can save running rules, too
  #
  # shortcircuit BAYES_99                spam
  # shortcircuit BAYES_00                ham

  endif # Mail::SpamAssassin::Plugin::Shortcircuit

  score SPF_FAIL 4.0
  score SPF_HELO_FAIL 4.0
  score SPF_HELO_SOFTFAIL 3.0
  score SPF_SOFTFAIL 3.0
  • main.cf.yml” dosyasında bulunan “main_cf” değişkeni, clamd.conf dosyasının işlenmemiş halini içermektedir. Eğer ana ayar dosyamız olan “main.yml” dosyasında bulunan değişkenler ile, karşılanamayan bir isteriniz mevcut ise bu değişkenin içerisinden direk hedef sistemde çalışacak olan “main.cf” dosyasını düzenleyebilirsiniz.
---
main_cf: |
  # See /usr/share/postfix/main.cf.dist for a commented, more complete version


  # Debian specific:  Specifying a file name will cause the first
  # line of that file to be used as the name.  The Debian default
  # is /etc/mailname.
  #myorigin = /etc/mailname

  smtpd_banner = {{antispam_smtpd_banner[ansible_hostname]}}
  biff = no

  # appending .domain is the MUAs job.
  append_dot_mydomain = no

  # Uncomment the next line to generate delayed mail warnings
  #delay_warning_time = 4h

  readme_directory = no

  # See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
  # fresh installs.
  compatibility_level = 2

  # TLS parameters
  smtpd_tls_cert_file={{antispam_smtpd_tls_cert_file}}
  smtpd_tls_key_file={{antispam_smtpd_tls_key_file}}
  smtpd_use_tls=yes
  smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
  smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

  # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
  # information on enabling SSL in the smtp client.

  smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
  myhostname = {{ansible_hostname}}.{{antispam_domain}}
  #alias_maps = hash:/etc/aliases
  #alias_database = hash:/etc/aliases
  myorigin = $myhostname
  mydestination = $myhostname, localhost.localdomain, localhost, localhost.localdomain, localhost
  relayhost = 
  mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 {{antispam_allowed_senders}}
  mailbox_size_limit = 0
  recipient_delimiter = +
  inet_interfaces = all
  inet_protocols = {{antispam_inet_protocols}}

  smtpd_tls_CAfile = {{antispam_smtpd_tls_CAfile}}
  mydomain = {{antispam_domain}}
  home_mailbox = Maildir/
  mailbox_command =
  local_recipient_maps =
  smtpd_helo_required = yes
  disable_vrfy_command = yes
  header_checks = regexp:/etc/postfix/header_checks
  mime_header_checks = regexp:/etc/postfix/header_checks
  smtpd_sender_restrictions = check_client_access hash:/etc/postfix/senderaccess, check_recipient_access hash:/etc/postfix/receiveraccess
  smtpd_recipient_restrictions = reject_invalid_hostname,reject_non_fqdn_hostname,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_sender_domain,reject_unauth_pipelining,permit_mynetworks,reject_unauth_destination, check_policy_service unix:private/spfcheck, check_policy_service inet:127.0.0.1:5525, check_policy_service inet:127.0.0.1:10040, check_policy_service inet:127.0.0.1:5525
  smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:10040
  spfcheck_time_limit = 3600
  content_filter = smtp-amavis:[127.0.0.1]:10024
  relay_domains = {{antispam_relay_domains}} 
  transport_maps =  hash:/etc/postfix/transport
  smtpd_recipient_limit = {{antispam_smtpd_recipient_limit}}
  smtp_tls_ciphers = {{antispam_smtp_tls_ciphers}}
  parent_domain_matches_subdomains = {{antispam_parent_domain_matches_subdomains}}
  smtp_tls_security_level = {{antispam_smtp_tls_security_level}}
  smtpd_use_tls = {{antispam_smtpd_use_tls}}
  smtp_tls_note_starttls_offer = {{antispam_smtp_tls_note_starttls_offer}}
  smtpd_tls_received_header = {{antispam_smtpd_tls_received_header}}
  smtpd_tls_session_cache_timeout = {{antispam_smtpd_tls_session_cache_timeout}}
  message_size_limit = {{antispam_message_size_limit}}  
  • master.cf.yml” dosyasında bulunan “master_cf” değişkeni, clamd.conf dosyasının işlenmemiş halini içermektedir. Eğer ana ayar dosyamız olan “main.yml” dosyasında bulunan değişkenler ile, karşılanamayan bir isteriniz mevcut ise bu değişkenin içerisinden direk hedef sistemde çalışacak olan “master.cf” dosyasını düzenleyebilirsiniz.
master_cf: |
  #
  # Postfix master process configuration file.  For details on the format
  # of the file, see the master(5) manual page (command: "man 5 master" or
  # on-line: http://www.postfix.org/master.5.html).
  #
  # Do not forget to execute "postfix reload" after editing this file.
  #
  # ==========================================================================
  # service type  private unpriv  chroot  wakeup  maxproc command + args
  #               (yes)   (yes)   (no)    (never) (100)
  # ==========================================================================
  smtp      inet  n       -       y       -       -       smtpd
  #smtp      inet  n       -       y       -       1       postscreen
  #smtpd     pass  -       -       y       -       -       smtpd
  #dnsblog   unix  -       -       y       -       0       dnsblog
  #tlsproxy  unix  -       -       y       -       0       tlsproxy
  #submission inet n       -       y       -       -       smtpd
  #  -o syslog_name=postfix/submission
  #  -o smtpd_tls_security_level=encrypt
  #  -o smtpd_sasl_auth_enable=yes
  #  -o smtpd_reject_unlisted_recipient=no
  #  -o smtpd_client_restrictions=$mua_client_restrictions
  #  -o smtpd_helo_restrictions=$mua_helo_restrictions
  #  -o smtpd_sender_restrictions=$mua_sender_restrictions
  #  -o smtpd_recipient_restrictions=
  #  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  #  -o milter_macro_daemon_name=ORIGINATING
  #smtps     inet  n       -       y       -       -       smtpd
  #  -o syslog_name=postfix/smtps
  #  -o smtpd_tls_wrappermode=yes
  #  -o smtpd_sasl_auth_enable=yes
  #  -o smtpd_reject_unlisted_recipient=no
  #  -o smtpd_client_restrictions=$mua_client_restrictions
  #  -o smtpd_helo_restrictions=$mua_helo_restrictions
  #  -o smtpd_sender_restrictions=$mua_sender_restrictions
  #  -o smtpd_recipient_restrictions=
  #  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  #  -o milter_macro_daemon_name=ORIGINATING
  #628       inet  n       -       y       -       -       qmqpd
  pickup    unix  n       -       y       60      1       pickup
  cleanup   unix  n       -       y       -       0       cleanup
  qmgr      unix  n       -       n       300     1       qmgr
  #qmgr     unix  n       -       n       300     1       oqmgr
  tlsmgr    unix  -       -       y       1000?   1       tlsmgr
  rewrite   unix  -       -       y       -       -       trivial-rewrite
  bounce    unix  -       -       y       -       0       bounce
  defer     unix  -       -       y       -       0       bounce
  trace     unix  -       -       y       -       0       bounce
  verify    unix  -       -       y       -       1       verify
  flush     unix  n       -       y       1000?   0       flush
  proxymap  unix  -       -       n       -       -       proxymap
  proxywrite unix -       -       n       -       1       proxymap
  smtp      unix  -       -       y       -       -       smtp
  relay     unix  -       -       y       -       -       smtp
  #       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
  showq     unix  n       -       y       -       -       showq
  error     unix  -       -       y       -       -       error
  retry     unix  -       -       y       -       -       error
  discard   unix  -       -       y       -       -       discard
  local     unix  -       n       n       -       -       local
  virtual   unix  -       n       n       -       -       virtual
  lmtp      unix  -       -       y       -       -       lmtp
  anvil     unix  -       -       y       -       1       anvil
  scache    unix  -       -       y       -       1       scache
  #
  # ====================================================================
  # Interfaces to non-Postfix software. Be sure to examine the manual
  # pages of the non-Postfix software to find out what options it wants.
  #
  # Many of the following services use the Postfix pipe(8) delivery
  # agent.  See the pipe(8) man page for information about ${recipient}
  # and other message envelope options.
  # ====================================================================
  #
  # maildrop. See the Postfix MAILDROP_README file for details.
  # Also specify in main.cf: maildrop_destination_recipient_limit=1
  #
  maildrop  unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
  #
  # ====================================================================
  #
  # Recent Cyrus versions can use the existing "lmtp" master.cf entry.
  #
  # Specify in cyrus.conf:
  #   lmtp    cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
  #
  # Specify in main.cf one or more of the following:
  #  mailbox_transport = lmtp:inet:localhost
  #  virtual_transport = lmtp:inet:localhost
  #
  # ====================================================================
  #
  # Cyrus 2.1.5 (Amos Gouaux)
  # Also specify in main.cf: cyrus_destination_recipient_limit=1
  #
  #cyrus     unix  -       n       n       -       -       pipe
  #  user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
  #
  # ====================================================================
  # Old example of delivery via Cyrus.
  #
  #old-cyrus unix  -       n       n       -       -       pipe
  #  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
  #
  # ====================================================================
  #
  # See the Postfix UUCP_README file for configuration details.
  #
  uucp      unix  -       n       n       -       -       pipe
    flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
  #
  # Other external delivery methods.
  #
  ifmail    unix  -       n       n       -       -       pipe
    flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
  bsmtp     unix  -       n       n       -       -       pipe
    flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
  scalemail-backend unix  -       n       n       -       2       pipe
    flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
  mailman   unix  -       n       n       -       -       pipe
    flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
    ${nexthop} ${user}

  smtp-amavis     unix    -       -       -       -       2       smtp
   -o smtp_data_done_timeout=1200
   -o smtp_send_xforward_command=yes
   -o disable_dns_lookups=yes
   -o max_use=20

  127.0.0.1:10025 inet    n       -       -       -       -       smtpd
   -o content_filter=
   -o local_recipient_maps=
   -o relay_recipient_maps=
   -o smtpd_restriction_classes=
   -o smtpd_delay_reject=no
   -o smtpd_client_restrictions=permit_mynetworks,reject
   -o smtpd_helo_restrictions=
   -o smtpd_sender_restrictions=
   -o smtpd_recipient_restrictions=permit_mynetworks,reject
   -o smtpd_data_restrictions=reject_unauth_pipelining
   -o smtpd_end_of_data_restrictions=
   -o mynetworks=127.0.0.0/8
   -o smtpd_error_sleep_time=0
   -o smtpd_soft_error_limit=1001
   -o smtpd_hard_error_limit=1000
   -o smtpd_client_connection_count_limit=0
   -o smtpd_client_connection_rate_limit=0
   -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

  spfcheck  unix  -       n       n       -       -       spawn        user=policyd-spf argv=/usr/bin/policyd-spf