mirror of
https://github.com/mail-in-a-box/mailinabox.git
synced 2025-04-21 03:02:09 +00:00
added dshield
This commit is contained in:
parent
66a542d666
commit
86a504713e
@ -9,6 +9,8 @@ Tested on Ubuntu 14.04LTS for my own servers, so please test on your own systems
|
|||||||
|
|
||||||
I have also added the capability to block all Chinese and/or Korean IP Addresses as a good number of spam and malicious activity are linked to them. Towards the end after ipset has added thousands of IP addresses, a dialog will appear giving the option to choose if you want to block China, Korea, both, or neither. Simply select the option you desire and it will take care of the rest. The Korean and/or Chinese addresses will only update weekly, as it blocks entire IP blocks off assigned to the country/countries you have chosen. I may add more countries down the line if need be.
|
I have also added the capability to block all Chinese and/or Korean IP Addresses as a good number of spam and malicious activity are linked to them. Towards the end after ipset has added thousands of IP addresses, a dialog will appear giving the option to choose if you want to block China, Korea, both, or neither. Simply select the option you desire and it will take care of the rest. The Korean and/or Chinese addresses will only update weekly, as it blocks entire IP blocks off assigned to the country/countries you have chosen. I may add more countries down the line if need be.
|
||||||
|
|
||||||
|
The latest addition in 2.2 is it looks up Dshields top 20 blocks of IP addresses that are malicious, and blocks them daily. It has been merged into the /etc/cron.daily/blacklist created prior. The Dshield script was originally found at https://github.com/koconder/dshield_automatic_iptables
|
||||||
|
|
||||||
Simply run this once, and that's it.
|
Simply run this once, and that's it.
|
||||||
sudo ./install.sh
|
sudo ./install.sh
|
||||||
alon@ganon.me
|
alon@ganon.me
|
||||||
|
67
conf/dshield
67
conf/dshield
@ -1,67 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Written by Onder Vincent Koc
|
|
||||||
# @url: https://github.com/koconder/dshield_automatic_iptables
|
|
||||||
# @credits: http://wiki.brokenpoet.org/wiki/Get_DShield_Blocklist
|
|
||||||
#
|
|
||||||
# Dshield Automatic Import to iptables
|
|
||||||
# Import Dshield Blocklist in a basic shell script which will run silently via cron
|
|
||||||
# and also use a seprate chain file to support other iptables rules without flushing
|
|
||||||
# i.e. fail2ban and ddosdeflate
|
|
||||||
|
|
||||||
# path to iptables
|
|
||||||
IPTABLES="/sbin/iptables";
|
|
||||||
|
|
||||||
# list of known spammers
|
|
||||||
URL="http://feeds.dshield.org/block.txt";
|
|
||||||
|
|
||||||
# save local copy here
|
|
||||||
FILE="/tmp/dshield_block.text";
|
|
||||||
|
|
||||||
# iptables custom chain
|
|
||||||
CHAIN="dshield";
|
|
||||||
|
|
||||||
# check to see if the chain already exists
|
|
||||||
$IPTABLES -L $CHAIN -n
|
|
||||||
|
|
||||||
# check to see if the chain already exists
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
|
|
||||||
# flush the old rules
|
|
||||||
$IPTABLES -F $CHAIN
|
|
||||||
|
|
||||||
echo "Flushed old rules. Applying updated dsheild list...."
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
# create a new chain set
|
|
||||||
$IPTABLES -N $CHAIN
|
|
||||||
|
|
||||||
# tie chain to input rules so it runs
|
|
||||||
$IPTABLES -A INPUT -j $CHAIN
|
|
||||||
|
|
||||||
# don't allow this traffic through
|
|
||||||
$IPTABLES -A FORWARD -j $CHAIN
|
|
||||||
|
|
||||||
echo "Chain not detected. Creating new chain and adding dsheild list...."
|
|
||||||
|
|
||||||
fi;
|
|
||||||
|
|
||||||
# get a copy of the spam list
|
|
||||||
wget -qc $URL -O $FILE
|
|
||||||
|
|
||||||
blocklist=$( cat $FILE | awk '/^[0-9]/' | awk '{print $1"/"$3}'| sort -n)
|
|
||||||
for IP in $blocklist
|
|
||||||
do
|
|
||||||
# add the ip address log rule to the chain
|
|
||||||
$IPTABLES -A $CHAIN -p 0 -s $IP -j LOG --log-prefix "[dsheild BLOCK]" -m limit --limit 3/min --limit-burst 10
|
|
||||||
|
|
||||||
# add the ip address to the chain
|
|
||||||
$IPTABLES -A $CHAIN -p 0 -s $IP -j DROP
|
|
||||||
|
|
||||||
echo $IP
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Done!"
|
|
||||||
|
|
||||||
# remove the spam list
|
|
||||||
unlink $FILE
|
|
Loading…
Reference in New Issue
Block a user