<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>/dev/root</title>
	<atom:link href="http://devroot.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://devroot.org</link>
	<description>Rants of a grumpy sysadmin living in Switzerland.</description>
	<pubDate>Thu, 13 Nov 2008 15:21:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>Swisscom roaming GPRS data fraud</title>
		<link>http://devroot.org/2007/12/18/swisscom-roaming-gprs-data-fraud/</link>
		<comments>http://devroot.org/2007/12/18/swisscom-roaming-gprs-data-fraud/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 14:49:25 +0000</pubDate>
		<dc:creator>lynxman</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Gadgets]]></category>

		<category><![CDATA[Networking]]></category>

		<category><![CDATA[gprs]]></category>

		<category><![CDATA[mobile]]></category>

		<category><![CDATA[roaming]]></category>

		<category><![CDATA[swisscom]]></category>

		<guid isPermaLink="false">http://devroot.org/2007/12/18/swisscom-roaming-gprs-data-fraud/</guid>
		<description><![CDATA[Recently as a good Apple geek I got an iPhone on my last trip to the US, and got it unlocked so I could use it with my Swisscom SIM Card.
I&#8217;ve been a happy camper all along, got a nice business data package (50Mb per month) and also the roaming preferential package (CHF 5 per [...]]]></description>
			<content:encoded><![CDATA[<p>Recently as a good Apple geek I got an iPhone on my last trip to the US, and got it unlocked so I could use it with my Swisscom SIM Card.</p>
<p>I&#8217;ve been a happy camper all along, got a nice business data package (50Mb per month) and also the roaming preferential package (CHF 5 per month) so the price per Mb of transfer while roaming would be lower (CHF 3 instead of CHF 14).</p>
<p>The iPhone works wonderfully in Switzerland&#8217;s Swisscom network, the phone takes advantage of the extended EDGE Swisscom network so I can fully use Google Maps or check the weather or my e-mail no matter where I am, even in the middle of the Alps, all of this joy turns into a nightmare when roaming in foreign countries.</p>
<p>This last month I&#8217;ve been visiting the UK and Spain for business affairs, being confident of the iPhone&#8217;s ability to measure EDGE/GPRS traffic I used Google Maps to guide myself around London city center and to find good restaurants in Barcelona, all of this only consumed 1.9Mb of transfer (800kb upstream and 1.1Mb downstream) so I was expeting a 2Mb or a 3Mb charge maximum.</p>
<p>I&#8217;ve got a 28.6 Mb charge, which amounted to CHF 140 approximately.</p>
<p>To my disbelief I called immediately Swisscom customer line, even if the helpdesk was a bit harsh at first (calling me a liar for saying that the bill was wrong) I finally got them to pass me through to a technical support person, which helpfully investigated the matter.</p>
<p>I&#8217;ve got a call back from the technical support to confirm that the bill amounted to 28.6Mb due to the fact that Swisscom roaming partnerships force Swisscom to charge a minimum of 30kb per session (up t0 a minimum of 300kb per session in Spain!!!), and they consider a session each time the telephone connects to the GPRS network, so this means that each time that I was checking Google Maps in Spain I was being billed 300kb even if I was using 1kb or 2kb maximum, a shameful ripoff.</p>
<p>Even if I kept complaining about this fact pointing out that it&#8217;s not my problem that Swisscom has such a bad partnership deals of which I were not warned about at any time, I&#8217;m now forced to pay the full bill and I&#8217;ve been told by the technician that my telephone is defective and I should get another one that only connects into the GPRS network once and leave the connection open so I can avoid multiple charges, so it looks like now an iPhone is defective in Swisscom eyes, amazing.</p>
<p>This is the kind of treatment and very user unfriendly deals that screws up us European users, and the kind of torment that Canadian users of Rogers suffer as well, this telephone is clearly ahead of its time and it looks like it&#8217;s way ahead the comprehension of my mobile phone network, which is not up to the challenge of making a user friendly comprehensible charging data network.</p>
<p>Shame on you Swisscom.</p>
]]></content:encoded>
			<wfw:commentRss>http://devroot.org/2007/12/18/swisscom-roaming-gprs-data-fraud/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Configuring samba server in Mac OS X Leopard</title>
		<link>http://devroot.org/2007/10/26/configuring-samba-server-in-mac-os-x-leopard/</link>
		<comments>http://devroot.org/2007/10/26/configuring-samba-server-in-mac-os-x-leopard/#comments</comments>
		<pubDate>Fri, 26 Oct 2007 13:56:06 +0000</pubDate>
		<dc:creator>lynxman</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[MacOS X]]></category>

		<category><![CDATA[Networking]]></category>

		<category><![CDATA[Unix]]></category>

		<category><![CDATA[Leopard]]></category>

		<category><![CDATA[samba]]></category>

		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://devroot.org/2007/10/26/configuring-samba-server-in-mac-os-x-leopard/</guid>
		<description><![CDATA[If you don&#8217;t have Mac OS X Leopard server you have a Samba implementation limited mostly to home directories and a lot of borking around, if you&#8217;re a typical Unix Admin as I am you&#8217;ll want to take things in your hands and add the shares you want yourself in the command line.
Leopard uses Samba [...]]]></description>
			<content:encoded><![CDATA[<p>If you don&#8217;t have Mac OS X Leopard server you have a Samba implementation limited mostly to home directories and a lot of borking around, if you&#8217;re a typical Unix Admin as I am you&#8217;ll want to take things in your hands and add the shares you want yourself in the command line.</p>
<p>Leopard uses Samba 3 and its own authentication and locking methods connected to  its auth layer and afp locking so a typical samba config file won&#8217;t work, it also has a dynamically modificable part which is configured via System Preferences.</p>
<p>This is not the smartest method neither prepared for faint hearted people, but it&#8217;ll work if you&#8217;re used to Linux.</p>
<p>If you had samba already working on Tiger the changes are only at locking, vfs and user auth, which is what enables all the new Leopard system to work properly.</p>
<p>This are the exact changes from Tiger to Leopard</p>
<p><code><br />
# Changes affecting user mapping and authentication<br />
passdb backend = odsam<br />
idmap domains = default<br />
idmap config default: default = yes<br />
idmap config default: backend = odsam<br />
idmap alloc backend = odsam<br />
idmap negative cache time = 5<br />
obey pam restrictions = yes<br />
security = USER<br />
auth methods = guest odsam<br />
ntlm auth = yes<br />
lanman auth = no<br />
use kerberos keytab = yes<br />
com.apple: lkdc realm = LKDC:SHA1.xxx<br />
realm = LKDC:SHA1.xxx<br />
</code><br />
<code><br />
# Changes affecting the FS interaction and locks<br />
vfs objects = darwinacl,darwin_streams<br />
use sendfile = yes<br />
ea support = yes<br />
darwin_streams:brlm = yes<br />
enable core files = yes<br />
max smbd processes = 10<br />
log level = 1<br />
map to guest = Bad User<br />
</code></p>
<p>You want to take a look at the realm SHA1 strings since they&#8217;re dependant on your installation, you can always check the new /etc/smb.conf in Mac OS X Leopard and then merge it up with your previous config, or replace the config as I did and just add this.</p>
<p>The Leopard samba configuration is brilliant, but at the same time limited to push you to buy the Server version, at the same time it&#8217;s interesting to play with the includes it adds too, but this at least will get your previous samba config out and running fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://devroot.org/2007/10/26/configuring-samba-server-in-mac-os-x-leopard/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Optimize network throughput on your Apple TV</title>
		<link>http://devroot.org/2007/05/01/optimize-network-throughput-on-your-appletv/</link>
		<comments>http://devroot.org/2007/05/01/optimize-network-throughput-on-your-appletv/#comments</comments>
		<pubDate>Tue, 01 May 2007 21:35:43 +0000</pubDate>
		<dc:creator>lynxman</dc:creator>
		
		<category><![CDATA[MacOS X]]></category>

		<category><![CDATA[Wireless]]></category>

		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Apple TV]]></category>

		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://devroot.org/2007/05/01/optimize-network-throughput-with-appletv/</guid>
		<description><![CDATA[This is specially helpful if you are using your Apple TV wireless adapter instead of plugging it directly to the network with an Ethernet cable.
This small tweak assumes that you already have sshd access to your Apple TV, if not please check out AwkwardTV on how to do that.
I had some problems watching HD DivX [...]]]></description>
			<content:encoded><![CDATA[<p>This is specially helpful if you are using your Apple TV wireless adapter instead of plugging it directly to the network with an Ethernet cable.</p>
<p>This small tweak assumes that you already have sshd access to your Apple TV, if not please check out <a title="AwkwardTV" href="http://www.awkwardtv.org/" target="_blank">AwkwardTV</a> on how to do that.</p>
<p>I had some problems watching HD DivX files in my AppleTV, they were skipping frames and freezing in the most awkward moments, I have all of my files in a mac mini and shared on the network using AFP. The files are mounted in the Apple TV using the <a title="ATVFiles" href="http://plugins.awkwardtv.org/det.php?p=atvfiles" target="_blank">ATVFiles</a> plugin and the <a title="aTV-ShareMounter" href="http://plugins.awkwardtv.org/det.php?recordID=vfxshare" target="_blank">aTV-ShareMounter</a> plugin.</p>
<p>What needs to be added to give the network buffer enough buffer space on the network is tweak the kernel options at startup, that can be done as in Mac OS X editing the file <em>/etc/sysctl.conf</em> which in the Apple TV version of Mac OS X does not exist by default, you&#8217;ll have to create it, don&#8217;t worry I&#8217;ll put here two quick ways to do it.</p>
<p><em><strong>How to edit /etc/sysctl.conf (if it does not exist)</strong></em></p>
<p><strong>First Option - The fast kamikaze strategy</strong> (will work for everybody, but be really careful!).</p>
<p><em>echo &#8220;kern.ipc.somaxconn=512&#8243; &gt; /etc/sysctl.conf<br />
echo &#8220;net.inet.tcp.mssdflt=1460&#8243; &gt;&gt; /etc/sysctl.conf<br />
echo &#8220;net.inet.tcp.sendspace=98304&#8243; &gt;&gt; /etc/sysctl.conf<br />
echo &#8220;net.inet.tcp.recvspace=98304&#8243; &gt;&gt; /etc/sysctl.conf<br />
echo &#8220;kern.ipc.maxsockbuf=1048576&#8243; &gt;&gt; /etc/sysctl.conf<br />
echo &#8220;net.inet.udp.maxdgram=57344&#8243; &gt;&gt; /etc/sysctl.conf<br />
echo &#8220;net.inet.udp.recvspace=42080&#8243; &gt;&gt; /etc/sysctl.conf<br />
echo &#8220;net.local.stream.sendspace=98304&#8243; &gt;&gt; /etc/sysctl.conf<br />
echo &#8220;net.local.stream.recvspace=98304&#8243; &gt;&gt; /etc/sysctl.conf<br />
echo &#8220;net.inet.tcp.delayed_ack=0&#8243; &gt;&gt; /etc/sysctl.conf<br />
echo &#8220;net.inet.tcp.rfc1323=1&#8243; &gt;&gt; /etc/sysctl.conf<br />
echo &#8220;net.inet.tcp.rfc1644=1&#8243; &gt;&gt; /etc/sysctl.conf<br />
echo &#8220;net.inet.tcp.newreno=1&#8243; &gt;&gt; /etc/sysctl.conf</em></p>
<p><strong>Second Option - The slow wise monk strategy</strong> (this will work in all cases)</p>
<p>Edit a sysctl.conf in your computer (just be sure that if you&#8217;re in a Posix system you&#8217;re not editing your local <em>/etc/sysctl.conf</em>).</p>
<p>Add these values to the file</p>
<p><em>kern.ipc.somaxconn=512<br />
net.inet.tcp.mssdflt=1460<br />
net.inet.tcp.sendspace=98304<br />
net.inet.tcp.recvspace=98304<br />
kern.ipc.maxsockbuf=1048576<br />
net.inet.udp.maxdgram=57344<br />
net.inet.udp.recvspace=42080<br />
net.local.stream.sendspace=98304<br />
net.local.stream.recvspace=98304<br />
net.inet.tcp.delayed_ack=0<br />
net.inet.tcp.rfc1323=1<br />
net.inet.tcp.rfc1644=1<br />
net.inet.tcp.newreno=1</em></p>
<p>Copy it to your Apple TV through scp and make sure it ends up in its correct position at <em>/etc/sysctl.conf</em> on your Apple TV</p>
<p>The changes you do will be available on the next reboot, I find it better to do it this way so  you&#8217;re 100% sure that all the changes are loaded at the same time.</p>
<p>I hope this solves <a title="Leo Laporte" href="http://leoville.com/" target="_blank">Leo Laporte</a> streaming problems to his Apple TV ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://devroot.org/2007/05/01/optimize-network-throughput-on-your-appletv/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Trunking between a Cisco Catalyst and a 3Com SuperStack</title>
		<link>http://devroot.org/2007/02/25/trunking-between-a-cisco-catalyst-and-a-3com-superstack/</link>
		<comments>http://devroot.org/2007/02/25/trunking-between-a-cisco-catalyst-and-a-3com-superstack/#comments</comments>
		<pubDate>Sun, 25 Feb 2007 16:05:46 +0000</pubDate>
		<dc:creator>lynxman</dc:creator>
		
		<category><![CDATA[Networking]]></category>

		<category><![CDATA[3Com]]></category>

		<category><![CDATA[Cisco]]></category>

		<category><![CDATA[Switching]]></category>

		<category><![CDATA[Trunking]]></category>

		<guid isPermaLink="false">http://devroot.org/2007/02/25/trunking-between-a-cisco-catalyst-and-a-3com-superstack/</guid>
		<description><![CDATA[Trunking between this equipments is problematic at best, the meaning of trunk in the 3com is not the same as in the Catalyst, also the vlan methods are not the same either.
Trunk in the 3Com SuperStack is port aggregation between two 3Com devices, whether in the Cisco is really a downlink trunk, luckily both devices [...]]]></description>
			<content:encoded><![CDATA[<p>Trunking between this equipments is problematic at best, the meaning of trunk in the 3com is not the same as in the Catalyst, also the vlan methods are not the same either.</p>
<p>Trunk in the 3Com SuperStack is port aggregation between two 3Com devices, whether in the Cisco is really a downlink trunk, luckily both devices speak 802.1q so the trunk configuration shouldn&#8217;t be a big problem.</p>
<p>First of all we need to establish the trunk port between the Catalyst and the SuperStack, so we&#8217;ll start by defining the port in the Catalyst.</p>
<p><code>interface FastEthernet0/14<br />
description Trunk to 3com 3300<br />
switchport access vlan 905<br />
switchport trunk native vlan 905<br />
switchport trunk allowed vlan 10,11,13,14<br />
switchport mode trunk<br />
speed 100<br />
duplex full</code></p>
<p>Some considerations on this config. It&#8217;s always recommended by Cisco and security-wise to use another vlan than vlan 1 for trunking, that&#8217;s what we&#8217;re doing here, also we&#8217;re restricting which vlans we will accept and retransmited to the 3Com switch.</p>
<p>There&#8217;s a huge implementation difference between the trunking trunking transmission between Cisco and 3Com, the 3Com switches tag all the vlans by default, but the Cisco switch won&#8217;t tag the trunk vlan, this is a really annoying factor that made me waste some hours!</p>
<p>The trick resides in adding all the vlans tagged into the port that you&#8217;re using as a trunk, you don&#8217;t really need to add the trunking vlan that you configured back on the cisco, it doesn&#8217;t work that way. So let&#8217;s add one by one all the vlans in the trunk port. In order to do that we need to use the bridge menu in the 3com switch.</p>
<p><code>Select menu option (bridge/vlan): addPort<br />
Select VLAN ID (1-4094) [1]: 10<br />
Select Ethernet port (1-12, all): 12<br />
Enter tag type (none, 802.1Q) [802.1Q]: 802.1Q</code></p>
<p>Repeat this in the trunk port for each vlan you&#8217;re adding in the Cisco trunk side. When you have your trunk port configured properly (also be careful with duplex and speed configs) you just need to add the ports into the vlan untagged. So let&#8217;s say we want to add port 1 to the vlan 10.</p>
<p><code>Select menu option (bridge/vlan): addPort<br />
Select VLAN ID (1-4094) [1]: 10<br />
Select Ethernet port (1-12, all): 1<br />
Enter tag type (none, 802.1Q) [802.1Q]: none</code></p>
<p>As soon as that&#8217;s done the port will be talking head to head with all the other ports in vlan 10 also in the Cisco switch.</p>
<p>The difficult thing is making the 3Com switch accesible through an IP address, since the 3Com switch will only publish its public IP address though VLAN 1, this one is a though cookie.</p>
]]></content:encoded>
			<wfw:commentRss>http://devroot.org/2007/02/25/trunking-between-a-cisco-catalyst-and-a-3com-superstack/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IBM xServer 305 on CentOS 4 - Kernel incompatibilities</title>
		<link>http://devroot.org/2007/02/05/ibm-xserver-305-on-centos-4-kernel-incompatibilities/</link>
		<comments>http://devroot.org/2007/02/05/ibm-xserver-305-on-centos-4-kernel-incompatibilities/#comments</comments>
		<pubDate>Mon, 05 Feb 2007 10:39:43 +0000</pubDate>
		<dc:creator>lynxman</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[CentOS]]></category>

		<category><![CDATA[IBM]]></category>

		<category><![CDATA[Kernel]]></category>

		<guid isPermaLink="false">http://devroot.org/2007/02/05/ibm-xserver-305-on-centos-4-kernel-incompatibilities/</guid>
		<description><![CDATA[After a horrible week fighting against CentOS 4 and our firewalls deployment. I&#8217;ve found several incompatibilities (albeit already documented) with this machines and CentOS 4.
There were 2 different problems affecting this machines.
Keyboard not working after kernel boot, non responsive.
This happens even when installing the machine, I had to install this machine in graphical mode (it [...]]]></description>
			<content:encoded><![CDATA[<p>After a horrible week fighting against CentOS 4 and our firewalls deployment. I&#8217;ve found several incompatibilities (albeit already documented) with this machines and CentOS 4.</p>
<p>There were 2 different problems affecting this machines.</p>
<p><strong>Keyboard not working after kernel boot, non responsive.</strong></p>
<p>This happens even when installing the machine, I had to install this machine in graphical mode (it works when booting in graphical mode) but it didn&#8217;t work at all on a forced text installation.</p>
<p>This bug can be solved disconnecting the USB subsystem in the BIOS, after that the keyboard is operative again.</p>
<p><strong>Machine freezes with a kernel panic after approx 24h. of operation, no logs or traces left.</strong></p>
<p>This one was a hard bone to catch! Did a memory test, updates both BIOS and network cards firmware to the last version and did several extended checks on the hardware, there was not a single error.</p>
<p>After roaming around the RedHat and CentOS forums for a while looking for an answer, I saw a similar error in RedHat RHEL4 (the one CentOS is based on) about an xServer that had the same problem. It seems the problem is realted with the old version of ACPI this motherboard has, and it only happens with 2.6.9-42.x.EL versions of the kernel, just adding the <em>noapic</em> option in /etc/grub.conf to the kernel boot solved the issue.</p>
<p><code>title CentOS (2.6.9-42.0.8.EL)<br />
root (hd0,0)<br />
kernel /vmlinuz-2.6.9-42.0.8.EL ro noapic root=LABEL=/<br />
initrd /initrd-2.6.9-42.0.8.EL.img</code></p>
]]></content:encoded>
			<wfw:commentRss>http://devroot.org/2007/02/05/ibm-xserver-305-on-centos-4-kernel-incompatibilities/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pushing the limits of Expose</title>
		<link>http://devroot.org/2007/01/29/pushing-the-limits-of-expose/</link>
		<comments>http://devroot.org/2007/01/29/pushing-the-limits-of-expose/#comments</comments>
		<pubDate>Mon, 29 Jan 2007 06:37:55 +0000</pubDate>
		<dc:creator>lynxman</dc:creator>
		
		<category><![CDATA[MacOS X]]></category>

		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Expose]]></category>

		<category><![CDATA[Leopard]]></category>

		<guid isPermaLink="false">http://devroot.org/2007/01/29/pushing-the-limits-of-expose/</guid>
		<description><![CDATA[After this interesting article in Digg I decided out of boredom to try this up myself, here&#8217;s the result.

After this I noticed that the concurrent file limit by default in Mac OS X is quite low! Only around 200 processes per user, which even if it&#8217;s more than enough for most users sometimes depending on [...]]]></description>
			<content:encoded><![CDATA[<p>After <a title="Digg.com" href="http://www.digg.com/apple/Pushing_the_limits_of_Expose" target="_blank">this</a> interesting article in <a title="Digg" href="http://www.digg.com">Digg</a> I decided out of boredom to try this up myself, here&#8217;s the result.</p>
<p><a title="Photo Sharing" href="http://www.flickr.com/photos/42475794@N00/372994899/"><img src="http://farm1.static.flickr.com/134/372994899_6234e3651f.jpg" border="0" alt="expose_limits" width="500" height="313" /></a></p>
<p>After this I noticed that the concurrent file limit by default in Mac OS X is quite low! Only around 200 processes per user, which even if it&#8217;s more than enough for most users sometimes depending on what you do you need more ;)</p>
<p>Mac OS X respects the sysctl.conf kernel parameter file as most unix do, so it&#8217;s just a question of adding the following parameter there:</p>
<p><code>kern.maxproc=2048<br />
kern.maxprocperuid=512<br />
kern.sysv.shmmax=167772160<br />
kern.sysv.shmmin=1<br />
kern.sysv.shmmni=32<br />
kern.sysv.shmseg=8<br />
kern.sysv.shmall=65536</code></p>
<p>I noticed after raising the processes value that the shared memory values where low as well, so it&#8217;s a good option to change them all at the same time.</p>
<p>Of course this configuration is not really recommended for machines with less than 1Gb of RAM, so be careful!</p>
<p>Also you need to raise the limit on launchd, launchd is Apple replacement for initd and it manages the initial limits for users.</p>
<p>Just edit (or create /etc/launchd.conf) and add:</p>
<p><code>limit maxproc 1024 2048<br />
limit maxfiles 2048 4096</code></p>
]]></content:encoded>
			<wfw:commentRss>http://devroot.org/2007/01/29/pushing-the-limits-of-expose/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SpamAssassin : Tweaks for new Spam methods</title>
		<link>http://devroot.org/2006/12/12/spamassassin-tweaks-for-new-spam-methods/</link>
		<comments>http://devroot.org/2006/12/12/spamassassin-tweaks-for-new-spam-methods/#comments</comments>
		<pubDate>Tue, 12 Dec 2006 14:45:04 +0000</pubDate>
		<dc:creator>lynxman</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Unix]]></category>

		<category><![CDATA[rules]]></category>

		<category><![CDATA[Spam]]></category>

		<category><![CDATA[Spamassassin]]></category>

		<guid isPermaLink="false">http://devroot.org/2006/12/12/spamassassin-tweaks-for-new-spam-methods/</guid>
		<description><![CDATA[There have been lately a huge increase in spam due mainly to botnets, spammers also have shifted their spam methods, using embedded images and obfuscating techniques to avoid OCRs.
This two factors together mean that I&#8217;ve got a lot more work maintaining my spamassassin installation :) and also that the standard config or some deviations on [...]]]></description>
			<content:encoded><![CDATA[<p>There have been lately a huge increase in spam due mainly to botnets, spammers also have shifted their spam methods, using embedded images and obfuscating techniques to avoid OCRs.</p>
<p>This two factors together mean that I&#8217;ve got a lot more work maintaining my spamassassin installation :) and also that the standard config or some deviations on the scoring is not good enough, even with score tweaking I still got lots of Stocks and embedded gif spam, after some checking around I found some solutions in <a title="Rules Emporium" href="http://www.rulesemporium.com/" target="_blank">Rules Emporium</a>. Also updating is a must so try always to keep up to date, right now I&#8217;m running <a title="Spam Assassin" href="http://spamassassin.apache.org" target="_blank">Spam Assassin 3.1.7</a>.<br />
Finally after some tweaking and more tweaking I arrived to this config:</p>
<ul>
<li>Auto White-list and Bayes using MySQL DB Engine</li>
<li>user_pref integrated into our user control panel</li>
<li>Razor2 integration</li>
<li>SPF Integration</li>
<li>Score tweaking</li>
<li>New rules added using <a title="Rules Emporium" href="http://www.rulesemporium.com/" target="_blank">Rules Emporium</a> ImageInfo and Stock Rules</li>
</ul>
<p>With this method the false positives have gone down and the stock and image spam is being stopped (finally!).</p>
<p>The <a title="Rules Emporium" href="http://www.rulesemporium.com/" target="_blank">Rules Emporium</a> ImageInfo plugin consumes a lot less CPU than using an OCR plug-in and even if it&#8217;s based on broader rules it catches even the hardest embedded image spam, you can get the plugin <a title="ImageInfo plugin" href="http://www.rulesemporium.com/plugins.htm" target="_blank">here</a>. Also the stock ruleset got rid of most of the stock spam that I was receiving, this spam is quite hard to guess indeed! You can get the ruleset <a title="Stocks Ruleset" href="http://www.rulesemporium.com/rules/70_sare_stocks.cf" target="_blank">here</a>.<br />
Here is the final tweaked local.cf config in SpamAssassin</p>
<p><code> required_score 3<br />
report_safe 0<br />
rewrite_header Subject [SPAM]<br />
use_dcc 0 # DCC is quite useless<br />
use_razor2 # Activate Razor 2 module<br />
razor_timeout 10<br />
lock_method flock # For local bayes files<br />
use_bayes 1<br />
use_auto_whitelist 1<br />
bayes_store_module Mail::SpamAssassin::BayesStore::SQL<br />
bayes_sql_dsn DBI:mysql:spamassassin:bayesdb<br />
bayes_sql_username mail bayes_sql_password xxxxx<br />
bayes_auto_expire 1<br />
bayes_auto_learn_threshold_spam 3.5<br />
bayes_auto_learn_threshold_nonspam 0.1<br />
bayes_use_hapaxes 1<br />
bayes_journal_max_size 20000 # This doesn&#8217;t affect SQL<br />
bayes_expiry_max_db_size 50000 # This doesn&#8217;t affect SQL<br />
auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList<br />
user_awl_dsn DBI:mysql:spamassassin:bayesdb<br />
user_awl_sql_username mail<br />
user_awl_sql_password xxxxx<br />
user_awl_sql_table awl<br />
user_scores_dsn DBI:mysql:spamassassin:control_panel<br />
user_scores_sql_username mail<br />
user_scores_sql_password xxxxx<br />
report_contact abuse@devroot.org<br />
# Score increases (manually change scores)<br />
score RAZOR2_CHECK 2.000<br />
score RAZOR2_CF_RANGE_51_100 2.000<br />
score BAYES_99 3.500<br />
score BAYES_90 3.000<br />
score BAYES_80 2.500<br />
score HTML_IMAGE_ONLY_04 3.000<br />
score HTML_IMAGE_ONLY_08 2.500<br />
score HTML_IMAGE_ONLY_12 2.000<br />
score HTML_IMAGE_ONLY_16 1.500<br />
score HTML_IMAGE_ONLY_20 1.000<br />
score HTML_IMAGE_ONLY_24 0.500<br />
score MIME_HTML_ONLY 1.100 </code></p>
<p>Also it&#8217;s important to have this modules loaded in your v310.pre file:</p>
<p><code> loadplugin Mail::SpamAssassin::Plugin::Pyzor<br />
loadplugin Mail::SpamAssassin::Plugin::Razor2<br />
loadplugin Mail::SpamAssassin::Plugin::SpamCop<br />
loadplugin Mail::SpamAssassin::Plugin::AWL<br />
loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold<br />
loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject<br />
loadplugin Mail::SpamAssassin::Plugin::MIMEHeader<br />
loadplugin Mail::SpamAssassin::Plugin::ReplaceTags<br />
loadplugin Mail::SpamAssassin::Plugin::ImageInfo # RulesEmporium </code></p>
<p>The way to install the additional config and plugins should be as follows:</p>
<p>Copy the new .cf (configuration) files into the directory where SpamAssassin keeps the configuration in your install. In Red Hat machines this directory is <em>/usr/share/spamassassin</em>.</p>
<p>Copy the new .pm (modules) into the SpamAssassin PlugIn module which is by default <em><span class="moz-txt-slash"><span class="moz-txt-tag">/</span>usr/lib/perl5/vendor_perl/5.8.3/Mail/SpamAssassin/Plugin<span class="moz-txt-tag">/ </span></span></em><span class="moz-txt-slash"><span class="moz-txt-tag">(this directory of course, is for Perl version 5.8.3, change the version to the one you have installed).</span></span><em><span class="moz-txt-slash"><span class="moz-txt-tag"><br />
</span></span></em></p>
<p>Don&#8217;t forget to restart SpamAssassin after adding the new files!</p>
<p>It&#8217;s always a good idea to start <em>spamd</em> with -D after activating modules, since most of the times you&#8217;re missing a perl module which one of your modules have a dependency with.</p>
<p>This configuration is not really CPU hungry so it&#8217;s great for people who are running on a tight server budget.</p>
]]></content:encoded>
			<wfw:commentRss>http://devroot.org/2006/12/12/spamassassin-tweaks-for-new-spam-methods/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
