[gelöst] openVPN "alles" durch den Tunnel
[gelöst] openVPN "alles" durch den Tunnel
Moin!
Ich stehe gerade ein wenig auf dem Schlauch:
Für meine Smartphones habe ich openVPN eingerichtet, auf dem Stretch-Server den openVPN daemon, auf den Geräten openVPN Client. Sollte ursprünglich dafür sein, um aus der Ferne auf meinen Server zugreifen zu können. Funktioniert prinzipiell auch.
Jetzt würde ich gerne alles durch diesen Tunnel leiten, sprich jede Abfrage in's Internet soll auch dort durch laufen.
Ich finde nur gerade nicht, wie ich das einrichte...
Außerdem bestünde die Zusatzfrage: kann man das irgendwie einfach "schaltbar" machen?
Ich stehe gerade ein wenig auf dem Schlauch:
Für meine Smartphones habe ich openVPN eingerichtet, auf dem Stretch-Server den openVPN daemon, auf den Geräten openVPN Client. Sollte ursprünglich dafür sein, um aus der Ferne auf meinen Server zugreifen zu können. Funktioniert prinzipiell auch.
Jetzt würde ich gerne alles durch diesen Tunnel leiten, sprich jede Abfrage in's Internet soll auch dort durch laufen.
Ich finde nur gerade nicht, wie ich das einrichte...
Außerdem bestünde die Zusatzfrage: kann man das irgendwie einfach "schaltbar" machen?
Zuletzt geändert von dirk11 am 10.02.2019 14:28:14, insgesamt 1-mal geändert.
Re: openVPN "alles" durch den Tunnel
Die OpenVPN-Option heißt: redirect-gatewaydirk11 hat geschrieben:09.02.2019 12:52:21Jetzt würde ich gerne alles durch diesen Tunnel leiten, sprich jede Abfrage in's Internet soll auch dort durch laufen.
Ich finde nur gerade nicht, wie ich das einrichte...
Das kannst du z.B. durch zwei unterschiedliche Konfigurationen auf dem Smartphone machen, einmal mit der Option und einmal ohne.dirk11 hat geschrieben:09.02.2019 12:52:21Außerdem bestünde die Zusatzfrage: kann man das irgendwie einfach "schaltbar" machen?
Re: openVPN "alles" durch den Tunnel
Danke! Also muss ich nur die von Dir genannte Option in der *.ovpn für das Client-Endgerät hinzufügen, das ist schon alles?
Re: openVPN "alles" durch den Tunnel
Auf dem Server wird noch:
Code: Alles auswählen
net.ipv4.ip_forward=1
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: openVPN "alles" durch den Tunnel
Das steht sowieso schon in der syctl.conf drin.mat6937 hat geschrieben:09.02.2019 14:06:06Auf dem Server wird noch:Code: Alles auswählen
net.ipv4.ip_forward=1
Aber wie würde
So eine Regel aussehen?und eine Source-NAT (MASQUERADE)-Regel benötigt.
Zur Zeit habe ich dort:
Code: Alles auswählen
$IPTABLES -A FORWARD -i tun+ -o eth0 -s 10.1.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
$IPTABLES -A FORWARD -i tun+ -o eth0 -s 10.2.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o tun+ -s 192.168.17.0/24 -m conntrack --ctstate NEW -j ACCEPT
$IPTABLES -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i tun+ -o tun+ -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o tun+ -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i tun+ -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o eth0 -j REJECT
$IPTABLES -A FORWARD -i tun+ -o tun+ -j REJECT
Zuletzt geändert von dirk11 am 09.02.2019 19:18:56, insgesamt 1-mal geändert.
Re: openVPN "alles" durch den Tunnel
Z. B. so:dirk11 hat geschrieben:09.02.2019 14:41:42Aber wie würdeSo eine Regel aussehen?und eine Source-NAT (MASQUERADE)-Regel benötigt.
Code: Alles auswählen
/sbin/iptables -t nat -I POSTROUTING 1 -o eth0 -j MASQUERADE
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: openVPN "alles" durch den Tunnel
Mhmm. Ich habe in meinen iptables-Regeln die folgende gefunden:
Was macht die anders?
Nächste Frage: wie kann ich prüfen, ob die Daten wirklich alle durch den Tunnel gehen? Mein Android-Device kennt kein traceroute...
Mhmm. Ein traceroute auf heise.de ergibt derzeit auf meinem Server:
Handy:
Sieht in meinen Augen ganz gut aus!?
Code: Alles auswählen
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Nächste Frage: wie kann ich prüfen, ob die Daten wirklich alle durch den Tunnel gehen? Mein Android-Device kennt kein traceroute...

Mhmm. Ein traceroute auf heise.de ergibt derzeit auf meinem Server:
Code: Alles auswählen
# traceroute heise.de
traceroute to heise.de (193.99.144.80), 30 hops max, 60 byte packets
1 router.lan (192.168.17.1) 0.297 ms 0.253 ms 0.299 ms
2 62.155.244.25 (62.155.244.25) 6.745 ms 6.745 ms 7.156 ms
3 f-ed12-i.F.DE.NET.DTAG.DE (62.154.15.110) 11.645 ms 12.270 ms 12.326 ms
4 62.157.251.38 (62.157.251.38) 12.668 ms 12.833 ms 12.834 ms
5 * * *
6 212.19.61.13 (212.19.61.13) 11.630 ms !X * *
Code: Alles auswählen
10.1.0.1 90ms
192.168.17.1 74ms
62.155.244.25 73ms
62.154.15.110 f-ed12-i.F.DE.NET.DTAG.DE 78ms
62.157.251.38 77ms
*
*
212.19.61.13 115ms
193.99.144.80 heise.de 56ms
-
- Beiträge: 123
- Registriert: 23.10.2018 18:06:09
Re: openVPN "alles" durch den Tunnel
Nichts, die macht genau das gleiche. Wobei ich jetzt gerade nicht weiss, was im oberen Beispiel die "1" hinter Postrouting macht.... ob die gewollt ist oder ob das nur ein Kopierfehler ist. Aber prinzipiell sollte das gleich sein. Die Unterschiede der Parameter kann man mit "man iptables" nachlesen.
Du muss auf dem Android-Client in den VPN-Optionen einstellen, dass lokaler Traffic auch durch das VPN geht, weil man im Regelfall an fremden AccessPoints keinen lokalen Traffic hat.Nächste Frage: wie kann ich prüfen, ob die Daten wirklich alle durch den Tunnel gehen?
Re: openVPN "alles" durch den Tunnel
dirk11 hat geschrieben:09.02.2019 14:57:07Mhmm. Ich habe in meinen iptables-Regeln die folgende gefunden:Was macht die anders?Code: Alles auswählen
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Die Regel wird nichts anders machen, ... außer wenn es noch zusätzliche Regeln gibt und sie später gesetzt wird, dann evtl. am Ende angehängt.
Aber siehe dazu die Ausgabe(n) von:Code: Alles auswählen
iptables -nvx -L POSTROUTING -t nat
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: openVPN "alles" durch den Tunnel
Warum soll das ein Kopierfehler sein? Ich habe die nicht kopiert.ReturnToSender hat geschrieben:09.02.2019 15:05:30Nichts, die macht genau das gleiche. Wobei ich jetzt gerade nicht weiss, was im oberen Beispiel die "1" hinter Postrouting macht.... ob die gewollt ist oder ob das nur ein Kopierfehler ist.
Die "1" setzt in Zusammenhang mit "I", diese Regel an die 1. Stelle in der chain (... was manchmal wichtig sein kann).
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: openVPN "alles" durch den Tunnel
Ergibt:mat6937 hat geschrieben:09.02.2019 15:07:24Aber siehe dazu die Ausgabe(n) von:Code: Alles auswählen
iptables -nvx -L POSTROUTING -t nat
Code: Alles auswählen
# iptables -nvx -L POSTROUTING -t nat
Chain POSTROUTING (policy ACCEPT 3676 packets, 222780 bytes)
pkts bytes target prot opt in out source destination
15168 1991806 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
Öhm? Da kann ich sowas nicht einstellen im Android-openvpn-Client?ReturnToSender hat geschrieben:09.02.2019 15:05:30Du muss auf dem Android-Client in den VPN-Optionen einstellen, dass lokaler Traffic auch durch das VPN geht, weil man im Regelfall an fremden AccessPoints keinen lokalen Traffic hat.
Re: openVPN "alles" durch den Tunnel
Doch, das ist eigentlich völlig normal.... failtoban nutzt das beispielsweise auch und sehr intensiv.... das sind Inserts, im Gegensatz zu üblichen seriellen Appends. Und natürlich nutzt das auch Schadsoftware, die sich vor den anderen Regeln eigene Genehmigungen setzt. Nur ist mir der Insert mit Positionsangabe für postrouting nicht gleich ins Bewusstsein gekommen, zumal ich das in meinem Umfeld eh noch nie gebraucht habe... also speziell dafür zwingend eine Position dabei anzugeben, weil ich das sowieso saddr-abhängig machen würde. Das man darauf so empfindlich reagiert, hat mich überrascht... zumal ich ja noch sagte "ich weiss gerade nicht...usw." .... als wenn nicht -wissen schon wieder was schlimmes wäre... na ja ist auch egal...dirk11 hat geschrieben:09.02.2019 15:29:07ich habe eine einzeln stehende 1 noch nie bei einer iptables-Regel gesehen.
Ich verwende den folgenden, damit geht das.... funktioniert gefühlt seit bestimmt bald 10 Jahren kompromislos fehlerfrei und stabil:Öhm? Da kann ich sowas nicht einstellen
https://play.google.com/store/apps/deta ... kt.openvpn
Re: openVPN "alles" durch den Tunnel
Ok. Was ist denn mit "lokalem traffic" überhaupt gemeint?
Ein LAN? Da wäre mir das egal. Oder auch wie im Beispiel heise.de über den lokalen Access-Point? Und was wäre denn die Default-Einstellung im von mir bisher verwendeten Client?
Ein LAN? Da wäre mir das egal. Oder auch wie im Beispiel heise.de über den lokalen Access-Point? Und was wäre denn die Default-Einstellung im von mir bisher verwendeten Client?
Re: openVPN "alles" durch den Tunnel
LAN-Intern.... also zwischen Deinem Android und dem Accesspoint-LAN. Du könntest ja theoretisch die Online-Speisekarte anschauen, wenn der AccessPoint ein Restaurant wäre.... oder andere lokale Services des AP nutzen. Mit der Umleitung übers VPN würde dieser Traffic dann über Deinen VPN-Server laufen. Für gewerbliche, dienstliche VPN-Anwendungen kann diese Unterscheidung sinnvoll sein, wenn man im Büro lokale Dienste ohne VPN nutzen will, aber entfernte Dienste übers VPN gehen sollen. Für uns privat glaube ich, an fremden APs es ist besser, rigoros alles über den VPN-Server laufen zu lassen.dirk11 hat geschrieben:09.02.2019 15:48:38Ok. Was ist denn mit "lokalem traffic" überhaupt gemeint?
Re: openVPN "alles" durch den Tunnel
Ich seheTomL hat geschrieben:09.02.2019 16:02:02Für gewerbliche, dienstliche VPN-Anwendungen kann diese Unterscheidung sinnvoll sein, wenn man im Büro lokale Dienste ohne VPN nutzen will, aber entfernte Dienste übers VPN gehen sollen. Für uns privat glaube ich, an fremden APs es ist besser, rigoros alles über den VPN-Server laufen zu lassen.
a) keine Unterscheidung zwischen "Gewerblich" und "Privat"
und verstehe
b) nicht, wozu das überhaupt gut sein soll? Wenn ich ein Restaurant-WLAN nutze und dann deren Online-Speisekarte sehen will, ist es doch sinnfrei, das über meinen Server in Deutschland zu leiten? Was für einen Benefit sollte denn der Betreiber daraus ziehen, wenn ich das nicht mache?
Re: openVPN "alles" durch den Tunnel
Vielleicht mal zur Erklärung:dirk11 hat geschrieben:09.02.2019 15:29:07ich habe eine einzeln stehende 1 noch nie bei einer iptables-Regel gesehen.
Code: Alles auswählen
iptables -A CHAIN ....
Code: Alles auswählen
iptables -I CHAIN n ....
Re: openVPN "alles" durch den Tunnel

Der Grund für meine Frage und den Wunsch, überhaupt diese Option zu bekommen, war übrigens ein Zwischenstopp in einem der "Five-Eyes" Staaten vor kurzem. Hier in D interessiert mich wenig, ob die Telekom mein Surf-Verhalten über das Festnetz oder über das Mobilnetz verfolgt...
Re: openVPN "alles" durch den Tunnel
BTW: Hätte ich dich vorher fragen sollen, ob Du schon eine oder mehrere iptables-Regel(n) in der POSTROUTING chain/nat table hast?dirk11 hat geschrieben:09.02.2019 15:29:07..., ich habe eine einzeln stehende 1 noch nie bei einer iptables-Regel gesehen.
Wenn ich die Regel mit der 1 (... d. h. sie wird an 1. Stelle in der chain gesetzt) schreibe, weiß ich, dass diese Regel auch immer wirksam ist.
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: openVPN "alles" durch den Tunnel
Alles gut. Ich wußte überhaupt nicht, daß es diese Möglichkeit bei iptables gibt, ich dachte immer, die werden der Reihe nach abgearbeitet. Von daher ist die MASQUERADE-Regel sowieso die erste im postrouting-Zweig.
Re: openVPN "alles" durch den Tunnel
Und genau das kann ja zum Problem werden. Denn wenn eine Regel zutrifft/ wirksam ist, werden die nachfolgenden Regeln nicht mehr berücksichtigt.dirk11 hat geschrieben:09.02.2019 18:26:19..., ich dachte immer, die werden der Reihe nach abgearbeitet.
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: openVPN "alles" durch den Tunnel
Na ja. Das kann nur dann zum Problem werden, wenn man das nicht beachtet oder nicht weiß (mir war das schon bekannt). Aber gut, daß Du es nochmal erwähnst, für andere Leser.
Re: openVPN "alles" durch den Tunnel
Poste mal die Ausgabe von:
Code: Alles auswählen
iptables -nvx -L FORWARD
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: openVPN "alles" durch den Tunnel
Code: Alles auswählen
# iptables -nvx -L FORWARD
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
19 1596 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8 limit: avg 1/sec burst 5
0 0 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8
119 62144 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
85 5100 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 limit: avg 10/sec burst 5
17 680 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04 limit: avg 10/sec burst 5
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x00 limit: avg 5/hour burst 5
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x3F limit: avg 5/hour burst 5
41 40772 ACCEPT all -- tun+ eth0 10.1.0.0/24 0.0.0.0/0 ctstate NEW
0 0 ACCEPT all -- tun+ eth0 10.2.0.0/24 0.0.0.0/0 ctstate NEW
0 0 ACCEPT all -- eth0 tun+ 192.168.17.0/24 0.0.0.0/0 ctstate NEW
56424 45575256 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- eth0 eth0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- tun+ tun+ 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- eth0 tun+ 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- tun+ eth0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 REJECT all -- eth0 eth0 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 REJECT all -- tun+ tun+ 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/min burst 5 LOG flags 0 level 4 prefix "Invalid FORWARD: "
Re: openVPN "alles" durch den Tunnel
Hier sieht man, dass es dir doch nicht bekannt war. Denn die Regel:dirk11 hat geschrieben:09.02.2019 19:18:30Code: Alles auswählen
56424 45575256 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- eth0 eth0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- tun+ tun+ 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- eth0 tun+ 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- tun+ eth0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
Code: Alles auswählen
56424 45575256 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: openVPN "alles" durch den Tunnel
Ok.
Jetzt wird's krank...
Dann sag' mir doch bitte, wo mein Fehler liegt - das Konstrukt ist über 15 Jahre alt, im Laufe der Zeit gewachsen, und ich war mir eigentlich sicher, daß alles in Ordnung ist:


Dann sag' mir doch bitte, wo mein Fehler liegt - das Konstrukt ist über 15 Jahre alt, im Laufe der Zeit gewachsen, und ich war mir eigentlich sicher, daß alles in Ordnung ist:
Code: Alles auswählen
01. LOCAL="192.168.17.0/24"
02. IPTABLES="/sbin/iptables"
03.
04. ## echo 1 > /proc/sys/net/ipv4/ip_forward
05.
06. Stop()
07. {
08. Flush ACCEPT
09. }
10.
11. Close()
12. {
13. Flush DROP
14. }
15.
16. Flush()
17. {
18. $IPTABLES -F
19. $IPTABLES -t nat -F
20. $IPTABLES -t mangle -F # ignore if you get an error here
21. $IPTABLES -X # deletes every non-builtin chain in the table
22. $IPTABLES -A INPUT -i lo -j ACCEPT # accepts packets from localhost
23. $IPTABLES -A INPUT -i eth0 -j ACCEPT # accepts packets from outside
24. $IPTABLES -A INPUT -i eth1 -j ACCEPT # accepts packets from intranet
25. $IPTABLES -A INPUT -i tun0 -j ACCEPT # accepts packets from intranet
26. $IPTABLES -A INPUT -i tun1 -j ACCEPT # accepts packets from intranet
27. $IPTABLES -P INPUT DROP
28. $IPTABLES -P FORWARD DROP
29. }
30.
31. Start()
32. {
33. $IPTABLES -F
34. $IPTABLES -t nat -F
35. ## Zaehlregeln fuer autoaus-script (folgende fünf Zeilen, Traffic im Intranet-Bereich):
36. $IPTABLES -N TRAFFIC_ACCT
37. $IPTABLES -A TRAFFIC_ACCT
38. $IPTABLES -I INPUT -s 192.168.17.0/24 -j TRAFFIC_ACCT
39. $IPTABLES -I INPUT -s 10.1.0.0/24 -j TRAFFIC_ACCT # eventuell anstelle von /26 auch ueberall /29
40. $IPTABLES -I INPUT -s 10.2.0.0/24 -j TRAFFIC_ACCT # eventuell anstelle von /26 auch ueberall /29
41.
42. ## Firewall ICMP. ICMP is useful so allow any by default.
43. ## mit den ersten drei Zeilen wird verhindert, dass mein Rechner
44. ## zu viele Antworten schickt (also auf zu viele ping-Anfragen
45. ## reagiert) und damit den eigenen upload dichtmacht. Ohne "-i ! eth0"
46. ## nach dem INPUT und vor dem -p gilt es fuer jede Schnittstelle.
47. $IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
48. $IPTABLES -A INPUT -p icmp --icmp-type echo-request -j DROP
49. $IPTABLES -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
50. $IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT # Schutz vor "ping of death"
51. $IPTABLES -A FORWARD -p icmp --icmp-type echo-request -j DROP # ?
52. $IPTABLES -A INPUT -p icmp -j ACCEPT
53. $IPTABLES -A OUTPUT -p icmp -j ACCEPT
54. $IPTABLES -A FORWARD -p icmp -j ACCEPT
55.
56. ### Regeln fuer INPUT:
57. $IPTABLES -A INPUT -i lo -j ACCEPT
58.
59. ## Alle TCP-Sessions muessen mit einem SYN beginnen, sonst werden sie verworfen:
60. $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "Stealth Scan: "
61. $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
62.
63. ## Ungewoehnliche Flags verwerfen:
64. $IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
65. $IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
66. $IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
67. $IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
68. $IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
69. $IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
70.
71. ## SYN-Flood-Schutz:
72. $IPTABLES -N SYN_FLOOD
73. $IPTABLES -A INPUT -p tcp --syn -j SYN_FLOOD
74. $IPTABLES -A SYN_FLOOD -m limit --limit 10/s --limit-burst 40 -j RETURN
75. $IPTABLES -A SYN_FLOOD -j DROP
76.
77. $IPTABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
78. # $IPTABLES -A INPUT -m state --state NEW -i ! ppp+ -j ACCEPT
79.
80. ## -> Hier neue Dienste einfuegen, die von aussen akzeptiert werden sollen, z.B.:
81. ## (mit den folgenden 20 Zeilen werden die IPs geblockt, von denen innerhalb
82. ## von 1m mehr als 5 Einlogversuche kommen, und zwar fuer je 1m.
83. ## ACHTUNG: nach einer uptime >25d funktioniert das nicht mehr und von
84. ## ausserhalb kann sich niemand mehr einloggen!
85. ## Deshalb Einfuegung in /usr/local/bin/autoaus)
86.
87. ##^ NEU Anti-Bruteforce fuer Ports 22 und 33:
88. $IPTABLES -N SSH_WHITELIST
89. $IPTABLES -A SSH_WHITELIST -s 192.168.17.0/24 -m recent --remove --name ssh -j ACCEPT
90. $IPTABLES -A SSH_WHITELIST -s 10.1.0.0/26 -m recent --remove --name ssh -j ACCEPT
91. $IPTABLES -A SSH_WHITELIST -s 10.2.0.0/26 -m recent --remove --name ssh -j ACCEPT
92. $IPTABLES -N SSH_BADGUYS
93. $IPTABLES -A SSH_BADGUYS -m recent --name ssh_badguys --set
94. $IPTABLES -A SSH_BADGUYS -j LOG --log-prefix "SSH scanner detected: "
95. $IPTABLES -A SSH_BADGUYS -j REJECT --reject-with icmp-admin-prohibited
96. ## auch hier: ohne "-i ! eth1" nach dem INPUT und vor dem -p gilt es fuer jede Schnittstelle:
97. $IPTABLES -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_WHITELIST
98. $IPTABLES -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ssh_badguys --update --seconds 120 -j REJECT --reject-with icmp-admin-prohibited
99. $IPTABLES -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name ssh
100. $IPTABLES -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --rcheck --seconds 60 --hitcount 5 --name ssh -j SSH_BADGUYS
101.
102. $IPTABLES -N SSH_WHITELIST2
103. $IPTABLES -A SSH_WHITELIST2 -s 192.168.17.0/24 -m recent --remove --name ssh2 -j ACCEPT
104. $IPTABLES -A SSH_WHITELIST2 -s 10.1.0.0/26 -m recent --remove --name ssh2 -j ACCEPT
105. $IPTABLES -A SSH_WHITELIST2 -s 10.2.0.0/26 -m recent --remove --name ssh2 -j ACCEPT
106. $IPTABLES -N SSH_BADGUYS2
107. $IPTABLES -A SSH_BADGUYS2 -m recent --name ssh_badguys2 --set
108. $IPTABLES -A SSH_BADGUYS2 -j LOG --log-prefix "SSH scanner detected: "
109. $IPTABLES -A SSH_BADGUYS2 -j REJECT --reject-with icmp-admin-prohibited
110. ## auch hier: ohne "-i ! eth1" vor dem -p gilt es fuer jede Schnittstelle:
111. $IPTABLES -A INPUT -p tcp --dport 33 -m state --state NEW -j SSH_WHITELIST2
112. $IPTABLES -A INPUT -p tcp --dport 33 -m state --state NEW -m recent --name ssh_badguys2 --update --seconds 120 -j REJECT --reject-with icmp-admin-prohibited
113. $IPTABLES -A INPUT -p tcp --dport 33 -m state --state NEW -m recent --set --name ssh2
114. $IPTABLES -A INPUT -p tcp --dport 33 -m state --state NEW -m recent --rcheck --seconds 60 --hitcount 5 --name ssh2 -j SSH_BADGUYS2
115. ##^
116.
117. ## Diese Ports sind von ueberall erreichbar:
118. # $IPTABLES -A INPUT -p tcp --dport ftp-data -j ACCEPT
119. # $IPTABLES -A INPUT -p tcp --dport ftp -j ACCEPT
120. $IPTABLES -A INPUT -p tcp --dport ssh -j ACCEPT
121. $IPTABLES -A INPUT -p udp --dport ssh -j ACCEPT
122. $IPTABLES -A INPUT -p tcp --dport 33 -j ACCEPT
123. $IPTABLES -A INPUT -p udp --dport 33 -j ACCEPT
124. $IPTABLES -A INPUT -p tcp --dport 25 -j ACCEPT
125. $IPTABLES -A INPUT -p tcp --dport finger -j ACCEPT
126. ## Limit bietet Schutz gegen DoS:
127. $IPTABLES -A INPUT -p tcp --dport http -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
128. $IPTABLES -A INPUT -p udp --dport http -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
129. $IPTABLES -A INPUT -p tcp --dport https -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
130. $IPTABLES -A INPUT -p udp --dport https -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
131. ##
132. $IPTABLES -A INPUT -p tcp --dport imaps -j ACCEPT
133. $IPTABLES -A INPUT -p udp --dport imaps -j ACCEPT
134. # $IPTABLES -A INPUT -p tcp --dport openvpn -j ACCEPT
135. $IPTABLES -A INPUT -p udp --dport openvpn -j ACCEPT
136. $IPTABLES -A INPUT -p tcp --dport 1195 -j ACCEPT
137.
138. ## Diese Ports sind nur aus dem Intranet erreichbar:
139. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport time -j ACCEPT # timeserver
140. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport time -j ACCEPT # timeserver
141. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport timed -j ACCEPT # timeserver
142. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport ntp -j ACCEPT # timeserver
143. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport ntp -j ACCEPT # timeserver
144. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport 442 -j ACCEPT # https lighttpd
145. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport 442 -j ACCEPT # https lighttpd
146. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport netbios-ns -j ACCEPT # Samba Nameserver
147. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport netbios-dgm -j ACCEPT # Samba datagram
148. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport netbios-ssn -j ACCEPT # Samba session service
149. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport microsoft-ds -j ACCEPT # Samba Microsoft Naked CIFS
150. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport microsoft-ds -j ACCEPT # Samba Microsoft Naked CIFS
151. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport 323 -j ACCEPT # timeserver fuer chrony
152. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport 323 -j ACCEPT # timeserver fuer chrony
153. # $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport openvpn -j ACCEPT # openvpn
154. # $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport openvpn -j ACCEPT # openvpn
155. # $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport 1195 -j ACCEPT # openvpn
156. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport 8118 -j ACCEPT # tor
157. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport 8118 -j ACCEPT # tor
158. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport 9050 -j ACCEPT # tor
159. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport 9050 -j ACCEPT # tor
160. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport ftp-data -j ACCEPT
161. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport ftp -j ACCEPT
162. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport ipp -j ACCEPT
163. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport ipp -j ACCEPT
164. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport dict -j ACCEPT
165. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport dict -j ACCEPT
166. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport tftp -j ACCEPT
167. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport sunrpc -j ACCEPT # nfs/sunrpc
168. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport sunrpc -j ACCEPT # nfs/sunrpc
169. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport nfs -j ACCEPT # nfs/sunrpc
170. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport nfs -j ACCEPT # nfs/sunrpc
171. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport 32765 -j ACCEPT # nfs/sunrpc
172. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport 32765 -j ACCEPT # nfs/sunrpc
173. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport 32766 -j ACCEPT # nfs/sunrpc
174. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport 32766 -j ACCEPT # nfs/sunrpc
175. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport 32767 -j ACCEPT # nfs/sunrpc
176. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport 32767 -j ACCEPT # nfs/sunrpc
177. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport 1900 -j ACCEPT # mediatomb-DLNA
178. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport 1900 -j ACCEPT # mediatomb-DLNA
179. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport 49152 -j ACCEPT # mediatomb-DLNA
180. $IPTABLES -A INPUT -s 192.168.17.0/24 -p udp --dport 49152 -j ACCEPT # mediatomb-DLNA
181. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport 9981 -j ACCEPT # hts TVheadend
182. $IPTABLES -A INPUT -s 192.168.17.0/24 -p tcp --dport 9982 -j ACCEPT # hts TVheadend
183.
184. ## Dasselbe fuer das TUN-device tun0 von VPN:
185. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport time -j ACCEPT # timeserver
186. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport time -j ACCEPT # timeserver
187. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport timed -j ACCEPT # timeserver
188. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport ntp -j ACCEPT # timeserver
189. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport ntp -j ACCEPT # timeserver
190. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport 442 -j ACCEPT # https lighttpd
191. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport 442 -j ACCEPT # https lighttpd
192. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport netbios-ns -j ACCEPT # Samba Nameserver
193. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport netbios-dgm -j ACCEPT # Samba datagram
194. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport netbios-ssn -j ACCEPT # Samba session service
195. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport microsoft-ds -j ACCEPT # Samba Microsoft Naked CIFS
196. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport microsoft-ds -j ACCEPT # Samba Microsoft Naked CIFS
197. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport 323 -j ACCEPT # timeserver fuer chrony
198. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport 323 -j ACCEPT # timeserver fuer chrony
199. # $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport openvpn -j ACCEPT # openvpn
200. # $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport openvpn -j ACCEPT # openvpn
201. # $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport 1195 -j ACCEPT # openvpn
202. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport 8118 -j ACCEPT # tor
203. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport 8118 -j ACCEPT # tor
204. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport 9050 -j ACCEPT # tor
205. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport 9050 -j ACCEPT # tor
206. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport ftp-data -j ACCEPT
207. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport ftp -j ACCEPT
208. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport ipp -j ACCEPT
209. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport ipp -j ACCEPT
210. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport dict -j ACCEPT
211. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport dict -j ACCEPT
212. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport tftp -j ACCEPT
213. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport sunrpc -j ACCEPT # nfs/sunrpc
214. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport sunrpc -j ACCEPT # nfs/sunrpc
215. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport nfs -j ACCEPT # nfs/sunrpc
216. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport nfs -j ACCEPT # nfs/sunrpc
217. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport 32765 -j ACCEPT # nfs/sunrpc
218. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport 32765 -j ACCEPT # nfs/sunrpc
219. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport 32766 -j ACCEPT # nfs/sunrpc
220. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport 32766 -j ACCEPT # nfs/sunrpc
221. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport 32767 -j ACCEPT # nfs/sunrpc
222. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport 32767 -j ACCEPT # nfs/sunrpc
223. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport 1900 -j ACCEPT # mediatomb-DLNA
224. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport 1900 -j ACCEPT # mediatomb-DLNA
225. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport 49152 -j ACCEPT # mediatomb-DLNA
226. $IPTABLES -A INPUT -s 10.1.0.0/26 -p udp --dport 49152 -j ACCEPT # mediatomb-DLNA
227. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport 9981 -j ACCEPT # hts TVheadend
228. $IPTABLES -A INPUT -s 10.1.0.0/26 -p tcp --dport 9982 -j ACCEPT # hts TVheadend
229.
230. ## Dasselbe fuer das TUN-device tun1 von VPN:
231. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport time -j ACCEPT # timeserver
232. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport time -j ACCEPT # timeserver
233. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport timed -j ACCEPT # timeserver
234. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport ntp -j ACCEPT # timeserver
235. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport ntp -j ACCEPT # timeserver
236. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport 442 -j ACCEPT # https lighttpd
237. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport 442 -j ACCEPT # https lighttpd
238. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport netbios-ns -j ACCEPT # Samba Nameserver
239. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport netbios-dgm -j ACCEPT # Samba datagram
240. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport netbios-ssn -j ACCEPT # Samba session service
241. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport microsoft-ds -j ACCEPT # Samba Microsoft Naked CIFS
242. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport microsoft-ds -j ACCEPT # Samba Microsoft Naked CIFS
243. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport 323 -j ACCEPT # timeserver fuer chrony
244. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport 323 -j ACCEPT # timeserver fuer chrony
245. # $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport openvpn -j ACCEPT # openvpn
246. # $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport openvpn -j ACCEPT # openvpn
247. # $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport 1195 -j ACCEPT # openvpn
248. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport 8118 -j ACCEPT # tor
249. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport 8118 -j ACCEPT # tor
250. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport 9050 -j ACCEPT # tor
251. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport 9050 -j ACCEPT # tor
252. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport ftp-data -j ACCEPT
253. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport ftp -j ACCEPT
254. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport ipp -j ACCEPT
255. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport ipp -j ACCEPT
256. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport dict -j ACCEPT
257. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport dict -j ACCEPT
258. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport tftp -j ACCEPT
259. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport sunrpc -j ACCEPT # nfs/sunrpc
260. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport sunrpc -j ACCEPT # nfs/sunrpc
261. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport nfs -j ACCEPT # nfs/sunrpc
262. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport nfs -j ACCEPT # nfs/sunrpc
263. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport 32765 -j ACCEPT # nfs/sunrpc
264. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport 32765 -j ACCEPT # nfs/sunrpc
265. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport 32766 -j ACCEPT # nfs/sunrpc
266. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport 32766 -j ACCEPT # nfs/sunrpc
267. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport 32767 -j ACCEPT # nfs/sunrpc
268. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport 32767 -j ACCEPT # nfs/sunrpc
269. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport 1900 -j ACCEPT # mediatomb-DLNA
270. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport 1900 -j ACCEPT # mediatomb-DLNA
271. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport 49152 -j ACCEPT # mediatomb-DLNA
272. $IPTABLES -A INPUT -s 10.2.0.0/26 -p udp --dport 49152 -j ACCEPT # mediatomb-DLNA
273. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport 9981 -j ACCEPT # hts TVheadend
274. $IPTABLES -A INPUT -s 10.2.0.0/26 -p tcp --dport 9982 -j ACCEPT # hts TVheadend
275. ## <- ACHTUNG: evtl. auch /etc/hosts.allow anpassen!!!
276.
278. # $IPTABLES -A INPUT -m state --state NEW -i eth1 -j ACCEPT
279. $IPTABLES -A INPUT -m state --state NEW -i eth0 -j REJECT
280. $IPTABLES -A INPUT -m state --state NEW -i tun+ -j REJECT
281.
282. ## only if all of the above rules not succeed, use:
283. $IPTABLES -A INPUT -m limit --limit 5/minute -j LOG --log-prefix "Invalid INPUT: "
284. $IPTABLES -P INPUT DROP
285. ###
286.
287. ### Regeln fuer FORWARD:
288. ## Limit bietet Schutz gegen SYN-flood Attacken:
289. $IPTABLES -A FORWARD -p tcp --syn -m limit --limit 10/s -j ACCEPT
290.
291. ## Limit bietet Schutz gegen verstohlene Portscanner:
292. $IPTABLES -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 10/s -j ACCEPT
293.
294. ## Limit bietet Schutz vor Portscanner:
295. $IPTABLES -A FORWARD -p tcp --tcp-flags ALL NONE -m limit --limit 5/h -j ACCEPT
296. $IPTABLES -A FORWARD -p tcp --tcp-flags ALL ALL -m limit --limit 5/h -j ACCEPT
297.
298. ## FORWARD testweise fuer VPN-Tunnel tun0 alles zulassen (fuer Telefonie), damit sind die Folgeregeln obsolet:
299. # $IPTABLES -I FORWARD -i eth0 -o tun+ -j ACCEPT
300. # $IPTABLES -I FORWARD -i tun+ -o eth0 -j ACCEPT
301.
302. $IPTABLES -A FORWARD -i tun+ -o eth0 -s 10.1.0.0/24 -m conntrack --ctstate NEW -j ACCEPT # Test fuer openVPN und Telefonie
302. $IPTABLES -A FORWARD -i tun+ -o eth0 -s 10.2.0.0/24 -m conntrack --ctstate NEW -j ACCEPT # Test fuer openVPN und Telefonie
303. $IPTABLES -A FORWARD -i eth0 -o tun+ -s 192.168.17.0/24 -m conntrack --ctstate NEW -j ACCEPT # Test fuer openVPN und Telefonie
304. $IPTABLES -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Test fuer openVPN und Telefonie
305. $IPTABLES -A FORWARD -i eth0 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
306. $IPTABLES -A FORWARD -i tun+ -o tun+ -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
307. $IPTABLES -A FORWARD -i eth0 -o tun+ -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
308. $IPTABLES -A FORWARD -i tun+ -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
309. $IPTABLES -A FORWARD -i eth0 -o eth0 -j REJECT
310. $IPTABLES -A FORWARD -i tun+ -o tun+ -j REJECT
311.
312. ## only if all of the above rules not succeed, use:
313. $IPTABLES -A FORWARD -m limit --limit 5/minute -j LOG --log-prefix "Invalid FORWARD: "
314. $IPTABLES -P FORWARD DROP
315. ###
316.
317. ## use this line only if you have dynamic IP address from your ISP
318. $IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
319.
320. ## Die ISDN-Karte wurde ausgebaut, deshalb wurden die folgenden 2 Zeilen deaktiviert.
321. # $IPTABLES -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
322. # $IPTABLES -t nat -A POSTROUTING -o ippp+ -j MASQUERADE
323. }