Die Notwendigkeit der Blockierung des Zugriffs auf verbotene Ressourcen betrifft jeden Administrator, dem offiziell die Nichteinhaltung von Gesetzen oder Anordnungen der zuständigen Behörden vorgeworfen werden kann.

Warum das Rad neu erfinden, wenn es spezialisierte Programme und Distributoren für unsere Aufgaben gibt, wie zum Beispiel: Zeroshell, pfSense, ClearOS.
Eine weitere Frage stellte sich dem Management: Hat das verwendete Produkt ein Sicherheitszertifikat unseres Staates?
Wir haben Erfahrungen mit den genannten Distributionen gesammelt:
- Zeroshell – die Entwickler haben uns sogar für 2 Jahre eine Lizenz geschenkt, aber es stellte sich heraus, dass die interessante Distribution für uns unlogisch eine kritische Funktion erfüllt;
- pfSense – Respekt und Ehre, gleichzeitig langweilig, Gewöhnung an die Befehlszeile der FreeBSD-Firewall und nicht ausreichend komfortabel für uns (ich denke, es ist eine Frage der Gewöhnung, aber das war nicht der „richtige Weg“);
- ClearOS – auf unserer Hardware war es sehr langsam, wir konnten nicht zu ernsthaften Tests gelangen, also warum solche schweren Schnittstellen?
- Ideco SELECTA. Über das Produkt "Ideco" gibt es ein separates Gespräch, interessantes Produkt, aber aus politischen Gründen nicht für uns geeignet, und ich möchte sie auch mal betreffend der Lizenz für dasselbe Linux, Roundcube usw. ansprechen. Woher haben sie die Idee, dass sie, indem sie die Schnittstelle in Python und die Superuser-Rechte entziehen, ein fertiges Produkt verkaufen können, das aus entwickelten und überarbeiteten Modulen der Internetgemeinschaft besteht, die unter GPL&etc. verbreitet werden.
Ich verstehe, dass jetzt negative Äußerungen in meine Richtung kommen werden, die eine detaillierte Begründung meiner subjektiven Empfindungen fordern, aber ich möchte sagen, dass dieser Netzwerk-Knoten auch als Lastenausgleich für 4 externe Kanäle zum Internet fungiert, wobei jeder Kanal seine eigenen Besonderheiten hat. Ein weiterer Dreh- und Angelpunkt war die Notwendigkeit, dass einer von mehreren Netzwerkschnittstellen in unterschiedlichen Adressbereichen arbeitet, und ich bin bereit einzugestehen, dass ich es nicht bereit bin, VLANs überall dort anzuwenden, wo es nötig und unnötig ist, nicht bereit.In Gebrauch sind Geräte wie TP-Link TL-R480T+ – sie verhalten sich nicht perfekt, insgesamt haben sie ihre Eigenheiten. Dieser Teil ließ sich unter Linux dank der offiziellen Website von Ubuntu vernünftig einstellen. . Jede der Kanäle kann in jedem Moment „ausfallen“, ebenso wie sie wieder „hochgehen“ kann. Wenn Sie das Skript, das derzeit funktioniert (darüber könnte man einen separaten Beitrag schreiben), interessiert – schreiben Sie in die Kommentare.
Die betrachtete Lösung erhebt keinen Anspruch auf Einzigartigkeit, aber ich möchte die Frage stellen: „Warum sollte man sich im Unternehmen an fragwürdige Produkte mit hohen Hardwareanforderungen anpassen, wenn man eine alternative Lösung in Betracht ziehen kann?“
Wenn in Russland eine Liste vom Roskomnadzor existiert, gibt es in der Ukraine eine Anwendung zur Entscheidung des Rates für nationale Sicherheit (z. B. ), schlafen die Führungskräfte vor Ort ebenfalls nicht. Zum Beispiel wurde uns eine Liste von gesperrten Websites übermittelt, die laut der Führung die Produktivität am Arbeitsplatz beeinträchtigen.
Im Gespräch mit Kollegen aus anderen Unternehmen, bei denen standardmäßig alle Websites gesperrt sind und man nur mit Genehmigung des Vorgesetzten Zugriff auf eine bestimmte Website erhalten kann, kam ich zu dem respektvollen Verständnis, dass das Leben letztendlich schön ist, und wir begannen unsere Suche.
Wir hatten die Möglichkeit, nicht nur analytisch zu betrachten, was in den „Hausfrauenbüchern“ über die Filterung des Traffics geschrieben steht, sondern auch zu beobachten, was auf den Kanälen verschiedener Anbieter passiert. Wir haben die folgenden Rezepte festgestellt (alle Screenshots sind etwas beschnitten, ich bitte um Verständnis):
Anbieter 1
– macht sich keine Mühe und zwingt eigene DNS-Server und einen transparenten Proxy-Server auf. Nun ja… aber wir haben Zugang dorthin, wo wir es brauchen (wenn wir es brauchen :))
Anbieter 2
– ist der Meinung, dass sein übergeordneter Anbieter sich darum kümmern sollte. Der technische Support des übergeordneten Anbieters gestand sogar ein, warum ich die benötigte, nicht gesperrte Website nicht öffnen kann. Ich denke, das Bild wird Sie amüsieren 🙂

