Блокировка страны по ip. Топ 10 спам стран.

Большая часть мира страдает от спама. Тем не менее, некоторые страны делают немного, чтобы удержать спаммеров в пределах своих границ. Эти страны становятся убежищами для рассылки спама и вредоностного ПО, которые мешают всем, в том числе и своим собственным гражданам. Страны с наибольшим количеством спамеров, как правило с плохим или несуществующим законом о спаме.

Топ 10 стран распространяющих вредоносный траффик и спам (в порядке убывания):

  1. США
  2. Китай
  3. Россия
  4. Япония
  5. Украина
  6. Англия
  7. Индия
  8. Германия
  9. Бразилия
  10. Турция

Так как же бороться со спамом и вредным трафиком идущим из этих стран? Я решил проблему с помощью добавления нескольких правил в iptables. После включения этих правил нагрузка на мой веб и майл сервер сократилась в 6 раз!!!

Вот пример конфига iptables:

 

#!/bin/bash
# Purpose: Block all traffic from bad countries
# Japan = jp; Turkey = tr; India = in; Brazil = br; USA = us; CHINA = cn;
ISO="tr jp cn br in"

### Set PATH ###
IPT=/sbin/iptables
WGET=/usr/bin/wget
EGREP=/bin/egrep

### No editing below ###
SPAMLIST="countrydrop"
ZONEROOT="/root/iptables"
DLROOT="http://www.ipdeny.com/ipblocks/data/countries"

cleanOldRules(){
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
}

# create a dir
[ ! -d $ZONEROOT ] && /bin/mkdir -p $ZONEROOT

# clean old rules
cleanOldRules
#
# Allow SSH connections on tcp port 4444
# This is essential when working on remote servers via SSH to prevent locking yourself out of the system
#
$IPT -A INPUT -p tcp --dport 4444 -j ACCEPT
#www
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -p tcp --dport 8080 -j ACCEPT
$IPT -A INPUT -p tcp --dport 8443 -j ACCEPT
$IPT -A INPUT -p tcp --dport 4643 -j ACCEPT
#
# Set default policies for INPUT, FORWARD and OUTPUT chains
#
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#
# Set access for localhost
#
iptables -A INPUT -i lo -j ACCEPT
#
# Accept packets belonging to established and related connections
#
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Save settings
#
/sbin/service iptables save
/sbin/service iptables start
#
# create a new iptables list
$IPT -N $SPAMLIST

for c in $ISO
do
# local zone file
tDB=$ZONEROOT/$c.zone

# get fresh zone file
$WGET -O $tDB $DLROOT/$c.zone

# country specific log message
SPAMDROPMSG="$c Country Drop"

# get
BADIPS=$(egrep -v "^#|^$" $tDB)
for ipblock in $BADIPS
do
$IPT -A $SPAMLIST -s $ipblock -j LOG --log-prefix "$SPAMDROPMSG"
$IPT -A $SPAMLIST -s $ipblock -j DROP
done
done

# Drop everything
$IPT -I INPUT -j $SPAMLIST
$IPT -I OUTPUT -j $SPAMLIST
$IPT -I FORWARD -j $SPAMLIST
/sbin/service iptables save
#
# List rules
#
# iptables -L -v
Прочитано 2346 раз Последнее изменение Воскресенье, 22 Февраль 2015 12:52
Другие материалы в этой категории: Топ 10 простейших советов для безопасности сайта. »

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены

JoomShaper