===== 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 ====== http://pgl.yoyo.org/as/index.php ===== DNS "greylisting" ===== http://nolisting.org/ 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';\\