Iptables e filtrazione del traffico da pensatori alternativi pigri e indolenti

La necessità di bloccare l'accesso a risorse vietate tocca ogni amministratore che possa essere ufficialmente accusato di non rispettare la legge o le disposizioni delle autorità competenti.

Iptables e filtrazione del traffico da pensatori alternativi pigri e indolenti

Perché reinventare la ruota quando ci sono programmi e distribuzioni specializzate per le nostre necessità, come: Zeroshell, pfSense, ClearOS.

C'è stata un'altra domanda da parte della dirigenza: Il prodotto utilizzato ha un certificato di sicurezza del nostro stato?

Abbiamo avuto esperienza con le distribuzioni elencate:

  • Zeroshell — i sviluppatori hanno persino regalato una licenza di 2 anni, ma si è rivelato che la distribuzione in questione non eseguiva in modo logico una funzione critica per noi;
  • pfSense — rispetto e considerazione, ma anche noia; ci si abitua all'interfaccia a riga di comando del firewall FreeBSD e non è abbastanza conveniente per noi (credo sia solo questione di abitudine, ma non era la strada giusta);
  • ClearOS — si è rivelato molto lento sul nostro hardware, non siamo riusciti a arrivare a test seri, ecco perché utilizzare interfacce così pesanti?
  • Ideco SELECTA. Un prodotto «Ideco» merita una discussione a parte: è un prodotto interessante, ma per motivi politici non è per noi. Vorrei anche affrontare il tema della licenza per lo stesso Linux, Roundcube, ecc. Come possono pensare che 'realizzando' un'interfaccia, Python e sottraendo i diritti da superuser, possano vendere un prodotto finito compilato da moduli sviluppati e modificati dalla comunità internet distribuiti sotto GPL&ecc.

Capisco che ora riceverò reazioni negative con richieste di una giustificazione dettagliata delle mie percezioni soggettive, ma voglio dire che questo nodo della rete funzione anche come bilanciatore di traffico verso 4 canali esterni verso Internet, e ogni canale ha le sue peculiarità. Un punto cruciale è stata la necessità di far funzionare uno dei vari interfacce di rete in differenti spazi indirizzinali, e io sono pronto a ammettere che non sono pronto ad applicare VLAN ovunque sia necessario e non necessario.Attualmente utilizzo dispositivi come il TP-Link TL-R480T+ — non si comportano in modo perfetto, in generale hanno le loro particolarità. Questa parte su Linux è riuscita a essere configurata in modo ragionevole grazie al sito ufficiale di Ubuntu. IP-Balancing: uniamo più canali Internet in uno solo. Ciascuno dei canali può "cadere" in qualsiasi momento, così come può risollevarsi. Se sei interessato a uno script che funzioni attualmente (e questo merita una pubblicazione separata) — scrivici nei commenti.

La soluzione che stiamo considerando non pretende di essere originale, ma vogliamo porre una domanda: «Perché in un'azienda adattarsi a prodotti esterni discutibili con requisiti hardware severi quando si può considerare un'alternativa?».

Se in RF c'è un elenco del Roskomnadzor, in Ucraina — un'app nel Decreto del Consiglio di Sicurezza Nazionale (ad es. ecco), anche a livello locale i manager non restano con le mani in mano. Ad esempio, ci è stato trasmesso un elenco di siti vietati, secondo il parere della direzione, che riducono la produttività sul posto di lavoro.

Parlando con colleghi in altre aziende, dove di default tutti i siti sono vietati e solo su richiesta con il permesso del capo si può accedere a un sito specifico, sorridendo rispettosamente, riflettendo e "fumando su questo problema" è giunto il nostro riconoscimento che la vita è comunque bella e abbiamo iniziato la nostra ricerca.

