Iptables und das Filtern des Datenverkehrs von armen und faulen Dissidenten

Die Relevanz der Sperrung des Besuchs verbotener Ressourcen betrifft jeden Administrator, der offiziell wegen Nichteinhaltung von Gesetzen oder Anordnungen der zuständigen Behörden angeklagt werden kann.

Iptables und das Filtern des Datenverkehrs von armen und faulen Dissidenten

Warum das Rad neu erfinden, wenn es für unsere Aufgaben spezielle Programme und Distributionen gibt, zum Beispiel: Zeroshell, pfSense, ClearOS.

Die Geschäftsführung hatte noch eine weitere Frage: Verfügt das verwendete Produkt über ein Sicherheitszertifikat unseres Bundeslandes?

Wir hatten Erfahrung mit den folgenden Distributionen:

  • Zeroshell – die Entwickler spendeten sogar eine 2-Jahres-Lizenz, aber es stellte sich heraus, dass das Distributionskit, an dem wir interessiert waren, unlogischerweise eine kritische Funktion für uns erfüllte;
  • pfSense – Respekt und Ehre, gleichzeitig langweilig, gewöhnungsbedürftig an die Befehlszeile der FreeBSD-Firewall und nicht bequem genug für uns (ich denke, es ist eine Gewohnheitssache, aber es hat sich als der falsche Weg herausgestellt);
  • ClearOS – auf unserer Hardware erwies es sich als sehr langsam, wir konnten nicht zu ernsthaften Tests kommen, warum also so umfangreiche Schnittstellen?
  • Ideco SELECTA. Das Ideco-Produkt ist ein separates Gespräch, ein interessantes Produkt, aber aus politischen Gründen nicht für uns, und ich möchte sie auch wegen der Lizenz für dasselbe Linux, Roundcube usw. „beißen“. Woher kamen sie auf die Idee, die Schnittstelle einzuschneiden? Python und durch den Entzug der Superuser-Rechte können sie ein fertiges Produkt verkaufen, das aus entwickelten und modifizierten Modulen der Internet-Community besteht und unter der GPL usw. vertrieben wird.

Ich verstehe, dass jetzt negative Ausrufe in meine Richtung strömen werden mit der Forderung, meine subjektiven Gefühle im Detail zu begründen, aber ich möchte sagen, dass dieser Netzwerkknoten auch ein Verkehrsausgleicher für 4 externe Kanäle zum Internet ist und jeder Kanal seine eigenen Eigenschaften hat . Ein weiterer Eckpfeiler war die Notwendigkeit, dass eine von mehreren Netzwerkschnittstellen in unterschiedlichen Adressräumen arbeiten muss, und ich готов Geben Sie zu, dass VLANs überall dort eingesetzt werden können, wo es notwendig und nicht notwendig ist nicht bereit. Es sind Geräte wie TP-Link TL-R480T+ im Einsatz – diese verhalten sich im Allgemeinen mit ihren eigenen Nuancen nicht perfekt. Dank der offiziellen Ubuntu-Website war es möglich, diesen Teil unter Linux zu konfigurieren IP-Balancing: Zusammenführung mehrerer Internetkanäle zu einem. Darüber hinaus kann jeder der Kanäle jederzeit „fallen“ und auch steigen. Wenn Sie an einem Skript interessiert sind, das derzeit funktioniert (und dieses eine separate Veröffentlichung wert ist), schreiben Sie in die Kommentare.

Die betrachtete Lösung erhebt nicht den Anspruch, einzigartig zu sein, aber ich möchte die Frage stellen: „Warum sollte sich ein Unternehmen auf zweifelhafte Produkte von Drittanbietern mit erheblichen Hardwareanforderungen einstellen, wenn eine alternative Option in Betracht gezogen werden kann?“

Wenn es in der Russischen Föderation eine Liste von Roskomnadzor gibt, gibt es in der Ukraine einen Anhang zum Beschluss des Nationalen Sicherheitsrates (z. B. hier), dann schlafen auch die lokalen Führer nicht. Beispielsweise erhielten wir eine Liste verbotener Websites, die nach Ansicht des Managements die Produktivität am Arbeitsplatz beeinträchtigen.

Durch die Kommunikation mit Kollegen in anderen Unternehmen, in denen standardmäßig alle Websites verboten sind und Sie nur auf Anfrage mit Erlaubnis des Chefs auf eine bestimmte Website zugreifen können, respektvoll lächeln, nachdenken und „über das Problem hinwegrauchen“, kamen wir zu der Einsicht, dass das Leben so ist ist immer noch gut und wir haben mit der Suche begonnen.

