Fixing your dedicated IP sending reputation with outlook/hotmail

If you have a mail server with your own dedicated address that you host your own web sites on and send your own emails then you could have your emails rejected by Microsoft properties such as hotmail and outlook.com for no reason other than the IP address space you are in (e.g. the /24 ) has had spammers even though your specific IP address doesn’t SPAM.

You’ll get a rejected message such as,

550 5.7.1 Unfortunately, messages from [x.x.x.x] weren't sent. Please contact your Internet service provider since part of their network is on our block list (AS3140). You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors. [DB5EUR03FT061.eop-EUR03.prod.protection.outlook.com]

All is not lost as you can have the IP mitigated and removed from the block. To do this you’ll have to do the following,

  1. Make sure that your SPF records are acceptable. Without valid SPF records then you’ll find that your emails will be marked as SPAM by servers such as gmail anyway.
  2. Register your IP addresses in the Smart Network Data Services program (SNDS). From this you can monitor the ‘health’ and reputation of your registered IPs by providing data about traffic such as mail volume and complaint rates seen originating from your IPs.  It is in the tools of the SNDS that you will see which of your IP addresses are blocked. To register, visit http://postmaster.live.com/snds/
  3. Then register for the Junk Email Reporting program (JMRP) so that when an Outlook.com user marks an email as “junk”, you will get a copy of the mail. This will allow you to see what you are sending is being marked as junk and to track down email traffic you did not send. To join, please visit http://support.msn.com/eform.aspx?productKey=edfsjmrpp&page=support_home_options_form_byemail&ct=eformts
  4. Remember to CONFIRM the SNDS/JMRP agreement that is sent to your registered email, This is an electronic signature using the Docusign system.
  5. Once you have done this then leave this for 48 hours and confirm that you are not getting any SPAM reports. It is unlikely anyway if it is just an IP that is blocked but the SNDS/JMRP changes take 24-48 hours to propagate.
  6. Now you can request a mitigation of your IP block using the following link, https://support.microsoft.com/en-us/getsupport?oaspworkflow=start_1.0.0.0&wfname=capsub&productkey=edfsmsbl3Fill out the details demanded by the form and submit. Fairly quickly within an hour you should get a number of emails posted to your contact email and hopefully,  if your IP address was just accidentally been discriminated against because of the address block, get a reply that your IP address has been conditionally unblocked (“These IP(s) have been unblocked, but may be subject to low daily email limits until they have established a good reputation.“) . It’ll still show up blocked in SNDS for another day as the blocked list is only updated daily. After a day then your IP should disappear from the SNDS system.

    If you are bulk mailing people then it is simpler and far easier to do that via a bulk emailer such as Mailchimp or  Mailerlite and to not use your own server. Leave your server for your own individual emails.

Removing dust from CPU coolers works

I’ve always been loathe to clean the insides of computers but then I have spent most of my life with systems in machine rooms with filtered air. Taking machines down to remove dust bunnies makes no sense in a carrier-grade environment where you prevent dust in the first place and you do anything to protect uptime. The retail-domestic environment is rather different. You can’t filter dust unless you exclude humans and pets as dust is for the most part bits of human i.e. skin that we slough off, as well as dirt, hair and pet fur. Yes, dust is PEOPLE !

So what evidence do I have that it can make a difference ? I now try and log CPU and hard disk temperatures for any machine I manage to my central Pandora FMS system. Microsoft Windows is very poor in exposing the CPU temperature sensors with no proper support at all via WMI so you must rely on 3rd party programs of which few have a command line interface to allow cron-like collection and central logging. GNU/Linux machines on the other hand have the lm-sensors package and that generally works for all modern machines and gives a command-line access to the CPU temperatures (use the hddtemp package for hard disks). Here is a graph of a Ubuntu 11.04 based server we have in a kitchen environment,

About 3 months ago the average CPU temperature was about 30 degrees C (86 F) but this has trended up and was now about 44 degrees C (111 F) when idle. So for a spring-clean I decided to open the case and clean it out. There wasn’t a massive amount of dust but the AMD stock cooler vanes were clogged. Just used a vacuum cleaner to suck up the dust. Hold the CPU cooler fan to stop it from manically spinning around and just put the vacuum cleaner on maximum and pass over the cooler fan. The dust should slowly suck out.

As you can see it made a dramatic change to the CPU temp with a 14 degree C drop  (about 25 F drop). This is now the 3rd retail-domestic machine that I have cleaned and observed the side-effects and it is certainly worthwhile as long as you have recorded the CPU temperature over time to give yourself (and the client) the objective evidence that this is a necessary job.

FreeSWITCH show command syntax help missing show registrations

I was converting my Asterisk commands to the closest equivalent FreeSWITCH command so I could display the data in the FMS Pandora Console. Nothing fancy here – just totals of registrations and current call counts (and channels – a subtle difference as a channel is one leg of a call). I was after numbers of registrations but the FreeSWITCH command line interface (fs_cli) didn’t list this as an option when you did a help on the show command.

But it really does have a show registrations with a switch for the totals i.e. show registrations count only the module source code didn’t have this in its help text. I’ll log it as a trivial bug.

Here is my Pandora FMS pandora_agent.conf snippet,

module_begin
module_name FSRegnsCount
module_type generic_data
module_exec  /usr/local/freeswitch/bin/fs_cli -x "show registrations count" | awk '{if (match($0,"total")) { printf("%d",$1);}}'
module_description FreeSWITCH registrations
module_end

I will be adding more of thee snippets of Pandora agent configs to a special page on our web site here – http://www.openmutual.org/resources/pandora-fms-agent/

The “show” command help syntax is just a #define in  /usr/local/src/freeswitch/src/mod/applications/mod_commands/mod_commands.c so easy to fix.

P2P and IPv6

Curious I was looking at the connections from a GNU/Linux machine running a BitTorrent (Transmission) client and I noticed about 50% of the connections were to IPv6 peers for a particular tracker.

The IPs were a mixture of freenet (probably due to the very simple gogoc package use – this is the Gateway6 client that was in a package called gw6c or tspc)  plus others but the most were Freenet.

Why is this ? Well with the gogoc package then you get an anonymous freenet IPv6 address for your client machine without configuring a thing. From a corporate point of view this does add an extra layer of complexity to managing internet traffic to and from your LANs. You may block P2P traffic but P2P over IPv6 tunnels may be leaking through.

Pandora FMS migration

We’ve been running this for around 6 months on a local test server. We’re currently in the process of migrating clients and servers to logging to our openmutual.org server.

We have built up a number of modules to monitor certain interesting items on eJabberd and Asterisk. Currently looking at status for Freeswitch (which is what we use locally to handle internal calls).