Iptables et filtrage du trafic des dissidents pauvres et paresseux

La pertinence du blocage des visites aux ressources interdites affecte tout administrateur qui peut être officiellement accusé de non-respect de la loi ou des ordres des autorités compétentes.

Iptables et filtrage du trafic des dissidents pauvres et paresseux

Pourquoi réinventer la roue quand il existe des programmes et des distributions spécialisés pour nos tâches, par exemple : Zeroshell, pfSense, ClearOS.

La direction avait une autre question : le produit utilisé possède-t-il un certificat de sécurité de notre état ?

Nous avons eu de l'expérience avec les distributions suivantes :

  • Zeroshell - les développeurs ont même fait don d'une licence de 2 ans, mais il s'est avéré que le kit de distribution qui nous intéressait remplissait illogiquement une fonction critique pour nous ;
  • pfSense - respect et honneur, à la fois ennuyeux, s'habituant à la ligne de commande du pare-feu FreeBSD et pas assez pratique pour nous (je pense que c'est une question d'habitude, mais cela s'est avéré être la mauvaise voie) ;
  • ClearOS - sur notre matériel, cela s'est avéré très lent, nous n'avons pas pu procéder à des tests sérieux, alors pourquoi des interfaces aussi lourdes ?
  • Idéco SELECTA. Le produit Ideco est une conversation à part, un produit intéressant, mais pour des raisons politiques pas pour nous, et je veux aussi les « mordre » à propos de la licence du même Linux, Roundcube, etc. D'où leur est venue l'idée qu'en découpant l'interface en Python et en supprimant les droits de superutilisateur, ils peuvent vendre un produit fini composé de modules développés et modifiés par la communauté Internet distribués sous GPL&etc.

Je comprends que maintenant des exclamations négatives afflueront dans ma direction avec des demandes de justification détaillée de mes sentiments subjectifs, mais je tiens à dire que ce nœud de réseau est également un équilibreur de trafic pour 4 canaux externes vers Internet, et chaque canal a ses propres caractéristiques. . Une autre pierre angulaire était la nécessité pour l'une des nombreuses interfaces réseau de fonctionner dans différents espaces d'adressage, et j'ai готов admettre que les VLAN peuvent être utilisés partout où cela est nécessaire et non nécessaire pas prêt. Il existe des appareils utilisés tels que TP-Link TL-R480T+ - ils ne se comportent pas parfaitement, en général, avec leurs propres nuances. Il était possible de configurer cette partie sous Linux grâce au site officiel d'Ubuntu IP Balancing : combiner plusieurs canaux Internet en un seul. De plus, chacun des canaux peut « baisser » à tout moment, comme augmenter. Si vous êtes intéressé par un script qui fonctionne actuellement (et qui mérite une publication séparée), écrivez dans les commentaires.

La solution envisagée ne prétend pas être unique, mais je voudrais poser la question : « Pourquoi une entreprise devrait-elle s'adapter à des produits tiers douteux avec des exigences matérielles sérieuses alors qu'une option alternative peut être envisagée ?

Si en Fédération de Russie il existe une liste de Roskomnadzor, en Ukraine il existe une annexe à la décision du Conseil national de sécurité (par exemple. ici), alors les dirigeants locaux ne dorment pas non plus. Par exemple, on nous a remis une liste de sites interdits qui, de l'avis de la direction, nuisent à la productivité au travail.

En communiquant avec des collègues d'autres entreprises, où par défaut tous les sites sont interdits et où vous pouvez accéder à un site spécifique uniquement sur demande avec l'autorisation du patron, en souriant respectueusement, en réfléchissant et en « fumant sur le problème », nous avons compris que la vie est toujours bon et nous avons commencé leurs recherches.

Ayant l'occasion non seulement de voir analytiquement ce qu'ils écrivent dans les « livres des femmes au foyer » sur le filtrage du trafic, mais aussi de voir ce qui se passe sur les chaînes de différents fournisseurs, nous avons remarqué les recettes suivantes (toutes les captures d'écran sont un peu tronquées, s'il vous plaît comprendre en demandant):

