Sinusbot auf Debian 8

Der einzig gute TeamSpeak 3 Musikbot ist Sinusbot. Zumindest habe ich bis jetzt keine anständige Alternative gefunden. Das Problem mit TeamSpeak 3 ist, dass es eine GUI braucht. Auf Headless Servern kann man mit einem falschen X11 Server GUI Anwendungen laufen lassen. Leider ist die Codebase von Sinusbot nicht öffentlich verfügbar. Hinzu kommt, dass Sinusbot aktuell nur in einer Beta Version verfügbar ist.

Voraussetzung ist eine Debian 8 Headless Linux Server in der 64 bit Variante. 32 bit Installationen sind nicht kompatibel mit dem Sinusbot.

Am Anfang eine kleine Vorgeschichte

Auf der Entwicklerseite wird Sinusbot in der Version 0.9.8 angeboten. Dieser läuft aber auf keinen meiner getesteten Linux Versionen. In der Installationsanleitung wird nicht die normale Version verwendet, sondern Sinusbot in der Version 0.9.11-ee30ef7. Diese läuft aber auch nicht. Erst wenn man die Seite genauer ansieht, dann findet man sozusagen eine Beta Version von der Beta Version 0.9.12.2-58b509d und diese funktioniert auch.

Das Projekt hat eine schöne Homepage, aber wenn der Quellcode öffentlich wäre, dann könnte man selbst Versionen aus dem Git bauen. Vor jedem Systemupdate sollte man ein Backup von der kompletten Festplatte machen.

Vorbereitung

Abhängigkeiten und anlegen eines User Accounts

Read More „Sinusbot auf Debian 8“

Icinga2 Notifications via Pushover.net

Vor einiger Zeit habe ich in einem Artikel geschrieben, wie man den Notify My Android Dienst für Icinga 2 Notifications einbindet. Leider ist dieser hin und wieder für mehrere Tage offline. Deshalb bin ich zu einem größeren Anbieter gewechselt. Pushover.net bietet die selbe Funktionalität und war bei mir bis jetzt ohne Ausfall erreichbar.

Script anpassen

Pushover hat viele Integrationsbeispiele des API Aufrufes auf deren Homepage. Ich benutze das Perl Beispiel und habe es ein bisschen modifiziert. Das Script liegt auf meinem Monitoring Host unter /etc/icinga2/scripts/pushover.pl und hat diesen Inhalt:

#!/usr/bin/perl

use LWP::UserAgent;
use Mozilla::CA;

LWP::UserAgent->new()->post(
 "https://api.pushover.net/1/messages.json", [
 "token" => "meinapitoken",
 "user" => "meinusertoken",
 "message" => $ENV{'message'},
 "title" => $ENV{'title'},
]);

Read More „Icinga2 Notifications via Pushover.net“

pfSense: Ethernet Errors while running as KVM guest

Since pfSense version 2.3 I’ve experienced „Network In“ errors on three virtual NICs. The error counters went up fast when traffic greater than 600 MBit/s were flowing through it. This didn’t cause problems in the daily business but a known error isn’t nice.

Problem description

I extraced the error counters of each interface with the help of netstat:

[2.3.1-RELEASE][admin@firewall.veloc1ty.lan]/root: netstat -i
Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll
em0  1500 <Link#1>      52:54:00:22:c1:4e  6382653     0     0  3615536     0     0
em0     - fe80::5054:ff fe80::5054:ff:fe2        0     -     -        0     -     -
em0     - 192.168.0.0   192.168.0.2         130795     -     -   130793     -     -
em1  1500 <Link#2>      52:54:00:4b:db:65  3565098  1764     0  6262855     0     0
em1     - fe80::5054:ff fe80::5054:ff:fe4        0     -     -        0     -     -
em1     - 192.168.1.0   firewall             26136     -     -     5083     -     -
em2  1500 <Link#3>      52:54:00:0c:74:9a  1247489   866     0  1083952     0     0
em2     - fe80::5054:ff fe80::5054:ff:fe0        0     -     -        0     -     -
em2     - 192.168.2.4/3 gw-overwatch         32648     -     -    39455     -     -
em3  1500 <Link#4>      52:54:00:f3:52:7f        5     0     0       67     0     0
em3     - fe80::5054:ff fe80::5054:ff:fef        0     -     -        0     -     -
em3     - 192.168.2.0/3 gw-torrent               0     -     -        0     -     -
em4  1500 <Link#5>      52:54:00:3c:81:23   897703 14899     0  1025503     0     0
em4     - fe80::5054:ff fe80::5054:ff:fe3        0     -     -        0     -     -
em4     - 192.168.3.0/2 gw-servers            4408     -     -    14210     -     -

The „Ierrs“ value of em1, em2 and em4 are very hight. Read More „pfSense: Ethernet Errors while running as KVM guest“

pfSense: Ethernet Errors als KVM Guest

