Un grand nombre d'instructions ont été publiées avec diverses options pour contourner le blocage des ressources Internet. Mais le sujet ne perd pas de sa pertinence. Plus souvent encore, des initiatives sont entendues au niveau législatif pour bloquer les articles sur les méthodes de contournement des serrures. Et il y avait des rumeurs selon lesquelles Roskomnadzor recevrait un autre paquet d'argent des contribuables pour de "meilleures" serrures. Les utilisateurs expérimentés n'apprendront rien de nouveau ou d'utile de l'article. Mais d'autres recevront des instructions étape par étape prédéfinies pour un contournement sélectif simple et efficace des verrous sur les routeurs populaires avec le firmware Padavan et Keenetic.

Table des matières
Présentation
J'ai utilisé l'
option de contournement de verrouillage Zolg pendant environ deux ans. De nombreuses instructions sur le réseau sont basées sur celui-ci. Le mien inclus.
Tout était bien, mais "le meilleur est toujours l'ennemi du bien". Premièrement, certains nouveaux programmes sont devenus trop «intelligents» et résoudront les domaines en utilisant leurs propres méthodes, contournant le serveur DNS du routeur. Cela ne permet pas à dnsmasq sur le routeur d'ajouter l'adresse à l'ensemble ipset pour le déverrouillage et conduit à un résultat logique - la ressource reste verrouillée. Dans Android 9, prise en charge native de DNS sur TLS, c'est-à-dire cette méthode de contournement du verrou cesse de fonctionner (si l'autre périphérique n'a pas accédé à dnsmasq auparavant). Deuxièmement, la mise à jour de la liste complète des domaines depuis antizapret conduit à des résultats imprévisibles à chaque fois. La liste peut inclure des domaines qui ne sont pas vraiment bloqués et dont le fonctionnement est important via le canal principal. Vous devez être constamment en alerte et modifier les fichiers générés avec vos mains. Troisièmement, je suis fatigué de "traîner" une énorme liste de domaines avec des dizaines de milliers de casinos et autres, qui ne sont tout simplement pas nécessaires. Au fil du temps, j'ai réalisé que je n'avais besoin que d'une petite liste spécifique de ressources bloquées.
Donc, depuis un an, j'utilise une méthode de déverrouillage légèrement modifiée, dont je suis entièrement satisfait:
- Simplicité et facilité de contrôle (après configuration).
- Contrôle total sur les ressources dont vous avez besoin pour débloquer.
- Configuration minimale requise pour les ressources processeur et la RAM du routeur.
- Large couverture des nuances lors du contournement des verrous.
Il est important de noter que mon option n'est pas destinée au cas où vous devez déverrouiller des centaines et des milliers de domaines. Parce que lorsque le routeur démarre, chaque domaine de la liste donnée est résolu. Plus il y a de domaines dans la liste, plus l'initialisation de nombreux ipsets à débloquer est longue.
La base pour contourner les verrous est la même - le réseau Tor. Son utilisation est due à deux facteurs simples - gratuits, et la probabilité que Tor soit bloqué en Russie est proche de zéro, contrairement à tout service VPN. Tor est le fondement du trafic de drogue en Russie du milieu vers le bas. Le verrouillage de Tor conduira à la recherche de nouveaux outils pour le marché et à une diminution de l'anonymat, ce qui entraînera l'activation réussie du travail des services répressifs locaux. En fin de compte, cela, comme un virus, commencera à affecter négativement le lien supérieur. Compte tenu des dernières nouvelles étonnantes sur la relation des hauts responsables du gouvernement avec le trafic mondial de drogue en Russie, le blocage de Tor en Russie n'est qu'un tabou, bien qu'il soit trivial. Ni Roskomnadzor, quel que soit le nombre de milliards alloués à cette agence, aucun tribunal russe n'a la permission d'en haut pour bloquer Tor. Et cela ne surprend même personne et n'effraie personne, même si la Russie se noie simplement dans la drogue (tout écolier sait ce que ça va faire, et après 30 minutes, il est en fait possible dans n'importe quelle ville de 10 000 habitants de se procurer librement des drogues pratiquement en toute quantité - une si mauvaise vérité de la vie). Dans le mode actuel, la probabilité de bloquer le réseau Tor est inférieure à la probabilité de bloquer le site du musée de l'Ermitage.
Les instructions données sont faciles à adapter pour les routeurs avec OpenWrt. De plus, de petits changements facilitent le remplacement de Tor par OpenVPN.
Comment allez-vous réussir à contourner les verrous après la configuration?
Tout est très simple. Vous avez le fichier /opt/etc/unblock.txt - une liste simple à déverrouiller. Vous pouvez déverrouiller un domaine, une adresse IP, une plage d'adresses ou un CIDR. Une ligne - un élément. Les lignes vides sont autorisées et vous pouvez utiliser le caractère # au début de la ligne pour ignorer.
Voici un exemple de mon dossier personnel Après avoir édité ce fichier, vous exécutez simplement la commande pour appliquer la nouvelle configuration:
unblock_update.sh
Toutes les ressources de unblock.txt sont déverrouillées sans avoir à redémarrer le routeur.
Principe de fonctionnement
- L'initialisation du routeur crée un ensemble vide d'adresses IP ipset appelé débloquer.
- Une règle pour rediriger tous les paquets avec des destinations de déblocage vers le service Tor est ajoutée au pare-feu.
- Le service Tor démarre en mode proxy transparent.
- Le script spécial unblock_ipset.sh est lancé, qui résout tous les domaines de unblock.txt et ajoute leurs adresses IP à l'ensemble de déblocage. Les adresses IP, les plages et les CIDR de ce fichier sont également ajoutés pour débloquer.
- Dnsmasq est lancé avec un fichier de configuration supplémentaire, unblock.dnsmasq, qui indique l'ajout d'adresses IP de domaine de unblock.txt à l'ensemble de déblocage lors de la résolution.
- cron exécute unblock_ipset.sh avec une certaine fréquence pour compenser partiellement les éventuels cas avec des nuances.
- Si nécessaire, tous les domaines de unblock.txt (et seulement eux) se résolvent via dnscrypt-proxy si le fournisseur filtre le DNS.
Configuration d'un routeur Padavan
Vous devez avoir un routeur avec le firmware Padavan installé et un gestionnaire de packages Entware déjà configuré. Sous Windows, vous pouvez utiliser le client
PuTTY pour vous connecter au routeur via SSH.
Assurez-vous que vous utilisez Entware, pas l'ancien Entware-ng. Affichez le contenu du dossier / opt / var / opkg-lists. Il y aura un fichier entware ou entware-ng. Dans le second cas, vous devez mettre à jour le firmware Padavan de votre routeur vers la dernière version et réinstaller le gestionnaire de packages Entware. Ensuite, continuez avec les instructions étape par étape.
Comme l'ont montré les critiques, des problèmes surviennent principalement pour ceux qui ont configuré Entware incorrectement au départ (c'est-à-dire que les scripts d'init.d ne sont pas chargés) dans la mémoire interne du routeur. Si vous avez Xiaomi Mi Router 3 ou 3G, et que vous n'êtes pas sûr que Entware dans votre mémoire interne fonctionne correctement (démarrage automatique), alors réinstallez tout. Prenez PROMETHEUS. Met à jour le script (1). Mettez à jour le code source (2). Récupérez et flashez le firmware le plus récent (4). Réinitialiser les paramètres du firmware (NVRAM et stockage de fichiers) - Avancé> Administration> Paramètres. Configurez l'accès Internet sur le routeur et activez SSH. Effectuez dans PROMETHEUS Firmware> Formatage RWFS. Choisissez Avancé> Administration> Paramètres> Monter le système de fichiers dans la section R / W> UBIFS. Redémarrez le routeur. Tous les scripts de démarrage Entware actuels de la mémoire interne seront enregistrés automatiquement et tout fonctionnera comme une horloge.
Pour les tests, j'ai utilisé le populaire Xiaomi Mi Router 3G (Entware est installé dans la mémoire interne) avec le dernier firmware - 32a93db. Tout fonctionnera même sur le légendaire bébé WT3020 AD / F / H pour 10 $.

1. Installation du logiciel nécessaire sur le routeur
opkg update opkg install mc tor tor-geoip bind-dig cron
mc - Gestionnaire de fichiers Midnight Commander. Il n'est nécessaire qu'en raison de l'éditeur mcedit pratique. Si vous avez l'habitude d'utiliser un autre éditeur de texte, alors mc ne peut pas être installé.
tor - Service Tor.
tor-geoip - base de données géo-IP pour Tor.
bind-dig - client DNS (analogue de nslookup et hôte).
cron - planificateur de tâches.
2. Initialisez l'ipset, créez plusieurs adresses IP de déblocage (start_script.sh)
Connectez les modules nécessaires et créez un ensemble d'adresses vide avec le nom
débloquer au démarrage du routeur. Pour ce faire, ouvrez le fichier
/etc/storage/start_script.sh dans l'éditeur:
mcedit /etc/storage/start_script.sh
Ajouter à la fin:
modprobe ip_set modprobe ip_set_hash_ip modprobe ip_set_hash_net modprobe ip_set_bitmap_ip modprobe ip_set_list_set modprobe xt_set ipset create unblock hash:net
Pour coller à partir du tampon, utilisez Shift + Insert, enregistrez - F2, quittez - F10.

Si vous le souhaitez, vous pouvez modifier le fichier start_script.sh via l'interface Web du routeur - "Avancé"> "Personnalisation"> "Scripts"> "Exécuter avant d'initialiser le routeur". Après la modification, cliquez sur "Appliquer".

3. Configuration de Tor
Supprimez le contenu du fichier de configuration Tor:
cat /dev/null > /opt/etc/tor/torrc
Ouvrez le fichier de configuration Tor:
mcedit /opt/etc/tor/torrc
Collez (Maj + Insérer) le contenu:
User admin PidFile /opt/var/run/tor.pid ExcludeExitNodes {RU},{UA},{AM},{KG},{BY} StrictNodes 1 TransPort 192.168.0.1:9141 ExitRelay 0 ExitPolicy reject *:* ExitPolicy reject6 *:* GeoIPFile /opt/share/tor/geoip GeoIPv6File /opt/share/tor/geoip6 DataDirectory /opt/var/lib/tor
Si nécessaire, remplacez
192.168.0.1 par l'adresse interne de votre routeur (LAN). Brève description de la configuration:
- Exclure les nœuds de sortie: Russie, Ukraine, Arménie Kirghizistan, Bélarus.
- Accrochez un proxy transparent à l'adresse 192.168.0.1, port 9141.
- Refuser d'être un point de sortie.
4. La liste des domaines (et pas seulement) pour contourner le verrou (unblock.txt)
unblock.txt est une liste simple à déverrouiller. Vous pouvez déverrouiller un domaine, une adresse IP, une plage ou un CIDR. Une ligne - un élément. Les lignes vides (y compris les espaces et les tabulations) sont ignorées. Vous pouvez utiliser le caractère # au début d'une ligne pour l'ignorer.
Créez le fichier
/opt/etc/unblock.txt :
mcedit /opt/etc/unblock.txt
Chaque ligne peut contenir un nom de domaine, une adresse IP, une plage ou un CIDR. Vous pouvez utiliser le caractère # pour commenter les lignes.
Voici un exemple de mon dossier personnel 5. Un script pour remplir un ensemble d'adresses IP de déblocage d'une liste donnée de domaines (unblock_ipset.sh)
Créez le script
/opt/bin/unblock_ipset.sh :
mcedit /opt/bin/unblock_ipset.sh
Collez (Maj + Insérer) le contenu:
Donner des droits d'exécution:
chmod +x /opt/bin/unblock_ipset.sh
Le script est assez simple, c'est l'essence même de son travail ... Nous attendons que la résolution du domaine google.com fonctionne (si ce n'est pas fait, beaucoup de déblocages ne seront pas effectués au démarrage du routeur, car le routeur sera toujours en cours d'initialisation). Nous lisons les lignes du fichier unblock.txt. Les lignes de lecture suppriment automatiquement les espaces et les tabulations au début et à la fin. Évitez les lignes vides. Ignorez les lignes commençant par le caractère #. Nous cherchons dans la ligne CIDR. Si CIDR est trouvé, ajoutez-le pour débloquer. Nous recherchons une gamme dans la chaîne. S'il est trouvé, ajoutez-le pour débloquer. Nous recherchons l'adresse IP dans la chaîne. Si l'IP est trouvée, ajoutez-la pour débloquer. Résolvons une ligne en creusant. Toutes les adresses IP du résultat sont ajoutées au déblocage.
6. Un script pour générer un fichier de configuration dnsmasq supplémentaire à partir d'une liste donnée de domaines (unblock_dnsmasq.sh)
Créez le script
/opt/bin/unblock_dnsmasq.sh :
mcedit /opt/bin/unblock_dnsmasq.sh
Collez (Maj + Insérer) le contenu:
Donner des droits d'exécution:
chmod +x /opt/bin/unblock_dnsmasq.sh
Le script est assez simple, c'est l'essence de son travail ... Nous lisons séquentiellement les lignes de /opt/etc/unblock.txt. Les lignes de lecture suppriment automatiquement les espaces et les tabulations au début et à la fin. Évitez les lignes vides. Évitez les lignes qui commencent par #. Nous sautons les lignes qui contiennent l'adresse IP (IP, plage, CIDR), c'est-à-dire nous ne sommes intéressés que par les chaînes avec des noms de domaine. Dans le fichier /opt/etc/unblock.dnsmasq nous ajoutons des lignes de la forme "ipset = / nom_domaine / débloquer". Cela signifie qu'après avoir déterminé les adresses IP d'un domaine particulier, elles seront automatiquement ajoutées à l'ensemble de déblocage.
Assurez-vous d'exécuter le script pour générer le fichier unblock.dnsmasq:
unblock_dnsmasq.sh
Vérifiez que le fichier unblock.dnsmasq est créé:
cat /opt/etc/unblock.dnsmasq
7. Le script de mise à jour forcée manuelle du système après avoir édité la liste des domaines (unblock_update.sh)
Créez le script
/opt/bin/unblock_update.sh :
mcedit /opt/bin/unblock_update.sh
Collez (Maj + Insérer) le contenu:
Donner des droits d'exécution:
chmod +x /opt/bin/unblock_update.sh
8. Script pour remplir automatiquement un ensemble de déblocage lors du démarrage d'un routeur (S99unblock)
Créez le script
/opt/etc/init.d/S99unblock :
mcedit /opt/etc/init.d/S99unblock
Collez (Maj + Insérer) le contenu:
Donner des droits d'exécution:
chmod +x /opt/etc/init.d/S99unblock
9. Transfert de paquets avec des destinations de déblocage à Tor (post_iptables_script.sh)
Ouvrez le fichier
/etc/storage/post_iptables_script.sh dans l'éditeur:
mcedit /etc/storage/post_iptables_script.sh
Ajouter à la fin:
iptables -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141

Si vous le souhaitez, vous pouvez modifier le fichier post_iptables_script.sh via l'interface Web du routeur - "Avancé"> "Personnalisation"> "Scripts"> "Exécuter après redémarrage des règles de pare-feu". Après la modification, cliquez sur "Appliquer".

Vous pouvez ajouter (c'est facultatif) au même fichier pour rediriger toutes les demandes vers le port externe 53 vers vous-même. Cela est nécessaire pour que les clients du réseau local n'utilisent pas de services DNS tiers. Les demandes passeront par le serveur DNS standard.
iptables -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 192.168.0.1 iptables -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 192.168.0.1
Si nécessaire, remplacez
192.168.0.1 par l'adresse interne de votre routeur (LAN).
10. Connexion d'un fichier de configuration supplémentaire à dnsmasq
Nous devons connecter le fichier unblock.dnsmasq créé à dnsmasq. Pour ce faire, ouvrez le fichier
/etc/storage/dnsmasq/dnsmasq.conf dans l'éditeur:
mcedit /etc/storage/dnsmasq/dnsmasq.conf
Ajouter à la fin:
conf-file=/opt/etc/unblock.dnsmasq
Si vous le souhaitez (ceci est facultatif), vous pouvez ajouter un serveur supplémentaire pour la résolution et la fiabilité:
server=8.8.8.8
Si vous le souhaitez, vous pouvez modifier le fichier dnsmasq.conf via l'interface Web du routeur - "Avancé"> "LAN"> "Serveur DHCP"> "Fichier de configuration utilisateur dnsmasq.conf". Après la modification, cliquez sur "Appliquer".

11. Ajout d'une tâche à cron pour mettre à jour périodiquement le contenu de l'ensemble de déblocage
Il s'agit d'une assurance supplémentaire si les programmes / appareils utilisent leur propre méthode de résolution et si l'adresse IP du domaine a changé. Il vous suffit d'exécuter le script unblock_ipset.sh à la fréquence souhaitée. Par exemple, nous lancerons tous les jours à 6 heures du matin.
Remplacez le nom racine par admin dans le fichier de configuration cron:
sed -i 's/root/admin/g' /opt/etc/crontab
Ouvrez le fichier
/ opt / etc / crontab dans l'éditeur:
mcedit /opt/etc/crontab
Ajouter à la fin:
00 06 * * * admin /opt/bin/unblock_ipset.sh
Si vous le souhaitez, vous pouvez commenter toutes les autres tâches du modèle. Voici à quoi ressemblera votre fichier crontab:

12. Redémarrage du routeur
Exécutez la commande:
reboot
Après le redémarrage, ouvrez le site Web check.torproject.org dans votre navigateur (il doit être ajouté à unblock.txt). Si vous avez tout fait correctement, vous verrez l'inscription «Félicitations. Ce navigateur est configuré pour utiliser Tor. ":

Configuration d'un routeur avec Keenetic OS
Vous devez disposer d'un routeur Keenetic / Zyxel avec Entware Package Manager (OPKG) déjà configuré. Par exemple, voici une liste de certains routeurs qui prennent en charge Entware: Keenetic II, Keenetic III, Extra, Extra II, Giga II, Giga III, Omni, Omni II, Viva, Ultra, Ultra II, Omni (KN-1410), Extra (KN -1710), Giga (KN-1010), Ultra (KN-1810), Viva (KN-1910), DSL (KN-2010), Duo (KN-2110). Les instructions pour configurer Entware peuvent être trouvées
ici (jusqu'à 10 points).
Si auparavant (avec un firmware sous 2.07) vous avez déjà ajouté la prise en charge Entware, assurez-vous que vous
utilisez l'Entware-ng obsolète .
Assurez-vous d'activer "Modules du noyau du sous-système Netfilter" - Paramètres généraux> Modifier le jeu de composants. S'il ne figure pas dans la liste de ceux disponibles, essayez d'abord d'installer le composant de protocole IPv6. Si après cela n'apparaît pas, essayez sans cela, mais il y a une forte probabilité que vous ne puissiez pas déverrouiller par plage et CIDR (car il n'y aura pas de support pour le hash: net set).

Pour les tests, j'ai utilisé Keenetic Ultra (KN-1810) avec le dernier firmware - 2.14.C.0.0-4.
Remarque importante. Vous devrez désactiver le serveur DNS standard dans le système, nous utiliserons plutôt dnsmasq. Vous perdrez la possibilité d'attribuer des services DNS (Yandex.DNS / SkyDNS / AdGuard DNS) individuellement aux clients, mais vous pouvez les utiliser globalement via les paramètres dnsmasq si nécessaire.1. Installation du logiciel nécessaire sur le routeur
opkg update opkg install mc tor tor-geoip bind-dig cron dnsmasq-full ipset iptables
mc - Gestionnaire de fichiers Midnight Commander. Il n'est nécessaire qu'en raison de l'éditeur mcedit pratique. Si vous avez l'habitude d'utiliser un autre éditeur de texte, alors mc ne peut pas être installé.
tor - Service Tor.
tor-geoip - base de données géo-IP pour Tor.
bind-dig - client DNS (analogue de nslookup et hôte).
cron - planificateur de tâches.
dnsmasq-full - serveur DNS.
ipset et iptables sont des utilitaires de console
ipset et iptables (ils peuvent déjà être sur le système et ne sont pas nécessaires, je les ai ajoutés pour des
raisons de sécurité).
2. Initialisez l'ipset, créez plusieurs adresses IP de déblocage (100-ipset.sh)
Vérifiez que votre système de routeur prend en charge beaucoup de hash: net (comme il s'est avéré, tous les routeurs Keenetic ne l'ont pas):
ipset create test hash:net
Si l'équipe n'a pas donné d'erreurs ou de messages, il y a du support et suivez simplement les instructions. Sinon (il y a une erreur) dans le script suivant, vous devez remplacer
hash: net par
hash: ip . Dans ce cas, vous perdez la possibilité de déverrouiller la plage et le CIDR.
Créez un ensemble d'adresses vide appelé
débloquer lorsque le routeur démarre. Pour ce faire, créez le fichier
/opt/etc/ndm/fs.d/100-ipset.sh :
mcedit /opt/etc/ndm/fs.d/100-ipset.sh
Collez (Maj + Insérer) le contenu:
Pour coller à partir du tampon, utilisez Shift + Insert, enregistrez - F2, quittez - F10.
Donner des droits d'exécution:
chmod +x /opt/etc/ndm/fs.d/100-ipset.sh
3. Configuration de Tor
Supprimez le contenu du fichier de configuration Tor:
cat /dev/null > /opt/etc/tor/torrc
Ouvrez le fichier de configuration Tor:
mcedit /opt/etc/tor/torrc
Collez (Maj + Insérer) le contenu:
User root PidFile /opt/var/run/tor.pid ExcludeExitNodes {RU},{UA},{AM},{KG},{BY} StrictNodes 1 TransPort 192.168.0.1:9141 ExitRelay 0 ExitPolicy reject *:* ExitPolicy reject6 *:* GeoIPFile /opt/share/tor/geoip GeoIPv6File /opt/share/tor/geoip6 DataDirectory /opt/var/lib/tor
Si nécessaire, remplacez
192.168.0.1 par l'adresse interne de votre routeur (LAN). Brève description de la configuration:
- Exclure les nœuds de sortie: Russie, Ukraine, Arménie Kirghizistan, Bélarus.
- Accrochez un proxy transparent à l'adresse 192.168.0.1, port 9141.
- Refuser d'être un point de sortie.
4. La liste des domaines (et pas seulement) pour contourner le verrou (unblock.txt)
unblock.txt est une liste simple à déverrouiller. Vous pouvez déverrouiller un domaine, une adresse IP, une plage ou un CIDR. Une ligne - un élément. Les lignes vides (y compris les espaces et les tabulations) sont ignorées. Vous pouvez utiliser le caractère # au début d'une ligne pour l'ignorer.
Créez le fichier
/opt/etc/unblock.txt :
mcedit /opt/etc/unblock.txt
Chaque ligne peut contenir un nom de domaine, une adresse IP, une plage ou un CIDR. Vous pouvez utiliser le caractère # pour commenter les lignes.
Voici un exemple de mon dossier personnel 5. Un script pour remplir un ensemble d'adresses IP de déblocage d'une liste donnée de domaines (unblock_ipset.sh)
Créez le script
/opt/bin/unblock_ipset.sh :
mcedit /opt/bin/unblock_ipset.sh
Collez (Maj + Insérer) le contenu:
Donner des droits d'exécution:
chmod +x /opt/bin/unblock_ipset.sh
Le script est assez simple, c'est l'essence même de son travail ... Nous attendons que la résolution du domaine google.com fonctionne (si ce n'est pas fait, beaucoup de déblocages ne seront pas effectués au démarrage du routeur, car le routeur sera toujours en cours d'initialisation). Nous lisons les lignes du fichier unblock.txt. Les lignes de lecture suppriment automatiquement les espaces et les tabulations au début et à la fin. Évitez les lignes vides. Ignorez les lignes commençant par le caractère #. Nous cherchons dans la ligne CIDR. Si CIDR est trouvé, ajoutez-le pour débloquer. Nous recherchons une gamme dans la chaîne. S'il est trouvé, ajoutez-le pour débloquer. Nous recherchons l'adresse IP dans la chaîne. Si l'IP est trouvée, ajoutez-la pour débloquer. Résolvons une ligne en creusant. Toutes les adresses IP du résultat sont ajoutées au déblocage.
6. Un script pour générer un fichier de configuration dnsmasq supplémentaire à partir d'une liste donnée de domaines (unblock_dnsmasq.sh)
Créez le script
/opt/bin/unblock_dnsmasq.sh :
mcedit /opt/bin/unblock_dnsmasq.sh
Collez (Maj + Insérer) le contenu:
Donner des droits d'exécution:
chmod +x /opt/bin/unblock_dnsmasq.sh
Le script est assez simple. Nous lisons séquentiellement les lignes de /opt/etc/unblock.txt. Les lignes de lecture suppriment automatiquement les espaces et les tabulations au début et à la fin. Évitez les lignes vides. Évitez les lignes qui commencent par #. Ignorer les lignes contenant une adresse IP (IP ou CIDR), c'est-à-dire nous ne sommes intéressés que par les chaînes avec des noms de domaine. Dans le fichier /opt/etc/unblock.dnsmasq nous ajoutons des lignes de la forme "ipset = / nom_domaine / débloquer". Cela signifie qu'après avoir déterminé les adresses IP d'un domaine particulier, elles seront automatiquement ajoutées à l'ensemble de déblocage.
Assurez-vous d'exécuter le script pour générer le fichier unblock.dnsmasq:
unblock_dnsmasq.sh
Vérifiez que le fichier unblock.dnsmasq est créé:
cat /opt/etc/unblock.dnsmasq
7. Le script de mise à jour forcée manuelle du système après avoir édité la liste des domaines (unblock_update.sh)
Créez le script
/opt/bin/unblock_update.sh :
mcedit /opt/bin/unblock_update.sh
Collez (Maj + Insérer) le contenu:
Donner des droits d'exécution:
chmod +x /opt/bin/unblock_update.sh
8. Script pour remplir automatiquement un ensemble de déblocage lors du démarrage d'un routeur (S99unblock)
Créez le script
/opt/etc/init.d/S99unblock :
mcedit /opt/etc/init.d/S99unblock
Collez (Maj + Insérer) le contenu:
Donner des droits d'exécution:
chmod +x /opt/etc/init.d/S99unblock
9. Transfert de paquets avec des destinations de déblocage à Tor (100-redirect.sh)
Pour ce faire, créez le fichier /opt/etc/ndm/netfilter.d/100-redirect.sh : mcedit /opt/etc/ndm/netfilter.d/100-redirect.sh
Collez (Maj + Insérer) le contenu:
Si vous avez utilisé hash: ip à l'étape 2 et non hash: net , remplacez hash: net par hash: ip. En fait, nous dupliquons également la fonction de création d'un ensemble de déblocage en 2 étapes. Ceci est nécessaire pour la sécurité, si les scripts de fs.d n'ont pas encore commencé à s'exécuter et que les scripts netfilter.d sont déjà en cours d'exécution. Ce n'est pas grave si le déblocage a déjà été créé plus tôt, la commande sera simplement ignorée.Vous pouvez ajouter (c'est facultatif) au même fichier pour rediriger toutes les demandes vers le port externe 53 vers vous-même. Cela est nécessaire pour que les clients du réseau local n'utilisent pas de services DNS tiers. Les demandes passeront par le serveur DNS standard. Avant la dernière sortie, ajoutez: if [ -z "$(iptables-save 2>/dev/null | grep "udp \-\-dport 53 \-j DNAT")" ]; then iptables -w -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 192.168.0.1 fi if [ -z "$(iptables-save 2>/dev/null | grep "tcp \-\-dport 53 \-j DNAT")" ]; then iptables -w -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 192.168.0.1 fi
Si nécessaire, remplacez 192.168.0.1 par l'adresse interne de votre routeur (LAN).Donner des droits d'exécution: chmod +x /opt/etc/ndm/netfilter.d/100-redirect.sh
10. Configurer dnsmasq et attacher un fichier de configuration supplémentaire à dnsmasq
Supprimez le contenu du fichier de configuration dnsmasq: cat /dev/null > /opt/etc/dnsmasq.conf
Ouvrez le fichier de configuration dnsmasq: mcedit /opt/etc/dnsmasq.conf
Collez (Maj + Insérer) le contenu: user=nobody bogus-priv no-negcache clear-on-reload bind-dynamic listen-address=192.168.0.1 listen-address=127.0.0.1 min-port=4096 cache-size=1536 expand-hosts log-async conf-file=/opt/etc/unblock.dnsmasq server=8.8.8.8
Si nécessaire, remplacez 192.168.0.1 par l'adresse interne de votre routeur (LAN).11. Ajout d'une tâche à cron pour mettre à jour périodiquement le contenu de l'ensemble de déblocage
Il s'agit d'une assurance supplémentaire si les programmes / appareils utilisent leur propre méthode de résolution et si l'adresse IP du domaine a changé. Il vous suffit d'exécuter le script unblock_ipset.sh à la fréquence souhaitée. Par exemple, nous lancerons tous les jours à 6 heures du matin.Ouvrez le fichier / opt / etc / crontab dans l'éditeur : mcedit /opt/etc/crontab
Ajouter à la fin: 00 06 * * * root /opt/bin/unblock_ipset.sh
Si vous le souhaitez, vous pouvez commenter toutes les autres tâches du modèle. Voici à quoi ressemblera votre fichier crontab:
12. Désactiver le serveur DNS normal et redémarrer le routeur
Connectez-vous à la CLI du routeur Keenetic (port 23 pour Telnet et 22 pour SSH si le composant «SSH Server» est ajouté au système).Exécutez la commande: opkg dns-override system configuration save system reboot
Le serveur DNS intégré au firmware sera désactivé et dnsmasq d'Entware sera utilisé à la place. Le routeur, au démarrage, vérifie si le dossier opt est monté (y a-t-il un lecteur flash USB / lecteur avec Entware). Si tel est le cas, un serveur DNS standard n'est pas utilisé. Sinon, utilisez. C'est-à-dire
retirer le lecteur flash et redémarrer le routeur, tout fonctionnera pour vous, comme avant (avant la configuration).Après le redémarrage, ouvrez le site Web check.torproject.org dans votre navigateur (il doit être ajouté à unblock.txt). Si vous avez tout fait correctement, vous verrez l'inscription «Félicitations. Ce navigateur est configuré pour utiliser Tor. ":
Méthodes de base pour diagnostiquer les erreurs après la configuration
Si la vérification avec le site check.torproject.org (il doit être ajouté à unblock.txt) réussit, mais que le talon du fournisseur continue de s'ouvrir pour d'autres ressources (ou ne s'ouvre pas), le fournisseur interférera probablement avec le trafic DNS, remplaçant les réponses - vous Une solution de contournement supplémentaire est nécessaire pour filtrer les requêtes DNS.Si après la configuration, quelque chose ne fonctionne pas comme il se doit, utilisez des commandes simples pour déterminer l'étape du problème.Affichez le contenu de l'ensemble de déblocage: ipset list unblock
Si le système signale qu'il n'y a pas de tels ensembles, l'erreur se trouve à l'étape 2 ou vous n'avez pas activé le module Netfilter dans le système (dans le cas de Keenetic).Si l'ensemble s'avère vide, le script unblock_ipset.sh n'a pas fonctionné, qui à son tour doit être démarré par le script de démarrage S99unblock. Exécutez ce script unblock_ipset.sh manuellement. Si l'ensemble est plein, l'erreur est à l'étape 8. Si le script ne peut pas être exécuté (très probablement, il attend la résolution de google.com), l'erreur se situe quelque part du côté du serveur DNS, éventuellement à l'étape 10 ou 6.Recherchez une redirection dans iptables : iptables-save 2>/dev/null | grep unblock
S'il n'est pas là, l'erreur est à l'étape 9.Si tous les sites sont en panne, c'est-à-dire DNS ne fonctionne pas, l'erreur se situe quelque part à l'étape 6 ou 10. Peut-être, à l'étape 9.Si tous les sites de unblock.txt ne fonctionnent pas (le délai est dépassé), mais que tous les autres fonctionnent, le problème se situe quelque part du côté de Tor, erreur au stade 3.Contournement supplémentaire pour filtrer les requêtes DNS par le fournisseur
Si un fournisseur interfère avec le trafic DNS en remplaçant les réponses pour les ressources bloquées, cela est très facile à contourner. Pour cela, nous utiliserons dnscrypt-proxy. Si vous le souhaitez et expérimentez, vous pouvez facilement remplacer dnscrypt par stubby (DNS sur TLS).dnscrypt ne sera utilisé que pour les domaines répertoriés dans unblock.txt. Toutes les autres requêtes passeront par des serveurs DNS classiques.Si vous êtes sûr que votre fournisseur ne filtre pas les requêtes DNS, vous n'avez pas besoin d'effectuer cette configuration supplémentaire.Vous devez déjà avoir configuré le contournement des verrous décrits ci-dessus. Les paramètres suivants sont identiques pour Padavan et Keenetic OS.Installez des logiciels supplémentaires sur le routeur: opkg update opkg install dnscrypt-proxy2
Ouvrez le fichier de configuration dnscrypt-proxy: mcedit /opt/etc/dnscrypt-proxy.toml
Recherchez les adresses listen_address, fallback_resolver, cache et modifiez-les: listen_addresses = ['127.0.0.1:9153'] fallback_resolver = '77.88.8.8:1253' cache = false
77.88.8.8:1253 est l'adresse du serveur DNS Yandex avec un port non standard. Il s'agit d'une sauvegarde en cas de problème avec dnscrypt-proxy.Exécutez dnscrypt-proxy: /opt/etc/init.d/S09dnscrypt-proxy2 start
Assurez-vous que dnscrypt-proxy fonctionne (vous devriez voir une liste d'adresses IP en réponse): dig +short google.com @localhost -p 9153
Ouvrez le script /opt/bin/unblock_ipset.sh dans l'éditeur : mcedit /opt/bin/unblock_ipset.sh
Remplacez le contenu par:
Nous avons fait un petit changement - maintenant creuser pour résoudre n'utilise pas un serveur DNS normal, mais dnscrypt-proxy avec le port 9153.Ouvrez le script /opt/bin/unblock_dnsmasq.sh dans l'éditeur : mcedit /opt/bin/unblock_dnsmasq.sh
Remplacez le contenu par:
Nous avons fait un petit changement - maintenant lors de la génération du fichier unblock.dnsmasq, des lignes supplémentaires comme «server = / domain_name / 127.0.0.1 # 9153» sont ajoutées. Cela signifie que la résolution des domaines de la liste se fera via dnscrypt-proxy.Exécutez unblock_update.sh: unblock_update.sh
C'est fait.
Tous les paramètres compliqués sont derrière. Maintenant, vous ne modifierez la liste unblock.txt que si nécessaire, en ajoutant ou supprimant des domaines ou des adresses IP pour le déverrouiller et en activant les modifications apportées avec la commande unblock_update.sh.MISE À JOUR 04/01/2019 . Viennent souvent des messages personnels sur l'article avec des questions typiques. Je répondrai ici le plus courant.Comment mettre à disposition des sites de zone de domaine .onion?En torrc, ajouter: VirtualAddrNetwork 10.254.0.0/16 DNSPort 127.0.0.1:9053 AutomapHostsOnResolve 1
Pour accéder à tous les domaines de la zone oignon, ajoutez à dnsmasq.conf: server=/onion/127.0.0.1
Si vous ne souhaitez pas ouvrir l'accès à tous les domaines de la zone oignon, mais uniquement à des domaines spécifiques, ajoutez les entrées suivantes dans dnsmasq.conf: server=/rutorc6mqdinc4cz.onion/127.0.0.1
Comment contourner les verrous pour les clients d'un serveur VPN fonctionnant sur un routeur?Dans torrc, remplacez la ligne par TransPort par: TransPort 0.0.0.0:9141
Ajoutez une redirection supplémentaire avec l'interface nécessaire (INTERFACE - Interface réseau VPN): iptables -t nat -A PREROUTING -i -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141