ubuntuusers.de

TeamSpeak-Server trotz Firewall erreichbar

Status: Gelöst | Ubuntu-Version: Server 16.04 (Xenial Xerus)
Antworten |

lukasb314

Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

Grüß euch wieder mal.

Mir ist aufgefallen, dass der TeamSpeak3-Server (aufgesetzt nach dieser Anleitung: https://wiki.ubuntuusers.de/TeamSpeak-Server/) trotz entsprechender Konfiguration der iptables erreichbar ist.

Das heißt, ich habe zum Test alle Pakete am Port 9987 droppen lassen. Dennoch funktioniert der Server. Wäre froh, wenn mir jemand erklären kann, warum das so ist.

Hier die Ausgabe von iptables -L:

lukas@bcd3e3:~$ sudo iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
f2b-sshd   tcp  --  anywhere             anywhere             multiport dports 64532
ufw-before-logging-input  all  --  anywhere             anywhere            
ufw-before-input  all  --  anywhere             anywhere            
ufw-after-input  all  --  anywhere             anywhere            
ufw-after-logging-input  all  --  anywhere             anywhere            
ufw-reject-input  all  --  anywhere             anywhere            
ufw-track-input  all  --  anywhere             anywhere            

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ufw-before-logging-forward  all  --  anywhere             anywhere            
ufw-before-forward  all  --  anywhere             anywhere            
ufw-after-forward  all  --  anywhere             anywhere            
ufw-after-logging-forward  all  --  anywhere             anywhere            
ufw-reject-forward  all  --  anywhere             anywhere            
ufw-track-forward  all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ufw-before-logging-output  all  --  anywhere             anywhere            
ufw-before-output  all  --  anywhere             anywhere            
ufw-after-output  all  --  anywhere             anywhere            
ufw-after-logging-output  all  --  anywhere             anywhere            
ufw-reject-output  all  --  anywhere             anywhere            
ufw-track-output  all  --  anywhere             anywhere            

Chain f2b-sshd (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            

Chain ufw-after-forward (1 references)
target     prot opt source               destination         

Chain ufw-after-input (1 references)
target     prot opt source               destination         
ufw-skip-to-policy-input  udp  --  anywhere             anywhere             udp dpt:netbios-ns
ufw-skip-to-policy-input  udp  --  anywhere             anywhere             udp dpt:netbios-dgm
ufw-skip-to-policy-input  tcp  --  anywhere             anywhere             tcp dpt:netbios-ssn
ufw-skip-to-policy-input  tcp  --  anywhere             anywhere             tcp dpt:microsoft-ds
ufw-skip-to-policy-input  udp  --  anywhere             anywhere             udp dpt:bootps
ufw-skip-to-policy-input  udp  --  anywhere             anywhere             udp dpt:bootpc
ufw-skip-to-policy-input  all  --  anywhere             anywhere             ADDRTYPE match dst-type BROADCAST

Chain ufw-after-logging-forward (1 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "

Chain ufw-after-logging-input (1 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "

Chain ufw-after-logging-output (1 references)
target     prot opt source               destination         

Chain ufw-after-output (1 references)
target     prot opt source               destination         

Chain ufw-before-forward (1 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere             icmp destination-unreachable
ACCEPT     icmp --  anywhere             anywhere             icmp source-quench
ACCEPT     icmp --  anywhere             anywhere             icmp time-exceeded
ACCEPT     icmp --  anywhere             anywhere             icmp parameter-problem
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
ufw-user-forward  all  --  anywhere             anywhere            

Chain ufw-before-input (1 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ufw-logging-deny  all  --  anywhere             anywhere             ctstate INVALID
DROP       all  --  anywhere             anywhere             ctstate INVALID
ACCEPT     icmp --  anywhere             anywhere             icmp destination-unreachable
ACCEPT     icmp --  anywhere             anywhere             icmp source-quench
ACCEPT     icmp --  anywhere             anywhere             icmp time-exceeded
ACCEPT     icmp --  anywhere             anywhere             icmp parameter-problem
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
ACCEPT     udp  --  anywhere             anywhere             udp spt:bootps dpt:bootpc
ufw-not-local  all  --  anywhere             anywhere            
ACCEPT     udp  --  anywhere             224.0.0.251          udp dpt:mdns
ACCEPT     udp  --  anywhere             239.255.255.250      udp dpt:1900
ufw-user-input  all  --  anywhere             anywhere            

Chain ufw-before-logging-forward (1 references)
target     prot opt source               destination         

Chain ufw-before-logging-input (1 references)
target     prot opt source               destination         

Chain ufw-before-logging-output (1 references)
target     prot opt source               destination         

Chain ufw-before-output (1 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ufw-user-output  all  --  anywhere             anywhere            

Chain ufw-logging-allow (0 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 10 LOG level warning prefix "[UFW ALLOW] "

Chain ufw-logging-deny (2 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere             ctstate INVALID limit: avg 3/min burst 10
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "

Chain ufw-not-local (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL
RETURN     all  --  anywhere             anywhere             ADDRTYPE match dst-type MULTICAST
RETURN     all  --  anywhere             anywhere             ADDRTYPE match dst-type BROADCAST
ufw-logging-deny  all  --  anywhere             anywhere             limit: avg 3/min burst 10
DROP       all  --  anywhere             anywhere            

Chain ufw-reject-forward (1 references)
target     prot opt source               destination         

Chain ufw-reject-input (1 references)
target     prot opt source               destination         

Chain ufw-reject-output (1 references)
target     prot opt source               destination         

Chain ufw-skip-to-policy-forward (0 references)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            

Chain ufw-skip-to-policy-input (7 references)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            

Chain ufw-skip-to-policy-output (0 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            

Chain ufw-track-forward (1 references)
target     prot opt source               destination         

Chain ufw-track-input (1 references)
target     prot opt source               destination         

Chain ufw-track-output (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             ctstate NEW
ACCEPT     udp  --  anywhere             anywhere             ctstate NEW

Chain ufw-user-forward (1 references)
target     prot opt source               destination         

Chain ufw-user-input (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     udp  --  anywhere             anywhere             udp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     udp  --  anywhere             anywhere             udp dpt:https
DROP       tcp  --  anywhere             anywhere             tcp dpt:9987
DROP       udp  --  anywhere             anywhere             udp dpt:9987

Chain ufw-user-limit (0 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 5 LOG level warning prefix "[UFW LIMIT BLOCK] "
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain ufw-user-limit-accept (0 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            

Chain ufw-user-logging-forward (0 references)
target     prot opt source               destination         

Chain ufw-user-logging-input (0 references)
target     prot opt source               destination         

Chain ufw-user-logging-output (0 references)
target     prot opt source               destination         

Chain ufw-user-output (1 references)
target     prot opt source               destination         

Danke & LG

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

lukasb314 schrieb:

Das heißt, ich habe zum Test alle Pakete am Port 9987 droppen lassen. Dennoch funktioniert der Server. Wäre froh, wenn mir jemand erklären kann, warum das so ist.

Du hast in der "ufw-user-input"-chain den Port blockiert. Wenn der Server nicht funktionieren soll, warum hast Du diesen dann überhaupt installiert?

Wie ist die Ausgabe von:

sudo netstat -tulpen

?

lukasb314

(Themenstarter)
Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

lubux schrieb:

Du hast in der "ufw-user-input"-chain den Port blockiert. Wenn der Server nicht funktionieren soll, warum hast Du diesen dann überhaupt installiert?

Wie ist die Ausgabe von:

sudo netstat -tulpen

?

Natürlich soll er am Ende funktionieren 😀 ...Aber mir ist das Verhalten beim Lernen/Testen aufgefallen.

Übrigens, auch webbasierte Portscanner zeigen, dass 9987 nicht offen ist.

Hier die Ausgabe von sudo netstat -tulpen:

lukas@bcd3e3:~$ sudo netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      111        1053227235  334/mysqld      
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      0          1747114021  22208/apache2   
tcp        0      0 0.0.0.0:30033           0.0.0.0:*               LISTEN      112        1763894165  25264/ts3server   
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      0          1053228746  561/master      
tcp        0      0 0.0.0.0:10011           0.0.0.0:*               LISTEN      112        1763894194  25264/ts3server 
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      0          1747114023  22208/apache2   
tcp6       0      0 :::30033                :::*                    LISTEN      112        1763894166  25264/ts3server      
tcp6       0      0 :::25                   :::*                    LISTEN      0          1053228747  561/master      
tcp6       0      0 :::10011                :::*                    LISTEN      112        1763894195  25264/ts3server 
udp        0      0 0.0.0.0:9987            0.0.0.0:*                           112        1763894188  25264/ts3server 
udp6       0      0 :::9987                 :::*                                112        1763894189  25264/ts3server 

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

lukasb314 schrieb:

Übrigens, auch webbasierte Portscanner zeigen, dass 9987 nicht offen ist.

Dann deaktiviere UFW und blockiere mit iptables-/ip6tables-Regeln auch die anderen Ports:

tcp        0      0 0.0.0.0:30033           0.0.0.0:*               LISTEN      112        1763894165  25264/ts3server         
tcp        0      0 0.0.0.0:10011           0.0.0.0:*               LISTEN      112        1763894194  25264/ts3server 

tcp6       0      0 :::30033                :::*                    LISTEN      112        1763894166  25264/ts3server          
tcp6       0      0 :::10011                :::*                    LISTEN      112        1763894195  25264/ts3server 

udp        0      0 0.0.0.0:9987            0.0.0.0:*                           112        1763894188  25264/ts3server 

udp6       0      0 :::9987                 :::*                                112        1763894189  25264/ts3server 

Z. B.:

sudo iptables -I INPUT 1 -p tcp -m multiport --dports 10011,30033 -j REJECT
sudo iptables -I INPUT 2 -p udp --dport 9987 -j REJECT

usw.

lukasb314

(Themenstarter)
Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

OK, ich sehe, das läuft in die falsche Richtung. Hab das "Problem" zu kompliziert beschrieben. Hier ein neuer Versuch.

Offene Ports de facto nur 80 und 443. Das wurde mit Hilfe von ufw so konfiguriert. Das zeigt iptables. Und auch webbasierte Portscanner. Alles OK soweit.

Trotzdem funktioniert TeamSpeak auf Port 9987. Wie kann das sein?

PS: @lubux, netstat gibt ja nur aus auf welche Ports einzelne Programme laufen, nicht aber ob die Ports offen oder blockiert sind. Ist doch so, oder?

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

lukasb314 schrieb:

OK, ich sehe, das läuft in die falsche Richtung. Hab das "Problem" zu kompliziert beschrieben. Hier ein neuer Versuch.

Offene Ports de facto nur 80 und 443. Das wurde mit Hilfe von ufw so konfiguriert. Das zeigt iptables. Und auch webbasierte Portscanner. Alles OK soweit.

Jetzt verstehe ich noch weniger.

lukasb314 schrieb:

Trotzdem funktioniert TeamSpeak auf Port 9987. Wie kann das sein?

Du meinst der TS ist auf dem Port 9987 erreichbar? Ja, weil Du diesen Port (und die anderen des TS) nicht geblockt hast.

lukasb314 schrieb:

PS: @lubux, netstat gibt ja nur aus auf welche Ports einzelne Programme laufen, nicht aber ob die Ports offen oder blockiert sind. Ist doch so, oder?

Ja.

lukasb314

(Themenstarter)
Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

lubux schrieb:

lukasb314 schrieb:

Trotzdem funktioniert TeamSpeak auf Port 9987. Wie kann das sein?

Du meinst der TS ist auf dem Port 9987 erreichbar? Ja, weil Du diesen Port (und die anderen des TS) nicht geblockt hast.

Doch. 9987 ist de facto geblockt.

Wenn du dir die Ausgabe meiner iptables aus meinem ersten Beitrag ansiehst findest du die zwei Zeilen:

DROP       tcp  --  anywhere             anywhere             tcp dpt:9987
DROP       udp  --  anywhere             anywhere             udp dpt:9987

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

lukasb314 schrieb:

Wenn du dir die Ausgabe meiner iptables aus meinem ersten Beitrag ansiehst findest du die zwei Zeilen:

DROP       tcp  --  anywhere             anywhere             tcp dpt:9987
DROP       udp  --  anywhere             anywhere             udp dpt:9987

Mit diesen 2 Zeilen kann ich und will ich nichts anfangen, denn die stammen aus UFW.

lukasb314

(Themenstarter)
Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

lubux schrieb:

Mit diesen 2 Zeilen kann ich und will ich nichts anfangen, denn die stammen aus UFW.

Nein, das ist ein Eintrag aus iptables. Außerdem zeigen auch Portscanner an, dass 9987 nicht offen ist.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

lukasb314 schrieb:

Nein, das ist ein Eintrag aus iptables.

Es ist eine Ausgabe mit iptables und eine Konfiguration mit UFW, ... oder?

lukasb314 schrieb:

Außerdem zeigen auch Portscanner an, dass 9987 nicht offen ist.

Wie hast Du den UDP-Port 9987 gescannt?

lukasb314

(Themenstarter)
Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

lubux schrieb:

Es ist eine Ausgabe mit iptables und eine Konfiguration mit UFW, ... oder?

Stimmt!

lubux schrieb:

Wie hast Du den UDP-Port 9987 gescannt?

Garnicht? 🙄

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

lukasb314 schrieb:

Garnicht? 🙄

Warum sagst Du dann, dass lt. Portscanner, der eingehende UDP-Port 9987 nicht offen ist?

Außerdem zeigen auch Portscanner an, dass 9987 nicht offen ist.

lukasb314

(Themenstarter)
Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

Sorry. Mein Fehler.

lukasb314

(Themenstarter)
Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

Hab die Ursache des "Problems" gefunden.

Bin bisher wie folgt vorgegangen: 1. TS Server: gestartet 2. Port 9987 geöffnet 3. TS Client: gestartet und verbunden 4. TS Client: Verbindung wieder getrennt 5. Port 9987 geschlossen 6. TS Client: Wieder verbunden –> Verbindung merkwürdigerweise trotz geschlossener Ports erfolgreich.

Wenn ich allerdings den TS Client vollkommen neu starte kommt bei geschlossenen Ports keine Verbindung zu stande. Das ist dann das Verhalten, das ich mir eigentlich erwartet habe.

Die Ursache war also, dass der TS Client scheinbar im Hintergrund (trotz Trennung) noch eine Verbindung aufrecht erhält, oder so etwas in der Art.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

lukasb314 schrieb:

Die Ursache war also, dass der TS Client scheinbar im Hintergrund (trotz Trennung) noch eine Verbindung aufrecht erhält, oder so etwas in der Art.

Das kommt, weil Du nur NEW-Verbindungen und keine ESTABLISHED- bzw. RELATED-Verbindungen geschlossen hat. Das hat man von UFW, wenn man sich im Vorfeld nicht mit iptables vertraut macht.

Antworten |