Da wir die Möglichkeit hatten, nicht nur analytisch zu sehen, was in den „Hausfrauenbüchern“ über die Verkehrsfilterung geschrieben wird, sondern auch zu sehen, was auf den Kanälen verschiedener Anbieter passiert, sind uns die folgenden Rezepte aufgefallen (evtl. Screenshots sind bitte etwas beschnitten). verstehe, wenn du fragst):

Anbieter 1
– kümmert sich nicht darum und setzt eigene DNS-Server und einen transparenten Proxyserver ein. Nun ja? Aber wir haben Zugang dorthin, wo wir ihn brauchen (wenn wir ihn brauchen :))

Anbieter 2
- glaubt, dass sein Top-Anbieter darüber nachdenken sollte, der technische Support des Top-Anbieters gab sogar zu, warum ich die von mir benötigte Seite nicht öffnen konnte, was nicht verboten war. Ich denke, das Bild wird dich amüsieren :)

Iptables und das Filtern des Datenverkehrs von armen und faulen Dissidenten

Wie sich herausstellte, übersetzen sie die Namen verbotener Sites in IP-Adressen und blockieren die IP selbst (die Tatsache, dass diese IP-Adresse 20 Sites hosten kann, stört sie nicht).

Anbieter 3
– Lässt den Verkehr dorthin fließen, lässt ihn jedoch nicht zurück entlang der Route.

Anbieter 4
— verbietet alle Manipulationen mit Paketen in der angegebenen Richtung.

Was tun mit VPN (in Bezug auf den Opera-Browser) und Browser-Plugins? Als wir zunächst mit dem Knoten Mikrotik spielten, bekamen wir sogar ein ressourcenintensives Rezept für L7, das wir später aufgeben mussten (es kann mehr verbotene Namen geben, es wird traurig, wenn zusätzlich zu seinen direkten Verantwortlichkeiten für Routen, auf 3 Dutzend Ausdrücke geht die Prozessorauslastung des PPC460GT auf 100 %).

Iptables und das Filtern des Datenverkehrs von armen und faulen Dissidenten.

Was klar wurde:
DNS auf 127.0.0.1 ist absolut kein Allheilmittel; moderne Browserversionen ermöglichen es Ihnen immer noch, solche Probleme zu umgehen. Es ist unmöglich, alle Benutzer auf reduzierte Rechte zu beschränken, und wir dürfen die große Anzahl alternativer DNS nicht vergessen. Das Internet ist nicht statisch und zusätzlich zu neuen DNS-Adressen kaufen verbotene Websites neue Adressen, ändern Top-Level-Domains und können ihrer Adresse ein Zeichen hinzufügen/entfernen. Aber hat immer noch das Recht, etwas zu leben wie:

ip route add blackhole 1.2.3.4

Es wäre sehr effektiv, eine Liste der IP-Adressen aus der Liste der verbotenen Websites zu erhalten, aber aus den oben genannten Gründen sind wir zu den Überlegungen zu Iptables übergegangen. In der CentOS Linux-Version 7.5.1804 gab es bereits einen Live-Balancer.

Das Internet des Benutzers sollte schnell sein und der Browser sollte nicht eine halbe Minute warten und daraus schließen, dass diese Seite nicht verfügbar ist. Nach langer Suche sind wir auf dieses Modell gestoßen:
Datei 1 -> /script/denied_host, Liste der verbotenen Namen:

test.test
blablabla.bubu
torrent
porno

Datei 2 -> /script/denied_range, Liste verbotener Adressräume und Adressen:

192.168.111.0/24
241.242.0.0/16

Skriptdatei 3 -> ipt.shDen Job mit ipables erledigen:

# считываем полезную информацию из перечней файлов
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

Die Verwendung von sudo ist auf die Tatsache zurückzuführen, dass wir einen kleinen Hack für die Verwaltung über die WEB-Schnittstelle haben, aber wie die Erfahrung mit der Verwendung eines solchen Modells über mehr als ein Jahr gezeigt hat, ist WEB nicht so notwendig. Nach der Implementierung bestand der Wunsch, der Datenbank eine Liste von Websites usw. hinzuzufügen. Die Anzahl der blockierten Hosts beträgt mehr als 250 + ein Dutzend Adressräume. Es gibt wirklich ein Problem, wenn man über eine https-Verbindung auf eine Seite geht, da der Systemadministrator sich über Browser beschwert :), aber das sind Sonderfälle, die meisten Auslöser für den fehlenden Zugriff auf die Ressource liegen immer noch auf unserer Seite Außerdem blockieren wir erfolgreich Opera VPN und Plugins wie friGate und Telemetry von Microsoft.

Iptables und das Filtern des Datenverkehrs von armen und faulen Dissidenten

Source: habr.com

Kommentar hinzufügen