Postfix - antispam and relay package
- 
 Hi all, I've just finished postfix package version 2.3. Postfix is an amazing mail forwarder that really keep away any misconfigured server or server trying to forge email. 
 Postfix Forwarder package at pfsense has many antispam features but for now, no SASL support for remote authentication.- 
Zombie blocker (postscreen) 
- 
Header chekcs 
- 
Body checks 
- 
Access lists 
- 
RBL checks 
- 
SPF checks 
- 
Dashboard widgets with mail stats 
- 
Sqlite logs support 
- 
Sqlite logs forward to use only one box to search mail 
- 
Package permissions to allow users to just search mail or view queue 
- 
Search mail tool 
- 
view postfix queue in gui 
 And you can also use an third part antispam engine like mailscanner or policyd v2 for a complete antispam solution. note: NEVER try to install policydv2 freebsd package, it will break out your pfsense. 
 if you plan to use policydv2 you must put it on other server or in a jail.The mailscanner tutorial(or package) is under development, for now you can configure by hand using pkg_add -r MailScanner. att, 
 Marcello Coutinho
  
 
 
  
 
  
 
  
  
 
  
 
  
 
- 
- 
 it's possible to use them as an outbound smtp proxy ? with the antispam features? Thanks, 
- 
 Seem to work but it's possible to disable valid recipient functionnality? Thanks, 
- 
 You can set your internal mail servers on ACLs -> Client Access List, but I don't know if postscreen('zombie blocker') or rbl checks can validade internal mail servers. You can check other postfix antispam features with 'strong header verification' and ACLs for filter header,MIME and body settings. For a deep internal mail server antispam search you may need mailscanner. 
 I'm working on this package now and will be available soon.best regards, 
 Marcello Coutinho
- 
 how to do my main.cf configuracuion if I have it in centos bit too high I want to pass this pfSense this is my main.cf I want to enable in pfsnese thanks for the collaboration General settingsbounce_queue_lifetime = 6h 
 mailbox_size_limit = 51200000
 message_size_limit = 10240000
 luser_relay =
 recipient_delimiter = +
 message_strip_characters = \0Authentication with SASLbroken_sasl_auth_clients = yes 
 smtpd_sasl_auth_enable = yes
 smtpd_sasl_security_options = noanonymous
 smtpd_sasl_local_domain = $mydomainEncryption with TLSsmtpd_tls_auth_only = yessmtpd_use_tls = yes 
 smtpd_tls_cert_file = /etc/postfix/cert.pem
 smtpd_tls_key_file = /etc/postfix/key.pem
 smtpd_tls_loglevel = 1Mail restrictions (note: Kolab policies are not implemented)smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination 
 kolabpolicy_time_limit = 3600
 kolabpolicy_max_idle = 20Mail routingmailbox_transport = mailpostfilter 
 content_filter = mailprefilter
 transport_maps = hash:/etc/postfix/transportOutbound SMTP authenticationsmtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd 
 smtp_sasl_auth_enable = yes
 smtp_sasl_security_options =
 unknown_local_recipient_reject_code = 550
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
 smtp_tls_security_level = may
 smtp_sasl_type = cyrus
 relayhost = [xxxx.com]:587
- 
 You can put your options on custom main.cf options at gui. This package was designed to be a relay server only, I do not recomend enabling mailboxes on it. 
- 
 I just want it to pass and I get this postfix/smtpd[50880]: NOQUEUE: reject: RCPT from unknown[192.168.200.xxx]: 554 5.7.1 mauricio.nino@xxx.com.co: Relay access denied; from= root@localhost.localdomainto= mauricio.nino@xxx.com.coproto=ESMTP helo=<localhost.localdomain></localhost.localdomain>/mauricio.nino@xxx.com.co/root@localhost.localdomain/mauricio.nino@xxx.com.co 
- 
 Include your 192.168.200.xxx internal ip in ACL/fiter map. 