Ich hatte seit dem Update auf pfSense 2.3 „Network In“ Errors auf drei meiner virtuellen NICs. Vor allem, wenn Traffic größer als 600 MBit/s durch die Firewall geroutet werden, ging der Fehlerzähler stark nach oben. Im Alltag bemerkte man das nicht, jedoch mag ich es nicht, wenn man ein Problem verdrängt.

Diagnose

Mit Hilfe von netstat kann man sich den Fehlercounter pro Interface anzeigen lassen:

[2.3.1-RELEASE][admin@firewall.veloc1ty.lan]/root: netstat -i
Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll
em0  1500 <Link#1>      52:54:00:22:c1:4e  6382653     0     0  3615536     0     0
em0     - fe80::5054:ff fe80::5054:ff:fe2        0     -     -        0     -     -
em0     - 192.168.0.0   192.168.0.2         130795     -     -   130793     -     -
em1  1500 <Link#2>      52:54:00:4b:db:65  3565098  1764     0  6262855     0     0
em1     - fe80::5054:ff fe80::5054:ff:fe4        0     -     -        0     -     -
em1     - 192.168.1.0   firewall             26136     -     -     5083     -     -
em2  1500 <Link#3>      52:54:00:0c:74:9a  1247489   866     0  1083952     0     0
em2     - fe80::5054:ff fe80::5054:ff:fe0        0     -     -        0     -     -
em2     - 192.168.2.4/3 gw-overwatch         32648     -     -    39455     -     -
em3  1500 <Link#4>      52:54:00:f3:52:7f        5     0     0       67     0     0
em3     - fe80::5054:ff fe80::5054:ff:fef        0     -     -        0     -     -
em3     - 192.168.2.0/3 gw-torrent               0     -     -        0     -     -
em4  1500 <Link#5>      52:54:00:3c:81:23   897703 14899     0  1025503     0     0
em4     - fe80::5054:ff fe80::5054:ff:fe3        0     -     -        0     -     -
em4     - 192.168.3.0/2 gw-servers            4408     -     -    14210     -     -

Hier ist der Wert von „Ierrs“ bei den Schnittstellen em1, em2 und em4 sehr hoch. Read More „pfSense: Ethernet Errors als KVM Guest“

Ubuntu and OpenVPN: Set pushed DNS servers globally

I’m using OpenVPN to connect to my home network. The endpoint is on my pfSense firewall I use there. I’m able to export a config file containing all needed connection parameters and needed certificates.
You can import that file into Ubuntus‘ Network Manager. However, the parser isn’t that good. You have to tweak the configuration to match the real config file. Pushed DNS servers or custom set ones are not used. The result is a stable connection without name resolution. Surfing the web isn’t fun without that.

I pass using the Network Manager because teweaking the settings in three different applications is not very end user friends. I decided to go back to the good old CLI.
My OpenVPN server pushes the DNS IP addressess. There are different approaches to use them globally.

Bad approach: Editing /etc/resolv.conf

This isn’t a very good approach, because you have to manually edit the system configuration. Normally all DNS servers are configured in the file under /etc/resolv.conf. Read More „Ubuntu and OpenVPN: Set pushed DNS servers globally“

Ubuntu und OpenVPN: Gepushte DNS Server Systemweit bekannt machen

Um mich mit meinem Heimnetzwerk zu verbinden benutze ich OpenVPN. Der Endpoint liegt auf meiner pfSense Firewall. Dort kann ich eine fertige OpenVPN Konfigurationsdatei erzeugen, in der alle benötigten Zertifikate und Verbindungsdetails hinterlegt sind.
In Ubuntu kann man diese Konfiguration in den Network Manager importieren. Leider funktioniert das nicht so wirklich. Selbst wenn man manuell diese Einstellungen ändert und manuell DNS Server setzt, werden diese nicht Systemweit bekannt gemacht. Das Resultat ist eine stehende Verbindung, jedoch ohne Namensauflösung. Surfen an sich macht dann nicht viel.

Auf den Network Manager werde ich also erstmal wieder verzichten, da ich bei einer VPN Verbindung nicht an drei verschiedenen Programmen rumdoktern will. Ich benutze als Fallback also das Terminal.
Mein OpenVPN Server pushed die IP Adressen des DNS Servers. Damit diese nun Systemweit bekannt ist hat man ein paar Möglichkeiten.

Unelegante Lösung: /etc/resolv.conf anpassen

Diese Lösung ist nicht elegant, da ich hier wieder manuell am System rumschrauben muss. Bei Linux konfiguriert man in dieser Datei alle DNS Server, die zur Namensauflösung verwendet werden sollen. Read More „Ubuntu und OpenVPN: Gepushte DNS Server Systemweit bekannt machen“

Ubuntu 15.10/16.04 – Swap center und bass/LFE on 5.1 audio output

