Beiträge von mightyBroccoli

    Hast du Zugang zu euren DNS settings?


    Nur mal so am Rande, ich hab mal bei mir eine DNS Resolution laufen lassen. Ich habe keinen TSDNS am laufen nur einen _ts3._udp. SRV Eintrag.


    Es sieht ganz nach einigen Fehlern in den DNS settings aus.


    In diesem Part entscheidet sich dein Client was er tuen soll. Er schaut zuerst nach einem SRV Record für einen TSDNS Service da kommt keine Antwort ist gleich läuft nicht, ok. Dann den ts3 srv record is da. Hierbei werden aber zwei mögliche TSDNS angesprochen einmal ts.ug-c.de und ug-c.de wobei beide eine unterschiedliche IP haben. Selbst wenn ihr aufbeiden Domains einen TSDNS Dienst laufen habt ist es sehr seltsam wieso bei beiden ein successful als Ergebnis kommt.


    Code
    25.05.2017 03:40:40 TSDNS Info SRV DNS resolve unsuccessful, "_tsdns._tcp.ug-c.de" DNS server returned answer with no data25.05.2017 03:40:40 TSDNS Info SRV DNS resolve successful, "_ts3._udp.ts.ug-c.de" =(h: ts.ug-c.de p:42517)25.05.2017 03:40:40 TSDNS Info A/AAAA DNS resolve for possible TSDNS successful, "ts.ug-c.de" =(h: 212.224.120.176 p:0)25.05.2017 03:40:40 TSDNS Info A/AAAA DNS resolve successful, "ts.ug-c.de" =(h: 212.224.120.176 p:0)25.05.2017 03:40:40 TSDNS Info A/AAAA DNS resolve for possible TSDNS successful, "ug-c.de" =(h: 79.133.48.234 p:0)25.05.2017 03:40:40 TSDNS Info A/AAAA DNS resolve successful, "ts.ug-c.de" =(h: 212.224.120.176 p:0)25.05.2017 03:40:40 ClientUI Info Lookup finished: ip=212.224.120.176 port=42517 query=ts.ug-c.de error=0


    Witizig ist auch der Teil:
    Scheinbar findet er ja doch noch die korrekte IP queryed danach nochmal die blacklist an aber fragt dann nochmal nach einem TSDNS und failed dann schlussendlich.

    Code
    25.05.2017 03:40:40 ClientUI Info Resolve successful: 212.224.120.176:42517
    25.05.2017 03:40:41 TSDNS Info TSDNS queried unsuccessfully 212.224.120.176:41144
    25.05.2017 03:40:41 TSDNS Info No TSDNS found
    25.05.2017 03:40:42 TSDNS Info TSDNS queried unsuccessfully 79.133.48.234:41144
    25.05.2017 03:40:42 TSDNS Info No TSDNS found
    25.05.2017 03:40:45 ClientUI Info Connect status: Disconnected



    Ich denke auf der Domain sind zwei TS DNS einträge entweder nur ts3 DNS settings oder sogar zwei TSDNS die dann unterschiedliche Ergebnisse geben.


    Was für Services habt ihr am Laufen nur TS oder auch einen TSDNS?
    Was für DNS Settings habt ihr gesetzt nur _ts3._udp.ts.ug-c.de oder noch mehr?
    Klappt die Verbindung wenn du die IP:Port manuell einträgst und nicht den DNS ?

    Was hälst du eigentlich von der Idee, noch entsprechende Lösungsvorschläge zu den gefundenen Einträgen zu nennen?


    Den Vorschlag finde ich echt gut. Ich bin am überlegen das als Option zu implementieren entweder durch ein -diagnostic oder durch eine Option in der config Datei.
    Was mir aber auch gerade mal so dazu einfällt wäre eine Option das nachträglich zu machen. Nachdem Motto Server ist down drüber laufen lassen und dann die Stellen ausgeben zusammen mit einem/ mehreren Lösungsvorschlägen.
    Das wäre bloß eine Erweiterung des Skripts und super fix umgesetzt. Dann müsste bloß die Diagnostik Daten eingefügt werden bzw die Fehlermeldungen.


    Ich hab mal ein Ticket für dieses Feature eröffnet da kann man die Ideen im Zusammenhang besser sammeln vorallem für den Filter wäre das optimal.

    [Feature Request] Send Diagnostics on Warning/Error - Bitbucket

    Ich hab mir das Modul mal etwas angesehen und habe einige Bedenken. Also grundsätzlich ist das ein wirklich mächtiges Modul das vor allem flood Angriffe mit gefakten Headern super gut anfangen kann allerdings hätte ein minimales falsch konfigurieren zur Folge das die Verbindung einfach rejected wird. Der User würde gar nichts bekommen keinen Fehler sondern bloß ein no route to host.


    Vorallem bei iptables -m ts3init_get_cookie --min-cookie xyz sehe ich das Problem. Es ist 1a in dem was es machen soll. Allerdings is die hauseigene Art von Teamspeak da deutlich besser da der Client eine Antwort bekommt Client Version ist zu niedrig.


    Aufgrund von meinem Hoster Netcup (ganz richtig schamlose Werbung :thumbup: ) der flood Angriffe mit einem Riegel beendet, ist dies allerdings etwas das ich mir definitiv anschauen werde. Ich bin noch nicht so ganz durch mit den Konfigurationsmöglichkeiten und welche Teile essentiell sind und welche zur Wahl stehen.
    Ansonsten wäre ich für:

    Code
    iptables -m ts3init_get_cookie --check-time 60
    iptables -m ts3init_get_puzzle --check-cookie
    iptables -m ts3init_get_puzzle --random-seed /dev/random
    iptables -m ts3init --client
    iptables -j TS3INIT_SET_COOKIE --random-seed /dev/random

    ich benutze neben einem systemd service der eine OnFailure Benachrichtigung hat ein Skript das ich geschrieben habe das auf der Maschine läuft und die logs in vom user einstellbaren Abständen läuft und die Logs scannt.
    Zum Beispiel bei einem Absturz nach 2017-03-22 02:33:12.711983|INFO |ServerMain | |Received signal SIGTERM, shutting down.


    Extra Services womöglich dafür noch zu bezahlen damit ein Server query gemacht wird um die Antwort "running" zu bekommen ist unnötig und belastet womöglich nur die Hostmaschine. Es ist viel Ressourcen schonender nicht nach running zu schauen sondern nach not running.


    In meinem Beispiel worst case scenario brutaler Absturz des Services und status failed beim erneuten starten.
    Mein Systemd service schickt beim Absturz eine Mail an mich mit den Details was passiert ist und ob der Service wieder hoch gekommen ist. Da der Absturz ein sofortiges Senden etwaiger Logzeilen von meinem Skript auslöst bekomme ich danach direkt die relevanten Zeilen mit den Error nachrichten oder weswegen auch immer.



    Ich fahren bei den Skripten relativ variabel via XMPP oder EMail je nachdem.https://bitbucket.org/mightyBroccoli/logwatch-scripts

    Mir ist das gerade noch was aufgefallen. Ich bin nicht sicher ob meine Antwort dahingehen 100% korrekt war.
    Also du sagtest was von mehreren Teamspeak Instanzen. Meinst du damit virtuelle Instanzen in einem Master Prozess oder wirklich mehrere Teamspeak Master Prozesse mit ihren virtuellen Servern?
    Den eigentlich lässt Teamspeak nur einen Masterprozess zu und man ist dann durch die virtuellen Server begrenzt.


    Also nach dem Schema
    TS MAIN PID 1

    • virtueller Server 1
    • virtueller Server 2
    • ...

    TS MAIN PID 2

    • virtueller Server 1
    • virtueller Server 2
    • ...

    Den wenn das wirklich nur virtuelle Server sind dann ist das kein Problem den in Systemd ist nur der Masterprozess relevant. Das der beim Start x Tochterprozesse spawnt ist nebensächlich.
    ich bin auch gerade dabei OnFailure Zeilen in meiner services einzufügen aber ich hänge mit meinem Zeitplan da etwas hinterher :D
    Ich kann aber hier gerne immer mal wieder posten falls ich Neuerungen vornehme die gut funktionieren.


    :) ja cool danke für die nette Begrüßung, Facebook ist nicht so meins Forum ist da schon besser :D

    Ich hab genau für diese Art von Situation 2 Skripte entworfen, eines das einen täglich einen Report per Email schickt und eines das je nach Zeiteinstellung deutlich häufiger über Neuigkeiten informiert.


    Ich glaube ich hab das in den falschen Bereich gepostet aber über mein Profil müsste das recht schnell zu finden sein :D Falls der Post noch da ist wo er sein sollte log auditing script für Mail / XMPP

    Zitat von Sebbo

    systemd ist nicht in allen Betriebssystemen verfügbar - vor allem in etwas älteren, die aber noch LTS besitzen


    Prinzipiell ist das richtig systemd ist ein, im Vergleich recht neues Konzept. Allerdings ist selbst bei den sehr langsamen Distros systemd längst angekommen. Without Systemd Die Liste der Distros die systemd nicht unerstützen ist lang, ja aber die Nutzerstatistiken zu den Distros sind genauso einstellig wie nicht vorhanden, ausgenommen slackware.


    Zitat von Sebbo

    Du brauchst pro TeamSpeak 3 Server Instanz einen neuen systemd Service: ts3server01.service, ts3server02.service, ..., ts3serverN.service


    Das stimmt wiederum nicht. Systemd funktioniert nicht nur für eine einzelne Instanz sondern kann genauso für mehrer Instanzen eingesetzt werden. Ich hab mal einige Links zusammen gestellt die genauer erklären wie das funktioniert. Systemd ist relativ kompliziert kann aber auch super einfach sein. :)



    Zitat von Sebbo

    Wie bildest du in systemd den TSDNS Server ab? Dazu gibt es keine PID-Datei...


    Systemd verlangt gar keine PID um einen Process zu starten. Es ist ohne Probleme möglich auch TSDNS via systemd zu regeln und hier geht natürlich auch systemctl enable tsdns.service um den service automatisch beim boot zu starten.



    Zitat von Sebbo

    Was macht systemd, wenn eine TS3 Instanz crasht? systemd kann im Fehlerfall den Dienst neustarten, aber versuche die möglichen Problemszenarios mal systemd zu erklären.


    Systemd zumindest in er Konfiguration wie ich sie gepostet habe würde beim Status failed den Dienst herunterfahren, bzw den Status auf stopped setzen, die PID löschen und dann den Dienst mit der beschriebenen ExecStart neu starten.
    Das dabei keine Rücksicht auf missing files oä genommen wird. Klar das ist ein System Programm und kein SysAdmin.


    Zitat von Sebbo

    Es gibt aber auch den Fall, dass die PID-Datei vom TS3 Server noch existiert, die Instanz allerdings gecrasht ist (z.B. Linux Reboot ohne TS3 Shutdown oder eingefrorener Host und entsprechender Neustart).


    Selbst wenn der reboot angeordnet wird sogar per Hardware press wird das multi-user.target benachrichtig das ein shutdown ansteht und der service wird beendet und die PID gelöscht. Selbst wenn nicht, teamspeak löscht die pid automatisch, wenn eine Instanz startet und noch eine PID vorhanden ist.


    Zitat von Sebbo

    systemd versendet z.B. keine E-Mails.


    Es ist genauso möglich eine Notification zu bekommen, falls ein System Dienst den Status failed hat : Systemd status mail on unit failure | Northern Light Labs


    Zitat von Sebbo

    Zusätzlich bekam es dann halt noch das Feature, dass es auch gleich versucht, die Services entsprechend korrekt wieder zu starten. Das war allerdings anfangs nicht vorgesehen.


    Ich sage nur systemctl enable tsdns.service macht genau das.


    Systemd ist ein Programm das von RedHat entwickelt wird, einem System das für seine Stabilität bekannt ist. Die Funktionalität von supervisord ist halt ein Bruchteil von systemd und ist auch gar nicht dafür designed systemd zu Verdrängen oä.


    Ich muss allerdings den Punkt geben das systemd nicht auf alles System zur Verfügung steht vorallem bei Firmensystem die häufig ultra alte System laufen haben. Allerdings auch nur einen halben Punkt den init können so ziemlich alles Distros und init ist zwar nur systemd light aber könnte diese Funktionen auch übernehmen wenn auch nicht so schön wie systemd.

    Hallo,


    ich habe mir aus Anlass einige Skripte geschrieben die mir die Administration enorm vereinfachen, diese würde ich hier gerne vorstellen. Falls jemand Verwendung dafür hat klasse, falls Anregungen oä. entstehen sogar noch besser.



    teamspeak_log_daily_mail
    Die Idee ist das Moderatoren/ Admins selbst in kleineren Umgebungen, auf dem TS zur Verfügung stehen. Das Skript schafft in dem Sinne Abhilfe das alle wichtigen Dinge des Vortages leicht und übersichtlich dargestellt werden und an jede Email Adresse der Wahl versendet werden kann.
    Dabei sortiert das Skript die Ereignisse so, dass Sektionen gebildet werden, Kick Nachrichten bei Kick Nachrichten usw. In der Repo ist auch einmal anschaulich abgebildet wie eine solche Email aussehen mag.
    Die Installation ist super einfach mit cron oder anacron zu machen. Weitere Infos in der Repo https://bitbucket.org/mightyBroccoli/logwatch-scripts

    teamspeak_log_xmpp_push
    Die Idee zu diesem Skript ist mir klar geworden als Moderatoren auf meinem Teamspeak eine Lücke im Rechte System gefunden hatten und wild anfingen Dinge zu ändern /löschen oä. Folglich eine gar nicht mal so geile Situation. Die Log Email hätte mir alle diese Aktionen geliefert allerdings erst am nächsten Tag, wenn ich morgens in meine Emails geschaut hätte.
    Daher ein Instant Messenger push Skript musste her. Dieses Skript funktioniert essentiell sehr ähnlich wie die tägliche LogMail. Es ist allerdings so designed das es theoretisch alle 15 Sekunden laufen könnte ohne das man ständig die gleichen Nachrichten bekommt. Durch eine history werden nur neue Ereignisse gesendet.
    Benötigt wird dafür auch keine eigener XMPP Server sondern bloß Zugangsdaten zu einem bestehenden Konto das auf einem x-beliebigen Server erstellt wurde als Sender und natürlich auch ein Empfänger Konto.


    Die Installation ist super einfach mit cron oder anacron zu machen. Weitere Infos in der Repo https://bitbucket.org/mightyBroccoli/logwatch-scripts



    Für die jüngeren unter euch denen XMPP nicht wirklich viel sagt. Denkt an Facebook, ICQ, MSN, AOL Chat. Prinzipiell wie eine Email Adresse oder ICQ Nummer. https://de.wikipedia.org/wiki/…ing_and_Presence_Protocol



    https://de.wikipedia.org/wiki/…ing_and_Presence_ProtocolÜber Rückmeldung würde ich mich freuen. Für Probleme wäre es toll wenn ein Issue in der Repo erstellt würde.
    Bei Fragen stehe ich natürlich gerne zur Verfügung.

    Es gibt einen deutlich einfacherer Weg.



    Code
    nano /etc/systemd/system/ts3server.service


    Code
    systemctl daemon-reloadsystemctl start ts3server.service


    Vorteil: Systemd ist extrem zuverlässig. Wieso also ein extra script für eine Funktion die das System auch so kann.
    Zusatzvorteil:

    Code
    systemclt enable ts3server.service

    Nun startet der teamspeak server nach dem network.target automatisch.


    Außerdem bei einem Absturz weswegen auch immer startet der Dienst automatisch nach 10 Sekunden durch.