Tuning Linux CPU Performance

A recent kernel change broke my CPU performance tuning.   I have an AMD processor which presents 4 cores to the kernel.   The process in this article should work for Intel processors although the governors and cpu settings tree may be different.   Different kernels may also have different settings.   The current kernel allows setting the governor per CPU, but for an earlier kernel the setting was global.

My system is mostly idle, and I want it to be as quiet as possible.  However, from time to time it is busy and I want processing to be as fast as possible.   I use a small block of shell code to select a governor and ignore niced programs (such as boinc) in selecting processor speed. Continue reading

Adding SHA-2 to tinyca

Google has announced a sunset for SHA-1 certificate signatures in Chrome. SHA-2 (aka SHA-256, SHA-384, and SHA-512) is the remaining option for certificate signatures. I decided to upgrade my certificates to SHA-2 (256 bits). However, when I tried to use tinyca2 to generate a SHA-2 certificate, I found it was not supported.

As tinyca2 is a Perl package, I looked at the code to see how difficult it would be to update. The code is easy to read and well modularized. Adding the SHA-2 involves changes to the GUI, REQ, CERT, and OpenSSL components. I updated six files, although support can be added with fewer.

Patches are attached at the end of this post.  An additional patch to apply the selected digest when creating sub-CAs (thanks to Cédric Dufour) has been included.
Continue reading

Disabling SSLv3 to block Poodle

The new Poodle vulnerability lead me to disable SSLv3 on my Ubuntu server. I have TLS/SSL enabled on three services: apache2, exim4, and dovecot2. Each service required a different method to disable SSLv3.

Ubuntu uses configuration files split into small pieces. The method should apply to other distributions, although the configuration files may be arranged differently. Continue reading

Disable TraceClassUnloading in Java6

I recently discovered logs filling up  with log messages for classes being unloaded during garbage collection.   After a little research, I found that the TraceClassUnloading switch gets turned on by the Xloggc switch.   After a little testing I found, that this can be resolved by adding the argument -XX:-TraceClassUnloading after the -Xloggc argument. Continue reading

Hostnames for eximstats Rejections

I use eximstats to report my daily email traffic. I have a fairly high rate of rejections, and wanted hostnames listed in the rejection reports.    To resolve this I developed a patch to capture the hostname related to the IP address, and add this data to the rejection reports.

The enhanced list saves me the effort of looking up IP addresses that were repeatedly addressed.   Occasionally, these are from legitimate servers that have been misconfigured.  DNS problems are often the cause. Continue reading

Faking IMAP for Exchange Email

For years I have had problems getting IMAP access to exchange servers.  Many organizations don’t enable IMAP on their Exchange servers, and others don’t do it right.   I recently came across a solution that  works with the Microsoft WebMail interface to provide an IMAP and/or POP3 access to the mail servers.  This allows use of IMAP mail clients like Thunderbird or Microsoft Live Mail.

This article describes the solution as I have implemented it.  It uses the open source DavMail Gateway written in Java.  It accesses a WebMail server and provides access via standard protocols like IMAP, SMTP, and CalDav.   This program can be configured for personal use on a desktop, or group use on a server.  When configuring a server, it is recommended that you provide SSL keys so that secure protocols can be used. Continue reading

Providing IPv6 DNS resolver data with radvd

One nagging issue I had with IPv6 was how to distribute DNS server addresses and search lists to my clients.   It took a little research to find the solution.  On IPv4 I had been using DHCP to do this, but DHCP didn’t seem to be right approach for IPv6. radvd can be used to distribute both types of data.  The following article covers setup on Ubuntu and OpenWRT.  The Ubuntu (Debian) examples below should work with any distribution using/etc//radvd.conf to configure radvd. Continue reading

Detecting Email Server Forgery

Most of the spam I see has been sent by servers forging or otherwise obscuring their server identity.  RFC2505 states that the server identity and sender address are easily forged.  Of these, it is easiest to identify server forgery.  Very little, if any, of the personal email has a forged server identity.  Unfortunately, legitimate bulk and automated email often shows signs of server identity.   If you deliver either of these types of email this article will provide information of fixing the situation.

The rules here apply email originating from the Internet only.    Mail User Agents submitting email are expected to violate these rules.  MUAs should use an authenticated encrypted connection to the Submission port (576).  Relay servers should not apply these rules to connections originating form the local network. Continue reading

Securing your Email Reputation with SPF

SPF (Server Policy Framework) is a simple means to limit the ability of  others to forge your identity in email.  I first implemented it after a forged identity under my domain was used to send Spam.  Once SPF was configured,  the bounce messages quickly dropped off.

Although not as frequently implemented as sender address checks, SPF can  be used to prevent forgery of the HELO identity.  My mail server uses SPF to check the Identity of the server.  This is easier to configure and more reliable than checking the domain in the Mail from address.  Even though I treat Neutral and Softfail policies as a Fail policy, I have not detected any false negatives.   I verify both the address returned by the PTR record for the host and the address in the HELO command.  This is primarily because the PTR record is more likely to have a valid domain. Continue reading

Setting Up BackupPC on Windows

My original intent in setting up BackupPC was to be able to backup my laptops. The mainly run Windows, and have a lot of shared files. Therefore I wanted a backup solution which handled de-duplication. BackupPC was just what I needed. I have already posted an article about Setting Up BackupPC on Ubuntu that includes setting up a server.

This article covers setting up BackupPC on Windows using rsyncd as the protocol.   (I tried using Samba, but didn’t like the results with Windows Home editions.) This is done with an extremely minimal cygwin install available from the BackupPC site on SourceForge.  The backups described here are not designed for bare metal recovery.   They should include all the user’s files, and some of the configuration data for installed applications. Continue reading