Trace 'nobody' spammer
Can someone(s) please explain every possible method available to trace a 'nobody' spammer WITHOUT having to enable phpsuexec support (various reason why I cannot enable this at this time)The spammer on the server is sending out via some script (I assume) to other sites' forms and even blogs. It is going out via nobody / server.hostdomain.com
Please list every possible method to trace this idiot. I'm having a difficult time doing this. I cannot check "prevent user nobody from sending mail" in WHM for obvious reasons, many clients use sendmail and other nobody scripts in their forums, blogs, etc. for non spam purpose of course
I have the following on the server
* Track the origin of messages sent though the mail server by adding the X-Source headers
* Silently Discard all FormMail-clone requests with a bcc: header
* Include a list of Pop before SMTP senders in the X-PopBeforeSMTP header
* Default catch-all/default address behavior for new accounts [fail]
EXIM Config:
* Always set the Sender: header
* Verify the existance of email senders
* Use callouts to verify the existance of email senders
* Discard emails for users who have exceeded their quota instead
In WHM > EXIM editor
(first box)
Code:
untrusted_set_sender = * local_from_check = false local_sender_retain = true timeout_frozen_after = 2d ignore_bounce_errors_after = 12h domainlist rbl_blacklist = lsearch;/etc/rblblacklist domainlist rbl_bypass = lsearch;/etc/rblbypass hostlist rbl_whitelist = lsearch;/etc/relayhosts : partial-lsearch;/etc/rblwhitelist message_size_limit = 5M log_selector = +arguments +subject log_selector = +all timeout_frozen_after = 2d ignore_bounce_errors_after = 12h acl_not_smtp = acl_check_pipe
Code:
#!!# ACL that is used after the RCPT command ##Added Sendmail Bcc and Cc Spam Removal## acl_check_pipe: #drop condition = ${if match {$message_body}\ #{\N.*\ #MIME-Version:.*\N}{true}} #log_message = "Spam MIME-Version:$header_subject: " #drop condition = ${if match {$message_body}\ #{\N.*\ #Reply-To:.*\N}{true}} #log_message = "Spam Reply-To:$header_subject: " # This will also block attachments # drop condition = ${if match {$message_body}\ # {\N.*\ # Content-Type:.*\N}{true}} # log_message = "Spam: Content-Type: $header_subject: " # This will also block attachments # drop condition = ${if match {$message_body}\ # {\N.*\ # Content-Transfer-Encoding:.*\N}{true}} # log_message = "Spam: Content-Transfer-Encoding: $header_subject: " drop condition = ${if match {$message_body}\ {\N.*\ [Bb][Cc][Cc]:.*\N}{true}} log_message = "Spam: BCC: $header_subject: " drop condition = ${if match {$message_body}\ {\N.*\ [Cc][Cc]:.*\N}{true}} log_message = "Spam: CC: $header_subject: " accept accept ##End of Additions ## check_recipient: # Exim 3 had no checking on -bs messages, so for compatibility # we accept if the source is local SMTP (i.e. not over TCP/IP). # We do this by testing for an empty sending host field. accept hosts = : drop hosts = /etc/exim_deny message = Connection denied after dictionary attack log_message = Connection denied from $sender_host_address after dictionary attack drop message = Appears to be a dictionary attack log_message = Dictionary attack (after $rcpt_fail_count failures) condition = ${if > {${eval:$rcpt_fail_count}}{3}{yes}{no}} condition = ${run{/etc/exim_deny.pl $sender_host_address }{yes}{no}} !verify = recipient # Accept bounces to lists even if callbacks or other checks would fail warn message = X-WhitelistedRCPT-nohdrfromcallback: Yes condition = \ ${if and {{match{$local_part}{(.*)-bounces\+.*}} \ {exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}/config.pck}}} \ {yes}{no}} accept condition = \ ${if and {{match{$local_part}{(.*)-bounces\+.*}} \ {exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}/config.pck}}} \ {yes}{no}} # Accept bounces to lists even if callbacks or other checks would fail warn message = X-WhitelistedRCPT-nohdrfromcallback: Yes condition = \ ${if and {{match{$local_part}{(.*)-bounces\+.*}} \ {exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}_${lc:$domain}/config.pck}}} \ {yes}{no}} accept condition = \ ${if and {{match{$local_part}{(.*)-bounces\+.*}} \ {exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}_${lc:$domain}/config.pck}}} \ {yes}{no}} #if it gets here it isn't mailman #sender verifications are required for all messages that are not sent to lists require verify = sender accept domains = +local_domains endpass #recipient verifications are required for all messages that are not sent to the local machine #this was done at multiple users requests message = "The recipient cannot be verified. Please check all recipients of this message to verify they are valid." verify = recipient accept domains = +relay_domains warn message = ${perl{popbeforesmtpwarn}{$sender_host_name}} hosts = +relay_hosts accept hosts = +relay_hosts warn message = ${perl{popbeforesmtpwarn}{$sender_host_address}} condition = ${perl{checkrelayhost}{$sender_host_address}} accept condition = ${perl{checkrelayhost}{$sender_host_address}} accept hosts = +auth_relay_hosts endpass message = $sender_fullhost is currently not permitted to \ relay through this server. Perhaps you \ have not logged into the pop/imap server in the \ last 30 minutes or do not have SMTP Authentication turned on in your email client. authenticated = * deny message = $sender_fullhost is currently not permitted to \ relay through this server. Perhaps you \ have not logged into the pop/imap server in the \ last 30 minutes or do not have SMTP Authentication turned on in your email client. #!!# ACL that is used after the DATA command check_message: require verify = header_sender accept
nobody@lsearch;/etc/localdomains "${if !eq {$header_From:}{}{$header_sender:$header_From:}fai l}" Fs
EXIM Dictionary ACL is installed also