Iptables e filtraggio del traffico dei dissidenti poveri e pigri

La rilevanza del blocco delle visite a risorse vietate colpisce qualsiasi amministratore che possa essere ufficialmente accusato di mancato rispetto della legge o degli ordini delle autorità competenti.

Iptables e filtraggio del traffico dei dissidenti poveri e pigri

Perché reinventare la ruota quando esistono programmi e distribuzioni specializzati per i nostri compiti, ad esempio: Zeroshell, pfSense, ClearOS.

La direzione aveva un'altra domanda: il prodotto utilizzato ha un certificato di sicurezza del nostro stato?

Abbiamo avuto esperienza di lavoro con le seguenti distribuzioni:

  • Zeroshell: gli sviluppatori hanno persino donato una licenza di 2 anni, ma si è scoperto che il kit di distribuzione a cui eravamo interessati, illogicamente, svolgeva una funzione fondamentale per noi;
  • pfSense: rispetto e onore, allo stesso tempo noioso, abituarsi alla riga di comando del firewall di FreeBSD e non abbastanza conveniente per noi (penso che sia una questione di abitudine, ma si è rivelata sbagliata);
  • ClearOS: sul nostro hardware si è rivelato molto lento, non siamo riusciti a effettuare test seri, quindi perché interfacce così pesanti?
  • Ideco SELECTA. Il prodotto Ideco è un discorso a parte, un prodotto interessante, ma per ragioni politiche non per noi, e voglio anche “morderli” sulla licenza per lo stesso Linux, Roundcube, ecc. Da dove hanno preso l'idea tagliando l'interfaccia in Python e togliendo i diritti di superutente, possono vendere un prodotto finito composto da moduli sviluppati e modificati dalla comunità Internet distribuiti sotto GPL&etc.

Capisco che ora nella mia direzione si riverseranno esclamazioni negative con richieste di comprovare in dettaglio i miei sentimenti soggettivi, ma voglio dire che questo nodo di rete è anche un bilanciatore del traffico per 4 canali esterni a Internet e ogni canale ha le sue caratteristiche . Un'altra pietra angolare era la necessità che una delle numerose interfacce di rete funzionasse in diversi spazi di indirizzi, e I готов ammettere che le VLAN possono essere utilizzate ovunque sia necessario che non necessario non pronto. Esistono dispositivi in ​​uso come TP-Link TL-R480T+ - non si comportano perfettamente, in generale, con le loro sfumature. È stato possibile configurare questa parte su Linux grazie al sito ufficiale di Ubuntu Bilanciamento IP: combinazione di più canali Internet in uno solo. Inoltre, ciascuno dei canali può “scendere” in qualsiasi momento, così come salire. Se sei interessato a uno script attualmente funzionante (e questo merita una pubblicazione a parte), scrivi nei commenti.

La soluzione in esame non pretende di essere unica, ma vorrei porre la domanda: "Perché un'azienda dovrebbe adattarsi a prodotti dubbi di terze parti con seri requisiti hardware quando si può prendere in considerazione un'opzione alternativa?"

Se nella Federazione Russa esiste l'elenco dei Roskomnadzor, in Ucraina esiste un allegato alla Decisione del Consiglio di Sicurezza Nazionale (ad es. qui), allora neanche i leader locali dormono. Ad esempio, ci è stato fornito un elenco di siti vietati che, secondo il management, compromettono la produttività sul posto di lavoro.

Comunicando con i colleghi di altre imprese, dove per impostazione predefinita tutti i siti sono vietati e solo su richiesta e con il permesso del capo è possibile accedere a un sito specifico, sorridendo rispettosamente, riflettendo e "fumando sul problema", siamo arrivati ​​alla conclusione che la vita è ancora buono e abbiamo iniziato la ricerca.

Avendo l'opportunità non solo di vedere analiticamente cosa scrivono nei "libri delle casalinghe" sul filtraggio del traffico, ma anche di vedere cosa sta succedendo sui canali di diversi fornitori, abbiamo notato le seguenti ricette (eventuali screenshot sono un po' ritagliati, per favore capisci ):

Fornitore 1
– non si preoccupa e impone i propri server DNS e un server proxy trasparente. Bene?... ma abbiamo accesso dove ne abbiamo bisogno (se ne abbiamo bisogno :))

Fornitore 2
- ritiene che il suo principale fornitore dovrebbe pensarci, il supporto tecnico del principale fornitore ha persino ammesso il motivo per cui non potevo aprire il sito di cui avevo bisogno, il che non era proibito. Penso che la foto ti divertirà :)

