Email Policy

SysteMajik.com actively discourages Spam and email sent from incorrectly configured servers. Legitimate email from correctly configured servers should have little problem being delivered. We believe we are relatively complaint with  RFC 2505 – Anti-Spam Recommendations for SMTP MTAs and other RFCs mentioned at the end of this document.

This article covers our  policy implementation for incoming and outgoing email.  These policies apply to all email destined to or originating from systemajik.com,  toucantango.com, and other domains for which we may handle email. Continue reading

Posted in Electronic Mail, Policies | Tagged , , | 2 Comments

Transparent Squid Proxy

Over the holidays, I had a user experience and attempted browser hijacking.  It appeared to have bypassed my squid proxy.   My updated configuration now sends all web access via squid.  The old firewall rules, that allowed direct access to the Internet, have been replaced with a transparent Squid proxy.  This runs on my existing Squid Proxy using another port. Continue reading

Posted in System Administration | Tagged , , , | Leave a comment

Implementing IPv6 6to4 on OpenWRT

As the IPv4 addresses begins to run out I finally invested the time to investigate and implement IPV6. As my ISP has not yet announced availability of IPV6 addresses I chose to implement a 6to4 tunnel. This is simple to implement, and currently well supported. My external firewall is an ASUS wireless router running OpenWRT.  As I have a static IP address, my implementation is simpler than is required by a dynamic address.  Support for dynamic IPv4 addresses is not covered here, but this configuration should work as long as your address does not change.

I initially created a 6to4 implementation without a firewall.  Then to secure my systems I implemented a firewall using Shorewall6-lite.  Until I figured out how to configure the 6tunnel script, I used the command line to bring up the network.  This documentation uses of the 6tunnel script instead of the manual commands.  My configuration does not yet include any IPsec functionality. Continue reading

Posted in System Administration | Tagged , , , | Leave a comment

Manual networking for KVM

I found the networking configured by libvirt (KVM) did not allow me to firewall the network as I desired.  I use Shorewall for firewalling, and DNSMasq for internal DNS and DHCP.  After a little experimentation, I found that I could configure Ubuntu to create the network.  This allows me to get a reliable firewall configuration with a virtual DMZ.

The virtual hosts are assigned to a bridge, and only have connectivity to other networks as defined in the Shorewall configuration.  A single DNSMasq server provides DSN an DHCP services for all virtual servers, as well as the network the server is connected to.  The network and firewall configuration remains consistent even as servers are cycled up and down.  An additional bridge was created to support virtual servers in the DMZ zone. Continue reading

Posted in System Administration | Tagged , , , , | Leave a comment

Remote Desktops with VNC and RDP

I find it useful to have a remote desktop to my Ubuntu systems.   On secure connections I have been using VNC via xinetd.  Connections with xrdp where possible, but it wasn’t launching the desktop for the connection.  For secure terminal connections, I stick with with ssh.  All these connection have a login at the start of the connection. This is how I do it. Continue reading

Posted in System Administration | Tagged , , , , | 4 Comments

Implementing DKIM with Exim

DomainKeys Identified Mail (DKIM) provides a method to validate the origin of an e-mail. DKIM also provides some protection against tampering. Unlike SPF, this validation applies to the contents of the message which are modified when it is signed. Like SPF, the information required for validation is added to DNS.

This article covers signing outgoing email for the domain.  This implementation is based on Exim4 running on Ubuntu.  The DNS records are deployed using bind.  The information presented here should be applicable to any Exim implementation.  Consult the Exim DKIM page for more information.

I have found a high percentage of broken implementations on legitimate sites.  Some have not published there public keys, and others don’t validate.  As a result, I am still working on creating validation rules.  However, SpamAssassin is assigning credit for properly signed email and penalizing incorrect DKIM implementations.   Continue reading

Posted in Electronic Mail | Tagged , , , , , , | 5 Comments

Signing Return Path Addresses with Exim

I have been receiving a fair amount of Spam from an e-mail forwarder.  They are unwilling to correct their problems.  Much of the Spam they forward is the form of bounce notifications.  Attempting to reject other Spam resulted in more notifications.  To control this Spam I implemented signed return path addresses.  As a side benefit, I am also rejecting bogus notifications sent directly to me.

Signing my return path allows me to reject faked notification e-mail.  The SMTP standard requires that no email sent with a null return path “<>” (aka Envelope Sender) be returned.  Its purpose is for allow for notifications about existing messages.  These includes notifications such as address unknown, message delivered, and message read.  E-mail notification which are not about a previously sent message can be refused . Signing the return path allowed me to reject such invalid notifications. Continue reading

Posted in Electronic Mail | Tagged , , , , , | Leave a comment

Cfengine 2 for Debian and Ubuntu

Cfengine is a declarative system configuration tool.  This helps apply standards to system configuration. The configuration files specify the desired configuration and the engine applies these specifications to the system.  It is useful to:

  • Distribute configuration files;
  • Install standard packages (including on Debian and Ubuntu with code provided here);
  • Cleanup old files; and
  • Ensure certain programs are/are not running.

This documentation applies to Cfengine version 2. . The latest version has made significant changes to the scripting structure, but maintains the capability to run the version 2 format files. Continue reading

Posted in System Administration | Tagged , , , | Leave a comment

Firewalling Google Chat and Skype

To enable for Internet chat I set up Google Chat and Skype.  My firewall rules have been extremely restrictive with only known and approved services allowed to connect.  Google Chat installed with no noticeable impact to the firewall. Things did not go so well with Skype.

The installation of Skype resulted in lots of warnings on the firewall.  Outgoing tests worked with only port 80 and 443 open.  Skype’s peer-to-peer approach  requires at least one port be opened incoming and and a large range of ports outgoing.  They specify all ports over 1024 should be open.  Their preferred mode seems to be to use uPnP to dynamically modify the firewall.   They do allow you to attempt to set  fixed incoming port which is also used for some outgoing UDP traffic. Continue reading

Posted in System Administration | Tagged , , , , | 1 Comment

Setting up Squid Proxy on Ubuntu

Squid is a proxy service for HTTP and other requests.  This article covers installing it and configuring it to run on Ubuntu as a transparent proxy.  This documentation includes configuring Web Proxy Auto-Discovery (WPAD) via DHCP and DNS.

I run a heterogeneous configuration.  This provided a number of challenges as various implementations of WPAD were encountered.  These each seem to require something different.  The final configuration works for Ubuntu, Windows X/P, and Windows Vista.  Both Internet Explorer and Firefox configured correctly. Continue reading

Posted in System Administration | Tagged , , , , , , | 1 Comment