- 
 marcelloc appreciate your help but I do not work I have this in the log The truth can not be done now, I only serve as a relay, Oct 11 16:49:45 postfix/smtpd[29361]: generic_checks: name=check_client_access 
 Oct 11 16:49:45 postfix/smtpd[29361]: check_namadr_access: name unknown addr 192.168.200.14
 Oct 11 16:49:45 postfix/smtpd[29361]: check_domain_access: unknown
 Oct 11 16:49:45 postfix/smtpd[29361]: dict_cidr_lookup: /usr/local/etc/postfix/cal_cidr: unknown
 Oct 11 16:49:45 postfix/smtpd[29361]: check_addr_access: 192.168.200.14
 Oct 11 16:49:45 postfix/smtpd[29361]: dict_cidr_lookup: /usr/local/etc/postfix/cal_cidr: 192.168.200.14
 Oct 11 16:49:45 postfix/smtpd[29361]: generic_checks: name=check_client_access status=0
 Oct 11 16:49:45 postfix/smtpd[29361]: generic_checks: name=permit
 Oct 11 16:49:45 postfix/smtpd[29361]: generic_checks: name=permit status=1
 Oct 11 16:49:45 postfix/smtpd[29361]: >>> START Helo command RESTRICTIONS <<<
 Oct 11 16:49:45 postfix/smtpd[29361]: generic_checks: name=reject_unknown_helo_hostname
 Oct 11 16:49:45 postfix/smtpd[29361]: reject_unknown_hostname: localhost.localdomain
 Oct 11 16:49:45 postfix/smtpd[29361]: lookup localhost.localdomain type A flags 0
 Oct 11 16:49:45 postfix/smtpd[29361]: dns_query: localhost.localdomain (A): OK
 Oct 11 16:49:45 postfix/smtpd[29361]: dns_get_answer: type A for localhost.localdomain
 Oct 11 16:49:45 postfix/smtpd[29361]: generic_checks: name=reject_unknown_helo_hostname status=0
 Oct 11 16:49:45 postfix/smtpd[29361]: >>> END Helo command RESTRICTIONS <<<
 Oct 11 16:49:45 postfix/smtpd[29361]: >>> START Sender address RESTRICTIONS <<<
 Oct 11 16:49:45 postfix/smtpd[29361]: generic_checks: name=reject_unknown_sender_domain
 Oct 11 16:49:45 postfix/smtpd[29361]: reject_unknown_address: root@localhost.localdomain
 Oct 11 16:49:45 postfix/smtpd[29361]: ctable_locate: move existing entry key root@localhost.localdomain
 Oct 11 16:49:45 postfix/smtpd[29361]: reject_unknown_mailhost: localhost.localdomain
 Oct 11 16:49:45 postfix/smtpd[29361]: lookup localhost.localdomain type MX flags 0
 Oct 11 16:49:45 postfix/smtpd[29361]: dns_query: localhost.localdomain (MX): Host not found
 Oct 11 16:49:45 postfix/smtpd[29361]: lookup localhost.localdomain type A flags 0
 Oct 11 16:49:45 postfix/smtpd[29361]: dns_query: localhost.localdomain (A): OK
 Oct 11 16:49:45 postfix/smtpd[29361]: dns_get_answer: type A for localhost.localdomain
 Oct 11 16:49:45 postfix/smtpd[29361]: generic_checks: name=reject_unknown_sender_domain status=0
 Oct 11 16:49:45 postfix/smtpd[29361]: generic_checks: name=permit
 Oct 11 16:49:45 postfix/smtpd[29361]: generic_checks: name=permit status=1
 Oct 11 16:49:45 postfix/smtpd[29361]: >>> START Recipient address RESTRICTIONS <<<
 Oct 11 16:49:45 postfix/smtpd[29361]: generic_checks: name=reject_unauth_destination
 Oct 11 16:49:45 postfix/smtpd[29361]: reject_unauth_destination: mauricio.nino@xxxx.com.co
 Oct 11 16:49:45 postfix/smtpd[29361]: permit_auth_destination: mauricio.nino@xxxx.com.co
 Oct 11 16:49:45 postfix/smtpd[29361]: ctable_locate: move existing entry key mauricio.nino@xxxx.com.co
 Oct 11 16:49:45 postfix/smtpd[29361]: NOQUEUE: reject: RCPT from unknown[192.168.200.14]: 554 5.7.1 mauricio.nino@itac.com.co: Relay access denied; from= root@localhost.localdomainto= mauricio.nino@xxx.com.coproto=ESMTP helo=<localhost.localdomain></localhost.localdomain>/mauricio.nino@xxx.com.co/root@localhost.localdomain/mauricio.nino@itac.com.co
 Oct 11 16:49:45 postfix/smtpd[29361]: generic_checks: name=reject_unauth_destination status=2
 Oct 11 16:49:45 postfix/smtpd[29361]: > unknown[192.168.200.14]: 554 5.7.1 mauricio.nino@xxxx.com.co: Relay access denied
 Oct 11 16:49:45 postfix/smtpd[29361]: watchdog_pat: 0x800e115f0
 Oct 11 16:49:45 postfix/smtpd[29361]: < unknown[192.168.200.14]: DATA
 Oct 11 16:49:45 postfix/smtpd[29361]: > unknown[192.168.200.14]: 554 5.5.1 Error: no valid recipients
 Oct 11 16:49:45 postfix/smtpd[29361]: watchdog_pat: 0x800e115f0
 Oct 11 16:49:45 postfix/smtpd[29361]: < unknown[192.168.200.14]: RSET
 Oct 11 16:49:45 postfix/smtpd[29361]: > unknown[192.168.200.14]: 250 2.0.0 Ok
 Oct 11 16:49:45 postfix/smtpd[29361]: watchdog_pat: 0x800e115f0
 Oct 11 16:49:45 postfix/smtpd[29361]: < unknown[192.168.200.14]: QUIT
 Oct 11 16:49:45 postfix/smtpd[29361]: > unknown[192.168.200.14]: 221 2.0.0 Bye
 Oct 11 16:49:45 postfix/smtpd[29361]: match_hostname: unknown ~? 192.168.200.0/23
 Oct 11 16:49:45 postfix/smtpd[29361]: match_hostaddr: 192.168.200.14 ~? 192.168.200.0/23
 Oct 11 16:49:45 postfix/smtpd[29361]: disconnect from unknown[192.168.200.14] 
 /mauricio.nino@xxxx.com.co
- 
 marcelloc, Thanks for all the hard work! I have one question… can i use the postfix forwarder to forward my mail to GMAIL server... i'm doing this now with a centos/postfix install... below is the pertinent config file entries.. SASL authenticationsmtp_tls_security_level=encrypt 
 smtp_sasl_auth_enable = yes
 smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
 smtp_sasl_security_options = noanonymous
 relayhost = [smtp.gmail.com]:587
 transport_maps = hash:/etc/postfix/transportTLSsmtp_tls_CAfile = /etc/postfix/cacert.pem 
 smtp_tls_cert_file = /etc/postfix/certs/git01.pem
 smtp_tls_key_file = /etc/postfix/certs/git01.key
 smtp_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache
 smtp_use_tls = yes
 smtpd_tls_CAfile = /etc/postfix/cacert.pem
 smtpd_tls_cert_file = /etc/postfix/certs/git01.pem
 smtpd_tls_key_file = /etc/postfix/certs/git01.key
 smtpd_tls_received_header = yes
 smtpd_tls_session_cache_database = btree:/var/run/smtpd_tls_session_cache
 smtpd_use_tls = yes
 smtp_tls_loglevel = 1
 tls_random_source = dev:/dev/urandom
 smtp_cname_overrides_servername = no
 #debug_peer_list=smtp.gmail.com
 #debug_peer_level=3
- 
 Did you tried to include your config in custom main.cf options and of course transfer your files to pfsense? I'm not sure if other options will affect you setup but could work. 
