HOSTS adblocker
#!/bin/bash # If this is our first run, save a copy of the system's original hosts file and set to read-only for safety if [ ! -f /etc/hosts.bak ] then echo "Saving copy of system's original hosts file..." sudo cp /etc/hosts /etc/hosts.bak sudo chmod 444 /etc/hosts.bak fi # Perform work in temporary files temphosts1="/tmp/temphosts1.$$" temphosts2="/tmp/temphosts2.$$" temphosts3="/tmp/temphosts3.$$" temphosts4="/tmp/temphosts4.$$" # Obtain various hosts files and merge into one echo "Downloading ad-blocking hosts files..." wget -nv -O - http://winhelp2002.mvps.org/hosts.txt > $temphosts1 wget -nv -O - http://hosts-file.net/ad_servers.asp >> $temphosts1 #wget -nv -O - http://someonewhocares.org/hosts/hosts >> $temphosts1 wget -nv -O - http://someonewhocares.org/hosts/ipv6/hosts >> $temphosts1 wget -nv -O - http://www.malwaredomainlist.com/hostslist/hosts.txt >> $temphosts1 wget -nv -O - "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext" >> $temphosts1 # Do some work on the file: # 1. Remove MS-DOS carriage returns # 2. Delete all lines that don't begin with 127.0.0.1 or 0.0.0.0 or ::1 # 3. make everything lowercase # 4. Delete any lines containing the word localhost because we'll obtain that from the original hosts file # 5. Replace 127.0.0.1 and 0.0.0.0 with ::1 {localhost on IPv6} # 5. Scrunch extraneous spaces separating address from name into a single tab # 6. Delete any comments on lines # 7. Clean up leftover trailing blanks # 8. We whitelist hosts j.mp # # Pass all this through sort with the unique flag to remove duplicates and save the result echo "Parsing, cleaning, de-duplicating, sorting..." # # IPv4 #sed -e 's/\r//' -e '/^127.0.0.1\|^0.0.0.0\|^::1/!d' -e 's/\(.*\)/\L\1/' -e '/localhost/d' -e 's/127.0.0.1/0.0.0.0/' -e 's/ \+/\t/' -e 's/#.*$//' -e 's/[ \t]*$//' < $temphosts1 | sort -u > $temphosts2 # # IPv6 ready sed -e 's/\r//' -e '/^127.0.0.1\|^0.0.0.0\|^::1/!d' -e 's/\(.*\)/\L\1/' -e '/localhost/d' -e 's/127.0.0.1/::1/' -e 's/0.0.0.0/::1/' -e 's/ \+/\t/' -e 's/#.*$//' -e 's/[ \t]*$//' < $temphosts1 | sort -u | grep -v $'\tj\.mp' > $temphosts2 # Combine system hosts with adblocks echo Merging with original system hosts... echo -e "# Windows HOSTS file should NOT be over 135K!\n# Ad blocking hosts generated "`date` > $temphosts4 cat /etc/hosts.bak $temphosts4 $temphosts2 > $temphosts3 sudo cp $temphosts3 /etc/hosts # Clean up temp files and remind user to copy new file echo "Cleaning up..." rm $temphosts1 $temphosts2 $temphosts3 $temphosts4 echo "Done." echo echo "You can always restore your original hosts file with this command:" echo " sudo cp /etc/hosts.bak /etc/hosts" echo "so don't delete that file! (It's saved read-only for your protection.)" # *buntu style /etc/init.d/network-manager restart
original (with bugs) @ http://www.deepthought.ws/linux/bash-script-hosts-file-ad-blocker/
how to use this in Ubuntu »> https://tnt.aufbix.org/linux/ubuntu#optimize_dnsmasq_in_networkmanager
Fighting SPAM
DNS "greylisting"
http://wiki.apache.org/spamassassin/OtherTricks
IN MX 10 spamtrap-tryothermx IN MX 20 your.real.mx.server IN MX 25 your-ipv4only.real.mx.server IN MX 30 spamtrap-tryothermx
Most spam/viruses will hit primary and backup MX server with lower priority.
spamtrap-tryothermx points to a VALID IP, but connections on port 25/tcp (smtp) will (and must!) timeout.
[http://www.faqs.org/rfcs/rfc2821]
5. Address Resolution and Mail Handling
…
When the lookup succeeds, the mapping can result in a list of
alternative delivery addresses rather than a single address, because
of multiple MX records, multihoming, or both. To provide reliable
mail transmission, the SMTP client MUST be able to try (and retry)
each of the relevant addresses in this list in order, until a
delivery attempt succeeds.
- greylisting ==
- sender address verification =
- RFC2820/2821 rules =
- helo checks =
- policyd-weight
p0f
#! /bin/sh # # start p0f case "$1" in start) /usr/sbin/p0f -i eth2 -l 'tcp dst port 25' 2>&1 | /usr/sbin/p0f-analyzer 2345 & ;; stop) ps aux | grep p0 | grep -v grep | grep -v stop #killall -9 /usr/sbin/p0f echo "You will have to kill p0f and p0f-analyzer manually" ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop}" >&2 exit 1 ;; esac exit 0
p0f spamassassin
/etc/spamassassin/local.cf:
header L_P0F_WXP X-Amavis-OS-Fingerprint =~ /^Windows XP/
score L_P0F_WXP 3.5
header L_P0F_W X-Amavis-OS-Fingerprint =~ /^Windows(?! XP)/
score L_P0F_W 1.7
header L_P0F_UNKN X-Amavis-OS-Fingerprint =~ /^UNKNOWN/
score L_P0F_UNKN 0.8
header L_P0F_Unix X-Amavis-OS-Fingerprint =~ /^((Free|Open|Net)BSD)|Solaris|HP-UX|Tru64/
score L_P0F_Unix -1.0
/etc/amavis/conf.d/50-user.cfg
# Use passive OS fingerprinting
$os_fingerprint_method = 'p0f:127.0.0.1:2345';
#$log_level = 1;
$policy_bank{'MYNETS'}{os_fingerprint_method} = undef;
clam
add clamav to amavis group
01-debian:
$unrar = ['rar', 'unrar-free']
/etc/amavis/conf.d/05-domain_id
chomp($mydomain = `hostname -d`); @local_domains_acl = qw (.);
20-debian-defaults
$virus_quarantine_method = undef;
$spam_quarantine_method = undef;
$banned_files_quarantine_method = undef;
$bad_header_quarantine_method = undef;
$final_spam_destiny = D_PASS;
$X_HEADER_LINE = “$myproduct_name at $mydomain”;
30-template-localization
$hdr_encoding = 'utf-8';
$bdy_encoding = 'utf-8';