1. Einrichten eines WLAN-Accesspoint mit hostapd
2. Erweitern des Accesspoint zum Tor-Gateway
Dieses Tutorial richtet sich an erfahrene Linux-Anwender.
Inhaltsübersicht
> Nachwort und ein paar persönliche Gedanken zum Thema
|
Prämissen
IP-Range des lokalen regulären Heimnetzwerks: 10.0.1.0/24 IP-Range des WLAN-Accesspoints: 192.168.100.0.0/24 ETH-NIC-Name: eth0 WLAN-NIC-Name: wlan0
Der Zugriff aus dem AP-Netz ist nur ins Internet erlaubt Der Zugriff aus dem AP-Netz ins lokale LAN ist ausdrücklich verboten
Alle unbenötigten Dienste werden aus Sicherheitsüberlegungen deaktiviert Die Netzwerk-Connectivity wird vollständig direkt eingerichet
IPv6 ist aus Sicherheitsüberlegungen disabled (wg. RA + SLAAC = GUA)
CLI-Prompt: $ = normaler User # = root
| |
Hinweise: Bei allen Schritten nur dann mit dem nächsten Schritt fortfahren, wenn der vorherige keine Fehler verursacht hat!
Kommentare! Beachten! Auf lokale Gegebenheiten anzupassender Parameter
ne = Nice Editor strg-s = save file strg-q = quit
|
|
Mein PC zum Durchführen aller Arbeiten
$ lsb_release -a Distributor ID: Debian Description: Debian GNU/Linux 10 (buster) Release: 10 Codename: buster
$ date Thu 11. Jul 10:45:57 CEST 2019
|
$ su -
# cd /media/Install/Images
# wget -c "https://downloads.raspberrypi.org/raspbian_lite_latest" -O raspbian_buster_lite_latest.zip --2019-07-09 11:17:11-- https://downloads.raspberrypi.org/raspbian_lite_latest Wird in »raspbian_buster_lite_latest.zip« gespeichert. raspbian_buster_lite_latest.zip 100%[=============================================>] 406,29M 5,56MB/s in 73s 2019-07-11 11:18:24 (5,55 MB/s) - »raspbian_buster_lite_latest.zip« gespeichert [426031826/426031826]
# unzip raspbian_buster_lite_latest.zip Archive: raspbian_buster_lite_latest.zip inflating: 2019-06-20-raspbian-buster-lite.img
# lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,UUID,TYPE Device mit Card-Reader/Writer für SD-Card ermitteln NAME FSTYPE SIZE MOUNTPOINT LABEL UUID TYPE sda 238,5G disk └─sda1 ext4 208,6G / debian10 6c5dbab8-40680 part sdb 465,8G disk └─sdb1 ext4 500G /media/sdb1 33daf003-08ac5 part sdc 14,9G disk <<<===== └─sdc1 vfat 14,9G /media/sdc1 40E4-6EBA part
# umount /dev/sdc1
# dd bs=1M if=2019-06-20-raspbian-buster-lite.img of=/dev/sdc status=progress 2191523840 bytes (2,2 GB, 2,0 GiB) copied, 80 s, 27,4 MB/s 2096+0 Datensätze ein 2096+0 Datensätze aus 2197815296 bytes (2,2 GB, 2,0 GiB) copied, 103,626 s, 21,2 MB/s
# sync # df Dateisystem Typ Größe Benutzt Verf. Verw% Eingehängt auf /dev/sdc1 vfat 253M 40M 213M 16% /media/sdc1 /dev/sdc2 ext4 1,8G 995M 669M 60% /media/sdc2
# touch /media/sdc1/ssh <<<===== vfat # umount /dev/sdc1; umount /dev/sdc2
# exit $
// RPi mit neuer Karte booten und IP-Adresse über DSL-Router ermitteln, hier = 10.0.1.56
$ ping 10.0.1.56 -c 3 PING 10.0.1.56 (10.0.1.56) 56(84) bytes of data. 64 bytes from 10.0.1.56: icmp_seq=1 ttl=64 time=0.429 ms 64 bytes from 10.0.1.56: icmp_seq=2 ttl=64 time=0.462 ms 64 bytes from 10.0.1.56: icmp_seq=3 ttl=64 time=0.410 ms
$ ssh pi@10.0.1.56 -p 22 pwd=raspberry
|
|
$ lsb_release -a Distributor ID: Raspbian Description: Raspbian GNU/Linux 10 (buster) Release: 10 Codename: buster
$ sudo su - root shell # passwd root-pwd setzen # adduser toml neuer Default-User # dpkg-reconfigure tzdata Zeitzone setzen
# systemctl reboot Wichtig!!!
$ ssh toml@10.0.1.56 -p 22
$ su - # deluser pi Sicherheitsrisiken und Müll beseitigen # apt purge --remove sudo rsyslog avahi-daemon
# ip a NIC-Names prüfen. Sofern sie nicht eth0 und wlan0 benannt sind, entweder umbenennen oder hier das Tutorial anpassen. Sofern weitere Interfaces mit Möglichkeiten zu Namenskonflikten installiert sind, # nano /etc/systemd/network/10-eth0.link alle in eindeutiger Reihenfolge eindeutig benennen. | |
| [Match] MACAddress=aa:bb:cc:dd:ee:ff MAC-Adresse aus ip a übernehmen
[Link] Name=eth0 |
# nano /etc/systemd/network/11-wlan0.link | |
| [Match] MACAddress=ab:cd:ef:12:34:56 Type=wlan
[Link] Name=wlan0 |
# systemctl reboot geänderte Bezeichnungen sind erst nach Reboot aktiv
# dpkg -l | grep dhcp ii dhcpcd5 1:7.0.8-0.1+rpt1 armhf DHCPv4, IPv6RA and DHCPv6 client with IPv4LL support ii isc-dhcp-client 4.4.1-2 armhf DHCP client for automatically obtaining an IP address ii isc-dhcp-common 4.4.1-2 armhf common manpages relevant to all of the isc-dhcp packages
# nano /etc/systemd/system/raspi-ap-network.service | |
| [Unit] Description=thlu:network.service: Start network connectivity After=basic.target Before=network.target shutdown.target Wants=network.target Conflicts=shutdown.target
[Service] Type=simple RemainAfterExit=yes
ExecStartPre=/sbin/ip addr add 192.168.100.1/24 dev wlan0 ExecStartPre=/sbin/ip link set dev wlan0 up ExecStartPre=/sbin/ip link set dev eth0 up ExecStart=/sbin/dhclient -4 eth0
ExecStop=/sbin/dhclient -r eth0 ExecStopPost=/sbin/ip link set dev eth0 down ExecStopPost=/sbin/ip link set dev wlan0 down ExecStopPost=/sbin/ip addr flush dev wlan0
[Install] WantedBy=multi-user.target
|
# cd /etc/systemd/system # systemctl enable raspi-ap-network.service
# cd / # find /etc -iname "*networking" -print /etc/rc0.d/K01networking /etc/rc6.d/K01networking /etc/rcS.d/S01networking /etc/default/networking /etc/init.d/networking
# update-rc.d networking remove # find /etc -iname "*networking" -print /etc/default/networking /etc/init.d/networking
# systemctl mask networking.service # systemctl status networking.service raspi-ap-network.service Aufmerksam kontrollieren!
# apt purge --remove dhcpcd5 # apt autoremove; apt autoclean # apt update; apt full-upgrade
# echo -e "\nStorage=persistent\nSystemMaxUse=20M\nRuntimeMaxUse=20M\nForwardToSyslog=no\nMaxLevelConsole=warning\n" >>/etc/systemd/journald.conf
# systemctl reboot Wichtig: WLAN-Device muss jetzt angeschlossen sein!
$ ssh toml@10.0.1.56 -p 22
$ su - # apt install ne vor mir bevorzugter Editor
|
|
|
$ ssh toml@10.0.1.56 -p 22 $ su -
# apt install tor
# mv /etc/tor/torrc /etc/tor/torrc.sik # ne /etc/tor/torrc Log notice file /var/log/tor/tor-notices.log VirtualAddrNetwork 10.192.0.0/10 AutomapHostsSuffixes .onion,.exit AutomapHostsOnResolve 1 TransPort 192.168.100.1:9040 DNSPort 192.168.100.1:53
# mv /usr/local/bin/netfilter /usr/local/bin/netfilter.sik # ne /usr/local/bin/netfilter | |
| #!/bin/bash
[ "$1" == "flush" ] && nft flush ruleset && exit 0 [ "$1" == "list" ] && nft list ruleset && exit 0
modprobe nf_conntrack sysctl -w net.netfilter.nf_conntrack_helper=1
nft add table ip filter nft add chain ip filter prerouting "{type nat hook prerouting priority -100; policy accept; }" nft add chain ip filter input "{ type filter hook input priority 0; policy accept; counter; }" nft add chain ip filter output "{ type filter hook output priority 0; policy accept; counter; }" nft add chain ip filter forward "{ type filter hook forward priority 0; policy accept; counter; }" nft add chain ip filter postrouting "{type nat hook postrouting priority 100; policy accept; }"
nft add rule ip filter prerouting ip saddr { 10.0.1.0/24, 192.168.100.0/24 } ip daddr 224.0.0.0/24 return nft add rule ip filter prerouting ip saddr { 10.0.1.0/24, 192.168.100.0/24 } ip daddr 255.255.255.255 return nft add rule ip filter prerouting iifname "wlan0" ip protocol tcp ip daddr != { 10.0.1.0/24, 192.168.100.0/24 } redirect to :9040
nft add rule ip filter forward ct state related,established accept nft add rule ip filter forward iifname "wlan0" ip saddr 192.168.100.0/24 ip daddr != 10.0.1.0/24 accept nft add rule ip filter forward iifname "wlan0" ip saddr 192.168.100.0/24 drop
nft add rule ip filter postrouting ip saddr { 10.0.1.0/24, 192.168.100.0/24 } ip daddr 224.0.0.0/24 return nft add rule ip filter postrouting ip saddr { 10.0.1.0/24, 192.168.100.0/24 } ip daddr 255.255.255.255 return nft add rule ip filter postrouting ip saddr 192.168.100.0/24 ip daddr != 192.168.100.0/24 masquerade exit 0
|
# chown root:root /usr/local/bin/netfilter; chmod 755 /usr/local/bin/netfilter
//=========================================================================================================================== // Funktionstest
# systemctl restart raspi-ap-netfilter tor # systemctl status raspi-ap-netfilter tor
// Verbindung mit irgendwelchen Client-Geräten an AP möglich und Internet-Zugang ist ok? Wenn ja: // Browser-URL zum Testen: https://check.torproject.org/?lang=de
|
|
Haftungsausschluss:
Ich erhebe keinen Anspruch darauf, dass diese Dokumentation vollständig fehlerfrei ist und ich behaupte das auch nicht. Sowohl
- durch meine Fehler hier im Tutorial
- wie auch durch vorhandene Fehler in den hier verwendeten Linux-Programmen
- sowie durch ggf. zeitgleich auftretende äußere mechanische Einflüsse
- oder durch den Anwender selber verursacht durch Änderungen an Programmen
- oder durch unsachgemäße oder fehlerhafte Einrichtung der Programm wegen fehlerhafter Parameterübergaben
- oder schlicht durch grob-fahrlässiges Verhalten im Internet
kann die Anonymität im Internet vollständig aufgehoben werden.
Das Tor-Gateway ist keine unbeschränkte Garantie für Anonymität im World Wide Web. Ich bin absolut sicher, wer dieses Tutorial einfach nur abschreibt, ohne zu verstehen, was er da abschreibt, wird faktisch keine Anonymität im Internet haben. Das Tor-Gateway ist nur ein Aspekt von sehr vielen weiteren, und jeder andere nicht beachtete Aspekt beim Surfen im Internet wird dazu führen, dass die Anonymität unverzüglich aufgehoben ist.
Deshalb schließe ich jede Haftung für Schäden an Software oder Hardware oder Vermögensschäden oder für Datenverlust oder für im Internet ausgesetzte Anonymität aus, die durch die Benutzung dieses Tutorials enstehen. Die Benutzung erfolgt auf eigenes Risiko.
|
Mit meinem privaten DSL-Account ist das Zahlenverhältnis Exitnode:User beim Normal-Surfen natürlich immer 1:1, ein User und ein Ausgang ins Internet. Auf dem TOR-Exitnode mit unzähligen Usern sieht das mit 1:n vermutlich etwas anders aus... und da wird halt mit dem Captcha geprüft, was ich bin und ob ich wirklich ein User bin. Auf diesem Weg hat der Internet-Besuch also überhaupt keinen Spaß gemacht. Ich habe dann in der VM testweise auch den Tor-Browser installiert und damit den gleichen Proxy genutzt. Und siehe da, das hat viel besser funktioniert. Die vorher beim normalen Browser festgestellten Störungen sind jetzt nicht mehr aufgetreten. Das hat also richtig gut geklappt.
Aber dann hab ich mir die Frage gestellt "Was kann und darf ich denn jetzt überhaupt noch im WWW tun?" Ich darf mich z.B. jetzt nicht mehr in meinen Linux-Web-Foren anmelden, bei Amazon einkaufen ist natürlich auch untersagt, würde ich privat Facebook nutzen, oder Twitter, oder irgendeine beliebige andere Social-Media-Plattform, oder einen Streaming-Dienst, so darf und sollte ich all das mit dem Tor-Browser natürlich auch nicht nutzen. Warum kann/sollte ich es nicht nutzen? Na ganz einfach, weil ich mich für die Nutzung dieses Services mit meinen persönlichen Anmeldedaten legitimieren muss, ich muss meinen (Nick-)Namen und ein Password verwenden. Aber wenn ich das tue, habe ich die Anonymisierung doch genau in diesem Moment aufgehoben. Hallo...?... gehts noch...?... wofür brauch ich denn dann TOR zur Anonymisierung, wenn ich anschließend diese Anonymisierung selber aufhebe, indem ich bei einer Online-Anmeldung meine eigenen Account-Daten verwende? Aber wenn ich von all dem nichts nutzen darf, eben um die Anonymisierung nicht aufzuheben, was soll/darf ich denn dann überhaupt noch im Internet tun....?... nur blöd auf Seiten rumclicken, die mich nicht interessieren, die aber ohne Anmeldung auskommen...?... hauptsache ich bin also anonym und niemand kriegt mit, dass ich auf Seiten rumclicke, die mich nicht interessieren? Nee, mal ehrlich, das ist nicht mein Ding, auf so'n Quatsch hab ich kein Bock.
Mein persönlich Fazit: TOR ist wichtig, das TOR-Netzwerk ist wichtig, das ist absolut unbestritten ... weil es zuverlässig dabei hilft, mich als Person im Fall der Fälle zu anonymisieren, um damit mich als Mensch vor Zugriff oder Übergriff zu schützen, es schützt nicht meine Hardware, sondern mich. Aber dafür muss ich mich konsequent und äußerst diszipliniert an konkrete Spielregeln und Verhaltensregeln halten, weil jeder Verstoß die sofortige Aufhebung der Anonymität nach sich zieht. Aber genau diese ganzen Einschränkungen, um alles das zu gewährleisten, stehen absolut in krassen Widerspruch zu meinen eigenen Surfgewohnheiten. Das passt einfach nicht zusammen. Außerdem gibt es für mich in DE gar keine zwingende Notwendigkeit, anonym zu surfen, ich muss nur dafür sorgen, dass ich mit einigen wenigen disziplinarischen und technisch unterstützten eigenen Verhaltensregeln die von mir erzeugten Trackingspuren unterbreche.... dafür brauche ich aber kein TOR. Für mich persönlich bietet das TOR-Netz im Moment also keine sinnvolle Verwendung und auch keine Vorteile. Das muss aber jeder für sich selber herausfinden. Aber ganz unberücksichtigt davon unterstütze ich vorbehaltlos die Idee des TOR-Netzwerks und das Projekt.