Rydia
Anmeldungsdatum: 7. März 2018
Beiträge: 21
|
Ich würde gerne sicherstellen, dass jede Software die VPN-Verbindung nutzt.
Dazu habe ich ein Script erstellt: Und folgendes habe ich dann dort eingtragen: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 | #! /bin/bash
#Iptables Regeln für VPN:
iptables -t filter -A OUTPUT -o wlp7s0 -p udp -m multiport --dports 1149,1150,1151,53,149,150,151
-m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A OUTPUT -o wlp7s0 -p tcp -m multiport --dports 152,1152 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A OUTPUT -o enp8s0 -p udp -m multiport --dports 1149,1150,1151,53,149,150,151
-m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A OUTPUT -o enp8s0 -p tcp -m multiport --dports 152,1152 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -i wlp7s0 -p udp -m multiport --sports 1149,1150,1151,53,149,150,151 -m
state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -i wlp7s0 -p tcp -m multiport --sports 152,1152 -m state --state
ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -i enp8s0 -p udp -m multiport --sports 1149,1150,1151,53,149,150,151 -m
state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -i enp8s0 -p tcp -m multiport --sports 152,1152 -m state --state
ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A OUTPUT --dst 192.168.0.0/16 -j ACCEPT
iptables -t filter -A INPUT --src 192.168.0.0/16 -j ACCEPT
iptables -t filter -A OUTPUT --dst 10.0.0.0/8 -j ACCEPT
iptables -t filter -A INPUT --src 10.0.0.0/8 -j ACCEPT
iptables -t filter -A OUTPUT --dst 172.16.0.0/12 -j ACCEPT
iptables -t filter -A INPUT --src 172.16.0.0/12 -j ACCEPT
iptables -t filter -A OUTPUT -o wlp7s0 -j DROP
iptables -t filter -A INPUT -i wlp7s0 -j DROP
iptables -t filter -A OUTPUT -o enp8s0 -j DROP
iptables -t filter -A INPUT -i enp8s0 -j DROP
|
Sowohl fuer meinen Lan als auch Wlan adapter. Dann das ganze aktiviert und gestartet: | chmod a+x firewall.sh
sudo ~/firewall.sh
|
Leider bekomme ich dann im Terminal folgendes angezeigt: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | /home/ywxm9de3eet1xbrz/firewall.sh: Zeile 4: -m: Befehl nicht gefunden
iptables v1.6.0: option "--state" requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 6: NEW,ESTABLISHED,RELATED: Befehl nicht gefunden
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 8: -m: Befehl nicht gefunden
iptables v1.6.0: option "--state" requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 10: NEW,ESTABLISHED,RELATED: Befehl nicht gefunden
iptables v1.6.0: option "-m" requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 12: state: Befehl nicht gefunden
iptables v1.6.0: option "--state" requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 14: ESTABLISHED,RELATED: Befehl nicht gefunden
iptables v1.6.0: option "-m" requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 16: state: Befehl nicht gefunden
iptables v1.6.0: option "--state" requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 18: ESTABLISHED,RELATED: Befehl nicht gefunden
|
Wo liegt der Fehler? Habe ich mich vertippt? Bearbeitet von Cruiz: Bitte verwende in Zukunft Codeblöcke, um die Übersicht im Forum zu verbessern!
|
Thomas_Do
Moderator
Anmeldungsdatum: 24. November 2009
Beiträge: 8493
|
Bitte Terminalein- und Ausgaben, sowie Skripte als Codeblock {{{ TEXT TEXT }}} posten: Rydia schrieb: Ich würde gerne sicherstellen, dass jede Software die VPN-Verbindung nutzt.
Dazu habe ich ein Script erstellt:
cd ~
pico firewall.sh
Und folgendes habe ich dann dort eingtragen: #! /bin/bash
#Iptables Regeln für VPN:
iptables -t filter -A OUTPUT -o wlp7s0 -p udp -m multiport --dports 1149,1150,1151,53,149,150,151
-m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A OUTPUT -o wlp7s0 -p tcp -m multiport --dports 152,1152 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A OUTPUT -o enp8s0 -p udp -m multiport --dports 1149,1150,1151,53,149,150,151
-m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A OUTPUT -o enp8s0 -p tcp -m multiport --dports 152,1152 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -i wlp7s0 -p udp -m multiport --sports 1149,1150,1151,53,149,150,151 -m
state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -i wlp7s0 -p tcp -m multiport --sports 152,1152 -m state --state
ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -i enp8s0 -p udp -m multiport --sports 1149,1150,1151,53,149,150,151 -m
state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -i enp8s0 -p tcp -m multiport --sports 152,1152 -m state --state
ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A OUTPUT --dst 192.168.0.0/16 -j ACCEPT
iptables -t filter -A INPUT --src 192.168.0.0/16 -j ACCEPT
iptables -t filter -A OUTPUT --dst 10.0.0.0/8 -j ACCEPT
iptables -t filter -A INPUT --src 10.0.0.0/8 -j ACCEPT
iptables -t filter -A OUTPUT --dst 172.16.0.0/12 -j ACCEPT
iptables -t filter -A INPUT --src 172.16.0.0/12 -j ACCEPT
iptables -t filter -A OUTPUT -o wlp7s0 -j DROP
iptables -t filter -A INPUT -i wlp7s0 -j DROP
iptables -t filter -A OUTPUT -o enp8s0 -j DROP
iptables -t filter -A INPUT -i enp8s0 -j DROP
Sowohl fuer meinen Lan als auch Wlan adapter. Dann das ganze aktiviert und gestartet:
chmod a+x firewall.sh
sudo ~/firewall.sh Leider bekomme ich dann im Terminal folgendes angezeigt: /home/ywxm9de3eet1xbrz/firewall.sh: Zeile 4: -m: Befehl nicht gefunden
iptables v1.6.0: option "--state" requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 6: NEW,ESTABLISHED,RELATED: Befehl nicht gefunden
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 8: -m: Befehl nicht gefunden
iptables v1.6.0: option "--state" requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 10: NEW,ESTABLISHED,RELATED: Befehl nicht gefunden
iptables v1.6.0: option "-m" requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 12: state: Befehl nicht gefunden
iptables v1.6.0: option "--state" requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 14: ESTABLISHED,RELATED: Befehl nicht gefunden
iptables v1.6.0: option "-m" requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 16: state: Befehl nicht gefunden
iptables v1.6.0: option "--state" requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/home/ywxm9de3eet1xbrz/firewall.sh: Zeile 18: ESTABLISHED,RELATED: Befehl nicht gefunden Wo liegt der Fehler? Habe ich mich vertippt?
|
Thomas_Do
Moderator
Anmeldungsdatum: 24. November 2009
Beiträge: 8493
|
Ich halte Deine ganze Vorgehensweise für etwas ungewöhnlich. Aber der erste Fehler scheint durch den Zeilenumbruch zwischen Zeile 3 und 4 zu entstehen. Das sollte doch wohl in eine Zeile?
|
Rydia
(Themenstarter)
Anmeldungsdatum: 7. März 2018
Beiträge: 21
|
Thomas_Do schrieb: Ich halte Deine ganze Vorgehensweise für etwas ungewöhnlich. Aber der erste Fehler scheint durch den Zeilenumbruch zwischen Zeile 3 und 4 zu entstehen. Das sollte doch wohl in eine Zeile?
Sorry wusste nicht das man es als Codeblock posten soll ☹
Inwiefern ungewöhnlich? Ich experimentiere momentan mit Iptables rum, aber gibt es bessere Methode als diese?
|
Thomas_Do
Moderator
Anmeldungsdatum: 24. November 2009
Beiträge: 8493
|
Rydia schrieb: Inwiefern ungewöhnlich? Ich experimentiere momentan mit Iptables rum, aber gibt es bessere Methode als diese?
Na ja, ich kenne das Problem eher umgekehrt. In Standard-VPN-Konfigurationen werden zunächst einmal in Abhängigkeit vom Modus (Bridging, Routing) alle Pakete oder Frames des Clients über das VPN geleitet. Zumindest bei meinen Open-VPN-Installationen muss ich dann über iptables explizit Verbindungen festlegen, die beim Routing z.B. direkt ins LAN sollen.
|
Rydia
(Themenstarter)
Anmeldungsdatum: 7. März 2018
Beiträge: 21
|
Meine Intention besteht ja darin, das ich nicht möchte das irgendeine Verbindung am VPN vorbei geht. Ich möchte quasi erzwingen das alles durch die VPN Verbindung geht.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13893
|
Rydia schrieb: Meine Intention besteht ja darin, das ich nicht möchte das irgendeine Verbindung am VPN vorbei geht. Ich möchte quasi erzwingen das alles durch die VPN Verbindung geht.
Alles was ins Internet will, soll durch die VPN-Verbindung gehen? Wie sind mit VPN, die Ausgaben von:
route -n
ip a
ip n s
?
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Hallo! Schau dir mal iptables-save und iptables-restore an. Den Rest mach mal mit Thomas weiter ☺
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13893
|
Rydia schrieb: ... mit Iptables rum, aber gibt es bessere Methode als diese?
Z. B. mit diesem Routing:
~$ route -n
Kernel-IP-Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
0.0.0.0 10.7.0.6 0.0.0.0 UG 95 0 0 tun0
10.7.0.1 10.7.0.5 255.255.255.255 UGH 0 0 0 tun0
10.7.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
46.###.###.## 192.168.178.1 255.255.255.255 UGH 90 0 0 wlan0
192.168.178.0 0.0.0.0 255.255.255.0 U 100 0 0 wlan0
, geht auf meinem Client, Alles was ins Internet soll, über VPN (default route mit dem tun0-Interface) und Alles was ins (W)LAN (192.168.178.0/24) soll, über das wlan0-Interface (definierte route).
|
Rydia
(Themenstarter)
Anmeldungsdatum: 7. März 2018
Beiträge: 21
|
lubux schrieb: Rydia schrieb: Meine Intention besteht ja darin, das ich nicht möchte das irgendeine Verbindung am VPN vorbei geht. Ich möchte quasi erzwingen das alles durch die VPN Verbindung geht.
Alles was ins Internet will, soll durch die VPN-Verbindung gehen? Wie sind mit VPN, die Ausgaben von:
route -n
ip a
ip n s
?
Werde ich hier posten sobald ich wieder am Pc bin
|
Thomas_Do
Moderator
Anmeldungsdatum: 24. November 2009
Beiträge: 8493
|
Rydia schrieb: Werde ich hier posten sobald ich wieder am Pc bin
Das sollte (ohne extra Skript) dann ungefähr so aussehen (bei mir geht der gesamte Internet-Verkehr über VPN falls aktiviert). Manuelle iptables-Regeln wurden nicht gesetzt: # Ohne VPN; wlp3s0 ist das WLAN-Interface
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.17.2.1 0.0.0.0 UG 20600 0 0 wlp3s0
x.x.x.x 172.17.2.1 255.255.255.255 UGH 600 0 0 wlp3s0
172.17.2.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
172.17.2.1 0.0.0.0 255.255.255.255 UH 600 0 0 wlp3s0
# Mit VPN; x.x.x.x ist die IP des VPN-Servers
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.23.0.5 0.0.0.0 UG 50 0 0 tun0
0.0.0.0 172.17.2.1 0.0.0.0 UG 20600 0 0 wlp3s0
x.x.x.x 172.17.2.1 255.255.255.255 UGH 600 0 0 wlp3s0
10.23.0.1 10.23.0.5 255.255.255.255 UGH 50 0 0 tun0
10.23.0.5 0.0.0.0 255.255.255.255 UH 50 0 0 tun0
172.17.2.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
172.17.2.1 0.0.0.0 255.255.255.255 UH 600 0 0 wlp3s0
|
Rydia
(Themenstarter)
Anmeldungsdatum: 7. März 2018
Beiträge: 21
|
Thomas_Do schrieb: Ich halte Deine ganze Vorgehensweise für etwas ungewöhnlich. Aber der erste Fehler scheint durch den Zeilenumbruch zwischen Zeile 3 und 4 zu entstehen. Das sollte doch wohl in eine Zeile?
Tatsächlich, die Zeilen Umbrüche waren das Problem. Habe bei allen Befehlen alle Umbrüche entfernt und es funktioniert.
Wenn ich meinen VPN Client nicht mit einem VPN Server verbunden habe, komme ich nicht ins Netz. Sobald ich zu einem VPN Server
verbunden bin klappt alles. Also Ziel erfüllt ☺ Vielen vielen Dank für euren Support ☺ Rydia schrieb: lubux schrieb: Rydia schrieb: Meine Intention besteht ja darin, das ich nicht möchte das irgendeine Verbindung am VPN vorbei geht. Ich möchte quasi erzwingen das alles durch die VPN Verbindung geht.
Alles was ins Internet will, soll durch die VPN-Verbindung gehen? Wie sind mit VPN, die Ausgaben von:
route -n
ip a
ip n s
?
Werde ich hier posten sobald ich wieder am Pc bin
Route -n sagt jetzt: Kernel-IP-Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.52.1 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.2.1 0.0.0.0 UG 100 0 0 enp8s0
10.0.52.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
95.211.95.232 192.168.2.1 255.255.255.255 UGH 0 0 0 enp8s0
128.0.0.0 10.0.52.1 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp8s0
192.168.2.0 0.0.0.0 255.255.255.0 U 100 0 0 enp8s0
ip a sagt: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.109/24 brd 192.168.2.255 scope global dynamic enp8s0
valid_lft 1813188sec preferred_lft 1813188sec
inet6 2003:74:4f10:5973:d498:44a3:35e1:8d7b/64 scope global temporary dynamic
valid_lft 603587sec preferred_lft 84810sec
inet6 2003:74:4f10:5973:cde9:3f71:ffcf:1ebc/64 scope global mngtmpaddr noprefixroute dynamic
valid_lft 604788sec preferred_lft 86388sec
inet6 fe80::4071:5cad:6a70:d391/64 scope link
valid_lft forever preferred_lft forever
3: wlp7s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether c8:ff:28:09:7f:13 brd ff:ff:ff:ff:ff:ff
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.0.52.246/24 brd 10.0.52.255 scope global tun0
valid_lft forever preferred_lft forever
inet6 fdbf:1d37:bbe0:0:3:4:0:1246/112 scope global
valid_lft forever preferred_lft forever
inet6 fe80::4082:eaf9:274d:a50f/64 scope link flags 800
valid_lft forever preferred_lft forever und ip n s #192.168.2.1 dev enp8s0 lladdr f4:9f:f3:0f:d3:2e DELAY
fe80::1 dev enp8s0 lladdr f4:9f:f3:0f:d3:2e router STALE
2003:74:4f10:5973:f69f:f3ff:fe0f:d32e dev enp8s0 lladdr f4:9f:f3:0f:d3:2e router STALE
Sollte ja jetzt alles seine Richtigkeit haben oder? Das auch wirklich nichts am VPN vorbei kann.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13893
|
Rydia schrieb: Route -n sagt jetzt: Kernel-IP-Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.52.1 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.2.1 0.0.0.0 UG 100 0 0 enp8s0
10.0.52.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
95.211.95.232 192.168.2.1 255.255.255.255 UGH 0 0 0 enp8s0
128.0.0.0 10.0.52.1 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp8s0
192.168.2.0 0.0.0.0 255.255.255.0 U 100 0 0 enp8s0 Sollte ja jetzt alles seine Richtigkeit haben oder? Das auch wirklich nichts am VPN vorbei kann.
Ja, denn die Metric (0) der 1. default route über das VPN (tun0-Interface) ist besser als die Metric (100) der 2. default route über das enp8s0-Interface.
|
Rydia
(Themenstarter)
Anmeldungsdatum: 7. März 2018
Beiträge: 21
|
Bei der 4. Route ist die Metric vom enp8s0 ebenfalls 0. Wofür steht dieser Wert?
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13893
|
Rydia schrieb: Wofür steht dieser Wert?
Z. B. für:
Im Netzwerkbereich definiert die Metrik ein numerisches Maß für die Güte einer Verbindung bei Verwendung einer bestimmten Route.
Quelle: https://de.wikipedia.org/wiki/Metrik_(Netzwerk)
|