- 
 marcelloc 
 Oct 11 16:49:45 postfix/smtpd[29361]: dns_query: localhost.localdomain (MX): Host not found
 Oct 11 16:49:45 postfix/smtpd[29361]: dns_query: localhost.localdomain (A): OK
 Oct 11 16:49:45 postfix/smtpd[29361]: dns_get_answer: type A for localhost.localdomain
 Oct 11 16:49:45 postfix/smtpd[29361]: NOQUEUE: reject: RCPT from unknown[192.168.200.14]: 554 5.7.1 mauricio.nino@itac.com.co: Relay access denied; from= root@localhost.localdomainto= mauricio.nino@itac.com.coproto=ESMTP helo=<localhost.localdomain></localhost.localdomain>/mauricio.nino@itac.com.co/root@localhost.localdomain/mauricio.nino@itac.com.co
 Oct 11 16:49:45 postfix/smtpd[29361]: generic_checks: name=reject_unauth_destination status=2
 Oct 11 16:49:45 postfix/smtpd[29361]: > unknown[192.168.200.14]: 554 5.5.1 Error: no valid recipientsmauricioniñoavella, see what postfix is rejecting and correct it. 
 It looks like you tried to send a email with an invalid sender.
 If you need this sender, create this domain in dns server that pfsense uses.att, 
 Marcello Coutinho
- 
 marcelloc greeting 
 I tried to do everythingCurrent issue if tusabes Nose to issue generates this error since I only use smtp_sasl mailserver postfix/smtpd[20836]: warning: smtpd_sasl_auth_enable is true, but SASL support is not compiled in 
 mailserver postfix/smtpd[20836]: connect from unknown[xxxx.xxxx.xxxx.xxx]
 mailserver postfix/smtpd[20836]: disconnect from unknown[xxxx.xxxx.xxxx.xxx]I hit it in the custom main.cf options smtp_sasl_auth_enable = yes 
 smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_passwd
 smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
 relayhost = [smtp.xxx.com]:587thanks for your collaboration 
- 
 Seems that many people need SASL auth, I will put in postfix forwarder TODO list. 
- 
 Too bad I could bother you confirm if it works as a relay Services: Postfix relay and antispam (postfix forwarder) and also worked with 
 STARTTLSthanks for your collaboration 
- 
 Hello, I must say I am glad to see this package. Mail proxies and mail forwarders with filtering is a must have these days. I am new to this package and was wondering if there is any documentation on how to configure and set it up for use. Some of the setting are unclear to me. I am not sure what the binding setting is for the WAN, LAN, and loopback and can't find anything that explains it better or what basic settings should be set to. Also, when I removed my SMTP port forward form NAT and rules to use this package, I am having trouble recieving mails. I went to mxtoolbox.com and did a diagnostics test and I don't get a header response or anything. It just says host times out from inactivity. I really did not change any of the default setting from the install and yes I did add the domain with a forwarding internal address. Could someone help or post a basic setup that would get this working. It is a little hard to figure settings with no documentation or explinations of settings. Thanks, MDP 
- 
 at docs.pfsense.com has some info but not so detailed. the basic setup is: - 
remove nat from port 25 
- 
create a wan rule to permit smtp traffic to wan address 
- 
check enable postfix option 
- 
choose at least wan loopback interfaces 
- 
fill your domain/internal smtp info 
 Many options has recommend, default and link option to postfix documentation. I recommend enable all antispam settings too. att, 
 Marcello Coutinho
- 
- 
 Hey thanks very much for the info. I will give a try. I really like the concept of this package and have waited a while to see something like this come out for pfsense, so thanks for all your hard work. I do have one question for your response. When you say WAN loopback interface, do you mean select the WAN interface only, the loopback interface only, or both? Thanks Again, 
- 
 So I have e-mails forwarding ok now and thanks for the basic info for that. Just curious, as I seen in early to mid last month a post you made about mailscanner, and was wondering if this will become part of the base install of the postfix forwarder package? Currently I am unsure how to implement this ability and not really sure on what the ACLs/Filter maps tab does. If you made this package an all inclusive install with all the components needed for a full SMTP filter, that would be sweet. Thanks 
- 
 Mailscanner + spamassassin will be released soon as a new package with more then 500 options to filter spam. As I told in other posts, I'm waiting Mailscanner package compilation by core team. But if you know how mailscanner works you can add freebsd package and configure it. Can you feedback in % how postfix + all antispam settings reduced spam messages on mailboxes? 