I’m using an USB sound card on my laptop, because due to missing audio jacks I can’t connect them directly to it. The sound card is recognized by Ubuntu 15.10 or 16.04 as „CM106 Like Sound Device“. The problem ist that the center- and bass/LFE-speakers are swapped. I know that this wasn’t so in Ubuntu 15.04.

To get them in the right order again you open your terminal and open the file under /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf as root. In there you can find the following config block:

[Mapping analog-surround-51]
device-strings = surround51:%f
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
paths-output = analog-output analog-output-lineout analog-output-speaker
priority = 8
direction = output

This is the standard profile for 5.1 output. In the GUI this is used when „Analog Surround 5.1 Output“ is selected. To change center- and bass/LFE-speakers you adjust the channel-map line like the following:
Read More „Ubuntu 15.10/16.04 – Swap center und bass/LFE on 5.1 audio output“

Ubuntu 15.10/16.04 – Center und Bass/LFE bei 5.1 Audio vertauschen

Ich benutze eine USB Soundkarte am Laptop, da ich mein Roccat Kave XTD nicht mit den Klinksteckern am Laptop direkt anstecken kann. Der Grund dafür sind fehlende Steckmöglichkeiten :-)
In Ubunteu 15.10 und 16.10 meldet sich diese Soundkarte als „CM106 Like Sound Device“. Das Problem ist, dass Center- und Bass- bzw. LFE-Lautsprecher vertauscht sind. In Ubuntu 15.04 war das noch nicht so.

Um dies zu ändern öffnet man im Termin (als root) die Datei unter /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf. In dieser Datei befindet sich folgender Block:

[Mapping analog-surround-51]
device-strings = surround51:%f
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
paths-output = analog-output analog-output-lineout analog-output-speaker
priority = 8
direction = output

Das ist das Standardprofil, was in der GUI als „Analog Surround 5.1 Ausgang“ bezeichnet wird. Um nun Center- und Bass- bzw. LFE-Lautsprecher zu vertauschen, passt man die Option „channel-map“ an, sodass die Reihenfolge in der Zeile so aussieht: Read More „Ubuntu 15.10/16.04 – Center und Bass/LFE bei 5.1 Audio vertauschen“

Tor Exit Relay: WordPress Kommentar-Spam mit iptables blockieren

Aktuell beschäftige ich mich wieder mit meinem Dilemma. Anhand von Traces sehe ich, dass mein Tor Exit Relay von Spammern missbraucht wird. Eigentlich ist es die Aufgabe des Seitenbetreibers seine Kommentar-Funktion anständig abzusichern. Ich möchte aber zumindest ein bisschen Helfen, in dem ich keine WordPress Kommentare über mein Relay erlaube.
Zuerst dachte ich an einen vorgeschalteten Proxy Server. Bei meiner Recherche fand ich aber heraus, dass iptables für mein Vorhaben völlig ausreicht.

Analyse

Seit Freitag gegen 9 Uhr verbiete ich sämtliche ausgehende POST Anfragen an meinem Tor Exit Relay, die an einen HTTP Server gehen. Dazu habe ich diese iptables Regel eingefügt:

iptables -I OUTPUT -s 31.220.45.6 -p tcp --dport 80 -m string --string 'POST /' --algo bm -j REJECT --reject-with tcp-reset -m comment --comment "Tor POST block"

Diese Regel ist seitdem ca. 616.000 mal zur Geltung gekommen und hat 380 MB an Traffic geblockt.
Diese Regel ist natürlich nicht sinnvoll, da sie nicht nur WordPress Kommentare blockiert, sondern auch Captchas usw.

Wichtig: HTTPS Verbindungen sind von dieser Regel nicht betroffen, da iptables oder ein Proxy nicht das SSL/TLS aufmachen kann, ohne dass der Nutzer davon etwas mitbekommt. Zum Glück :-)

Read More „Tor Exit Relay: WordPress Kommentar-Spam mit iptables blockieren“

Tor Exit Relay: Block WordPress Comment-Spam with iptables

I’ve seen in network traces that my Tor exit relay is heavily used by spammer. Normally it’s the „victims“ job to secure their comment section but I want to help by rejecting WordPress comments over my relay.
My first idea was to route the Tor traffic through a proxy. But while researching I found out that iptables is capable of doing some basic kind of traffic inspection.

Checking

Since Friday 9 o’Clock I reject every POST request to a HTTP server over my exit relay. This was done using the following rule:

iptables -I OUTPUT -s 31.220.45.6 -p tcp --dport 80 -m string --string 'POST /' --algo bm -j REJECT --reject-with tcp-reset -m comment --comment "Tor POST block"

Since that, this rule was used for round about 616.000 times and rejected 380 MB traffic. It’s of course not very usefull since every POST request is blocked (like when solving captchas) and not just WordPress comment submissions.

Hint: Only unencrypted HTTP is affected by this rule. Encrytped HTTP over TLS/SSL can’t be filtered without getting noticed by the user. I’m glad for that :-)

Read More „Tor Exit Relay: Block WordPress Comment-Spam with iptables“