Es wurde eine Vielzahl von Anweisungen mit verschiedenen Optionen zur Umgehung des Blockierens von Internetressourcen veröffentlicht. Das Thema verliert aber nicht an Relevanz. Noch häufiger werden auf gesetzlicher Ebene Initiativen angehört, um Artikel über Methoden zur Umgehung von Sperren zu blockieren. Und es gab Gerüchte, dass Roskomnadzor eine weitere Packung Steuergeld für „bessere“ Schlösser erhalten wird. Erfahrene Benutzer werden aus dem Artikel nichts Neues oder Nützliches lernen. Andere erhalten jedoch eine vorgefertigte Schritt-für-Schritt-Anleitung für die einfache und effektive selektive Umgehung von Sperren auf gängigen Routern mit Padavan- und Keenetic-Firmware.

Inhalt
Einführung
Ich habe die
Zolg- Schloss-Bypass-Option ungefähr zwei Jahre lang verwendet. Viele Anweisungen im Netzwerk basieren darauf. Meins einschließlich.
Alles war gut, aber "das Beste ist immer der Feind des Guten." Erstens sind einige neue Programme zu "intelligent" geworden und lösen Domänen mit ihren eigenen Methoden auf, wobei der DNS-Server des Routers umgangen wird. Dies erlaubt dnsmasq auf dem Router nicht, die Adresse zum Entsperren zum ipset-Set hinzuzufügen, und führt zu einem logischen Ergebnis - die Ressource bleibt gesperrt. In Android 9 wird native Unterstützung für DNS-over-TLS, d. H. Diese Methode zum Umgehen der Sperre funktioniert nicht mehr (wenn das andere Gerät zuvor noch nicht auf dnsmasq zugegriffen hat). Zweitens führt die Aktualisierung der gesamten Domain-Liste von Antizapret jedes Mal zu unvorhersehbaren Ergebnissen. Die Liste kann Domänen enthalten, die nicht wirklich blockiert sind und deren Betrieb über den Hauptkanal wichtig ist. Sie müssen ständig auf dem Laufenden sein und die generierten Dateien mit Ihren Händen bearbeiten. Drittens habe ich es satt, eine riesige Liste von Domains mit Zehntausenden von Casinos und dergleichen mitzuschleppen, die einfach nicht benötigt werden. Mit der Zeit wurde mir klar, dass ich nur eine kleine spezifische Liste blockierter Ressourcen benötigte.
Seit einem Jahr verwende ich eine leicht modifizierte Entsperrmethode, mit der ich voll und ganz zufrieden bin:
- Einfachheit und einfache Steuerung (nach der Konfiguration).
- Volle Kontrolle darüber, welche Ressourcen Sie entsperren müssen.
- Mindestanforderungen an Prozessorressourcen und Router-RAM.
- Breite Abdeckung von Nuancen beim Umgehen von Schlössern.
Es ist wichtig zu beachten, dass meine Option nicht für den Fall vorgesehen ist, dass Sie Hunderte und Tausende von Domains entsperren müssen. Denn wenn der Router gestartet wird, wird jede Domäne aus der angegebenen Liste aufgelöst. Je mehr Domains in der Liste enthalten sind, desto länger dauert die Initialisierung vieler zu entsperrender ipsets.
Die Basis für die Umgehung von Sperren ist dieselbe - das Tor-Netzwerk. Die Verwendung ist auf zwei einfache Faktoren zurückzuführen - kostenlos, und die Wahrscheinlichkeit, dass Tor in Russland blockiert wird, liegt im Gegensatz zu jedem VPN-Dienst nahe Null. Tor ist die Grundlage des Drogenhandels in Russland von der Mitte bis zum Boden. Locking Tor wird zu einer Suche nach neuen Tools für den Markt und einer Verringerung der Anonymität führen, was die erfolgreiche Aktivierung der Arbeit der lokalen Strafverfolgungsbehörden zur Folge haben wird. Letztendlich wird sich dies wie ein Virus negativ auf das Oberglied auswirken. Angesichts der neuesten erstaunlichen Nachrichten über die Beziehung hochrangiger Regierungsbeamter zum weltweiten Drogenhandel mit Russland ist Tors Blockierung in Russland nur ein Tabu, obwohl es trivial ist. Weder Roskomnadzor, egal wie viele Milliarden dieser Agentur zugewiesen sind, kein einziges Gericht in Russland hat die Erlaubnis "von oben", Tor zu blockieren. Und es überrascht niemanden und erschreckt niemanden, obwohl Russland einfach in Drogen ertrinkt (jedes Schulkind weiß, was es tun wird, und nach 30 Minuten ist es in jeder Stadt mit 10.000 Einwohnern tatsächlich möglich, praktisch frei Drogen zu bekommen in irgendeiner Menge - solch eine böse Wahrheit des Lebens). Im aktuellen Modus ist die Wahrscheinlichkeit, das Tor-Netzwerk zu blockieren, geringer als die Wahrscheinlichkeit, das Museum der Eremitage zu blockieren.
Die Anweisungen lassen sich leicht an Router mit OpenWrt anpassen. Kleine Änderungen machen es auch einfach, Tor durch OpenVPN zu ersetzen.
Wie schaffen Sie es, Sperren nach der Konfiguration zu umgehen?
Alles ist sehr einfach. Sie haben die Datei /opt/etc/unblock.txt - eine einfache Liste zum Entsperren. Sie können eine Domain, IP-Adresse, einen Adressbereich oder eine CIDR entsperren. Eine Zeile - ein Element. Leere Zeilen sind zulässig, und Sie können das Zeichen # am Zeilenanfang zum Ignorieren verwenden.
Hier ist ein Beispiel meiner persönlichen Datei Nach dem Bearbeiten dieser Datei führen Sie einfach den Befehl aus, um die neue Konfiguration anzuwenden:
unblock_update.sh
Alle Ressourcen aus unblock.txt werden entsperrt, ohne dass der Router neu gestartet werden muss.
Arbeitsprinzip
- Durch die Initialisierung des Routers wird ein leerer Satz von ipset-IP-Adressen mit der Bezeichnung "Entsperren" erstellt.
- Der Firewall wird eine Regel zum Umleiten aller Pakete mit Zielen vom Entsperren zum Tor-Dienst hinzugefügt.
- Der Tor-Dienst wird im transparenten Proxy-Modus gestartet.
- Das spezielle Skript unblock_ipset.sh wird gestartet, das alle Domänen aus unblock.txt auflöst und ihre IP-Adressen zum Unblock-Set hinzufügt. IP-Adressen, Bereiche und CIDRs aus dieser Datei werden ebenfalls zum Entsperren hinzugefügt.
- Dnsmasq wird mit der zusätzlichen Konfigurationsdatei unblock.dnsmasq gestartet, die angibt, dass beim Auflösen Domänen-IP-Adressen aus unblock.txt zum Unblock-Satz hinzugefügt werden.
- cron führt unblock_ipset.sh mit einer bestimmten Häufigkeit aus, um mögliche Fälle mit Nuancen teilweise zu kompensieren.
- Bei Bedarf werden alle Domänen aus unblock.txt (und nur sie) über dnscrypt-proxy aufgelöst, wenn der Anbieter DNS filtert.
Padavan Router konfigurieren
Sie benötigen einen Router mit installierter Padavan-Firmware und einen bereits konfigurierten Entware-Paketmanager. Unter Windows können Sie den
PuTTY- Client verwenden, um über SSH eine Verbindung zum Router herzustellen.
Stellen Sie sicher, dass Sie Entware verwenden, nicht die ältere Entware-ng. Zeigen Sie den Inhalt des Ordners / opt / var / opkg-lists an. Es wird eine Entware- oder Entware-ng-Datei geben. Im zweiten Fall müssen Sie die Padavan-Firmware Ihres Routers auf die neueste Version aktualisieren und den Entware-Paketmanager neu installieren. Fahren Sie erst dann mit den schrittweisen Anweisungen fort.
Wie die Überprüfungen zeigten, werden hauptsächlich diejenigen, die Entware anfangs falsch konfiguriert haben (d. H. Skripte von init.d werden nicht geladen), in den internen Speicher des Routers geladen. Wenn Sie über Xiaomi Mi Router 3 oder 3G verfügen und nicht sicher sind, ob Entware in Ihrem internen Speicher ordnungsgemäß funktioniert (automatischer Start), richten Sie einfach alles erneut ein. Nimm PROMETHEUS. Aktualisiert das Skript (1). Aktualisieren Sie den Quellcode (2). Sammeln und flashen Sie die aktuellste Firmware (4). Zurücksetzen der Firmware-Einstellungen (NVRAM und Dateispeicherung) - Erweitert> Administration> Einstellungen. Konfigurieren Sie den Internetzugang auf dem Router und aktivieren Sie SSH. Führen Sie in PROMETHEUS Firmware> RWFS-Formatierung. Wählen Sie im Abschnitt "R / W"> "UBIFS" die Option "Erweitert"> "Administration"> "Einstellungen"> "Dateisystem bereitstellen". Starten Sie den Router neu. Alle aktuellen Entware-Startskripte aus dem internen Speicher werden automatisch registriert und alles funktioniert wie eine Uhr.
Für Tests habe ich den beliebten Xiaomi Mi Router 3G (Entware ist im internen Speicher installiert) mit der neuesten Firmware - 32a93db - verwendet. Alles funktioniert auch mit dem legendären Baby WT3020 AD / F / H für 10 US-Dollar.

1. Installieren Sie die erforderliche Software auf dem Router
opkg update opkg install mc tor tor-geoip bind-dig cron
mc - Midnight Commander-Dateimanager. Es wird nur wegen des praktischen mcedit-Editors benötigt. Wenn Sie es gewohnt sind, einen anderen Texteditor zu verwenden, kann mc nicht installiert werden.
tor - Tor Service.
tor-geoip - Geo-IP-Datenbank für Tor.
bind-dig - DNS-Client (analog zu nslookup und host).
cron - Taskplaner.
2. Initialisieren Sie ipset und erstellen Sie mehrere Entsperr-IP-Adressen (start_script.sh).
Schließen Sie die erforderlichen Module an und erstellen Sie beim
Starten des Routers einen leeren Adressensatz mit dem Namen "
Entsperren" . Öffnen Sie dazu die Datei
/etc/storage/start_script.sh im Editor:
mcedit /etc/storage/start_script.sh
Am Ende hinzufügen:
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
Verwenden Sie zum Einfügen aus dem Puffer Umschalt + Einfügen, Speichern - F2, Beenden - F10.

Wenn Sie möchten, können Sie die Datei start_script.sh über die Weboberfläche des Routers bearbeiten - "Erweitert"> "Personalisierung"> "Skripte"> "Vor dem Initialisieren des Routers ausführen". Klicken Sie nach der Bearbeitung auf "Übernehmen".

