Non voglio che nessuna connessione proveniente da una rete tor venga accettata dai miei server.
Vedi Voglio vietare la rete Tor dal mio servizio dal Tor ufficiale documentazione.
Il progetto Tor fornisce un elenco con indirizzi IP di tutti i nodi di uscita che possono accedere al tuo servizio, usa i parametri della stringa di query per dirgli l'IP e la porta del tuo servizio, ad esempio: link .
È quindi possibile scorrere i risultati, dividerli ogni nuova riga, ignorare le righe che iniziano con "#" e infine aggiungere un'azione% ca_de% IPtable a ognuno di essi o utilizzando un IPset che ti offre prestazioni migliori con un numero così elevato di host, qualcosa del genere dovrebbe fare il trucco:
ipset -N tor iphash # create a new set named "tor"
# get the list, don't forget to put your service's IP in the query string
curl -s https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=8.8.8.8 | sed '/^#/d' | while read IP
do
# add each IP address to the set, silencing the warnings for IPs that have already been added
ipset -q -A tor $IP
done
iptables -A INPUT -m set --match-set tor src -j DROP # block any IP in this set in IPtables
Forniscono anche una lista basata su DNS ma è ancora in fase sperimentale quindi ti suggerisco di restare con la prima opzione, è anche più facile da lavorare.