<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="Tiki CMS/Groupware via FeedCreator 1.7.2" -->
<?xml-stylesheet href="http://pointyhair.com/lib/rss/rss-style.css" type="text/css"?>
<rss version="0.91">
    <channel>
        <title>Tiki RSS feed for blog: Network Security</title>
        <description></description>
        <link>http://pointyhair.com/tiki-blog_rss.php?blogId=3</link>
        <lastBuildDate>Thu, 09 Sep 2010 06:19:23 +0100</lastBuildDate>
        <generator>Tiki CMS/Groupware via FeedCreator 1.7.2</generator>
        <image>
            <url>http://pointyhair.com/img/tiki.jpg</url>
            <title>tikiwiki logo</title>
            <link>http://pointyhair.com/tiki-index.php</link>
            <description><![CDATA[Feed provided by http://pointyhair.com/tiki-index.php. Click to visit.]]></description>
        </image>
        <language>en-us</language>
        <item>
            <title>denyhosts -- almost best thing since sliced bread</title>
            <link>http://pointyhair.com/tiki-view_blog_post.php?blogId=3&amp;postId=25</link>
            <description><![CDATA[<a class="wiki" target="_blank" href="http://denyhosts.sourceforge.net/index.html">Denyhosts</a><br />
<br />
Almost too good to be true...<br />
<br />
What's good, is that it allows you to get almost rid of dictionary attacks on your SSH port...<br />
<br />
What's not so good, is that as of recent, the dictionary attacks on POP3, IMAP4, TELNET, FTP are significantly on the rise... and Denyhosts does not make it particularly easy to block the other protocols...<br />
<br />
If I manage to get the other protocols blocked, I'll publish the regex'es for those.<br />
<br />
Meanwhile, if you notice it in your log files, rememember that:<br />
<br />
iptables -A INPUT -s x.x.x.x -j DROP<br />
<br />
always works....<br />
<br />
]]></description>
            <author>Taneli Otala</author>
            <pubDate>Thu, 19 Nov 2009 08:25:44 +0100</pubDate>
        </item>
        <item>
            <title>Using Pion for network security</title>
            <link>http://pointyhair.com/tiki-view_blog_post.php?blogId=3&amp;postId=21</link>
            <description><![CDATA[Pion, by <a class="wiki" target="_blank" href="http://atomiclabs.com">Atomic Labs</a> can do some pretty incredible tricks on detecting anomalies, hacking attempts, etc. by passively looking at the network traffic.<br />
<br />
Imagine, being able to program (graphically, no program code) any kind of web/smtp/voip event, and being able to take action real-time.<br />
<br />
Check out <a target="_blank" class="wiki"  href="http://atomiclabs.com">http://atomiclabs.com</a> &mdash; I will write actual recipes soon.<br />
]]></description>
            <author>Taneli Otala</author>
            <pubDate>Mon, 20 Jul 2009 08:07:56 +0100</pubDate>
        </item>
        <item>
            <title>Russian (caravan.ru) link spammers</title>
            <link>http://pointyhair.com/tiki-view_blog_post.php?blogId=3&amp;postId=20</link>
            <description><![CDATA[<a name='Tiki_link_spammers'></a><h1>Tiki link spammers</h1>
<br />
So tired... seriously, first email spam (BTW, how about a presidential candidate that has capital punishment for spammers?) and now trackback link spammers.<br />
<br />
There is this russian network, caravan.ru, that is relentlessly pounding on my dozen or so tikiwiki sites, adding a trackback link spam every few second.<br />
<br />
Here is what it looks like in your logs:<br />
<div class="simplebox">217.23.147.210 - - <a class="wiki"  href="03/Sep/2007:08:53:10 -0700">03/Sep/2007:08:53:10 -0700</a> "POST /tiki-view_blog_post.php/1/1 HTTP/1.1" 200 - "-" "WordPress/1.9"<br />
212.24.48.34 - - <a class="wiki"  href="03/Sep/2007:08:53:16 -0700">03/Sep/2007:08:53:16 -0700</a> "POST /tiki-view_blog_post.php/1/2 HTTP/1.1" 200 - "-" "WordPress/2.0"<br />
217.23.143.226 - - <a class="wiki"  href="03/Sep/2007:08:53:31 -0700">03/Sep/2007:08:53:31 -0700</a> "POST /tiki-view_blog_post.php/1/2 HTTP/1.1" 200 - "-" "WordPress/2.0"<br />
217.23.133.242 - - <a class="wiki"  href="03/Sep/2007:08:53:39 -0700">03/Sep/2007:08:53:39 -0700</a> "POST /tiki-view_blog_post.php/1/5 HTTP/1.1" 200 - "-" "WordPress/1.9"<br />
217.23.151.130 - - <a class="wiki"  href="03/Sep/2007:08:53:45 -0700">03/Sep/2007:08:53:45 -0700</a> "POST /tiki-view_blog_post.php/1/5 HTTP/1.1" 200 - "-" "WordPress/1.9"<br />
217.23.143.224 - - <a class="wiki"  href="03/Sep/2007:08:53:50 -0700">03/Sep/2007:08:53:50 -0700</a> "POST /tiki-view_blog_post.php/3/19 HTTP/1.1" 200 - "-" "WordPress/2.1.2"<br />
217.23.132.114 - - <a class="wiki"  href="03/Sep/2007:08:53:54 -0700">03/Sep/2007:08:53:54 -0700</a> "POST /tiki-view_blog_post.php/3/19 HTTP/1.1" 200 - "-" "WordPress/2.1.2"<br />
212.24.48.31 - - <a class="wiki"  href="03/Sep/2007:08:53:58 -0700">03/Sep/2007:08:53:58 -0700</a> "POST /tiki-view_blog_post.php/2/7 HTTP/1.1" 200 - "-" "WordPress/2.0"<br />
217.23.143.26 - - <a class="wiki"  href="03/Sep/2007:08:54:02 -0700">03/Sep/2007:08:54:02 -0700</a> "POST /tiki-view_blog_post.php/2/7 HTTP/1.1" 200 - "-" "WordPress/2.0"<br />
212.24.48.52 - - <a class="wiki"  href="03/Sep/2007:08:54:04 -0700">03/Sep/2007:08:54:04 -0700</a> "POST /tiki-view_blog_post.php/3/9 HTTP/1.1" 200 - "-" "WordPress/2.1.2"</div><br />
<br />
Let's see, what are the options?<br />
<ul><li>Disallow trackback links? There goes the idea of wiki...
</li><li>Disallow user registrations? Where's the fun in that?
</li><li>Require user registrations to be manually approved, and require registration before trackback links are allowed?
</li><li>All of the above?
</li></ul>
<br />
Well, let's just first plain block the caravan.ru network out:<br />
<div class="simplebox">iptables -A INPUT -s 212.24.48.170/24 -p tcp --dport www -j droplog<br />
iptables -A INPUT -s 81.176.0.0/15 -p tcp --dport www -j droplog<br />
iptables -A INPUT -s 62.213.64.0/18 -p tcp --dport www -j droplog<br />
iptables -A INPUT -s 212.158.160.0/20 -p tcp --dport www -j droplog<br />
iptables -A INPUT -s 217.23.128.0/19 -p tcp --dport www -j droplog<br />
iptables -A INPUT -s 212.24.32.0/19 -p tcp --dport www -j droplog<br />
iptables -A INPUT -s 85.255.118.92/24 -p tcp --dport www -j droplog<br />
iptables -A INPUT -s 72.232.191.50 -p tcp --dport www -j droplog</div><br />
<br />
]]></description>
            <author>Taneli Otala</author>
            <pubDate>Mon, 03 Sep 2007 16:11:44 +0100</pubDate>
        </item>
        <item>
            <title>SPAM on the rise...</title>
            <link>http://pointyhair.com/tiki-view_blog_post.php?blogId=3&amp;postId=19</link>
            <description><![CDATA[Is it just me, or have others noticed that SPAM is on the rise?<br />
<br />
It is really annoying when I get 100 SPAMs per day on the email account I use on my cell phone...<br />
<br />
Time to "tighten the screws" again!<br />
<br />
Links:<br />
<ul><li><a class="wiki" target="_blank" href="http://www.au.sorbs.net/using.shtml">SORBS</a>
</li><li><a class="wiki" target="_blank" href="http://www.spamcop.net/">SpamCop</a>
</li><li><a class="wiki" target="_blank" href="http://www.spamhaus.org/">SpamHaus</a>
</li><li><a class="wiki" target="_blank" href="http://www.netwinsite.com/surgemail/help/rbl.htm">RealTime blackhole lists</a>
</li><li><a class="wiki" target="_blank" href="http://ordb.org/links/">ORDB</a>
</li><li><a class="wiki" target="_blank" href="http://moensted.dk/spam/">Moensted.dk</a>
</li><li><a class="wiki" target="_blank" href="http://spews.org/faq.html">Spews</a> (use through SORBS)
</li><li><a class="wiki" target="_blank" href="http://spamsites.org/">SpamSites</a>
</li></ul>
<br />
So, I go through my sendmail.mc configuration, and notice that I could add a few blacklists again.<br />
<div class="simplebox"><pre>FEATURE(dnsbl, `relays.ordb.org', `Rejected -- see http://ordb.org/ for reason')dnl
FEATURE(dnsbl, `sbl-xbl.spamhaus.org', `Rejected -- see http://www.spamhaus.org/SBL for reason')dnl
FEATURE(dnsbl, `bl.spamcop.net', `Rejected -- see http://spamcop.net for reason')dnl
FEATURE(dnsbl, `dnsbl.sorbs.net', `554 Rejected see http://dnsbl.sorbs.net')dnl
FEATURE(dnsbl, `list.dsbl.org', `Rejected -- see http://dsbl.org for reason')dnl
FEATURE(dnsbl, `block.rhs.mailpolice.com', `Rejected -- see http://rhs.mailpolice.com')dnl
FEATURE(dnsbl, `cbl.abuseat.org', `Rejected -- see http://cbl.abuseat.org')dnl
FEATURE(dnsbl, `l1.spews.dnsbl.sorbs.net', `Rejected -- see http://spews.org')dnl</pre></div><br />
Basically I ended adding dnsbl.sorbs.net and l1.spews.dnsbl.sorbs.net<br />
<br />
Results are good:<br />
<ul><li>This morning; 450 messages, 110 internal => external emails: 340
</li><li>SPAM (Blacklist) blocked: 259, i.e. 76%
</li><li>Bad targets (cleaning up mailboxes): 17, i.e. 5%
</li><li>Caught by SORBS: 58, i.e. 17% (that weren't caught by the others), so now 17% more gets caught
</li></ul>
<br />
Good work for a quiet Sunday morning, though I wish I could find a good <a class="wiki" target="_blank" href="http://www.snertsoft.com/download.php">milter</a> in open source, to do better &mdash; and not rely so much on blacklists.<br />
<br />
]]></description>
            <author>Taneli Otala</author>
            <pubDate>Sun, 15 Oct 2006 16:00:39 +0100</pubDate>
        </item>
        <item>
            <title>Orienting WiFi antenna without help?</title>
            <link>http://pointyhair.com/tiki-view_blog_post.php?blogId=3&amp;postId=17</link>
            <description><![CDATA[I keep adding new Internet links to my house system... some as real links with traffic shaping, load balancing, etc.<br />
...Some, just as backup links.<br />
<br />
<div class="img" align="left"><table cellpadding="0" cellspacing="0"><tr><td><a href="http://pics.otala.net/2006/June/p1010075.jpg" target="_blank"><img alt="" src="http://pics.otala.net/2006/June/.thumbs/web.p1010075.jpg" border="0"  width="300" height="200" /></a></td></tr><tr><td class="mini">Wireless_Antenna_Pointing_to_Lamp_Post</td></tr></table></div><br />
<br />
I confess it has gotten a little bit out of hand, having just added the sixth link.<br />
<br />
So, <a class="wiki" target="_blank" href="http://www.metrofi.com/">MetroFi</a> in <a class="wiki" target="_blank" href="http://en.wikipedia.org/wiki/Sunnyvale%2C_CA">Sunnyvale, CA</a> started offering a free city-wide <a title="WiFi, Wireless network" href="tiki-index.php?page=WiFi" class="wiki">WiFi</a> connectivity since December 2005 &mdash; and I just could not resist it.<br />
<br />
I got a handy +8dBi directional antenna (by Airlink), a 7ft antenna cable, and a PCI <a title="WiFi, Wireless network" href="tiki-index.php?page=WiFi" class="wiki">WiFi</a> card... a little hole into the wall, hang the directional antenna right underneath the solar panels, point to the <a title="WiFi, Wireless network" href="tiki-index.php?page=WiFi" class="wiki">WiFi</a> link on the lamp post...<br />
<br />
Now the problem, how do you orient the antenna? And, as a geek, can you do it with a one-liner?<br />
<br />
<div class="simplebox"><pre>watch "iwlist eth1 scan 2>/dev/null|grep -o \"Signal level=[0-9-]* dBm\"|head -n 1 | festival --tts"</pre></div><br />
<ul><li>watch &mdash; will execute the line once every two seconds (or as soon as it completes)
</li><li>iwlist &mdash; will execute the wireless scan command
</li><li>grep &mdash; grabs the "interesting" part, i.e. what the signal strength is
</li><li>head &mdash; takes the first AP (Access Point) only, since there are many (Note: this only works if you associate the card with the AP you're interested in, otherwise the order of APs is random)
</li><li>festival &mdash; The final trick, pipe the result through festival (Text To Speech), and crank up the volume
</li></ul>
<br />
Then I just go outside, I can hear the dBm readings loud and clear, so all that's left is a little bit of patience while getting the antenna to point in the right direction.<br />
Note, that there is a little bit of lag time on the card scanning the APs &mdash; you should get two or three readings between re-pointing the antenna<br />
<br />
]]></description>
            <author>Taneli Otala</author>
            <pubDate>Fri, 09 Jun 2006 19:22:06 +0100</pubDate>
        </item>
        <item>
            <title>Collecting all SSH RSA keys, and redistributing them</title>
            <link>http://pointyhair.com/tiki-view_blog_post.php?blogId=3&amp;postId=16</link>
            <description><![CDATA[Here's a handy script for those who like to create a revocable, per-user trust system...<br />
<br />
This script will reach into all of your boxes, where you already run ssh (and have already run ssh-keygen). It will retrieve all of the .ssh/id_rsa.pub keys, concatenate them into a single file, and deliver that file to all the hosts as the .ssh/authorized_keys file.<br />
Presto, all your hosts now share the same set of RSA keys, and you don't need to type passwords again.<br />
<br />
If one of the machines gets compromised, you can revoke the key and redistribute easily again.<br />
<br />
NOTE: There are much better ways of doing this &mdash; but this is simple, quick, and efficient...<br />
<br />
<div class="simplebox"><pre># List your hosts (hostname, or FQDN) separated with spaces
HOSTS="hewey dewey lewey"

# Base file name
KEYFILE=authorized_keys

# Wipe out old temp file
rm $KEYFILE.new
# Collect (concatenate) public RSA keys from all hosts
# If you have errors, you may either be lacking the key -- use "ssh-keygen -t rsa"
# Of you might have a key that has changed (remove the offending key)
for i in $HOSTS ; do {
  echo "Host: $i"
  ssh $i cat .ssh/id_rsa.pub >>$KEYFILE.new
} ; done

chmod go-rw $KEYFILE.new

# Push newly built collection of all keys into all hosts
for i in $HOSTS ; do {
  echo "Host: $i"
  scp -p $KEYFILE.new $i:.ssh/$KEYFILE
} ; done</pre></div><br />
<br />
]]></description>
            <author>Taneli Otala</author>
            <pubDate>Mon, 29 May 2006 21:31:51 +0100</pubDate>
        </item>
        <item>
            <title>Dynamic Firewall, cleanup time</title>
            <link>http://pointyhair.com/tiki-view_blog_post.php?blogId=3&amp;postId=15</link>
            <description><![CDATA[If you used the Dynamic Adapting iptables firewall of previous posts...<br />
...You will have also noticed, that it tends to easily mark an entry twice into the firewalls.<br />
<br />
Here is a simple Perl script to clean out the dupes out of the input queue:<br />
<div class="simplebox"><pre>#!/usr/bin/perl

# Chain INPUT (policy DROP 6290 packets, 2646K bytes)
# num   pkts bytes target     prot opt in     out     source               destination
# 1       15  1232 droplog    tcp  --  *      *       151.164.60.251       0.0.0.0/0          tcp dpt:22
# 2        6   448 droplog    tcp  --  *      *       151.164.60.251       0.0.0.0/0          tcp dpt:22
# 3        5   384 droplog    tcp  --  *      *       210.0.137.196        0.0.0.0/0          tcp dpt:22

my $num, $pkts, $bytes, $target, $prot, $opt, $in, $out, $source, $destination, $prot2, $port;
my $p_prot, $p_source, $p_destination, $p_prot2, $p_port;

my @cmds;

foreach (`iptables -vnL INPUT --line-numbers`) {
  ($num, $pkts, $bytes, $target, $prot, $opt, $in, $out, $source, $destination, $prot2, $port) = split;
  if ($target eq "droplog") {
    if ($p_prot eq $prot && $p_source eq $source && $p_destination eq $destination && $p_prot2 eq $prot2 && $p_port eq $port) {
      push @cmds, "iptables -D INPUT $num"
    }
  }
  $p_prot = $prot;
  $p_source = $source;
  $p_destination = $destination;
  $p_prot2 = $prot2;
  $p_port = $port;
}

while ($val = pop @cmds) {
  print "$val\n";
  `$val`
}</pre></div><br />
<br />
Notice how the script pushes the commands in the stack, so they come out in reverse order, so the numbering does not get munged up... little gotcha.<br />
<br />
It is amazing to notice how much the attacks have gone up since I posted these scripts... I am guessing that it's just good net citizens helping me in testing the efficiency <img alt="confused" src="img/smiles/icon_confused.gif" /><br />
]]></description>
            <author>Taneli Otala</author>
            <pubDate>Mon, 29 May 2006 19:19:11 +0100</pubDate>
        </item>
        <item>
            <title></title>
            <link>http://pointyhair.com/tiki-view_blog_post.php?blogId=3&amp;postId=13</link>
            <description><![CDATA[I was following conversation on <a class="wiki" target="_blank" href="http://lists.shmoo.com/mailman/listinfo/">LogAnalysis</a> mailing list (LogAnalysis@lists.shmoo.com) and one of the members suggested that finding out if a web site is defaced is one of the valuable things to find out.<br />
<br />
Realizing, that all my hosted web sites are stored in a MySQL table (for automated management) &mdash; what would it take to add the functionality?<br />
<br />
Just add one column for the main page "page TEXT" (and a flag "verify CHAR(1)" in case you don't want checking on a domain)... and add 50 lines of Perl...<br />
<br />
<div class="simplebox"><pre>!/usr/bin/perl

# NOTE: Your wget needs to be at least v1.8 to handle PHP based pages
# NOTE: Could use Algorithm::Diff -- if it was more widely available

use strict;
use DBI();

my $debug = 0;

# Connect to sites database
my $dbh = DBI->connect("DBI:mysql:database=floyd;host=localhost", "USERNAME", "PASSWORD", {'RaiseError' => 1});

# Query out of the sites database all proper domains (not subdomains), that have verify flag set to yes
my $sth = $dbh->prepare("SELECT domain,page,contact FROM sites WHERE verify = 'Y' AND domain NOT LIKE '%.%.%'");
$sth->execute();

while (my $ref = $sth->fetchrow_hashref()) {
   my $domain = $ref->{'domain'};
   $debug && print "$domain\t";
   my $page = `wget -q -O - $domain`;
   my $orig = $ref->{'page'};
   if ($orig) {
      if ($orig eq $page) {
         $debug && print "Complete match\n";
      } else {
         open(OUTFILE1, ">/tmp/verify1.$$.txt") or die "Can't open /tmp/verify1.txt: $!";
         print OUTFILE1 $orig;
         close(OUTFILE1);
         open(OUTFILE2, ">/tmp/verify2.$$.txt") or die "Can't open /tmp/verify2.txt: $!";
         print OUTFILE2 $page;
         close(OUTFILE2);
         my $res = `diff -abBdw /tmp/verify1.$$.txt /tmp/verify2.$$.txt`;
         my $count = () = $res =~ /\n/g;
         $debug && print "CHANGE LINES: $count\t\t";
         if ($count {'contact'}\nCc: root\nFrom: root\n";
            print MAIL "Subject: Warning: your site $domain index page has changed substantially ($count)\n\n";
            print MAIL "diff of the original page:\n$res\n";
            close MAIL;
         }
      }
   } else {
      $debug && print "No imprint -- storing initial\n";
      $dbh->do("UPDATE sites SET page = " . $dbh->quote($page) . " WHERE domain = " . $dbh->quote($domain));
   }
}
unlink("/tmp/verify1.$$.txt");
unlink("/tmp/verify2.$$.txt");
$sth->finish();

$dbh->disconnect();</pre></div><br />
Add the <a class="wiki"  href="http://pointyhair.com/tiki-download_file.php?fileId=4">flile</a> into your crontab, and you're set...<br />
<br />
<div class="simplebox"><pre>CREATE TABLE floyd.sites (
        domain          VARCHAR(64)     NOT NULL PRIMARY KEY,
        verify          CHAR(1)         NOT NULL,
        path            VARCHAR(64)     NOT NULL,
        contact         VARCHAR(64)     NOT NULL,
        email           VARCHAR(64)     NOT NULL,
        aliases         VARCHAR(255),
        created         DATE,
        expires         DATE,
        page            TEXT
);</pre></div><br />
MySQL table (text column) is such an easy place to store an imprint of the index page... Perl is ideal for parsing the text, wget(1) for pulling the page, and diff(1) for diff'ing the pages (though I could have used the embedded Perl equivalents &mdash; but I wanted to just put this quickly together, instead of romping around in CPAN).<br />
<br />
Once again happy to have all my data (and now some more) in a MySQL database.<br />
<br />
This blog entry will also appear in my <a class="wiki"  href="http://pointyhair.com/tiki-view_blog.php?blogId=3">Network Security</a> (NetSec) blog with more details.<br />
<br />
]]></description>
            <author>Taneli Otala</author>
            <pubDate>Mon, 22 May 2006 23:57:13 +0100</pubDate>
        </item>
        <item>
            <title>Using Swatch to make adaptive firewall</title>
            <link>http://pointyhair.com/tiki-view_blog_post.php?blogId=3&amp;postId=11</link>
            <description><![CDATA[If my previous posts have gotten you to take a look at your firewall hits...<br />
You will have noticed that a lot of the attacks are scripted &mdash; for example dictionary password attacks, where the attacker is hitting your SSH port with a few dozen name/password pairs.<br />
<br />
The bad news is, if you are running SSHD service, then any attempt to hit your SSH port is legitimate.<br />
The good news is, if you see a number of repeated attempts, all failing, then it's an attack.<br />
<br />
So, is there a way to pick up on the repeated failed attempts, and adjust the firewall to block the attempt out, and perhaps report to DShield?<br />
<br />
Sure, enter <a class="wiki" target="_blank" href="http://sourceforge.net/projects/swatch">Swatch</a> and throttling.<br />
<br />
Here is my .swatchrc:<br />
<div class="simplebox"><pre>perlcode my $ssh_regex = '.*sshd.*authentication failure.*rhost=([^ ]+)';
perlcode my $secure_ssh_regex = '.*sshd.*Failed password.*from ([^ ]+)';
perlcode my $ftp_regex = '.*ftp.*authentication failure.*rhost=([^ ]+)';
perlcode my $xmlrpc_regex = '([^ ]+).*POST .*xmlrpc.php';

watchfor   /.*/ and /$ssh_regex/
        echo
        throttle threshold 4:60
        exec "iptables -I INPUT 1 -s $1 -p tcp --dport 22 -j droplog"

watchfor  /.*/ and /$secure_ssh_regex/
        echo
        throttle threshold 4:60
        exec "iptables -I INPUT 1 -s $1 -p tcp --dport 22 -j droplog"

watchfor  /.*/ and /$ftp_regex/
        echo
        throttle threshold 4:60
        exec "iptables -I INPUT 1 -s $1 -p tcp --dport 21 -j droplog"

watchfor /.*/ and /$xmlrpc_regex/
        echo
        throttle threshold 4:60
        exec "iptables -I INPUT 1 -s $1 -p tcp --dport 80 -j droplog"</pre></div><br />
<br />
Just run Swatch with:<br />
<div class="simplebox"><pre>swatch --tail-file="/var/log/messages /var/log/secure /var/log/httpd/access_log"</pre></div><br />
<br />
What you get is:<br />
<ul><li> Once someone hits on SSHD of FTP with a bad password, their IP number gets immediately added to the firewall
</li><li> As soon as someone tries the classic XMLRPC.PHP attack against my web server, they get added to the firewall
</li></ul>
<br />
As soon as they're added to the firewall (as a blacklisted IP address), remembering that these are scipted attacks, the subsequent hits will be collected and reported to DSield.<br />
<br />
So, you get the benefit of: reporting the scripted attacks to DShield, as well as bit more security from blocking 95% of a dictionary attack.<br />
<br />
Using the Swatch throttling module gives you the benefit of not having your firewall crammed full of statements for every single hit.<br />
<br />
On an irregular interval I clean up my firewall (iptables), by just re-initializing it so it doesn't grow to enormous size.<br />
<br />
]]></description>
            <author>Taneli Otala</author>
            <pubDate>Mon, 15 May 2006 16:58:19 +0100</pubDate>
        </item>
        <item>
            <title>DShield</title>
            <link>http://pointyhair.com/tiki-view_blog_post.php?blogId=3&amp;postId=9</link>
            <description><![CDATA[<a class="wiki" target="_blank" href="http://dshield.org/">Distributed Intrusion Detection System</a> Is the first thing I want to tell about.<br />
<br />
It is a worthy cause, though I think it does not fully live to its potential &mdash; I will explain.<br />
<br />
DShield is a volunteer system, where you can take your firewall logs, process them (clean up), and then email them for aggregation.<br />
DShield will take your logs, essentially all the hacking attempts that went <i>bonk against the wall</i> and correlate them.<br />
<br />
When you operate a firewall, you are blocking certain ports (TCP and UDP) for access, i.e. you are not allowing incoming connections to those ports.<br />
Generally speaking you should firewall every incoming port, unless you are running a service (such as HTTP for WEB, or SMTP for email, etc).<br />
In blunt terms &mdash; nobody should be able to talk to your computer, unless you talk to them first &mdash; sort of like "don't talk to strangers" policy.<br />
<br />
You would be amazed to note, however, how many hits (hacking attempts) I get on my firewall, on a continuous basis.<br />
Against a single publicly visible IP number, I get anywhere between 50 - 500 attempts per hour, every hour of the day.<br />
My numbers are lower than usual firewall numbers, since I run so many services, i.e. I consider attempts to connect to my Web (HTTP) server legitimate &mdash; most people would not be running a web server, and thus all those hits would be reported as well.<br />
<br />
Once you install the appropriate scripts that you can download from DShield, your firewall, whether it is a firewall-in-a-box or a Linux-turned-firewall-router, all these attempts are shipped of in an email to DShield, and they will be aggregated for analysis and "Fight Back," where the administrators of particularly noisy sources will be notified.<br />
My favorite Fight Back reply is:<br />
<div class="simplebox">Date: Mon, 7 Feb 2005 16:25:43 -0500<br />
<br />
This user has been locked in the trunk of a 1980 Cadillac along with his PC and has been driven up and down a very bumpy road for several hrs and we believe that the problem is now resolved.<br />
<br />
Thank you for the report</div><br />
I have been contributing my logs to DShield for years, donate your logs for good cause too!<br />
<br />
Also, click <a class="wiki" target="_blank" href="http://dshield.org/warning_explanation.php">Here</a> to find out right away if your <b>current source address</b> is listed as a hacked address.<br />
<br />
Visit <a class="wiki"  href="http://pointyhair.com/tiki-list_file_gallery.php?galleryId=2">file galleries</a> to download the script I use to scrape iptables files.<br />
<br />
]]></description>
            <author>Taneli Otala</author>
            <pubDate>Thu, 11 May 2006 18:32:54 +0100</pubDate>
        </item>
    </channel>
</rss>
