Wenn man viel mit SABnzbd und SickBeard hantiert, kann es schon mal vorkommen, dass die Usenet-Indexer die man bei SickBeard eingetragen hat, die eigene IP wegen zu vielen Anfragen bannen. Das ist natürlich ärgerlich, weswegen ich jetzt 2 Wege zeigen möchte, wie man dies umgehen kann.


Sperre umgehen mit VPN:

Die einfachste Methode ist es bei dem PC/Server auf dem SABnzbd und SickBeard laufen einen VPN zu nutzen, hier am Beispiel von oVPN.to. Wer noch keinen Account hat, kann sich diesen fix anlegen und wer möchte, kann meinen Invite-Code angeben:

0bbaef76822e33f07d114fb152851884b0ef5827

Wenn man sich bei oVPN.to einen Account zugelegt, diesen auch aufgeladen und aktiviert hat, kann man im Menü unter dem Reiter oVPN seine Zertifikate und Konfiguration für OpenVPN herunterladen. Wenn man die beiden zip-Archive entpackt hat, muss man die entpackten Dateien ins passende Verzeichnis kopieren. Windows: C:\Program Files\OpenVPN\config Linux: /etc/openvpn Nun kann man OpenVPN starten, unter Windows geht dies einfach über das Startmenü. Dort einfach nach openvpn suchen und die Datei dann über Rechtsklick und “Als Administrator ausführen” starten. Daraufhin erscheint in der Taskleiste das OpenVPN Symbol. Dort wieder einen Rechtsklick drauf und den Server, zu dem man sich verbinden will, auswählen. Unter Linux ist das Ganze ein wenig komplizierter. Nachdem man alle Dateien nach /etc/openvpn kopiert hat, muss man sich einen Server aussuchen, hier als Beispiel mal nl9.ovpn.to. Die Konfigurationsdatei für diesen Server heißt dementsprechend: NL9.ovpn.to.ovpn. Diese muss nun zu einer .conf-Datei umbenannt werde, das geht fix mit dem Befehl:

mv NL9.ovpn.to.ovpn NL9.conf

Als nächstes tragen wir in der Datei /etc/default/openvpn den NL9-Server als Default ein, welches uns ermöglicht, dass OpenVPN beim Systemstart sich automatisch mit diesem Server verbindet. Dazu einfach folgenden Eintrag der Datei hinzufügen:

AUTOSTART="NL9"

oder um es bequemer zu machen

echo "AUTOSTART=\"NL9\"" >> /etc/default/openvpn

Jetzt können wir auch schon openvpn mit dem Befehl

/etc/init.d/openvpn start

starten. Nun werden alle Verbindungen durch den VPN gezogen, womit unsere IP dem Indexer nicht mehr bekannt ist. Da es aber passieren kann, dass auch die VPN-IP gebannt wird, möchte ich nun zeigen wie, man das Ganze mit einem SOCKS5-Randomizer realisiert, der auch bei oVPN.to angeboten wird.

Sperre umgehen mit SOCKS5-Randomizer:

Um das Ganze realisieren zu können, muss der Source Code von SABnzbd modifiziert werden, weil SABnzbd leider offiziel keine Proxys unterstüzt. Zeigen möchte ich es an der Version 0.8.x unter Debian. Ich gehe mal davon aus, dass SABnzbd schon installiert ist, weswegen wir direkt zum editieren gehen. Die Datei die wir bearbeiten müssen heißt newswrapper.py. Um diese ausfindig zu machen, können wir sie mit diesem Befehl suchen:

locate newswrapper.py

Diese öffnen wir nun mit einem Editor unserer Wahl und navigieren zur Zeile 166 oder suchen einfach nach

self.sock = socket.socket(af, socktype, proto)

Die Zeile müsste in einem else: Block zufinden sein. Wenn wir sie gefunden haben, ersetzen wir diese mit dieser:

self.sock = socks.socksocket(af, socktype, proto)
self.sock.setproxy(socks.PROXY_TYPE_SOCKS5,"127.0.0.1", 1081)

Jetzt müssen wir nur noch am Anfang der Datei folgendes einfügen:

import socks

Damit wären wir dann schon mal fertig. Nun müssen wir socksipy installieren, dass geht fix mit dem Befehl:

apt-get install python-socksipy

Der letzte Schritt ist jetzt, einen SSH-Tunnel einzurichten, über den SABnzbd den SOCKS5-Randomizer erreicht. Dazu müssen wird ersteinmal screen installieren:

apt-get install screen

Wenn das getan ist, starten wir screen und bestätigen dies mit ENTER. Damit wir uns via SSH mit oVPN.to verbinden können, brauchen wir noch die SSH-Keys, diese finden wir im oVPN.to VCP im Menü unter oSSH und dann unter Download oSSH-Keyfiles. Nachdem Download der .zip entpacken wir diese und navigieren zu den Dateien im Terminal. Nun geben wir folgen Befehl ein, um den SSH-Tunnel einzurichten:

ssh -v -C -N -i keyfile.ssh ovpn-ssh@SSH_SERVER_IP \
    -D 1080 \
    -L 1081:172.16.32.1:1081

Wobei wir SSH_SERVER_IP mit der IP eines oVPN.to Server unserer Wahl ersetzen. Wenn wir jetzt STRG+A+D drücken, verlassen wir screen und ssh läuft im Hintergrund mit dem Tunnel weiter. Jetzt müssen wir nur noch SABnzbd mit dem Befehl:

/etc/init.d/sabnzbdplus

starten und wir haben es geschafft. SABnzbd nutzt jetzt den SOCKS5-Proxy um die .nzb-Datein herunterzuladen, und unsere IP bleibt dem Indexer sowie dem Usenet-Anbieter unbekannt und weil oVPN.to einen zufälligen “Ausgangs-Server” wählt, ändert sich diese auch ständig :)

Zusätzliches:

Natürlich könnte man zusätzlich zum SOCKS5 auch noch den VPN benutzen. Je nach Anbindung die man besitzt, ich habe zum Glück eine 100k-Leitung, kann der Download durch die “hohe” CPU-Last von OpenVPN begrenzt sein. Auf meinem N40L schafft SABnzbd mit VPN leider nur ~6MB/s,  was in etwa der Hälfte meiner verfügbaren Geschwindigkeit entspricht. Um dies zu umgehen, kann man über die Routing-Tabelle einstellen, dass alle Anfragen an den Usenet-Anbieter (bei mir dient oVPN.to als Proxy für verschiedene Anbieter, welche alle über seed-nl.ovpn.to erreichbar sind) nicht durch den VPN gehen und somit würde uns wieder die volle Geschwindigtkeit zur Verfügung stehen. Das geht ganz fix mit dem Befehl:

ip route add to $usenet_server_ip/$mask via $gateway

Wenn seed-nl.ovpn.to benutzt wird und der Gateway die IP 192.168.2.1 hat, sieht das Ganze so aus:

ip route add to 213.163.71.135/255.255.255.255 via 192.168.2.1

Ich hoffe euch hat der heutige Beitrag gefallen :)

Credits: https://forums.sabnzbd.org/viewtopic.php?f=4&t=3717