Iptables et filtrage du trafic des pauvres et paresseux dissidents

La nécessité de bloquer l'accès à des ressources interdites concerne tout administrateur qui pourrait officiellement être tenu responsable de ne pas respecter la loi ou les décisions des autorités compétentes.

Iptables et filtrage du trafic des pauvres et paresseux dissidents

Pourquoi réinventer la roue alors qu'il existe des programmes et des distributions spécialisés pour nos besoins, tels que : Zeroshell, pfSense, ClearOS.

Une autre question a été soulevée par la direction : Existe-t-il un certificat de sécurité pour le produit utilisé délivré par notre État ?

Nous avons eu une expérience avec les distributions mentionnées :

  • Zeroshell - les développeurs nous ont même offert une licence de deux ans, mais il s'est avéré que la distribution en question ne remplissait pas de manière logique une fonction critique pour nous ;
  • pfSense - respect et honneur, mais c'est ennuyeux, s'habituer à la ligne de commande du pare-feu FreeBSD et ce n'est pas assez pratique pour nous (je pense que c'est une question d'habitude, mais cela ne s'est pas révélé être le « bon chemin ») ;
  • ClearOS - sur notre matériel, il s'est avéré très lent, nous n'avons pas pu aller jusqu'aux tests sérieux, alors pourquoi avoir des interfaces si lourdes ?
  • Ideco SELECTA. Parler du produit « Aideco » est un sujet à part, c'est un produit intéressant, mais pour des raisons politiques, il n'est pas pour nous, et j'aimerais également les interroger sur la licence pour Linux, Roundcube, etc. Comment ont-ils pensé qu'en « bricoleant » l'interface dans Python et en retirant les droits de superutilisateur, ils pouvaient vendre un produit final composé de modules développés et améliorés par la communauté Internet distribués sous GPL&etc.

Je comprends que des critiques négatives vont pleuvoir sur moi avec des demandes d'arguments détaillés pour mes sensations subjectives, mais je souhaite dire que ce nœud de réseau est également un équilibrage de trafic vers 4 canaux externes vers Internet, chacun ayant ses propres caractéristiques. Un autre point critique était la nécessité de faire fonctionner l'un des plusieurs interfaces réseau dans différents espaces d'adresses, et je suis prêt à reconnaître que je ne suis pas prêt à appliquer des VLAN partout où il le faut et où il ne le faut pas. Les appareils comme le TP-Link TL-R480T+ ne se comportent pas parfaitement, en général avec leurs propres nuances. Cette partie sur Linux a été raisonnablement configurée grâce au site officiel d'Ubuntu.IP-Balancing : combinons plusieurs canaux Internet en un seul. Équilibrage IP : regroupons plusieurs canaux Internet en un seul. Chacun des canaux peut « tomber » à tout moment, tout comme il peut également remonter. Si vous êtes intéressé par le script qui fonctionne actuellement (ce qui mérite une publication à part) – écrivez dans les commentaires.

La solution envisagée ne prétend pas à l'unicité, mais je voudrais poser la question : « Pourquoi une entreprise devrait-elle s'adapter à des produits douteux avec des exigences matérielles sérieuses quand elle peut envisager une alternative ? »

S'il existe en Russie une liste de Roskomnadzor, en Ukraine, il y a une annexe à la Décision du Conseil de la Sécurité Nationale (par exemple. voici), les responsables sur le terrain ne restent pas inactifs non plus. Par exemple, on nous a transmis une liste de sites interdits, selon la direction, qui réduisent la productivité au travail.

En discutant avec des collègues d'autres entreprises, où tous les sites sont par défaut interdits et où l'accès à un site spécifique n'est accordé qu'avec l'autorisation du supérieur, après avoir souri respectueusement, réfléchi et « fumé sur le problème », nous avons réalisé que la vie en vaut la peine et nous avons commencé notre recherche.