3. Tor einrichten
Löschen Sie den Inhalt der Tor-Konfigurationsdatei:
cat /dev/null > /opt/etc/tor/torrc
Öffnen Sie die Tor-Konfigurationsdatei:
mcedit /opt/etc/tor/torrc
Fügen Sie den Inhalt ein (Umschalt + Einfügen):
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
Ersetzen Sie gegebenenfalls
192.168.0.1 durch die interne Adresse Ihres Routers (LAN). Kurze Konfigurationsbeschreibung:
- Ausgabeknoten ausschließen: Russland, Ukraine, Armenien Kirgisistan, Weißrussland.
- Hängen Sie einen transparenten Proxy an die Adresse 192.168.0.1, Port 9141.
- Verweigere, ein Ausgangspunkt zu sein.
4. Die Liste der Domänen (und nicht nur), die die Sperre umgehen sollen (unblock.txt)
unblock.txt ist eine einfache Liste zum Entsperren. Sie können eine Domain, IP-Adresse, einen Bereich oder eine CIDR entsperren. Eine Zeile - ein Element. Leere Zeilen (einschließlich Leerzeichen und Tabulatoren) werden ignoriert. Sie können das Zeichen # am Anfang einer Zeile verwenden, um es zu ignorieren.
Erstellen Sie die Datei
/opt/etc/unblock.txt :
mcedit /opt/etc/unblock.txt
Jede Zeile kann einen Domänennamen, eine IP-Adresse, einen Bereich oder eine CIDR enthalten. Sie können das Zeichen # verwenden, um Zeilen zu kommentieren.
Hier ist ein Beispiel meiner persönlichen Datei 5. Ein Skript zum Auffüllen einer Reihe von IP-Adressen zum Entsperren einer bestimmten Liste von Domänen (unblock_ipset.sh)
Erstellen Sie das Skript
/opt/bin/unblock_ipset.sh :
mcedit /opt/bin/unblock_ipset.sh
Fügen Sie den Inhalt ein (Umschalt + Einfügen):
Ausführungsrechte geben:
chmod +x /opt/bin/unblock_ipset.sh
Das Skript ist recht einfach, das ist der Kern seiner Arbeit ... Wir warten darauf, dass die Domain-Auflösung von google.com funktioniert (wenn dies nicht erfolgt, wird beim Hochfahren des Routers nicht viel entsperrt, da der Router noch initialisiert wird). Wir lesen die Zeilen in der Datei unblock.txt. Beim Lesen von Zeilen werden Leerzeichen und Tabulatoren am Anfang und am Ende automatisch gelöscht. Überspringen Sie die leeren Zeilen. Überspringen Sie die Zeilen, die mit dem Zeichen # beginnen. Wir suchen in der Zeile CIDR. Wenn CIDR gefunden wird, fügen Sie es hinzu, um die Blockierung aufzuheben. Wir suchen im Sortiment. Wenn es gefunden wird, fügen Sie es hinzu, um die Blockierung aufzuheben. Wir suchen nach der IP-Adresse in der Zeichenfolge. Wenn IP gefunden wird, fügen Sie es hinzu, um die Blockierung aufzuheben. Lassen Sie uns eine Zeile durch dig auflösen. Alle IP-Adressen des Ergebnisses werden zum Entsperren hinzugefügt.
6. Ein Skript zum Generieren einer zusätzlichen dnsmasq-Konfigurationsdatei aus einer bestimmten Liste von Domänen (unblock_dnsmasq.sh)
Erstellen Sie das Skript
/opt/bin/unblock_dnsmasq.sh :
mcedit /opt/bin/unblock_dnsmasq.sh
Fügen Sie den Inhalt ein (Umschalt + Einfügen):
Ausführungsrechte geben:
chmod +x /opt/bin/unblock_dnsmasq.sh
Das Skript ist recht einfach, das ist die Essenz seiner Arbeit ... Wir lesen die Zeilen nacheinander aus /opt/etc/unblock.txt. Beim Lesen von Zeilen werden Leerzeichen und Tabulatoren am Anfang und am Ende automatisch gelöscht. Überspringen Sie die leeren Zeilen. Überspringen Sie die Zeilen, die mit # beginnen. Wir überspringen die Zeilen, die die IP-Adresse (IP, Bereich, CIDR) enthalten, d. H. Wir sind nur an Strings mit Domainnamen interessiert. In der Datei /opt/etc/unblock.dnsmasq fügen wir Zeilen der Form "ipset = / domain_name / unblock" hinzu. Dies bedeutet, dass nach dem Ermitteln der IP-Adressen einer bestimmten Domäne diese automatisch zum Entsperrungssatz hinzugefügt werden.
Stellen Sie sicher, dass Sie das Skript ausführen, um die Datei unblock.dnsmasq zu generieren:
unblock_dnsmasq.sh
Stellen Sie sicher, dass die Datei unblock.dnsmasq erstellt wurde:
cat /opt/etc/unblock.dnsmasq
7. Das Skript zur manuellen erzwungenen Aktualisierung des Systems nach dem Bearbeiten der Domänenliste (unblock_update.sh)
Erstellen Sie das Skript
/opt/bin/unblock_update.sh :
mcedit /opt/bin/unblock_update.sh
Fügen Sie den Inhalt ein (Umschalt + Einfügen):
Ausführungsrechte geben:
chmod +x /opt/bin/unblock_update.sh
8. Skript zum automatischen Auffüllen einer Reihe von Entsperrungen beim Booten eines Routers (S99unblock)
Erstellen Sie das Skript
/opt/etc/init.d/S99unblock :
mcedit /opt/etc/init.d/S99unblock
Fügen Sie den Inhalt ein (Umschalt + Einfügen):
Ausführungsrechte geben:
chmod +x /opt/etc/init.d/S99unblock
9. Weiterleiten von Paketen mit Zielen von Unblock an Tor (post_iptables_script.sh)
Öffnen Sie die Datei
/etc/storage/post_iptables_script.sh im Editor:
mcedit /etc/storage/post_iptables_script.sh
Am Ende hinzufügen:
iptables -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141

