Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Eigener Proxy Server | TOR Proxy | Web Anomyzer

Registriert
11. Juni 2010
Beiträge
4.080
Reaktionspunkte
2.847
Punkte
373
Hallo Zusammen,

heute möchte ich euch die Installation und Konfiguration für euren eigenen externen Proxy Server (kann natürlich auch euer Homeserver sein) erläutern.
Der Server dient gleichzeitig als TOR Proxy und daher als Web Anonymizer.

Die Installation wird für Debian 8.x / Ubuntu 15.x mit systemd beschrieben.

Dann steigen wir mal ein.
Ich habe zum Start einen eigenen VPS mit 1 GB RAM angemietet. Das reicht für den alltäglichen Traffic (ohne Downloads etc.) völlig aus. Hierbei sei angemerkt, dass wer mehr will mit einem externen Server, sollte darüber nachdenken mind. 4 GB Ram zu haben.

1. Aktualisieren wir das System:
Code:
apt-get update && apt-get upgrade -y && apt-get dist-upgrade

2. Installation nano, Privoxy und TOR
Code:
apt-get install tor privoxy nano

3. Anpassungen TOR (einfach rein kopieren)
/etc/tor/torrc
Code:
SocksPort 9050
#BEISPIEL
#SocksListenAdress 122.55.88.99
#Bitte die direkte IP-Adresse nutzen, da es kein Client sondern ein Server ist!
SocksListenAddress *IP* 
Log warn syslog
RunAsDaemon 1
DataDirectory /var/lib/tor
Anschließend TOR restarten:
Code:
systemctl restart tor

4. Anpassungen für Privoxy vornehmen
Code:
nano /etc/privoxy/config
Code:
#Achtung: Auch hier die IP des Servers auswählen!
#listen-adress muss angepasst werden!
listen-address  *IP*:8118
forward-socks5  /               *IP*:9050 .
Anschließend Privoxy restarten:
Code:
systemctl restart privoxy

5. Anpassungen um den SSH Port zu ändern:
Code:
nano /etc/ssh/sshd_config
Ändert Port von 22 auf Beispielsweise 7661

Nun könnt Ihr die Proxy Settings im Browser vornehmen.
Firefox:
Extras --> Einstellungen --> Erweitert --> Netzwerk --> Einstellungen
Manuelle Proxy Konfiguration auswählen
Im nächsten Feld HTTP Proxy die IP eures Servers und den Port 8118 eintragen
SOCKSv5 auswählen
Haken setzen bei "Für alle Protokolle diese Proxy Einstellungen nutzen"
Anschließend auf OK und Browser vorsichtshalber restarten

Nun könnt Ihr beispielsweise auf wieistmeineip.de oder ähnlich checken, was für eine IP Ihr habt.
Im Idealfall schaut das so aus:
Du musst Regestriert sein, um das angehängte Bild zusehen.


Zur allgemeinen Info:
Der Gesamtedatenverkehr wird jetzt per TOR anonymisiert. Sprich einige Seitenaufrufe können durchaus länger dauern, oder gar nicht funktionieren da einige Seiten Anonyme Proxys blockieren.
Außerdem ändern sich regelmäßig die IP-Adressen auf welche anonymisiert wird ;-)

Die Firewall darf natürlich nicht fehlen!
Da das hier ein Proxy Server ist, sind wir sehr restriktiv!
Der SSH ist nur auf Port 7661 erreichbar, es ist nur Traffic über Port 80 und 443 erlaubt. Wer FTP etc. braucht kann sich entsprechende Regeln bauen.
Code:
#!/bin/bash
sleep 5
iptables=`which iptables`
iptablesv6=`which ip6tables`
user="home.dyndns.org,user.dyndns.org"

# Defaults for rate limiting
#------------------------------------------------------------------------------

# wenn iptables nicht installiert abbrechen
test -f $iptables || exit 0

