Skip to content

KAZOO Support Channels

This documentation is curated by 2600Hz as part of the KAZOO open source project. Join our community forums here for peer support. Only features in the docs.2600hz.com/supported space are included as part of our 2600Hz Support Services plan.

Postfix role in smtp-to-fax#

Although you can expose kazoo fax on port 25 or use haproxy to relay incoming email messages directly to the fax_smtp server, we recommend to use Postfix to filter email spam before delivering to haproxy/kazoo

Simple Postfix setup#

install Postfix, python & curl#

  • yum -y install curl postfix
  • yum -y install python python-dns python-pydns
  • yum -y install python-pyspf pypolicyd-spf postgrey

edit etc/sysconfig/postgrey with#

OPTIONS="--unix=/var/spool/postfix/postgrey/socket --delay=60"

start services#

  • service postgrey start
  • service postfix reload
  • chkconfig --levels 345 postgrey on

edit /etc/postfix/main.cf and add the following lines at the end#

relay_domains = hash:/etc/postfix/kz_smtp_domains
# relayhost should be the IP:PORT of haproxy-smtp-listener or kazoo fax whapp
relayhost = 127.0.0.1:2525

policy-spf_time_limit = 3600s

smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_helo_restrictions =
    permit_mynetworks,
    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,
    permit

smtpd_sender_restrictions =
    permit_mynetworks,
    reject_non_fqdn_sender,
    reject_unknown_sender_domain,
     check_sender_access regexp:/etc/postfix/kz_allowed_senders,
    reject

smtpd_recipient_restrictions =
   reject_unauth_pipelining,
   reject_non_fqdn_recipient,
   reject_unknown_recipient_domain,
   permit_mynetworks,
   reject_unauth_destination,
   check_policy_service unix:private/policyd-spf,
   check_sender_access regexp:/etc/postfix/kz_allowed_senders,
   reject_rbl_client zen.spamhaus.org,
   reject_rbl_client bl.spamcop.net,
   check_policy_service unix:postgrey/socket,
   reject

edit /etc/postfix/master.cf and add the following line at the end#

policy-spf  unix  -       n       n       -       0       spawn
   user=nobody argv=/usr/libexec/postfix/policyd-spf

To-do#

  • use CouchDB views to get kazoo faxboxes configuration into postfix
  • edit domains and permitted users from kazoo
  • postmap /etc/postfix/kz_smtp_domains
  • postmap /etc/postfix/kz_allowed_senders
  • postfix reload
  • put into a bash script
  • add it to a cron table
  • handle 304 Not Modified responses