Wenn Sie möchten, können Sie die Datei post_iptables_script.sh über die Weboberfläche des Routers bearbeiten - "Erweitert"> "Personalisierung"> "Skripte"> "Nach Neustart der Firewall-Regeln ausführen". Klicken Sie nach der Bearbeitung auf "Übernehmen".

Sie können derselben Datei hinzufügen (dies ist optional), um alle Anforderungen an den externen Port 53 an sich selbst umzuleiten. Dies ist erforderlich, damit Clients im lokalen Netzwerk keine DNS-Dienste von Drittanbietern verwenden. Anfragen werden über den regulären DNS-Server gesendet.
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
Ersetzen Sie gegebenenfalls
192.168.0.1 durch die interne Adresse Ihres Routers (LAN).
10. Verbinden einer zusätzlichen Konfigurationsdatei mit dnsmasq
Wir müssen die erstellte Datei unblock.dnsmasq mit dnsmasq verbinden. Öffnen Sie dazu die Datei
/etc/storage/dnsmasq/dnsmasq.conf im Editor:
mcedit /etc/storage/dnsmasq/dnsmasq.conf
Am Ende hinzufügen:
conf-file=/opt/etc/unblock.dnsmasq
Wenn Sie möchten (dies ist optional), können Sie einen zusätzlichen Server für Auflösung und Zuverlässigkeit hinzufügen:
server=8.8.8.8
Wenn Sie möchten, können Sie die Datei dnsmasq.conf über die Weboberfläche des Routers bearbeiten - "Erweitert"> "LAN"> "DHCP-Server"> "Benutzerkonfigurationsdatei dnsmasq.conf". Klicken Sie nach der Bearbeitung auf "Übernehmen".

11. Hinzufügen einer Aufgabe zu cron, um den Inhalt des Entsperrungssatzes regelmäßig zu aktualisieren
Dies ist eine zusätzliche Versicherung für den Fall, dass Programme / Geräte ihre eigene Auflösungsmethode verwenden und sich die IP-Adresse der Domäne geändert hat. Sie müssen lediglich das Skript unblock_ipset.sh mit der gewünschten Häufigkeit ausführen. Zum Beispiel werden wir jeden Tag um 6 Uhr morgens starten.
Ersetzen Sie den Stammnamen durch admin in der Cron-Konfigurationsdatei:
sed -i 's/root/admin/g' /opt/etc/crontab
Öffnen Sie die Datei
/ opt / etc / crontab im Editor:
mcedit /opt/etc/crontab
Am Ende hinzufügen:
00 06 * * * admin /opt/bin/unblock_ipset.sh
Wenn Sie möchten, können Sie alle anderen Vorlagenaufgaben auskommentieren. So sieht Ihre Crontab-Datei aus:

12. Starten Sie den Router neu
Führen Sie den folgenden Befehl aus:
reboot
Öffnen Sie nach dem Neustart die Website check.torproject.org in Ihrem Browser (sie sollte zu unblock.txt hinzugefügt werden). Wenn Sie alles richtig gemacht haben, sehen Sie die Aufschrift „Herzlichen Glückwunsch. Dieser Browser ist für die Verwendung von Tor konfiguriert. ":