case "$1" in
start)
echo "Starte Firewall..."
# alle Regeln löschen
$iptables -t nat -F
$iptables -t filter -F
$iptables -X
#$iptablesv6 -t nat -F
$iptablesv6 -t filter -F
$iptablesv6 -X
$iptables -P INPUT DROP
$iptables -P OUTPUT DROP
$iptables -P FORWARD DROP
$iptables -P INPUT DROP
$iptablesv6 -P OUTPUT DROP
$iptablesv6 -P FORWARD DROP
$iptablesv6 -P INPUT DROP
$iptables -A INPUT -i lo -j ACCEPT
$iptables -A OUTPUT -o lo -j ACCEPT
$iptablesv6 -A INPUT -i lo -j ACCEPT
$iptablesv6 -A OUTPUT -o lo -j ACCEPT
$iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptablesv6 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptablesv6 -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p udp --dport 53 -j ACCEPT

#Proxy
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 8118 -j ACCEPT
$iptables -A OUTPUT -o lo -p tcp --dport 8118 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 20 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 21 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 80 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 443 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 81 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 8080 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p udp --dport 53 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p udp --dport 9050 -j ACCEPT

#Um den Ping zu aktivieren bitte # entfernen und IP Anpassen!
#$iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -d *IP* -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#$iptables -A OUTPUT -p icmp --icmp-type 0 -s *IP* -d 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#Allegmeiner Zugriff
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED --source $user -p tcp --dport 7661 -j ACCEPT

#Block APNIC LACNIC
APNIC=(
        "1.0.0.0/8"
        "14.0.0.0/8"
        "27.0.0.0/8"
        "36.0.0.0/8"
        "39.0.0.0/8"
        "42.0.0.0/8"
        "49.0.0.0/8"
        "58.0.0.0/8"
        "59.0.0.0/8"
        "60.0.0.0/8"
        "61.0.0.0/8"
        "101.0.0.0/8"
        "103.0.0.0/8"
        "106.0.0.0/8"
        "110.0.0.0/8"
        "111.0.0.0/8"
        "112.0.0.0/8"
        "113.0.0.0/8"
        "114.0.0.0/8"
        "115.0.0.0/8"
        "116.0.0.0/8"
        "117.0.0.0/8"
        "118.0.0.0/8"
        "119.0.0.0/8"
        "120.0.0.0/8"
        "121.0.0.0/8"
        "122.0.0.0/8"
        "123.0.0.0/8"
        "124.0.0.0/8"
        "125.0.0.0/8"
        "126.0.0.0/8"
        "175.0.0.0/8"
        "180.0.0.0/8"
        "182.0.0.0/8"
        "183.0.0.0/8"
        "202.0.0.0/8"
        "203.0.0.0/8"
        "210.0.0.0/8"
        "211.0.0.0/8"
        "218.0.0.0/8"
        "219.0.0.0/8"
        "220.0.0.0/8"
        "221.0.0.0/8"
        "222.0.0.0/8"
        "223.0.0.0/8"
        "43.0.0.0/8"
        "133.0.0.0/8"
        "150.0.0.0/8"
        "153.0.0.0/8"
        "163.0.0.0/8"
        "171.0.0.0/8"
        "177.0.0.0/8"
        "179.0.0.0/8"
        "181.0.0.0/8"
        "186.0.0.0/8"
        "187.0.0.0/8"
        "189.0.0.0/8"
        "190.0.0.0/8"
        "200.0.0.0/8"
        "201.0.0.0/8"
        )
for blockapnic in ${APNIC
[*]}
do
        $iptables -A INPUT --source $blockapnic -j DROP
done

$iptables -N LOGGING
$iptables -A INPUT -j LOGGING
$iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7
$iptables -A LOGGING -j DROP
$iptables -A LOGGING -j REJECT

