![]() |
|
Setting up/running an email service If you're setting up an email service from scratch, or running one, exchange ideas and tips with other Webmasters here... |
![]() |
|
Thread Tools |
![]() |
#1 |
Member
Join Date: Mar 2007
Posts: 56
Representative of:
Lavabit.com |
Stopping Abuse
Were looking for tips on how to keep the abusers off our system. We've taken the usual steps of limiting outbound messages, limiting the number of accounts that can be registered per IP subnet, and requiring a CAPTCHA, but nothing seems to be enough.
Have any of the other free service admins developed strategies for locking out the abusive people? Recently we've had a couple of people use our service for Russian dating scams, and eBay scams. Do you lock these people out without proof of abuse? How do you keep them from coming back? Feel free to PM us if you don't want this info public. |
![]() |
![]() |
![]() |
#2 |
Master of the @
Join Date: Jun 2004
Location: USA
Posts: 1,077
|
set up an abuse center have customers enter scams and phishes and blacklist the addresses
it is time consuming but soon it becomes a task that stops a lot of abusers watch your own customer list and the incomming and outgoing it sometimes gives you a clue to who is abusing as for an automatic system i dont think anything is a %100 sure |
![]() |
![]() |
![]() |
#3 |
Junior Member
Join Date: Nov 2007
Posts: 4
|
There has been a number of email issues from Russia, especially on forums, i know that is not the case with you, but we have started to block entire subnets that originate from Russia for our forums. Might be a good idea to try that with your email service...
|
![]() |
![]() |
![]() |
#4 |
Master of the @
Join Date: Sep 2004
Posts: 1,712
|
I do personally black list a lot of the spam domains, and that is what I have been doing recently now my main email accounts are on the exchange email platform, this does seem to be pretty effective in weeding out the main spam domain names, which have been spamming me, and this with a little tweaking daily, seems to actually improve the situation, as I can't block IP Addresses, which I would, for known spammers if I could, domain blocking, and very stringent spam and virus killers is a good move.
Also for Ebay and Paypal, frauds, please report it directly to spoof AT ebay. com and spoof AT paypal. com respectively they can then take action to get the sites shut down and get the relevant enforcement agencies involved for faking and trying to you know rip off the well known brand names. Mod: Fixed "live" email address to avoid spambots. Last edited by Sherry : 28 Nov 2007 at 05:46 PM. |
![]() |
![]() |
![]() |
#5 |
Member
Join Date: Mar 2007
Posts: 56
Representative of:
Lavabit.com |
When we lock out an abuser, we also lock out the /24 they registered from. If we see multiple subnets registering abusive accounts, we lock out the class B. In one case, we even locked out a Class A from (from an African ISP). While we think this has helped, the abusers keep coming. We'll do are best.
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Join Date: Apr 2003
Posts: 180
Representative of:
VFEmail.net |
While we think this has helped, the abusers keep coming. We'll do are best.
Not even that will stop them. I recently spoke with a woman who had 14 charges on my service. A spammer had gotten her card data and upgraded multiple accounts in an attempt to avoid the free user restrictions in place. I have restrictions on all account types, but no matter what you do, they will always try and counter it. My primary 'stopper' is not a limit on outgoing messages, but a couple queues set up serially with a delay. If the number of messages in any of my queues exceeds a particular threshold, the queue is shut down, and I'm notified. I can clean out obvious spam, and remove the abusers. If it recurs, I'll wipe out all the signups from that IP address, and block it. Or remove all accounts that used that particular 'originating' email account - and possibly block mail to that domain, or just throw in some javascript to block that address in the signup. :P My reaction really just depends on the situation. The queue check is a great solution, because I can limit outgoing concurrency, create internal delays, and artificially 'stack up' email to actually see how much is going out at once. I probably have 3-4 shutdowns a day. Cleanup is under a minute, unless I'm away and spam really stacks up... Some spammers with valid emails in the body also don't like to have their mail 'returned to sender'.. So that's an option as well... Rick |
![]() |
![]() |
![]() |
#7 |
Master of the @
Join Date: Sep 2004
Posts: 1,712
|
Well, I am having problems with some spammers trying to 'fake' my domain in spam emails but I thought I had a very secure spf record set up blocking thius but every time I look at this it is either coming back with a netual result or isn't working when it should be and this is with using the spf wizard which is used by virturally everyone and Freeparking as the registar, but it just doesn't seem to be going up again since I tried to update the spf record, the problem came back when I had stopped it, and if anyone has an spf record set up they know which would stop this and just limit it to my ip address if someone can PM me, I'd be most grateful
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Join Date: Apr 2003
Posts: 180
Representative of:
VFEmail.net |
Well, I am having problems with some spammers trying to 'fake' my domain in spam emails but I thought I had a very secure spf record set up blocking thius but every time I look at this it is either coming back with a netual result or isn't working
IMHO, SPF shouldn't be used how you're trying to use it. SPF should only be used as an additional spam scoring mechanism by the receiving server. If they do set it up to block all email that comes from a non-SPF listed IP address, they will potentially drop forwarded email, or email 'accidentally' not sent through those hosts, or email that - at that moment - COULDN'T be sent through valid hosts. I realize the - and ~ are supposed to account for that but, as any admin would know, user's don't always do what we expect ![]() SPF is a good way to help admins score that email as spam, but it's not an all-encompassing solution due to other issues that can come up. Rick |
![]() |
![]() |
![]() |
#9 |
Member
Join Date: Mar 2007
Posts: 56
Representative of:
Lavabit.com |
What is your domain? I'd like to examine the SPF record myself.
As for your comment, SPF is only intended to prevent the spoofing of the MAIL FROM value during the SMTP session. This is the address used for sending bounce messages, and is intended to prevent scatter back. If the spammer is using a valid value in the MAIL FROM, but spoofing your domain in the From or Reply To headers, SPF won't help. You might try publishing a DKIM record. Its possible to also specify that your domain 'always signs' outbound mail using DKIM. Some, though currently very few, will treat with suspicion incoming messages that aren't signed. Our mail system is relatively unique, we allow each users to set their preferences individually. You can delete, reject, mark, or accept messages that fail either an SPF or DKIM. If your curious, I can post a break down of how many different users have what options set. We do it this way so that people who subscribe to mailing lists, or have mail forwarded can use looser settings than those who don't. Finally, we recently decided to code our mail server such that it now only sends bounce messages if it can verify the MAIL FROM address using either SPF or DKIM. Same with auto-responses like vacation messages. |
![]() |
![]() |
![]() |
#10 | |
Member
Join Date: Mar 2007
Posts: 56
Representative of:
Lavabit.com |
Quote:
Long term we'd like to set up a point system. If a user sends out enough messages with URLs in the various URL blacklists, or a number of their messages bounce, then the account is flagged for review. But we haven't implemented this yet. |
|
![]() |
![]() |
![]() |
#11 | |||
Senior Member
Join Date: Apr 2003
Posts: 180
Representative of:
VFEmail.net |
I use qmail. To create multiple queues, I setup a second installation (/var/qmail2), and forward all mail to that installation via smtproutes.
Since qmail creates a single smtp connection for each RCPT TO (which at one time I shunned ![]() So I listen on external IP (backup MX), internal network IP (2nd queue gets mail from front-end machines), loopback (3rd queue for delivery with smtp delay). Users don't submit to this server, everything that's outgoing gets funneled to it. Quote:
![]() It sounds like you're doing basically the same thing I am. You can just setup a 2nd postfix install, have one listen on 127.0.0.1 with delay. Have your current postfix install redirect everything it gets to 127.0.0.1 (which should do final delivery), and you can check queue size and shut them down however postfix does it. Hopefully it splits up RCPT TOs, or there's not much point. Doing a single combined delivery to Yahoo is nice, if all your users are trusted. For the record, I don't technically shutdown my qmail queues, I just set remote concurrency to 0. If you completely shutdown qmail-send (the delivery part), the todo doesn't run and anything that comes into that queue via smtp isn't fully processed into where it can be deleted. So if you're spammer is still going strong, a bunch of garbage gets backed up. If you have 20,000 emails backed up, it takes a long time to process :/ Just stopping remote deliveries allows any residual spam to fall into the queue so when you do get to cleaning it up, it doesn't take so long to process. I have another script that deletes the offending user and all emails in both queues with his login. That's why there are 2 queues on one machine - it's a lot easier to clean. Quote:
I do not have per-user queues, everything goes through that one setup, EXCEPT for paid users. They go out a completely different machine, not quite as complex yet - it will be - but spammers don't use fraudulent cards too much, and when they do it's usually pretty obvious. To split free users from paid users, the webmail automatically uses the 'authorized' smtp server based on their service level, and fat client users must specifically change their SMTP server to authorized. That server only allows those higher service levels to use SMTP Auth - without SMTP Auth, there is no relaying of email. A nice addition for me would be an smtproutes-type function that directs emails based on the SMTPAuth name and not the RCPT TO's domain.. This is one area where qmail's modularity could hamper progress - but now that I've thought about it, maybe I can do it ![]() Quote:
![]() IMHO, the more services that implement some sort of blocking like this to prevent user abuse, the better off we'll all be. Rick |
|||
![]() |
![]() |
![]() |
#12 |
Essential Contributor
Join Date: Sep 2006
Location: Ellicott City, MD, USA
Posts: 206
Representative of:
ControlledMail.com |
How do you verify MAIL FROM using DKIM? DKIM has nothing to say about the envelope.
|
![]() |
![]() |
![]() |
#13 |
Member
Join Date: Mar 2007
Posts: 56
Representative of:
Lavabit.com |
We parse the domain from the MAIL FROM address, and then check to see if the sender address in the header uses the same domain and is verifiable using DKIM. If it is, then the bounce message is sent.
|
![]() |
![]() |
![]() |
#14 | ||||
Member
Join Date: Mar 2007
Posts: 56
Representative of:
Lavabit.com |
Incoming SMTP connections go to our custom SMTP server. This SMTP server scans the message using ClamAV, signs it using DKIM, and checks to make sure the user is under their outbound quota (along with a few other policy checks). Assuming everything passes, the message is relayed over an internal network to a Postfix server. Postfix then saves the message to disk, and is responsible for sending it out (or creating a bounce message).
Your theory regarding expanding user's quotas as they build 'reputation' is interesting. I've considered something similar in the past, but run into this problem: new user's often like to send out a bulk e-mail telling people about their new address. If the website says they can send out X messages, and the server blocks them before that limit is reached, they will either complain, or leave. What I'd _like_ to do is run every message through a spam filter, like DSPAM, and then use points. If DSPAM thinks its spam, and the user sends out 200 of them, flag the account for review/locking, etc. The problem is DSPAM requires a lot of resources. (Particularly when it comes to storing the token information.) So processing every outbound message isn't an option right now. (We only let paid user's use DSPAM for that reason.) Quote:
We just switched over to using a new version of our incoming code for SMTP/IMAP/POP connections. Unlike past versions, this version does statistics tracking, and we recently started pulling that data into Cacti. It still needs some tweaking, but we plan to put some of those graphs up on the website. Quote:
Quote:
Quote:
|
||||
![]() |
![]() |
![]() |
#15 | |||||
Senior Member
Join Date: Apr 2003
Posts: 180
Representative of:
VFEmail.net |
Quote:
Quote:
Quote:
![]() Quote:
Quote:
Rick |
|||||
![]() |
![]() |