Hi,

On Oct 27, 2010, at 11:50 PM, Noel Jones wrote:

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.

Currently, I just use procmail to interface with the spam filters. I would really like to put a bunch of rules into procmail too, for example: if is sees the word viagra anywhere in the email, it is spam, there is no reason to go any further with it.

Right now, I am concerned that I would need a quad core, quad processor system that was dedicated to just running spamassassin, so I am looking at other solutions.


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.


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.

I think that I need to accept and delete email that is being sent to maybe the top few email address that don't exist and never had existed. They add the most lines to the log. When I was just accepting them and deleting them, then the log was very quiet.

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.

I will definitely be whitelisting all the servers that forward email to me. I will also be whitelisting all my friend's mail servers. This will probably help with a lot of the bounce rebouncing.



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.

Is there anything else that could cause a soft_bounce?


[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.

What exactly is a backscatter problem?

If I do have a backscatter problem, what should the settings be?

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.

This install of postfix is from a few years ago and it was not up to date then (it is what installed with the OS and I never updated it). A friend of mine recompiled OS for better optimization. I think it was already pretty old when I install it. Really, I was supposed to upgrade Postfix through the packaging system because there was some known problems with what came with the OS, but I never did. I had a friend of mine look at it because it would not receive or send emails to the outside world, and I am not really sure what he did anymore. I think he added one line to master.cf and I think he had me make other changes to master.cf (although, he may have made them). I do remember that the server would basically not work at all and I think the process limit was set to something lower and I raised it to 15. This server runs a lot of other things, like 2 web servers, named, squid, and a whole lot of custom written software, and it pretty much does everything that both of my other dedicated servers do, so that may be why it was set so low.

Could this be one of the reasons I see so many bounces in the log? Would this act like a soft bounce? Besides the process limit what else should be raised?




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 was using zen.spamhaus.org, but it seemed to create too many false pastives. Many emails I was not getting and it was making people mad. This is when things really started to become a problem, I started getting duplicate emails, although I can't find anything in the Postfix log. I just started procmail logging, so I will see if it shows anything. I think spammers are sending emails that cause this problem, but I am not sure.

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

I will look at this. I know from looking at the headers that some servers that should be able to send email to me will not be able to if I use this. Is there a way that I can whitelist servers from this?


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

This is something that I will definitely put into my config.

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

Right now, I don't have too many people who relay email through my server, although it does relay the email for my other servers. I just don't give anyone new a chance to send spam, because at one time I had a problem with this.

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

I will look into this. This may be a great solution. The link doesn't seem to work right now.



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.

Right now, the big issue is spam, somewhere some emails are being duplicated, and the fact that my postfix log looks like a war zone. On average I don't get a lot of connections, but at times I get what I would consider a real high number in a very short time (I think these are an attempt to overload the server). It is not so much that it is overloaded as I am tired of all the bogus connections and I really think I need to deal with them better.

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.

I spend a lot of time trying to deal with spam. What I have found is that I need to update my spam filtering often, but still I seem to need to totally revamp the way that I am dealing with spam. I can't seem to get away with a lot of false positives, yet I don't want to deliver the amount of spam that I have been.

I have several websites that I own that are in the top 1,000,000 sites based on traffic according to Alexa and although this server only hosts the email for like 30 some domains. I seem to get more than my fair share of spam. Right now, it is still manageable, but soon I will need a very high end dedicated mail server, if I don't change something. Personally, I feel my config is wrong and that is why I am asking some questions.

I was also looking at something else and it looks like Postfix was built without pcre. Will I be able to use header checks without this?

Sincerely,
Al





Reply via email to