Wie sich herausstellte, übersetzen sie die Namen der gesperrten Websites in IP-Adressen und blockieren genau diese IP (es kümmert sie nicht, dass auf dieser IP-Adresse auch 20 Websites liegen können).
Anbieter 3
– lässt den Traffic dort durch, aber auf dem Rückweg wird er nicht zugelassen.
Anbieter 4
– verbietet alle Manipulationen mit Paketen in der angegebenen Richtung.
Was ist mit VPN (Browser Opera ist zu respektieren) und Browser-Plugins zu tun? Nachdem wir anfänglich mit dem Mikrotik-Knoten gespielt haben, haben wir sogar ein ressourcenintensives L7-Rezept entwickelt, von dem wir später Abstand nehmen mussten (es könnte noch mehr verbotene Namen geben, es ist traurig, wenn neben unseren direkten Aufgaben bei den Routen die CPU-Auslastung des PPC460GT bei 100% liegt).
.
Was klar wurde:
DNS auf 127.0.0.1 ist absolut kein Allheilmittel, moderne Browser-Versionen erlauben es tatsächlich, solche Probleme zu umgehen. Man kann nicht alle Benutzer mit eingeschränkten Rechten einschränken, und man darf die riesige Anzahl an alternativen DNS nicht vergessen. Das Internet ist nicht statisch, und neben neuen DNS-Adressen kaufen verbotene Websites neue Adressen, ändern Top-Level-Domains, und können Zeichen in ihrer Adresse hinzufügen oder entfernen. Dennoch gibt es das Recht, Folgendes zu belassen:
ip route add blackhole 1.2.3.4Es wäre durchaus effektiv, eine Liste von IP-Adressen aus der Liste der verbotenen Websites zu erhalten, aber aus den oben genannten Gründen sind wir zu Überlegungen über Iptables übergegangen. Es gab bereits einen operativen Load Balancer auf CentOS Linux Release 7.5.1804.
Der Internetzugang des Benutzers sollte schnell sein, und der Browser sollte nicht eine halbe Minute warten müssen, um festzustellen, dass diese Seite nicht erreichbar ist. Nach langen Recherchen sind wir zu folgendem Modell gekommen:
Datei 1 -> /script/denied_host, Liste der verbotenen Namen:
test.test
blablabla.bubu
torrent
pornoDatei 2 -> /script/denied_range, Liste der verbotenen Adressräume und Adressen:
192.168.111.0/24
241.242.0.0/16Skript-Datei 3 -> ipt.sh, die mit iptables arbeitet:
# считываем полезную информацию из перечней файлов
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 rührt daher, dass wir einen kleinen Hack für die Verwaltung über die WEB-Oberfläche haben, aber wie die Erfahrungen mit diesem Modell über mehr als ein Jahr gezeigt haben, ist die WEB-Oberfläche nicht wirklich notwendig. Nach der Implementierung gab es den Wunsch, eine Liste der Websites in eine DB einzuführen usw. Die Anzahl der blockierten Hosts beträgt mehr als 250 + ein Dutzend Adressräume. Es gibt tatsächlich Probleme beim Zugriff auf Websites über HTTPS-Verbindungen; als Systemadministrator habe ich auch Beschwerden über die Browser :), aber das sind Einzelfälle, die meisten Zugriffsverweigerungen liegen immer noch auf unserer Seite, wir blockieren auch erfolgreich Opera VPN, Plugins wie friGate und die Telemetrie von Microsoft.

Quelle: habr.com