Iptables e filtraggio del traffico dei dissidenti poveri e pigri

Come si è scoperto, traducono i nomi dei siti vietati in indirizzi IP e bloccano l'IP stesso (non sono infastiditi dal fatto che questo indirizzo IP possa ospitare 20 siti).

Fornitore 3
— consente al traffico di andare lì, ma non di ritornare lungo il percorso.

Fornitore 4
— proibisce tutte le manipolazioni con i pacchetti nella direzione specificata.

Cosa fare con la VPN (rispetto al browser Opera) e i plugin del browser? Giocando inizialmente con il nodo Mikrotik, abbiamo persino ottenuto una ricetta ad alta intensità di risorse per L7, che in seguito abbiamo dovuto abbandonare (potrebbero esserci più nomi proibiti, diventa triste quando, oltre alle sue responsabilità dirette per i percorsi, su 3 dozzine espressioni il carico del processore PPC460GT arriva al 100 %).

Iptables e filtraggio del traffico dei dissidenti poveri e pigri.

Ciò che è diventato chiaro:
Il DNS su 127.0.0.1 non è assolutamente una panacea; le versioni moderne dei browser consentono comunque di aggirare tali problemi. È impossibile limitare tutti gli utenti a diritti ridotti e non dobbiamo dimenticare l'enorme numero di DNS alternativi. Internet non è statico e, oltre ai nuovi indirizzi DNS, i siti vietati acquistano nuovi indirizzi, modificano domini di primo livello e possono aggiungere/rimuovere un carattere nel proprio indirizzo. Ma ha ancora il diritto di vivere qualcosa del tipo:

ip route add blackhole 1.2.3.4

Sarebbe abbastanza efficace ottenere l'elenco degli indirizzi IP dall'elenco dei siti vietati, ma per i motivi sopra indicati siamo passati a considerazioni su Iptables. Esisteva già un live balancer su CentOS Linux versione 7.5.1804.

L'Internet dell'utente dovrebbe essere veloce e il browser non dovrebbe attendere mezzo minuto, concludendo che questa pagina non è disponibile. Dopo una lunga ricerca siamo arrivati ​​a questo modello:
Scheda 1 -> /script/host_negato, elenco dei nomi vietati:

test.test
blablabla.bubu
torrent
porno

Scheda 2 -> /script/intervallo_negato, elenco degli spazi di indirizzi e degli indirizzi vietati:

192.168.111.0/24
241.242.0.0/16

File di script 3 -> ipt.shfacendo il lavoro con ipables:

# считываем полезную информацию из перечней файлов
HOSTS=`cat /script/denied_host | grep -v '^#'`
RANGE=`cat /script/denied_range | grep -v '^#'`
echo "Stopping firewall and allowing everyone..."
# сбрасываем все настройки iptables, разрешая то что не запрещено
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
#решаем обновить информацию о маршрутах (особенность нашей архитектуры)
sudo sh rout.sh
# циклически обрабатывая каждую строку файла применяем правило блокировки строки
for i in $HOSTS; do
sudo iptables -I FORWARD -m string --string $i --algo bm --from 1 --to 600 -p tcp -j REJECT --reject-with tcp-reset;
sudo iptables -I FORWARD -m string --string $i --algo bm --from 1 --to 600 -p udp -j DROP;
done
# циклически обрабатывая каждую строку файла применяем правило блокировки адреса
for i in $RANGE; do
sudo iptables -I FORWARD -p UDP -d $i -j DROP;
sudo iptables -I FORWARD -p TCP  -d $i -j REJECT --reject-with tcp-reset;
done

L'uso di sudo è dovuto al fatto che disponiamo di un piccolo hack per il controllo tramite l'interfaccia WEB, ma come ha dimostrato l'esperienza nell'utilizzo di tale modello per più di un anno, WEB non è così necessario. Dopo l'implementazione, si desiderava aggiungere un elenco di siti al database, ecc. Il numero di host bloccati è superiore a 250 + una dozzina di spazi di indirizzi. C'è davvero un problema quando si accede a un sito tramite una connessione https, come l'amministratore di sistema, ho lamentele sui browser :), ma questi sono casi speciali, la maggior parte dei fattori scatenanti per la mancanza di accesso alla risorsa sono ancora dalla nostra parte , blocchiamo con successo anche Opera VPN e plugin come friGate e telemetria di Microsoft.

Iptables e filtraggio del traffico dei dissidenti poveri e pigri

Fonte: habr.com

Aggiungi un commento