On 10/27/2010 7:02 PM, Al Zick wrote:
Is there a replacement for procmail? I know it seemed to take
longer and did raise cpu usage, but when I first installed it
with bogofilter, it almost eliminated spam getting into my inbox.

depends on why you're using procmail... If you need a way to interface spam/virus filtering, amavisd-new + spamassassin + clamav + sanesecurity clam signatures are a popular and effective combination, although SpamAssassin can use quite a bit of resources.

problems lately have been with email. I feel like I need to
get postfix to stop using so much cpu.

Show some evidence. Postfix shouldn't use very much CPU.

Over the last month or so I am getting something like 2 to 3
times the spam, so Postfix cpu usage has changed with it. It
is not that it is using an abnormal amount of cpu for the
increased work it is doing. I am sorry I should have explained
that before.

How many connections are you getting per minute?

So then you are saying it is normal to have 1,000s of emails
per second hitting the mail server just to be temporarily
bounced by the graylisting when in the end they get bounced
anyway. Even after they are bounced, they just keep coming
anyway.


Most greylist services use DEFER_IF_PERMIT so that mail that can be permanently rejected is not deferred to retry.

If your forwarded mail is what's attempting repeated delivery despite being rejected, you'll need to whitelist those servers and eat the mail. Otherwise, firewall clients who refuse to go away.

Identify the problem, then address it.


Sounds as if you've foolishly set "soft_bounce = yes"

# postconf -d | grep soft_bounce
soft_bounce = no


"man postconf" to see what "-d" does and why the above information is useless.

But no matter; soft_bounce doesn't appear in your "postconf -n" listing, so that's not it.



[postconf output]
bounce_queue_lifetime = 2d
default_destination_concurrency_limit = 5
default_process_limit = 15
maximal_backoff_time = 4h
maximal_queue_lifetime = 3d
minimal_backoff_time = 2h
qmgr_message_active_limit = 50
qmgr_message_recipient_limit = 50
queue_run_delay = 30m

Your settings resemble what someone with an underpowered server with a bad backscatter problem might try. If that's not your situation, use the defaults. If that *is* your situation, address the source of the problem rather than putting postfix colored band-aids on it.

Mucking around with the above settings is a good way to cripple postfix performance. Tread carefully here.

With a process limit of 15, any server less than 10 years old should hardly get above idle. The default has been 100 for years; most servers can easily support several times that.


smtpd_recipient_restrictions = permit_mynetworks,
reject_unauth_destination, reject_invalid_hostname,
reject_unauth_pipelining, reject_non_fqdn_sender,
reject_unknown_sender_domain, reject_non_fqdn_recipient,
reject_unknown_recipient_domain, reject_rbl_client
bl.spamcop.net, reject_rbl_client cbl.abuseat.org, permit

OK. I suggest dropping cbl.abuseat.org and adding zen.spamhaus.org (zen includes cbl data).

I also like using reject_unknown_reverse_client_hostname to reject zombies with no rDNS record.
http://www.postfix.org/postconf.5.html#reject_unknown_reverse_client_hostname

unknown_local_recipient_reject_code = 550

Good.

Consider a lower smtpd_hard_error_limit so that postfix can disconnect misbehaving clients sooner. Something between 2..10 is probably good for most sites.
http://www.postfix.org/postconf.5.html#smtpd_hard_error_limit

Consider using the postfix anvil service to limit how much mail individual clients can send. Note: anvil is not for traffic shaping. You may need to exempt a few high volume clients, such as your forwarders.
http://www.postfix.org/TUNING_README.html#conn_limit

If you have repeat offenders that send lots of spam, firewall them. You can use fail2ban to automatically temporarily blacklist clients that exceed a set number of rejects per time period.
http://www.fail2ban.org

If system load is a problem, consider running a recent postfix snapshot with the new postscreen service. The intent of postscreen is to reject as much spam as possible using as few system resources as possible. (You'll need to upgrade somewhat frequently to stay with reasonably current snapshots.)
http://www.postfix.org/POSTSCREEN_README.html

[nothing remarkable in master.cf; looks like defaults]



I was wondering if using something like policyd would help the
spam problem?

Your time will probably be best spent in identifying the actual problem and addressing it, rather than just bolting a bunch of stuff into postfix hoping something will change.

Once you identify the problem as something policyd might help, then policyd is worth trying.


Is there a proper way to filter spam? If so, what is it?

If it was easy, no one would get spam. This situation is complicated since the type of spam and the tolerance for false positives are local issues. Sounds as if a lot of your spam is forwarded from accounts on other servers; that's something SpamAssassin and clamav+sanesecurity sigs can help with.

You can have great success if you can spend time and energy on it; otherwise just sign up for google apps and gmail.


  -- Noel Jones

Reply via email to