#$iptables -A INPUT -i eth0 -j REJECT
;;
stop)
echo "Stoppe Firewall..."
$iptables -t nat -F
$iptables -t filter -F
$iptables -X
$iptables -P INPUT ACCEPT
$iptables -P OUTPUT ACCEPT
$iptables -P FORWARD ACCEPT
#$iptablesv6 -t nat -F
$iptablesv6 -t filter -F
$iptablesv6 -X
$iptablesv6 -P INPUT ACCEPT
$iptablesv6 -P OUTPUT ACCEPT
$iptablesv6 -P FORWARD ACCEPT
;;
restart|reload|force-reload)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/firewall (start|stop)"
exit 1
#;;
esac
exit 0
Für weitere Infos zur Firewall, schaut bitte hier:
https://www.digital-eliteboard.com/...-systemd-firewall-script-openvpn-routing.html

Nun denn, have Fun!
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
Zuletzt bearbeitet:
AW: Eigener Proxy Server | TOR Proxy | Web Anomyzer

Wenn jemand testen will, schreibt mir bitte eine kurze PN.
 
AW: Eigener Proxy Server | TOR Proxy | Web Anomyzer

Privoxy kennt den befehl "forward-socks5t" nicht.

Ich habs bei mir so gelöst:
Code:
forward-socks5   /               127.0.0.1:9050.

und man könnte noch darauf hinweisen, die standardzeile oben auszukommentieren
Code:
#listen-address  localhost:8118

Ansonsten top anleitung Dankesehr




EDIT:

Okay habe mich jetz mal näher damit auseinander gesetzt. Ich würde den Tor Port nicht nach außen freigeben, da dieser ja eh nur local von privoxy angesprochen werden soll. Außerdem find ich es gut nen paar logdateien zu haben, um fehler zu finden. Hier meine aktuelle Tor config:
Code:
#ExitNodes {de}   # Um nur IP Adressen aus de zu bekommen
#StrictNodes 1     # muss gesetzt werden wenn ExitNodes eingeschaltet wird
SocksPort 9050
SocksListenAddress 127.0.0.1
Log warn file /var/log/tor/log.log
Log notice file /var/log/tor/log.log
DataDirectory /var/lib/tor
DisableDebuggerAttachment 0

dazu die passende privoxy config.
Code:
listen-address  0.0.0.0:8118
forward-socks5 / 127.0.0.1:9050 .
keep-alive-timeout 600
default-server-timeout 600
socket-timeout 600
Somit lauscht privoxy auf allen Interfaces. Den Port 9050 von TOR habe ich in der Firewall zusätzlich noch gesperrt, bzw nicht geöffnet.

Ein problem habe ich allerdings. Ich kann weder mit meiner Konfiguration noch mit der aus dem Startpost auf meinen Privoxy mit Socks5 connecten. Ohne Socks5 oder Socks4 ist es kein Problem. Wenn ich bei meinem Firefox Socks5 anstelle steht in dem privoxy log:
Code:
 Connect: accepted connection from *MEINE_IP* on socket 5

und irgendwann später 

Writing: to socket 5: HTTP/1.1 504 Connection timeout Proxy-Agent: Privoxy 3.0.19 Content-Type: text/plain Connection: close The connection timed out because the client request didn't arrive in time.

Ich kann mit Socks keine Seiten aufrufen. Firewall komplett abschalten macht auch keinen Unterschied. Verbinden kann ich mich ja, es geht bei Socks nur halt kein Traffic durch :-)
Vielleicht hat ja jemand hier noch anregungen wieso ich mich nur über HTTP mit dem Privoxy verbinden kann.
 
Zuletzt bearbeitet:
AW: Eigener Proxy Server | TOR Proxy | Web Anomyzer

Also....