Fournisseur 1
— ne dérange pas et impose ses propres serveurs DNS et un serveur proxy transparent. Eh bien ?.. mais nous avons accès là où nous en avons besoin (si nous en avons besoin :))

Fournisseur 2
- estime que son principal fournisseur devrait y réfléchir, le support technique du principal fournisseur a même admis pourquoi je ne pouvais pas ouvrir le site dont j'avais besoin, ce qui n'était pas interdit. Je pense que la photo va vous amuser :)

Iptables et filtrage du trafic des dissidents pauvres et paresseux

Il s'est avéré qu'ils traduisent les noms des sites interdits en adresses IP et bloquent l'IP elle-même (ils ne sont pas gênés par le fait que cette adresse IP peut héberger 20 sites).

Fournisseur 3
— permet au trafic d'y aller, mais ne lui permet pas de revenir sur l'itinéraire.

Fournisseur 4
— interdit toutes les manipulations avec des paquets dans la direction spécifiée.

Que faire du VPN (par rapport au navigateur Opera) et des plugins de navigateur ? En jouant avec le nœud Mikrotik au début, nous avons même obtenu une recette gourmande en ressources pour L7, que nous avons ensuite dû abandonner (il peut y avoir plus de noms interdits, ça devient triste quand, en plus de ses responsabilités directes pour les itinéraires, sur 3 douzaines expressions, la charge du processeur PPC460GT passe à 100 %).

Iptables et filtrage du trafic des dissidents pauvres et paresseux.

Ce qui est devenu clair :
DNS sur 127.0.0.1 n'est absolument pas une panacée, les versions modernes des navigateurs permettent toujours de contourner de tels problèmes. Il est impossible de limiter tous les utilisateurs à des droits réduits, et il ne faut pas oublier le grand nombre de DNS alternatifs. Internet n'est pas statique et, en plus des nouvelles adresses DNS, les sites interdits achètent de nouvelles adresses, modifient les domaines de premier niveau et peuvent ajouter/supprimer un caractère dans leur adresse. Mais il a toujours le droit de vivre quelque chose comme :

ip route add blackhole 1.2.3.4

Il serait assez efficace d'obtenir une liste d'adresses IP à partir de la liste des sites interdits, mais pour les raisons évoquées ci-dessus, nous sommes passés à des considérations sur Iptables. Il existait déjà un équilibreur en direct sur CentOS Linux version 7.5.1804.

L'Internet de l'utilisateur doit être rapide et le navigateur ne doit pas attendre une demi-minute pour conclure que cette page n'est pas disponible. Après une longue recherche nous sommes arrivés à ce modèle :
Fichier 1 -> /script/denied_host, liste des noms interdits :

test.test
blablabla.bubu
torrent
porno

Fichier 2 -> /script/denied_range, liste des espaces d'adressage et adresses interdits :

192.168.111.0/24
241.242.0.0/16

Fichier de script 3 -> ipt.shfaire le travail avec 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'utilisation de sudo est due au fait que nous disposons d'un petit hack pour gérer via l'interface WEB, mais comme l'a montré l'expérience d'utilisation d'un tel modèle depuis plus d'un an, le WEB n'est pas si nécessaire. Après la mise en œuvre, il y avait une volonté d'ajouter une liste de sites à la base de données, etc. Le nombre d'hôtes bloqués est supérieur à 250 + une douzaine d'espaces d'adressage. Il y a vraiment un problème lorsqu'on accède à un site via une connexion https, comme l'administrateur système, j'ai des plaintes concernant les navigateurs :), mais ce sont des cas particuliers, la plupart des déclencheurs du manque d'accès à la ressource sont toujours de notre côté , nous bloquons également avec succès Opera VPN et les plugins comme friGate et la télémétrie de Microsoft.

Iptables et filtrage du trafic des dissidents pauvres et paresseux

Source: habr.com

Ajouter un commentaire