When I need a new tool, I often code it in Python. Often, command line options are useful. Sometimes it is possible to have a fixed set of parameters, but this is not very flexible. Fortunately, Python has standard libraries to handle parsing command lines. There are three libraries providing varying capabilities. Some of the systems I run on have older versions like Jython 2.1 or Python 2.6. This limits which libraries I can use without backporting libraries
This document provides examples for four command line processing options. The examples are for a program that processes files and has an optional argument to report the execution time. Continue reading
I often see posting asking about running a mail server on a Dynamic IP address. Twenty years ago I started running my server on a dynamic IP address. However, times have changed, and it is more difficult to do so. However, there are mail server roles that work reasonable well on a dynamic IP address. Continue reading
There are many tools available that will allow a programmer to create log entries. I originally worked with log4j, but have recently been working with logback. I am also working with Jython and am looking at Python’s logging framework. Used well they can make log analysis simple and provide a rich tool for resolving issues. Used poorly they can generate a mass of relatively useless information.
While these loggers have a good hierarchy of levels, the documentation tends to be lacking in guidance on when to use which level. The following document contains the recommendations I have gathered over the years. Continue reading
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
The new Poodle vulnerability lead me to disable
SSLv3 on my Ubuntu server. I have TLS/SSL enabled on three services:
dovecot2. Each service required a different method to disable
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
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
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
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
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
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