Archiv verlassen und diese Seite im Standarddesign anzeigen : DNS/DoT Server + Iptables
vanquish
2022-11-07, 15:26:29
Hallo, ich brauche kurz Hilfe bzgl. Iptables.
Versuche gerade auf einem VPS einen DoT Adblock Server einzurichten und habe Probleme mit der Firewall.
Folgendes Szenario:
VPS (public IP) -> nginx (listen 853/tcp) -> dnsmasq mit blocklist (listen 5656/tcp lo only) --> stubby (listen 53400/tcp lo only) --> output 853/tcp to public dot resolver (e. g. 9.9.9.9).
Für die interne Namensauflösung läuft eine weitere dnsmasq Instanz die einwandfrei läuft.
Im Prinzip funktioniert das auch nur habe ich Aussetzer die die Firewall verursacht bzw. stubby abbekommt:
INPUT-DROP: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=64
ID=29183 DF PROTO=TCP SPT=36034 DPT=53400 WINDOW=22 RES=0x00 ACK FIN URGP=0
Irgendwo habe ich einen Denkfehler. Ich bräuchte nur einen Wink in die richtige Richtung. Ich habe schon mit fwmarks herumprobiert jedoch ohne Erfolg (wobei ich sagen muss, dass ich damit im Detail wenig Erfahrung habe).
Die Firewall sieht wie folgt aus (nur das wichtigste der Vollständigkeit halber):
# BASIC
-P DROP ALL
# FILTER
${IPT4} -N TCP
${IPT4} -N UDP
${IPT6} -N TCP
${IPT6} -N UDP
# ALLOW ESTABLISHED
${IPT4} -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
${IPT4} -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
${IPT6} -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
${IPT6} -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
# ALLOW LOOPBACK
${IPT4} -A INPUT -s 127.0.0.1/32 -i lo -j ACCEPT
${IPT4} -A INPUT -i lo -j ACCEPT
${IPT4} -A OUTPUT -d 127.0.0.1/32 -o lo -j ACCEPT
${IPT4} -A OUTPUT -o lo -j ACCEPT
${IPT6} -A INPUT -s ::1/128 -i lo -j ACCEPT
${IPT6} -A INPUT -i lo -j ACCEPT
${IPT6} -A OUTPUT -d ::1/128 -o lo -j ACCEPT
${IPT6} -A OUTPUT -o lo -j ACCEPT
# ALLOW PINGS
...
# DROP INVALID
...
# TRACK NEW
...
# DNS/DoT (in; global)
${IPT4} -A INPUT -m conntrack --ctstate NEW,ESTABLISHED -p tcp --dport 853 -j ACCEPT
${IPT4} -A OUTPUT -m conntrack --ctstate ESTABLISHED -p tcp --sport 853 -j ACCEPT
${IPT6} -A INPUT -m conntrack --ctstate NEW,ESTABLISHED -p tcp --dport 853 -j ACCEPT
${IPT6} -A OUTPUT -m conntrack --ctstate ESTABLISHED -p tcp --sport 853 -j ACCEPT
${IPT4} -A INPUT -m conntrack --ctstate ESTABLISHED -p tcp --sport 853 -j ACCEPT
${IPT4} -A OUTPUT -m conntrack --ctstate NEW,ESTABLISHED -p tcp --dport 853 -j ACCEPT
${IPT6} -A INPUT -m conntrack --ctstate ESTABLISHED -p tcp --sport 853 -j ACCEPT
${IPT6} -A OUTPUT -m conntrack --ctstate NEW,ESTABLISHED -p tcp --dport 853 -j ACCEPT
... 53 tcp/udp nat. ausgehend ebenso erlaubt.
# REJECT
...
sei laut
2022-11-07, 16:07:26
Die Regel zu INPUT-DROP wäre noch interessant.
Und woher das Paket kommt, wenn es 'MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 ' hat. Oder hast du das modifiziert?
Generell sollte er das auch in meinen Augen erlauben. Wie sieht dann die iptables in Gänze aus, also mit iptables -nvL?
Das ist eigentlich das interessante.
vanquish
2022-11-07, 16:42:17
Hi sei laut,
vielen Danke für deine rasche Reaktion:
Und woher das Paket kommt, wenn es 'MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 ' hat. Oder hast du das modifiziert?
Nein, da habe ich nichts modifiziert. Die MAC sieht "strange" aus aber Google ist diesbezüglich sehr unspezifisch. Das komische ist, dass dieser Fehler nur sproadisch auftritt. Ich denke dass die Firewall mit dem Tracking der Pakete irgendwie Problme hat. Nur so ein Gefühl was durch das, was im WWW dazu zu finden ist etwas untermauert wird. Ich habe auch schon versucht das mit dem FWMARK zu ändern. Nur leider ohne Erfolg.
Die Regel zu INPUT-DROP wäre noch interessant.
Viel ist da nicht mehr:
Davor noch:
# DROP PACKETS CLAIMING TO BE LOOPBACK / SPOOFING
${IPT4} -A INPUT -s 127.0.0.0/8 ! -i lo -j DROP
${IPT4} -A OUTPUT -d 127.0.0.0/8 ! -o lo -j DROP
${IPT6} -A INPUT -s ::1/128 ! -i lo -j DROP
${IPT6} -A OUTPUT -d ::1/128 ! -o lo -j DROP
# DROP OTHER PINGS
${IPT4} -A INPUT -p icmp -j DROP
${IPT4} -A OUTPUT -p icmp -j DROP
${IPT6} -A INPUT -p icmpv6 -j DROP
${IPT6} -A OUTPUT -p icmpv6 -j DROP
# FILTER/DROP RH0 HEADERS
${IPT6} -A INPUT -m rt --rt-type 0 -j DROP
${IPT6} -A OUTPUT -m rt --rt-type 0 -j DROP
# DROP TCP NON-SYN FLAG TRAFFIC
${IPT4} -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
${IPT4} -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
${IPT6} -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
${IPT6} -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
# DROP INVALID
${IPT4} -A INPUT -m conntrack --ctstate INVALID -j DROP
${IPT4} -A OUTPUT -m conntrack --ctstate INVALID -j DROP
${IPT6} -A INPUT -m conntrack --ctstate INVALID -j DROP
${IPT6} -A OUTPUT -m conntrack --ctstate INVALID -j DROP
# TRACK NEW (TCP/UDP)
${IPT4} -A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP
${IPT4} -A INPUT -p udp -m conntrack --ctstate NEW -j UDP
${IPT4} -A OUTPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP
${IPT4} -A OUTPUT -p udp -m conntrack --ctstate NEW -j UDP
${IPT6} -A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP
${IPT6} -A INPUT -p udp -m conntrack --ctstate NEW -j UDP
${IPT6} -A OUTPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP
${IPT6} -A OUTPUT -p udp -m conntrack --ctstate NEW -j UDP
Am Ende das übliche:
# REJECT
${IPT4} -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
${IPT4} -A INPUT -p tcp -j REJECT --reject-with tcp-reset
${IPT4} -A OUTPUT -p udp -j REJECT --reject-with icmp-port-unreachable
${IPT4} -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
${IPT6} -A INPUT -p udp -j REJECT --reject-with icmp6-port-unreachable
${IPT6} -A INPUT -p tcp -j REJECT --reject-with tcp-reset
${IPT6} -A OUTPUT -p udp -j REJECT --reject-with icmp6-port-unreachable
${IPT6} -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
# REJECT ALL OTHER
${IPT4} -A INPUT -j REJECT --reject-with icmp-proto-unreachable
${IPT4} -A OUTPUT -j REJECT --reject-with icmp-proto-unreachable
${IPT6} -A INPUT -j REJECT --reject-with icmp6-port-unreachable
${IPT6} -A OUTPUT -j REJECT --reject-with icmp6-port-unreachable
# OTHER
${IPT4} -A INPUT -j REJECT
${IPT4} -A OUTPUT -j REJECT
${IPT6} -A INPUT -j REJECT
${IPT6} -A OUTPUT -j REJECT
Die IPv6 Pings spar ich mir hier jetzt. Auch die IPSET rules.
iptables -L -v -n 99.99.99.99 ist die Server IP.
[root@zitrone ~]# iptables -L -v -n
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set tr4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set sa4.zone src
3 120 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set ru4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set ph4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set my4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set ir4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set iq4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set in4.zone src
1 40 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set il4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set doh4.zone src
1 44 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set cn4.zone src
1 79 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set br4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set al4.zone src
0 0 LOG_DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
2144 247K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
144 8664 ACCEPT all -- lo * 127.0.0.1 0.0.0.0/0
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 DROP all -- !lo * 127.0.0.0/8 0.0.0.0/0
0 0 ACCEPT icmp -- * * 0.0.0.0/0 99.99.99.99 icmptype 3 state NEW,RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 0.0.0.0/0 99.99.99.99 icmptype 11 state NEW,RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 0 limit: avg 15/sec burst 5
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8 limit: avg 15/sec burst 5
0 0 ACCEPT icmp -- * * 99.99.99.99 0.0.0.0/0 icmptype 3 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 99.99.99.99 0.0.0.0/0 icmptype 11 state RELATED,ESTABLISHED
0 0 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x17/0x02 state NEW
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
109 6064 TCP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 ctstate NEW
5 771 UDP udp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED udp spt:123
67 4020 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW,ESTABLISHED tcp dpt:853
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED tcp spt:853
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED tcp spt:53
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED udp spt:53
1 60 logsshin4 tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW,ESTABLISHED tcp dpt:58740 recent:
SET name: SSH-IN side: source mask: 255.255.255.255
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED tcp spt:58740
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW,ESTABLISHED multiport dports 80,443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED multiport sports 80,443
5 771 REJECT udp -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
41 1984 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 reject-with tcp-reset
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-proto-unreachable
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set tr4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set sa4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set ru4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set ph4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set my4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set ir4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set iq4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set in4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set il4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set doh4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set cn4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set br4.zone src
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set al4.zone src
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 match-set my4.zone dst reject-with icmp-port-
unreachable
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 match-set doh4.zone dst reject-with icmp-port-
unreachable
1831 213K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED
144 8664 ACCEPT all -- * lo 0.0.0.0/0 127.0.0.1
0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
0 0 DROP all -- * !lo 0.0.0.0/0 127.0.0.0/8
5 911 ACCEPT icmp -- * * 99.99.99.99 0.0.0.0/0 icmptype 3 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 99.99.99.99 0.0.0.0/0 icmptype 11 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 0 limit: avg 15/sec burst 5
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8 limit: avg 15/sec burst 5
0 0 ACCEPT icmp -- * * 0.0.0.0/0 99.99.99.99 icmptype 3 state NEW,RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 0.0.0.0/0 99.99.99.99 icmptype 11 state NEW,RELATED,ESTABLISHED
0 0 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x17/0x02 state NEW
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
4 256 TCP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 ctstate NEW
10 674 UDP udp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW
4 304 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW,ESTABLISHED udp dpt:123
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED tcp spt:853
4 256 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW,ESTABLISHED tcp dpt:853
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED tcp spt:53
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW,ESTABLISHED tcp dpt:53
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED udp spt:53
6 370 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW,ESTABLISHED udp dpt:53
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED tcp spt:58740
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW,ESTABLISHED tcp dpt:58740
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED multiport sports 80,443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW,ESTABLISHED multiport dports 80,443
0 0 REJECT udp -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
41 1640 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 reject-with tcp-reset
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-proto-unreachable
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain LOG_DROP (1 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "INPUT-DROP: "
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain TCP (2 references)
pkts bytes target prot opt in out source destination
Chain UDP (2 references)
pkts bytes target prot opt in out source destination
Chain logdropssh4 (1 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "SSH-IN-DROP: "
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain logsshin4 (1 references)
pkts bytes target prot opt in out source destination
1 60 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "SSH-IN: "
0 0 logdropssh4 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:58740 ctstate NEW recent:
UPDATE seconds: 60 hit_count: 8 TTL-Match
name: SSH side: source mask: 255.255.255.255
1 60 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
sei laut
2022-11-08, 09:32:52
Ok. Und dein Problem ist nun, dass irgendwas nicht geht oder stört dich nur die Meldung?
Edit: Oder anders formuliert: Der drop kommt hiervon behaupte ich mal dreist. Aber das ist ja offensichtlich von dir gewollt, welche Software auch immer die Regeln generiert. In deiner iptables kommen die nicht vor.
Chain logsshin4 (1 references)
pkts bytes target prot opt in out source destination
1 60 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "SSH-IN: "
0 0 logdropssh4 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:58740 ctstate NEW recent:
Ich hab schon schlimmes gesehen, aber deine hat so ihre Spezialitäten.
vanquish
2022-11-09, 10:01:21
Im Prinzip funktioniert das auch nur habe ich Aussetzer die die Firewall verursacht bzw. stubby abbekommt:
Code:
INPUT-DROP: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=64
ID=29183 DF PROTO=TCP SPT=36034 DPT=53400 WINDOW=22 RES=0x00 ACK FIN URGP=0
Das war die Eigangsfragestellung.
In Verbindung mit
VPS (public IP) -> nginx (listen 853/tcp) -> dnsmasq mit blocklist (listen 5656/tcp lo only) --> stubby (listen 53400/tcp lo only) --> output 853/tcp to public dot resolver (e. g. 9.9.9.9).
dachte ich es sei klar, dass stubby gemeint war/ist. Alles andere funktioniert. SSH auch ohne Problme.
Ok. Und dein Problem ist nun, dass irgendwas nicht geht oder stört dich nur die Meldung?
Edit: Oder anders formuliert: Der drop kommt hiervon behaupte ich mal dreist. Aber das ist ja offensichtlich von dir gewollt, welche Software auch immer die Regeln generiert. In deiner iptables kommen die nicht vor.
Chain logsshin4 (1 references)
pkts bytes target prot opt in out source destination
1 60 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "SSH-IN: "
0 0 logdropssh4 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:58740 ctstate NEW recent:
Ich hab schon schlimmes gesehen, aber deine hat so ihre Spezialitäten.
Jo ist auch auch schon fast 20 Jahre alt das Firewall Skript und wurde mehr oder weniger immer nur erweitert (ipv6) bzw. geringfügig angepasst. Ich seh die SSH logins UND die drops in dmesg (wo ich sie auch sehen will). Irgendwann (TM) in nächster Zeit (TM) werde ich es sowieso einstampfen und auf nftables umschwenken.
Aber ich bin auch lernwillig. Was könnte ich verbessern bzw. anders machen:
${IPT4} -N logdropssh4
${IPT4} -A logdropssh4 -j LOG --log-prefix "SSH-IN-DROP: "
${IPT4} -A logdropssh4 -j DROP
${IPT4} -N logsshin4
${IPT4} -A logsshin4 -j LOG --log-prefix "SSH-IN: "
${IPT4} -A logsshin4 -p tcp --dport 58740 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j logdropssh4
${IPT4} -A logsshin4 -j ACCEPT
Anyway ich konnte das Problem mittlerweile lösen. Ich habe stubby einfach auf ein dummy interface aufgesetzt und alle services (einschl. nginx) an ein interface gebunden bzw. von 0.0.0.0 entfernt. Nginx kann man ja nicht an ein interface binden. Trotzdem vielen Dank für dein Engagement. :)
sei laut
2022-11-10, 09:44:05
Ups, in der Tat war das eindeutig, habe wohl nicht richtig gelesen.
nalye
2022-11-10, 11:02:52
Fuer das ganze SSH-Dropping etc. wuerde sich ein fail2ban anbieten IMHO. Warum willst Du die Logins im dmesg sehen und nicht in auth.log? dmesg ist mehr so fuer Kernelzeugs,
lumines
2022-11-10, 12:53:55
Statt fail2ban sollte man nur Public-Key-Authentifizierung nutzen und sich keine Sorgen um gescheiterte Anmeldeversuche machen. Es gab schon Sicherheitslücken, die durch fail2ban entstanden sind. Gerade für SSH ist es unnötig komplex.
Lokadamus
2022-11-18, 01:24:57
Ein anderer Weg wäre es sich per VPN (z.B. OpenVPN. Da kann man auch leicht den Anmeldeport verschieben, um Scans/ Würmer zu entgehen) anmelden zu müssen und dann erst den SSH Port sehen zu können (Anmeldung der lokalen IP des Lan erlauben statt alle von extern).
Oder Port Knocking.
lumines
2022-11-18, 09:43:33
Ein anderer Weg wäre es sich per VPN (z.B. OpenVPN. Da kann man auch leicht den Anmeldeport verschieben, um Scans/ Würmer zu entgehen) anmelden zu müssen und dann erst den SSH Port sehen zu können (Anmeldung der lokalen IP des Lan erlauben statt alle von extern).
OpenVPN liefert ihm aber keinen Sicherheitsgewinn gegenüber SSH. Wireguard ist ein etwas moderneres Protokoll als SSH oder OpenVPN und hat ein paar nette Sicherheitseigenschaften, aber auch da sehe ich jetzt nicht so den großen Vorteil gegenüber SSH.
Ports verschieben würde ich genau wie Port Knocking eher unter Esoterik laufen lassen. An der Sicherheit der Authentifizierung verbessert beides genau nichts.
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.