Konfigurieren eines Routers mit Keenetic OS
Sie müssen über einen Keenetic / Zyxel-Router verfügen, auf dem der Entware Package Manager (OPKG) bereits konfiguriert ist. Hier ist beispielsweise eine Liste einiger Router, die Entware unterstützen: 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). Anweisungen zum Konfigurieren von Entware finden Sie
hier (bis zu 10 Punkte).
Wenn Sie zuvor (mit Firmware unter 2.07) bereits Entware-Unterstützung hinzugefügt haben, stellen Sie sicher, dass Sie
die veraltete Entware-ng verwenden .
Stellen Sie sicher, dass "Netfilter Subsystem Kernel Modules" - Allgemeine Einstellungen> Komponentensatz ändern aktiviert ist. Wenn es nicht in der Liste der verfügbaren Komponenten enthalten ist, versuchen Sie zunächst, die IPv6-Protokollkomponente zu installieren. Wenn dies nicht der Fall ist, versuchen Sie es ohne, aber es ist sehr wahrscheinlich, dass Sie nicht nach Reichweite und CIDR entsperren können (da das Hash: Net-Set nicht unterstützt wird).

Für Tests habe ich Keenetic Ultra (KN-1810) mit der neuesten Firmware verwendet - 2.14.C.0.0-4.
Wichtiger Hinweis. Sie müssen den regulären DNS-Server im System deaktivieren. Stattdessen verwenden wir dnsmasq. Sie verlieren die Möglichkeit, DNS-Dienste (Yandex.DNS / SkyDNS / AdGuard DNS) einzeln für Clients zuzuweisen, können sie jedoch bei Bedarf global über die dnsmasq-Einstellungen verwenden.1. Installieren Sie die erforderliche Software auf dem Router
opkg update opkg install mc tor tor-geoip bind-dig cron dnsmasq-full ipset iptables
mc - Midnight Commander-Dateimanager. Es wird nur wegen des praktischen mcedit-Editors benötigt. Wenn Sie es gewohnt sind, einen anderen Texteditor zu verwenden, kann mc nicht installiert werden.
tor - Tor Service.
tor-geoip - Geo-IP-Datenbank für Tor.
bind-dig - DNS-Client (analog zu nslookup und host).
cron - Taskplaner.
dnsmasq-full - DNS-Server.
ipset und iptables sind
ipset- und iptables- Konsolendienstprogramme (sie befinden sich möglicherweise bereits auf dem System und werden nicht benötigt, ich habe sie aus Sicherheitsgründen hinzugefügt).
2. Initialisieren Sie ipset und erstellen Sie mehrere Entsperr-IP-Adressen (100-ipset.sh).
Überprüfen Sie, ob Ihr Routersystem viel Hash unterstützt: net (wie sich herausstellte, haben es nicht alle Keenetic-Router):
ipset create test hash:net
Wenn das Team keine Fehler oder Meldungen gegeben hat, gibt es Unterstützung und befolgen Sie einfach die Anweisungen weiter. Andernfalls (es liegt ein Fehler vor) müssen Sie im folgenden Skript
hash: net durch
hash: ip ersetzen. In diesem Fall verlieren Sie die Möglichkeit, Reichweite und CIDR freizuschalten.
Erstellen Sie beim
Starten des Routers einen leeren
Adresssatz mit der Bezeichnung "
Entsperren" . Erstellen Sie dazu die Datei
/opt/etc/ndm/fs.d/100-ipset.sh :
mcedit /opt/etc/ndm/fs.d/100-ipset.sh
Fügen Sie den Inhalt ein (Umschalt + Einfügen):
Verwenden Sie zum Einfügen aus dem Puffer Umschalt + Einfügen, Speichern - F2, Beenden - F10.
Ausführungsrechte geben:
chmod +x /opt/etc/ndm/fs.d/100-ipset.sh
3. Tor einrichten
Löschen Sie den Inhalt der Tor-Konfigurationsdatei:
cat /dev/null > /opt/etc/tor/torrc
Öffnen Sie die Tor-Konfigurationsdatei:
mcedit /opt/etc/tor/torrc
Fügen Sie den Inhalt ein (Umschalt + Einfügen):
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
Ersetzen Sie gegebenenfalls
192.168.0.1 durch die interne Adresse Ihres Routers (LAN). Kurze Konfigurationsbeschreibung:
- Ausgabeknoten ausschließen: Russland, Ukraine, Armenien Kirgisistan, Weißrussland.
- Hängen Sie einen transparenten Proxy an die Adresse 192.168.0.1, Port 9141.
- Verweigere, ein Ausgangspunkt zu sein.
4. Die Liste der Domänen (und nicht nur), die die Sperre umgehen sollen (unblock.txt)
unblock.txt ist eine einfache Liste zum Entsperren. Sie können eine Domain, IP-Adresse, einen Bereich oder eine CIDR entsperren. Eine Zeile - ein Element. Leere Zeilen (einschließlich Leerzeichen und Tabulatoren) werden ignoriert. Sie können das Zeichen # am Anfang einer Zeile verwenden, um es zu ignorieren.
Erstellen Sie die Datei
/opt/etc/unblock.txt :
mcedit /opt/etc/unblock.txt
Jede Zeile kann einen Domänennamen, eine IP-Adresse, einen Bereich oder eine CIDR enthalten. Sie können das Zeichen # verwenden, um Zeilen zu kommentieren.
Hier ist ein Beispiel meiner persönlichen Datei 5. Ein Skript zum Auffüllen einer Reihe von IP-Adressen zum Entsperren einer bestimmten Liste von Domänen (unblock_ipset.sh)
Erstellen Sie das Skript
/opt/bin/unblock_ipset.sh :
mcedit /opt/bin/unblock_ipset.sh
Fügen Sie den Inhalt ein (Umschalt + Einfügen):
Ausführungsrechte geben:
chmod +x /opt/bin/unblock_ipset.sh
Das Skript ist recht einfach, das ist der Kern seiner Arbeit ... Wir warten darauf, dass die Domain-Auflösung von google.com funktioniert (wenn dies nicht erfolgt, wird beim Hochfahren des Routers nicht viel entsperrt, da der Router noch initialisiert wird). Wir lesen die Zeilen in der Datei unblock.txt. Beim Lesen von Zeilen werden Leerzeichen und Tabulatoren am Anfang und am Ende automatisch gelöscht. Überspringen Sie die leeren Zeilen. Überspringen Sie die Zeilen, die mit dem Zeichen # beginnen. Wir suchen in der Zeile CIDR. Wenn CIDR gefunden wird, fügen Sie es hinzu, um die Blockierung aufzuheben. Wir suchen im Sortiment. Wenn es gefunden wird, fügen Sie es hinzu, um die Blockierung aufzuheben. Wir suchen nach der IP-Adresse in der Zeichenfolge. Wenn IP gefunden wird, fügen Sie es hinzu, um die Blockierung aufzuheben. Lassen Sie uns eine Zeile durch dig auflösen. Alle IP-Adressen des Ergebnisses werden zum Entsperren hinzugefügt.
6. Ein Skript zum Generieren einer zusätzlichen dnsmasq-Konfigurationsdatei aus einer bestimmten Liste von Domänen (unblock_dnsmasq.sh)
Erstellen Sie das Skript
/opt/bin/unblock_dnsmasq.sh :
mcedit /opt/bin/unblock_dnsmasq.sh
Fügen Sie den Inhalt ein (Umschalt + Einfügen):
Ausführungsrechte geben:
chmod +x /opt/bin/unblock_dnsmasq.sh
Das Skript ist recht einfach. Wir lesen nacheinander die Zeilen aus /opt/etc/unblock.txt. Beim Lesen von Zeilen werden Leerzeichen und Tabulatoren am Anfang und am Ende automatisch gelöscht. Überspringen Sie die leeren Zeilen. Überspringen Sie die Zeilen, die mit # beginnen. Überspringen Sie Zeilen, die eine IP-Adresse (IP oder CIDR) enthalten, d. H. Wir sind nur an Strings mit Domainnamen interessiert. In der Datei /opt/etc/unblock.dnsmasq fügen wir Zeilen der Form "ipset = / domain_name / unblock" hinzu. Dies bedeutet, dass nach dem Ermitteln der IP-Adressen einer bestimmten Domäne diese automatisch zum Entsperrungssatz hinzugefügt werden.
Stellen Sie sicher, dass Sie das Skript ausführen, um die Datei unblock.dnsmasq zu generieren:
unblock_dnsmasq.sh
Stellen Sie sicher, dass die Datei unblock.dnsmasq erstellt wurde:
cat /opt/etc/unblock.dnsmasq
7. Das Skript zur manuellen erzwungenen Aktualisierung des Systems nach dem Bearbeiten der Domänenliste (unblock_update.sh)
Erstellen Sie das Skript
/opt/bin/unblock_update.sh :
mcedit /opt/bin/unblock_update.sh
Fügen Sie den Inhalt ein (Umschalt + Einfügen):
Ausführungsrechte geben:
chmod +x /opt/bin/unblock_update.sh
8. Skript zum automatischen Auffüllen einer Reihe von Entsperrungen beim Booten eines Routers (S99unblock)
Erstellen Sie das Skript
/opt/etc/init.d/S99unblock :
mcedit /opt/etc/init.d/S99unblock
Fügen Sie den Inhalt ein (Umschalt + Einfügen):
Ausführungsrechte geben:
chmod +x /opt/etc/init.d/S99unblock
9. Weiterleiten von Paketen mit Zielen von Unblock an Tor (100-redirect.sh)
Erstellen Sie dazu die Datei /opt/etc/ndm/netfilter.d/100-redirect.sh : mcedit /opt/etc/ndm/netfilter.d/100-redirect.sh
Fügen Sie den Inhalt ein (Umschalt + Einfügen):
Wenn Sie in Schritt 2 hash: ip und nicht hash: net verwendet haben , ersetzen Sie hash: net durch hash: ip. Tatsächlich duplizieren wir zusätzlich die Funktion zum Erstellen eines Satzes zum Entsperren aus zwei Schritten. Dies ist aus Sicherheitsgründen erforderlich, wenn die Skripte von fs.d noch nicht gestartet wurden und die Skripte netfilter.d bereits ausgeführt werden. Es ist in Ordnung, wenn die Entsperrung bereits früher erstellt wurde. Der Befehl wird einfach ignoriert.Sie können derselben Datei hinzufügen (dies ist optional), um alle Anforderungen an den externen Port 53 an sich selbst umzuleiten. Dies ist erforderlich, damit Clients im lokalen Netzwerk keine DNS-Dienste von Drittanbietern verwenden. Anfragen werden über den regulären DNS-Server gesendet. Fügen Sie vor der letzten Ausfahrt Folgendes hinzu: 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
Ersetzen Sie gegebenenfalls 192.168.0.1 durch die interne Adresse Ihres Routers (LAN).Ausführungsrechte geben: chmod +x /opt/etc/ndm/netfilter.d/100-redirect.sh
10. Konfigurieren von dnsmasq und Anhängen einer zusätzlichen Konfigurationsdatei an dnsmasq
Löschen Sie den Inhalt der dnsmasq-Konfigurationsdatei: cat /dev/null > /opt/etc/dnsmasq.conf
Öffnen Sie die dnsmasq-Konfigurationsdatei: mcedit /opt/etc/dnsmasq.conf
Fügen Sie den Inhalt ein (Umschalt + Einfügen): 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
Ersetzen Sie gegebenenfalls 192.168.0.1 durch die interne Adresse Ihres Routers (LAN).11. Hinzufügen einer Aufgabe zu cron, um den Inhalt des Entsperrungssatzes regelmäßig zu aktualisieren
Dies ist eine zusätzliche Versicherung für den Fall, dass Programme / Geräte ihre eigene Auflösungsmethode verwenden und sich die IP-Adresse der Domäne geändert hat. Sie müssen lediglich das Skript unblock_ipset.sh mit der gewünschten Häufigkeit ausführen. Zum Beispiel werden wir jeden Tag um 6 Uhr morgens starten.Öffnen Sie die Datei / opt / etc / crontab im Editor : mcedit /opt/etc/crontab
Am Ende hinzufügen: 00 06 * * * root /opt/bin/unblock_ipset.sh
Wenn Sie möchten, können Sie alle anderen Vorlagenaufgaben auskommentieren. So sieht Ihre Crontab-Datei aus:
12. Deaktivieren Sie den regulären DNS-Server und starten Sie den Router neu
Stellen Sie eine Verbindung zur Keenetic Router-CLI her (Port 23 für Telnet und 22 für SSH, wenn die Komponente „SSH-Server“ zum System hinzugefügt wird).Führen Sie den folgenden Befehl aus: opkg dns-override system configuration save system reboot
Der in die Firmware integrierte DNS-Server wird deaktiviert und stattdessen wird dnsmasq von Entware verwendet. Der Router prüft beim Booten, ob der opt-Ordner gemountet ist (gibt es ein USB-Flash-Laufwerk mit Entware). Wenn dies der Fall ist, wird kein regulärer DNS-Server verwendet. Wenn nicht, verwenden Sie. Das heißt,
Wenn Sie das Flash-Laufwerk entfernen und den Router neu starten, funktioniert alles wie zuvor (vor dem Einrichten) für Sie.Öffnen Sie nach dem Neustart die Website check.torproject.org in Ihrem Browser (sie sollte zu unblock.txt hinzugefügt werden). Wenn Sie alles richtig gemacht haben, sehen Sie die Aufschrift „Herzlichen Glückwunsch. Dieser Browser ist für die Verwendung von Tor konfiguriert. ":
Grundlegende Methoden zur Fehlerdiagnose nach der Konfiguration
Wenn die Prüfung mit der Site check.torproject.org (sie sollte zu unblock.txt hinzugefügt werden) erfolgreich ist, der Stub des Anbieters jedoch weiterhin für andere Ressourcen geöffnet wird (oder nicht geöffnet wird), stört der Anbieter höchstwahrscheinlich den DNS-Verkehr und ersetzt die Antworten - Sie Sie müssen die Filterung von DNS-Abfragen zusätzlich umgehen.Wenn nach der Konfiguration etwas nicht ordnungsgemäß funktioniert, verwenden Sie einfache Befehle, um den Problemschritt zu bestimmen.Zeigen Sie den Inhalt des Entsperrungssatzes an: ipset list unblock
Wenn das System meldet, dass keine solchen Sätze vorhanden sind, liegt der Fehler in Schritt 2 vor oder Sie haben das Netfilter-Modul im System nicht aktiviert (im Fall von Keenetic).Wenn sich herausstellt, dass das Set leer ist, hat das Skript unblock_ipset.sh nicht funktioniert, was wiederum vom S99unblock-Startskript gestartet werden sollte. Führen Sie dieses Skript unblock_ipset.sh manuell aus. Wenn der Satz voll ist, befindet sich der Fehler in Schritt 8. Wenn das Skript nicht ausgeführt werden kann (höchstwahrscheinlich wartet es auf die Auflösung von google.com), befindet sich der Fehler irgendwo auf der Seite des DNS-Servers, möglicherweise in Schritt 10 oder 6.Suchen Sie in iptables nach einer Umleitung :: iptables-save 2>/dev/null | grep unblock
Wenn es nicht vorhanden ist, liegt der Fehler in Schritt 9.Wenn alle Standorte überhaupt nicht funktionieren, d. H. DNS funktioniert nicht, der Fehler befindet sich irgendwo in Stufe 6 oder 10. Möglicherweise in Stufe 9.Wenn alle Sites von unblock.txt nicht funktionieren (Timeout wird überschritten), aber alle anderen funktionieren, liegt das Problem irgendwo auf der Tor-Seite, Fehler in Stufe 3.Zusätzlicher Bypass zum Filtern von DNS-Abfragen durch den Anbieter
Wenn ein Anbieter den DNS-Verkehr stört, indem er Antworten für blockierte Ressourcen ersetzt, ist dies sehr einfach zu umgehen. Dafür verwenden wir dnscrypt-proxy. Wenn Sie möchten und Erfahrung haben, können Sie dnscrypt einfach durch stubby (DNS über TLS) ersetzen.dnscrypt wird nur für Domains verwendet, die in unblock.txt aufgeführt sind. Alle anderen Abfragen werden über reguläre DNS-Server durchgeführt.Wenn Sie sicher sind, dass Ihr Provider keine DNS-Abfragen filtert, müssen Sie diese zusätzliche Konfiguration nicht vornehmen.Sie sollten den Bypass der oben beschriebenen Sperren bereits konfiguriert haben. Die folgenden Einstellungen sind für Padavan und Keenetic OS identisch.Installieren Sie zusätzliche Software auf dem Router: opkg update opkg install dnscrypt-proxy2
Öffnen Sie die Konfigurationsdatei dnscrypt-proxy: mcedit /opt/etc/dnscrypt-proxy.toml
Suchen Sie die Parameter listen_addresses, fallback_resolver und cache und ändern Sie sie: listen_addresses = ['127.0.0.1:9153'] fallback_resolver = '77.88.8.8:1253' cache = false
77.88.8.8:1253 ist die Yandex-DNS-Serveradresse mit einem nicht standardmäßigen Port. Es ist ein Backup für den Fall, dass dnscrypt-proxy Probleme hat.Führen Sie dnscrypt-proxy aus: /opt/etc/init.d/S09dnscrypt-proxy2 start
Stellen Sie sicher, dass dnscrypt-proxy funktioniert (als Antwort sollte eine Liste der IP-Adressen angezeigt werden): dig +short google.com @localhost -p 9153
Öffnen Sie das Skript /opt/bin/unblock_ipset.sh im Editor : mcedit /opt/bin/unblock_ipset.sh
Ersetzen Sie den Inhalt durch:
Wir haben eine kleine Änderung vorgenommen - jetzt verwendet dig for Resolving keinen regulären DNS-Server, sondern dnscrypt-proxy mit Port 9153.Öffnen Sie das Skript /opt/bin/unblock_dnsmasq.sh im Editor : mcedit /opt/bin/unblock_dnsmasq.sh
Ersetzen Sie den Inhalt durch:
Wir haben eine kleine Änderung vorgenommen - jetzt werden beim Generieren der Datei unblock.dnsmasq zusätzliche Zeilen wie "server = / domain_name / 127.0.0.1 # 9153" hinzugefügt. Dies bedeutet, dass das Auflösen von Domänen aus der Liste über dnscrypt-proxy erfolgt.Führen Sie unblock_update.sh aus: unblock_update.sh
Fertig.
Alle komplizierten Einstellungen sind dahinter. Jetzt bearbeiten Sie die Liste unblock.txt nur bei Bedarf, fügen Domänen oder IP-Adressen zum Entsperren hinzu oder entfernen sie und aktivieren die mit dem Befehl unblock_update.sh vorgenommenen Änderungen.UPDATE 04/01/2019 . Oft kommen persönliche Nachrichten auf den Artikel mit typischen Fragen. Ich werde hier am häufigsten antworten.Wie stelle ich .onion Domain Zone Sites zur Verfügung?In Torrc hinzufügen: VirtualAddrNetwork 10.254.0.0/16 DNSPort 127.0.0.1:9053 AutomapHostsOnResolve 1
Um auf alle Domänen der Zwiebelzone zuzugreifen, fügen Sie dnsmasq.conf hinzu: server=/onion/127.0.0.1
Wenn Sie den Zugriff nicht auf alle Domänen der Zwiebelzone öffnen möchten, sondern nur auf bestimmte, fügen Sie die folgenden Einträge in die Datei dnsmasq.conf ein: server=/rutorc6mqdinc4cz.onion/127.0.0.1
Wie umgehe ich Sperren für Clients eines VPN-Servers, der auf einem Router ausgeführt wird?Ersetzen Sie in Torrc die Zeile durch TransPort durch: TransPort 0.0.0.0:9141
Fügen Sie eine zusätzliche Umleitung mit der erforderlichen Schnittstelle hinzu (INTERFACE - VPN-Netzwerkschnittstelle): iptables -t nat -A PREROUTING -i -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141