Блокировка запросов с TOR сети на Debian 9

Была сегодня ситуация на одном с серверов:



Ставим ipset:
apt-get install ipset


Создаем IP сет:
ipset create tor-nodes hash:ip


Создаем bash файл:
nano block-tor.sh


Вместо /root/ можно свою папку.

#!/bin/bash

#
# A bash script to download the latest list of Tor exit node IP addresses
# and add them to an IP set for the purpose of blocking them
# 
# Author: Eric Mathison - https://ericmathison.com
#

# Download the Tor exit node IP address list
http_code=$(curl -s -o /root/block-tor-ips.txt -w '%{http_code}'  https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=$(curl ipecho.net/plain);)

# Exit script if unable to download list of IPs
if [ ! "$http_code" -eq "200" ]; then
 echo Failed to connect to https://check.torproject.org/
 exit 1
fi

# Flush tor-nodes set
ipset flush tor-nodes

# Add IP addresses to set
while read -r ip; do
 case "$ip" in \#*) continue ;; esac
 ipset -q -A tor-nodes $ip
done < "/root/block-tor-ips.txt"

# Save set to file
ipset save > /root/block-tor.restore


Делаем чтобы он запускался:
chmod +x block-tor.sh


Добавляем у файл: /etc/rc.local перед exit 0:

ipset restore < /root/block-tor.restore
iptables -I INPUT -m set --match-set tor-nodes src -j DROP


Ставим cron:
nano /etc/cron.d/block-tor


Строка задачи:
0 5 * * * root /root/block-tor.sh > /dev/null 2>&1


Запускаем скрипт:
sh /root/block-tor.sh


Добавляем IP в iptables:
iptables -I INPUT -m set --match-set tor-nodes src -j DROP


Чтобы очистить IP с iptables:
iptables -F

0 комментариев

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




Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.