Ayant la possibilité non seulement de voir analytiquement ce que les « livres de ménage » disent sur le filtrage du trafic, mais aussi d'observer ce qui se passe chez différents fournisseurs, nous avons noté les recettes suivantes (toutes les captures d'écran sont légèrement recadrées, merci de comprendre la demande) :

Fournisseur 1
— ne se prend pas la tête et impose ses propres serveurs DNS et un serveur proxy transparent. Eh bien ?.. au moins nous avons accès là où nous devons (si nous en avons besoin :))

Fournisseur 2
— pense que son fournisseur supérieur doit s'en occuper, le support technique du fournisseur supérieur a même reconnu pourquoi je ne pouvais pas ouvrir le site non interdit dont j'ai besoin. Je pense que l'image va vous faire sourire 🙂

Iptables et filtrage du trafic des pauvres et paresseux dissidents

Il s'est avéré qu'ils traduisent les noms des sites interdits en adresses IP et bloquent précisément l'IP (cela ne les préoccupe pas que 20 sites puissent être hébergés à cette adresse IP).

Fournisseur 3
— laisse passer le trafic dans ce sens, mais ne le laisse pas revenir.

Fournisseur 4
— interdit toute manipulation avec les paquets dans la direction indiquée.

Que faire avec les VPN (respect à Opera pour son navigateur) et les plugins de navigateur ? En jouant au début avec le nœud Mikrotik, nous avons même développé une recette gourmande sur L7, dont nous avons ensuite dû nous passer (il peut y avoir plus de noms interdits, on devient triste lorsqu'en plus de nos obligations directes concernant les routes, la charge du processeur PPC460GT atteint 100 % avec 30 expressions).

Iptables et filtrage du trafic des pauvres et paresseux dissidents.

Ce qu'il est devenu clair :
Le DNS sur 127.0.0.1 n'est absolument pas une panacée, les versions modernes des navigateurs permettent effectivement de contourner ce genre de problèmes. Il n'est pas possible de restreindre tous les utilisateurs avec des droits limités, et il ne faut pas oublier la multitude d'alternatives aux DNS. Internet n'est pas statique, et à part les nouvelles adresses DNS, les sites interdits achètent de nouvelles adresses, modifient leurs domaines de premier niveau, peuvent ajouter ou supprimer un caractère dans leur adresse. Mais il y a quand même quelque chose comme :

ip route add blackhole 1.2.3.4

Il serait tout à fait efficace d'obtenir une liste d'adresses IP provenant de la liste de sites interdits, mais pour les raisons mentionnées ci-dessus, nous avons dû envisager Iptables. Il y avait déjà un équilibreur en fonctionnement sur CentOS Linux release 7.5.1804.

L'internet de l'utilisateur doit être rapide, et le navigateur ne doit pas attendre une demi-minute pour conclure que la page n'est pas accessible. Après de longues recherches, nous avons abouti à 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'adresses et adresses interdites :

192.168.111.0/24
241.242.0.0/16

Fichier-script 3 -> ipt.sh, effectuant le travail avec 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'utilisation de sudo est due au fait que nous avons un petit hack pour gérer via l'interface WEB, mais comme l'expérience d'utilisation de ce modèle pendant plus d'un an l'a montré, le WEB n'est pas si nécessaire. Après la mise en œuvre, nous avions l'intention de transférer la liste des sites vers une base de données, etc. Le nombre d'hôtes bloqués est supérieur à 250 + une dizaine d'espaces d'adresses. Il y a effectivement un problème lors de l'accès à un site via une connexion https, et en tant qu'administrateur système, j'ai des plaintes à formuler à l'encontre des navigateurs :), mais ce sont des cas particuliers, la plupart des blocages d'accès à la ressource se situent de notre côté, et nous bloquons également efficacement les VPN d'Opera, les plugins comme friGate et la télémétrie de Microsoft.

Iptables et filtrage du trafic des pauvres et paresseux dissidents

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster