Catch Spammers on cPanel Servers
Below are the some ways to catch the spammer. But keep in mind Experience makes spam catcher :
=> You should be able to catch the spammer by checking exim_mainlog. To enable extended loggin in exim to trace nobody mails. Try the following tricks.
1. Edit /etc/exim.conf
2. On the second line add:
log_selector = +address_rewrite +all_parents +arguments +connection_reject +delay_delivery +delivery_size +dnslist_defer +incoming_interface +incoming_port +lost_incoming_connection +queue_run +received_sender +received_recipients +retry_defer +sender_on_delivery +size_reject +skip_delivery +smtp_confirmation +smtp_connection +smtp_protocol_error +smtp_syntax_error +subject +tls_cipher +tls_peerdn
Make sure all that comes on a single line.
3. Save and exit
4. Restart Exim
5. tail -f /var/log/exim_mainlog
=> If you fail to catch the spammer by checking exim_mainlig then he is using some other way of spamming and to catch her you will have to try the following steps :
1. Get the message ID from the header of the spam. It should be in format like 1DWJj4-00042i-74.This is the most important point else all thats given below is meaningless
2. grep exim_mainlog with the message ID ( Ex : grep 1DWJj4-00042i-74 /var/log/exim_mainlog )
3. Check the time on which the spam was sent and also check all that is shown after grep.
4. If you find out the domain name or path of the scripts from exim_mainlog then go ahead and suspend the spammer, else proceed to step 5.
5. Use this message ID to check the original message or bounced message in /var/spool/exim/input/. You should see 2 files there, one with -D at end and one with -H at the end. ( Ex : /var/spool/exim/input/4/1DWJj4-00042i-74-D & /var/spool/exim/input/4/1DWJj4-00042i-74-H ) This 2 files will have all the information that was sent in the spam message and if it was sent using mailing list then you will catch the username of spammer in auth_sender part of this files. If it shows nobody then its your bad luck Proceed to step 6.
6. If exim_mainlog shows the spams originating from /tmp of the server then check the files in /tmp of the server. user of the file will be seen as nobody:nobody. Take down the time of creation of file. This time is what we need to find out who uploaded the script. You will need to convert this time into the time format of /usr/local/apache/logs/error_log & then in the format of the domlogs located at /usr/local/apache/domlogs/*
7. for file in /usr/local/apache/domlogs/*; do cat $file |grep "example"; done; ( you cannot do direct grep for the query here as it will give error that the arguement list is too long )
8. If the results in step 2 have shown some domain name or some username in common as sender of the spam but now you dont see that domain name on the server then check /var/cpanel/accounting.log to see if that account has been terminated from the server ( Ex : grep ebayspammer.com /var/cpanel/accounting.log )
=> Major spamming issues are caught using the time of sending the spam. Use your logic to convert the time of sending the spams to the time format of respective log files (log files such as var/log/exim_mainlog, /usr/local/apache/domlogs/*, /var/log/formmail.log, /var/spool/exim/input/*/*, )
=> If you fail to catch active spamming on the server in short time then rename /etc/exim.conf and killall -KILL exim. If this has not stopped the process then check the running MySQL Server processes and stop MySQL Server if needed. If no results then stop http service or find the process ID and kill it.
|