erst einmal ist der Port 9050 für TOR nur ausgehend Accepted.
Wenn du die Proxy im Browser eingetragen hast, werden alle Anfragen auf Port 8118 von der Privoxy angenommen und durch forward-socks5 / 10.20.30.40:9050 . an den TOR Client weitergeleitet.
Wenn die Proxy ein VPS ist, muss du die Listen Adress zwingend auf die IP konfigurieren. Ganz einfach warum:
0.0.0.0:8118 ist nicht routbar. Sprich der Proxy lauscht tatsächlich nur auf 0.0.0.0, da es ein VPS ist musst du die IP-Adresse verwenden.
Du brauchst auch für den forward-sock5 keine Input Chain, da der Server weiß das die externe IP-Adresse seine eigene ist....daher ist ja der Input auf den Loop Accepted.
Das obige Firewallscript hab ich bei mir so wie es ist aktiv!
 
AW: Eigener Proxy Server | TOR Proxy | Web Anomyzer

danke für die Antwort, aber um ehrlich zu sein bin ich noch nicht weiter gekommen.

Wie gesagt, ich kann mich mit firefox verbinden, nur nich über Socks. Hier mal bilder:

So kann ich keine Seite öffnen:


Und so kann ich alles öffnen:


Mit der ListenAdress in privoxy habe ich mal experimentriert. Bei mir kommt es auf gleiche raus.
Code:
listen-address  *Root_IP*:8118
oder
Code:
listen-address 0.0.0.0:8118
Beide führen zum selben ergebnis. Ich kann mich nicht per SOCKS verbinden.



Achja:
über den TOR Port kann man auch surfen. Wenn der in der Firewall nicht gesperrt ist kann man einfach im FireFox nen Proxy eintragen.
Mit IP des Servers und Port 9050. Socks5 aktiv.
Dann geht der gesamte Traffic direkt durch den Tunnel, ohne Privoxy.
Klappt bei mir ebenfalls ohne Probleme.
 
Zuletzt bearbeitet:
AW: Eigener Proxy Server | TOR Proxy | Web Anomyzer

So schaut die Konfiguration bei mir aus:
Du musst Regestriert sein, um das angehängte Bild zusehen.


Im Internet Explorer so:
Du musst Regestriert sein, um das angehängte Bild zusehen.


bzgl. Firewall:
Code:
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p udp --dport 53 -j ACCEPT

#Proxy
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 8118 -j ACCEPT
$iptables -A OUTPUT -o lo -p tcp --dport 8118 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 20 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 21 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 80 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 443 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 81 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 8080 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p udp --dport 53 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p udp --dport 9050 -j ACCEPT
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
AW: Eigener Proxy Server | TOR Proxy | Web Anomyzer

Okay, dann ist es bei dir denke ich genauso....

Ich nutze bei mir das firefox addon FoxyProxy. Damit kann ich genau sagen, bei welchen websites er den Proxy benutzen soll.
Bzw. damit kann man mehrere Proxy eintragen und schnell dazwischen wählen.

Ich bins von SSH verbindungen immer gewohnt gewesen, dass ich in den Einstellungen bei Socksv5 nen häkchen mache.
Aber dann wirds ohne auch wohl richtig sein :-)

danke für die hilfe


Was mich noch interessieren würde:
Wieso nimmt man TOR und zudem noch Privoxy.
Ich habe online was von DNS leak gelesen, der durch die Kombination verhindert werden soll. Dann an anderer Stelle, dass TOR den DNS leak behoben hat. Theoretisch könnte man dann ja auch auf Privoxy verzichten und nur auf den TOR port connecten, oder?
 
AW: Eigener Proxy Server | TOR Proxy | Web Anomyzer

Das Problem ist aber auch mit Foxyproxy bekannt...


Oder hier...
 
AW: Eigener Proxy Server | TOR Proxy | Web Anomyzer

das sind ältere Posts, von 2008.
Das aktuelleste was ich dazu gefunden hab war von 2010. Da wurde gesagt dass es gefixt wurde.




EDIT:

So, das ganze Thema hat mich weiter beschäftigt, daher hier die Ergebnisse meiner Recherche:
- Falls man FireFox benutzt kann man genausogut den Tor Socks Port nach außen freigeben und über diesen surfen.
- Einige Browser unterstützen allerdings keine Socks Proxys und benötigen daher Privoxy, um sich über HTTP mit dem Proxy zu verbinden
- Weiter bietet Privoxy ein paar Extra funktionalitäten(Caching, Sperren von Adressen, umleiten, Adblock, etc)
- Die Sicherheit beinträchtigt die Nutzung von Privoxy als "Zwischenstation" allerdings nicht.
 
Zuletzt bearbeitet:
AW: Eigener Proxy Server | TOR Proxy | Web Anomyzer

So,

habs nun auch mal so eingerichtet (Vserver).

Werde ich Montag auf der Arbeit mal testen! :ja

Eine Sache ist mir aufgefallen, was auch deswegen auf Anhieb erstmal nicht funktionierte:

Im iptables-Skript gibt es diese Zeile wo eine Variable $user gesetzt wird:

user="home.dyndns.org,user.dyndns.org"


Diese habe ich auskommentiert, und weiter unten im Skript diese Zeile Angepasst:

#Allegmeiner Zugriff
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED --source $user -p tcp --dport 7661 -j ACCEPT

zu

#Allegmeiner Zugriff
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 7661 -j ACCEPT

Somit habe ich von überall Zugriff auf den Vserver, nicht nur von einer bestimmten "Dyndns-Adresse".

Evtl. hilft es dem ein oder anderen. :ja

Vielen Dank nochmal, astreines Howto. :)

Gruss

#################

EDIT:

So nochmal ich.

Ich hab's jetzt mal von Zuhause getestet:

Du musst Regestriert sein, um das angehängte Bild zusehen.

Diese IP entspricht NICHT meiner IP Zuhause oder der des Vservers. Ist das richtig so? Bzw. Absicht?

Wenn ich die IP^^ im Browser eintrage + hinsurfe kommt folgendes:

Du musst Regestriert sein, um das angehängte Bild zusehen.

Bzw. nach ständigem Wechsel der IP das hier:

Du musst Regestriert sein, um das angehängte Bild zusehen.

Korrekt so?

Vielen Dank!

Gruss
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
Zuletzt bearbeitet:
AW: Eigener Proxy Server | TOR Proxy | Web Anomyzer

Nochmal ich,

funktioniert von der Arbeit aus nicht...

Auch lässt der Proxy hier keine SSH Verbindung auf Port 443 zu(?).

Was komischerweise funzt ist das Webinterface von Oscam (-> Rootserver).

Das widerum verstehe ich nicht.

Kann ich eigentlich auch einen anderen Port als 8118 hernehmen? Oder ist dieser extra für Privoxy/Tor?

Gruss
 
AW: Eigener Proxy Server | TOR Proxy | Web Anomyzer

Warum es auf deiner Arbeit nicht funktioniert kann ich dir so nicht sagen. Du gibs ja schließlich nicht viel Preis ;-) (Fehlermeldungen, Logs oder ähnliches)

Per Putty verbindest du dich über Privoxy so:


Mit Putty über den Tor Port kommst du entsprechend mit einem Häkchen bei Socks5 und dem Port 9050.

Auf welchem Port dabei dein SSH liegt spielt keine rolle.


Wenn du deine Proxy Ports nach außen für alle freigibst würde ich dir sogar dringend raten nicht die standard Ports zu benutzen. Soll ja nicht jeder auf den ersten Blick erkennen, dass da nen Proxy ist, auf den man sich ohne zugangsdaten verbinden kann :-)
 
AW: Eigener Proxy Server | TOR Proxy | Web Anomyzer

Ok,

Vielen Dank erstmal.

Fehlermeldungen etc. hab ich nicht, der verbindet einfach nicht, evtl. muss ich Putty meinen Proxy-Login von der Arbeit mitgeben(?), das fiel mir gerade noch ein...

Auf Port 9050 lauscht der Privoxy via SSH?

Welche Ports sollte ich wo ändern genau?

Danke!


Gesendet über 38 Ecken ☝
 
Zurück
Oben