Avendo la possibilità di analizzare non solo ciò che si scrive nei "libri delle casalinghe" riguardo alla filtrazione del traffico, ma anche di osservare cosa succede nei canali di diversi provider, abbiamo notato le seguenti ricette (qualunque screenshot è un po' ritagliato, vi prego di comprendere):

Provider 1
— non si preoccupa e impone i propri server DNS e un proxy trasparente. Beh?.. però abbiamo accesso dove dobbiamo andare (se ci serve :))

Provider 2
— ritiene che sia compito del suo provider superiore pensarci, il supporto tecnico del provider superiore ha persino ammesso perché non riesco ad aprire il sito che mi serve e che non è vietato. Penso che l'immagine vi farà ridere 🙂

Iptables e filtrazione del traffico da pensatori alternativi pigri e indolenti

Come si è rivelato, traducono i nomi dei siti vietati in indirizzi IP e bloccano proprio l'IP (non si preoccupano del fatto che su questo indirizzo IP potrebbero esserci anche 20 siti).

Provider 3
— lascia passare il traffico in una direzione, ma non lo permette di tornare lungo il percorso.

Provider 4
— vieta tutte le manipolazioni con i pacchetti nella direzione indicata.

E cosa fare con il VPN (rispetto per il browser Opera) e i plugin per i browser? Giocando inizialmente con i nodi Mikrotik, abbiamo persino sviluppato una ricetta esigente per L7, dalla quale poi abbiamo dovuto ritirarci (i nomi vietati potrebbero essere molti di più, diventa triste quando, oltre ai propri doveri diretti sui percorsi, la CPU PPC460GT raggiunge il 100% di carico in 30 espressioni).

Iptables e filtrazione del traffico da pensatori alternativi pigri e indolenti.

Cosa è diventato chiaro:
Il DNS su 127.0.0.1 non è affatto una panacea; le versioni moderne dei browser consentono comunque di aggirare tali problemi. Non si possono limitare tutti gli utenti con diritti ridotti, e non bisogna dimenticare l'enorme quantità di DNS alternativi. Internet non è statico e, oltre ai nuovi indirizzi DNS, i siti vietati acquistano nuovi indirizzi, cambiano i nomi di dominio di primo livello, possono aggiungere/rimuovere caratteri nel loro indirizzo. Tuttavia, ha comunque diritto a esistere qualcosa come:

ip route add blackhole 1.2.3.4

Sarebbe piuttosto efficace ottenere un elenco di indirizzi IP dai siti vietati, ma per le ragioni sopra indicate siamo passati a considerare l'Iptables. Esisteva già un bilanciatore attivo su CentOS Linux release 7.5.1804.

La connessione internet deve essere veloce, e il browser non deve attendere mezz'ora per dichiarare che questa pagina non è disponibile. Dopo lunghe ricerche, siamo giunti a questo modello:
File 1 -> /script/denied_host, elenco dei nomi vietati:

test.test
blablabla.bubu
torrent
porno

File 2 -> /script/denied_range, elenco degli spazi di indirizzi e indirizzi vietati:

192.168.111.0/24
241.242.0.0/16

File-script 3 -> ipt.sh, che gestisce il lavoro con iptables:

# считываем полезную информацию из перечней файлов
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 abbiamo un piccolo hack per la gestione tramite l'interfaccia WEB, ma l'esperienza di oltre un anno con questo modello ha dimostrato che il WEB non è così necessario. Dopo l'implementazione, c'era la volontà di inserire l'elenco dei siti in un database e simili. Il numero di host bloccati è superiore a 250 + una decina di spazi di indirizzi. Ci sono davvero problemi quando si accede a un sito tramite una connessione https, e come amministratore di sistema ho delle lamentele sui browser :), ma questi sono casi isolati; la maggior parte delle attivazioni per l'assenza di accesso alle risorse è comunque dalla nostra parte, bloccando anche con successo Opera VPN, plugin come friGate e la telemetria di Microsoft.

Iptables e filtrazione del traffico da pensatori alternativi pigri e indolenti

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster