LXC Container Trafficwarnung

Pummeluff

Lieutenant
Registriert
März 2021
Beiträge
807
Guten Abend,

ich hoffe mal, hier gibt's ein paar Sicherheitsprofis. Eigentlich bin ich mir relativ sicher, dass ich hier keinen Mist gebaut hab. Wär aber schön, wenn ich mal ein paar zusätzliche Anregungen bekomm.

Ausgangslage/-konfiguration:
Ich hab bei Noez seit ein paar Monaten einen VServer gemietet.
  • OS: Debian 11
  • LX-Container (LXC)
  • Preis: 1,29€/Monat
  • Einsatzzweck: Wireguard-Server zwischen IPv6-Netz (Deutsche Glasfaser) + IPv4-Netz (Smartphones + Netz meiner Eltern). Ab und zu mal VNC für die Fernwartung. Ansonsten sind keine Datenschleudern dabei.
  • Unbound DNS-Server: für interne DNS-Namen in den unterschiedlichen Netzen. Aufgrund der Firewall nicht von außen erreichbar (kein Public DNS-Resolver).

Noez hat mir heute eine Mail über eine Traffic-Warnung geschrieben:
wir schreiben Dir bezüglich deines vServers mit der ID xxxxx & der primären IP-Adresse 5.230.72.xxx. Wir haben festgestellt, dass Du deinen Server ausgiebig nutzt, was auch toll ist! Derzeit hat Dein Server ein Traffic-Volumen von 75% verbraucht.
In der Weboberfläche steht dazu:
Trafficverbrauch: 759.11 GB/1000 GB
Die Zahl ist mir unerklärlich.

Wie ist das Ding abgesichert:
  • SSH-Port ist auf 222 gelegt. Login nur per Root mit SSH-Key. SSH per Login+Passwort ist deaktiviert. Einen anderen User mit Login-Shell gibt es nicht auf dem Server.
  • Fail2ban steht unter Dauerattacke. Nach jedem 3. Fehlversuch landet die IP in einer Blacklist. Je nach Uptime stehen da gern mal ein paar Tausend IPs drin. Aus dem Log geht hervor, dass kaum eine attackierende IP mehrfach vorkommt.
  • Wireguard läuft auf Port 580xx/UDP. Für das Wireguard-Device sind logischerweise alle Ports offen.
  • Firewall ist NFTables: Alle eingehenden Verbindungen außer auf den Ports 580xx/UDP und SSH/222 sind dicht für eth0. (nmap bestätigt mir das für IPv4 + IPv6)

Jetzt hab ich aufgerüstet und iftop, nethog, dstat installiert. Bei dstat werden mir nur die erwarteten Prozesse angezeigt. rkhunter hat nichts Verdächtiges gefunden. Allerdings zeigen iftop und nethog:
Code:
NetHogs version 0.8.5-2+b1

    PID USER     PROGRAM                                               DEV        SENT      RECEIVED       
      ? root     5.230.73.78:50875-103.161.34.96:5422                              0.000     585.387 KB/sec
      ? root     5.230.73.78:54614-103.161.34.96:5422                              0.000     187.732 KB/sec
      ? root     5.230.71.28:8128-94.242.53.42:51925                               0.000       7.080 KB/sec
      ? root     5.230.67.240:40470-93.123.102.185:443                             0.000       0.587 KB/sec
      ? root     5.230.67.240:443-172.71.250.27:10816                              0.000       0.552 KB/sec
      ? root     5.230.67.240:41876-93.123.102.189:443                             0.000       0.523 KB/sec
Das für mich Interessante daran ist, dass keine IP (5.230.x.x) der meines V-Servers entspricht. Ich kann die Verbindungen auch nicht mit ss oder netstat anzeigen lassen.

Zusätzlich zu rkhunter hab ich noch die Cronjobs* und den Systemstart überprüft. Es gibt keine verdächtigen Dienste und keinerlei Cronjobs. "w" zeigt mir nur meine Nutzer an. Die Liste von ps ist sehr übersichtlich (26 Einträge). top langweilt sich. Mail (postfix) ist deinstalliert. /var/log/mail zeigt ein paar wenige Einträge vom Juli an, als ich den Server mal reinstallieren musste.

Code:
for i in $(cut -f1 -d: /etc/passwd); do crontab -l -u $i; done

Fazit:
Kann es sein, dass
  • ich mit nethogs die Netz-Verbindungen der anderen LXC seh, die da auf dem Server noch laufen?
  • eventuell die Traffic-Berechnung durch noez nicht ganz korrekt funktioniert?

Wie krieg ich ansonsten raus, ob auf dem V-Server nicht irgendwas läuft, was bisher vor meinen Augen verborgen geblieben ist?
 
Zuletzt bearbeitet:
Danke für den Hinweis. Das hab ich jetzt noch mal kontrolliert. Wireguard wird vom Heimnetzwerk über die Fritzbox aufgebaut. Sollte eigentlich nicht sein.

1702240373615.png


Auch hab ich nur 2 interne IPs (Smartphones) auf dem V-Server überhaupt für die Verwendung als Exit Point freigeschaltet. wie-ist-meine-ip.de zeigt mir auch die IP der DG an und nicht die des V-Servers.

Code:
nft list ruleset
table ip nat { # handle 53187
	chain postrouting { # handle 1
		type nat hook postrouting priority 100; policy accept;
		ip saddr 192.168.108.128 oif "eth0" masquerade # handle 2
		ip saddr 192.168.108.131 oif "eth0" masquerade # handle 3
	}
}

Anmerkung zur Info:
Der Traffic ist etwa 2 GB/Stunde.
 
???
Entweder hast du was falsch verstanden oder ich.

Die 500GB in 10 Tagen passen natürlich. Die sind ja auch vom Dashboard des V-Servers.

Allerdings schieb ich keine Daten auf den Server und zieh auch keine runter. Das ist mein Problem.
 
Gute Idee. Werd ich heute Nacht mal machen. Traffic Logs hab ich nicht gefunden. Für den Server-Preis gab's nur die Basis-Ausstattung.

Mir werden seit heute Nacht schon wieder 18GB angezeigt.
 
Pummeluff schrieb:
Wireguard wird vom Heimnetzwerk über die Fritzbox aufgebaut. Sollte eigentlich nicht sein.
Die Einstellungen da sind egal. Wichtig ist, was bei den Allowed IPs eingetragen ist. Überprüfe also die VPN Konfiguration. Ist da die Default Route mit drin? Dann wird die Box den gesamten Traffic übers VPN leiten.
Ergänzung ()

Pummeluff schrieb:
? root 5.230.73.78:50875-103.161.34.96:5422 0.000 585.387 KB/sec
? root 5.230.73.78:54614-103.161.34.96:5422 0.000 187.732 KB/sec
Auch wenn du die Verbindungen nicht zuordnen kannst, werden sie offensichtlich über deinen VPS geleitet.

Was spuckt "conntrack -L" aus?
 
Zuletzt bearbeitet:
riversource schrieb:
Wichtig ist, was bei den Allowed IPs eingetragen ist.

Fritzbox wg0.conf
Code:
[WireGuardPeer]
PublicKey = RvQTxxxxxxxxxxxxxxxxx=
PresharedKey = zLaqxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 192.168.109.0/24
#PersistentKeepalive = 25
Endpoint = xxxxxxxxxxx.v6.rocks:555xx
Das sollte soweit passen. Wie oben schon erwähnt, dürfen nur die 2 Smartphones den V-Server als Exitpoint nutzen. Würde mein Heimnetz tatsächlich über den V-Server rausgehen, müsste mir auch der Provider bei wieistmeineip.de angezeigt werden. Dort seh ich aber ganz brav und wie erwartet meine IP der Deutschen Glasfaser. 0.0.0.0/8 hab ich in keiner Config stehen (weder Fritzbox, noch Server).

riversource schrieb:
Was spuckt "conntrack -L" aus?
Code:
tcp      6 431997 ESTABLISHED src=5.230.xxx.xxx dst=178.132.xxx.xxx sport=34532 dport=33033 src=178.132.xxx.xxx dst=5.230.xxx.xxx sport=33033 dport=34532 [ASSURED] mark=0 use=1
tcp      6 428928 ESTABLISHED src=192.168.109.10 dst=192.168.108.1 sport=36942 dport=2000 src=192.168.108.1 dst=192.168.109.10 sport=2000 dport=36942 [ASSURED] mark=0 use=1
icmp     1 22 src=54.175.161.169 dst=5.230.xxx.xxx type=8 code=0 id=4 src=5.230.xxx.xxx dst=54.175.161.169 type=0 code=0 id=4 mark=0 use=1
icmp     1 18 src=54.198.25.80 dst=5.230.xxx.xxx type=8 code=0 id=4 src=5.230.xxx.xxx dst=54.198.25.80 type=0 code=0 id=4 mark=0 use=1
icmp     1 13 src=35.171.9.135 dst=5.230.xxx.xxx type=8 code=0 id=18 src=5.230.xxx.xxx dst=35.171.9.135 type=0 code=0 id=18 mark=0 use=1
tcp      6 431999 ESTABLISHED src=192.168.110.12 dst=192.168.108.1 sport=48762 dport=4444 src=192.168.108.1 dst=192.168.110.12 sport=4444 dport=48762 [ASSURED] mark=0 use=1
icmp     1 13 src=54.166.218.85 dst=5.230.xxx.xxx type=8 code=0 id=18 src=5.230.xxx.xxx dst=54.166.218.85 type=0 code=0 id=18 mark=0 use=1
tcp      6 431998 ESTABLISHED src=5.230.xxx.xxx dst=178.132.xxx.xxx sport=34534 dport=33033 src=178.132.xxx.xxx dst=5.230.xxx.xxx sport=33033 dport=34534 [ASSURED] mark=0 use=1
icmp     1 18 src=44.202.140.3 dst=5.230.xxx.xxx type=8 code=0 id=4 src=5.230.xxx.xxx dst=44.202.140.3 type=0 code=0 id=4 mark=0 use=1
icmp     1 18 src=54.172.108.24 dst=5.230.xxx.xxx type=8 code=0 id=4 src=5.230.xxx.xxx dst=54.172.108.24 type=0 code=0 id=4 mark=0 use=1
icmp     1 13 src=54.88.115.73 dst=5.230.xxx.xxx type=8 code=0 id=18 src=5.230.xxx.xxx dst=54.88.115.73 type=0 code=0 id=18 mark=0 use=1
icmp     1 19 src=18.209.238.231 dst=5.230.xxx.xxx type=8 code=0 id=4 src=5.230.xxx.xxx dst=18.209.238.231 type=0 code=0 id=4 mark=0 use=1
icmp     1 13 src=3.238.91.186 dst=5.230.xxx.xxx type=8 code=0 id=18 src=5.230.xxx.xxx dst=3.238.91.186 type=0 code=0 id=18 mark=0 use=1
tcp      6 431999 ESTABLISHED src=192.168.109.21 dst=192.168.108.1 sport=38740 dport=22 src=192.168.108.1 dst=192.168.109.21 sport=22 dport=38740 [ASSURED] mark=0 use=1
icmp     1 19 src=3.235.67.243 dst=5.230.xxx.xxx type=8 code=0 id=4 src=5.230.xxx.xxx dst=3.235.67.243 type=0 code=0 id=4 mark=0 use=1
udp      17 119 src=5.230.xxx.xxx dst=94.100.xxx.xxx sport=58023 dport=58023 src=94.100.xxx.xxx dst=5.230.xxx.xxx sport=58023 dport=58023 [ASSURED] mark=0 use=1
icmp     1 13 src=100.25.42.249 dst=5.230.xxx.xxx type=8 code=0 id=18 src=5.230.xxx.xxx dst=100.25.42.249 type=0 code=0 id=18 mark=0 use=1
icmp     1 15 src=52.207.71.206 dst=5.230.xxx.xxx type=8 code=0 id=18 src=5.230.xxx.xxx dst=52.207.71.206 type=0 code=0 id=18 mark=0 use=1
icmp     1 25 src=3.91.81.189 dst=5.230.xxx.xxx type=8 code=0 id=4 src=5.230.xxx.xxx dst=3.91.81.189 type=0 code=0 id=4 mark=0 use=1
tcp      6 431994 ESTABLISHED src=192.168.110.11 dst=192.168.108.1 sport=51878 dport=4444 src=192.168.108.1 dst=192.168.110.11 sport=4444 dport=51878 [ASSURED] mark=0 use=1
Meine IP + die Ziel-IPs hab ich unkenntlich gemacht. Die hier gelisteten Verbindungen (tcp/udp) sind mir bekannt. Darüber geht nur ein geringer Datensatz. Die Pings werden wohl irgendwelchen Scannerdiensten welcher Art auch immer gehören.

Heut Abend gegen 22:00 Uhr fahr ich den Server mal runter. Bin gespannt, wie sich der Traffic bis morgen dann entwickelt hat.
 
Ob da Traffic über dein Interface geht, müsstest du ja auch einfach mit ifconfig im Traffic Counter sehen können. tcpdump ist eine weitere Möglichkeit, zu analysieren, was vorbei kommt. Streams mit 500 kB/s sieht man da sofort.
 
ifconfig zeigt mir tatsächlich 52 GiB bei den empfangenen Daten an
Code:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
…
        RX packets 76515323  bytes 55901753146 (52.0 GiB)
Bei TCPDump läuft 'ne Menge durch. Das Meiste davon sind ARP-Requests.

Aber auch hier seh ich u.a. sowas:
Code:
21:51:58.057978 IP 149.154.167.91.xmpp-client > 5.230.43.70.54762: Flags [P.], seq 2490080694:2490080815, ack 2802383443, win 2429, options [nop,nop,TS val 973370008 ecr 1004582671], length 121

5.23.43.70 ist nicht meine IP.



iftop -i eth0
Code:
                            1,91Mb                       3,81Mb                       5,72Mb                       7,63Mb                 9,54Mb
└───────────────────────────┴────────────────────────────┴────────────────────────────┴────────────────────────────┴────────────────────────────
instagram-p3-shv-01-fra5.fbcdn.net                         => 5.230.47.40                                                   0b   1,20Mb  1,00Mb
                                                           <=                                                               0b      0b      0b
instagram-p3-shv-02-fra5.fbcdn.net                         => 5.230.47.40                                                2,54Mb   713Kb   594Kb
                                                           <=                                                               0b      0b      0b
149.154.167.43                                             => 5.230.47.40                                                1,15Mb   634Kb   528Kb
                                                           <=                                                               0b      0b      0b
Auch 5.230.47.40 gehört nicht zu meinem V-Server.

Update
Server ist ausgeschaltet. Aktuell steht die Kiste bei 42,72GB. Und wir sind am 1. Tag es neuen Abrechnungsmonats.
 
Zuletzt bearbeitet:
Etwas offtopic, aber wie ich finde nicht weniger wichtig:
Finde die Preise bei noez ganz schön gesalzen. Für 1€ bekommst du bei der Konkurrenz einen vServer auf KVM Basis statt nur einen LXC-Container, gleichzeitig bei mehr Ressourcen (mehr Speicherplatz und sogar SSD, mehr RAM, mehr Traffic). Schau ruhig mal bei Ionos, Stratos oder Netcup vorbei. :)
 
Pummeluff schrieb:
Server ist ausgeschaltet. Aktuell steht die Kiste bei 42,72GB.
Und er war die ganze Zeit ausgeschaltet? Komisch.

Ich hab einen eigenen KVM Server mit LXD Containern drauf, die ja recht ähnlich zu LXC sind. In den Containern läuft nur der Traffic auf, der auch für den jeweiligen Container gedacht ist. Traffic des Hosts oder anderer Container kann ich da nicht sehen.

Irgendwie hab ich das Gefühl, das virtuelle Interface deines Containers ist da mit etwas anderen zusammengebridged worden. Ist aber pure Spekulation. Ich denke, da kann nur der Service des Anbieters helfen.
 
  • Gefällt mir
Reaktionen: Der Lord
Der Lord schrieb:
Finde die Preise bei noez ganz schön gesalzen.
Als ich einen V-Server gesucht hatte, hab ich ziemlich lange nach dem günstigsten Angebot gesucht. Zu dem Zeitpunkt war noez der günstigste Anbieter. Ich hab dann auf 2-Jahreszahlung umstellt. Kosten sind damit 1,19€/Monat. Find ich ok. Ein höherer Preis würde mir nicht wehtun, aber für den Einsatzzweck brauch ich nicht mehr Ressourcen.

Noch günstiger wäre ein Server bei Oracle. Nur hatte ich dafür bisher keine Zeit. Werd ich aber in Angriff nehmen, wenn ich mehr Zeit hab.

riversource schrieb:
Irgendwie hab ich das Gefühl, das virtuelle Interface deines Containers ist da mit etwas anderen zusammengebridged worden. Ist aber pure Spekulation. Ich denke, da kann nur der Service des Anbieters helfen.
Genau das ist meine Vermutung.

Als ich den Server heute Nacht testweise mal ausgeschaltet hatte, war der Verbrauch heute früh "nur" 200mb höher. Nach dem Einschalten rotiert der Zähler wieder schneller. Die bisherigen Indizien:

  • Mein Server hat nur 256mb RAM, 1 vCPU. Bei der schwachen Ausstattung sieht man jede Aktion als Ausschlag in der Prozessliste.
  • Die Prozessliste ist allerdings sehr übersichtlich. Ausschläge gibt's keine. Bei Aufruf von iftop, top, nethog stehen genau diese Prozesse ganz oben.
  • Keine Logins, keine unerklärbaren Dienste zu sehen.
  • nethog + iftop + tcpdump zeigen haufenweise Traffic benachbarter IPs, die ich eigentlich gar nicht sehen sollte.
  • dstat + conntrack zeigen mir nur die Verbindungen an, die ich auch problemlos deuten und nachvollziehen kann.
Ich mach da heute mal ein Ticket auf.
 
@Donnidonis

ist bei Strato etwas versteckt, weiter unten bei "Preisgünstigere V-Server":

1702378263524.png

Ionos und Strato nehmen sich nicht viel, sind ja auch Konzernbrüder und die Server stehen teilweise im selben RZ.

Bei Netcup sind die ganz kleinen Server derzeit im Premarketing nur im Forum verlinkt (Anmeldung kostenlos). Dürften aber sicher auch bald ganz regulär auf der Webseite auftauchen:

1702378405524.png

Alle Angebote haben aber eins gemeinsam: bieten für 1€ deutlich mehr als das LXC-Angebot vom OT, ohne dass sie nach einem Jahr o.ä. teurer werden (sind also keine Lockvogelangebote). Habe auch alle durchprobiert, Performance ist für das Geld wirklich solide. Wollte es daher nur mal kurz erwähnt haben. Sry für Ottopic. :)
 
  • Gefällt mir
Reaktionen: Natriumchlorid, Marco01_809 und CoMo
Gut zu wissen. Ich hab bis Mai 2025 bei noez bezahlt. Mit dem finanziellen Schaden kann ich leben. Auch ist für mich "eigentlich" irrelevant, ob das jetzt eine Vollvirtualisierung oder einfach ein Container ist. Bisher erfüllt das Ding seinen Zweck.

Als ich im März den Server gebucht hatte, hatte ich die anderen Angebote nicht finden können. Bei Strato hatte ich auch gesucht.

Anmerkung: Der Traffic steht jetzt schon wieder bei 55GB nach 2 Tagen.
 
Zurück
Oben