Category Archives: osbn

osbn feed

Fotogalerie selbst hosten

Da gibt es einige Angebote an Open Source Softwarelösungen. Früher hatte ich  gallery im Einsatz, dass wurde dann irgendwann mal gehackt und wird auch seit einigen Jahren nicht mehr weiter entwickelt. Generell scheinen Webgalerien ein beliebtes Ziel für Einbrüche zu sein. Als Ablösung kam dann ganz einfach google Fotos bei mir/uns.  Das funktioniert, ist extrem praktisch wenn man eh 99,9% der Fotos mit dem Handy macht. Da aber Fotos von Handys immer noch schrottig gegenüber Fotos einer richtigen Kamera aussehen, haben wir uns eine Systemkamera zugelegt. Erst etwas skeptisch ob das Geld auch gut angelegt ist,  war ich bereits nach dem ersten Spaziergang mit Kamera & Co vom Nutzen der Kamera überzeugt.  Mit einer Kamera hat man halt Fotos und mit einem Handy Schnappschüsse. Nun stellte sich die Frage wohin mit den Fotos? Irgendwo auf Platte, Dropbox, Nextcloud, Google Photos?

Google Photos ist ungünstig, weil bei Bildern über 16 MP die Qualität auf 16 MP reduziert wird, jedenfalls wenn man unbegrenzt Bilder ablegen will und die Daten nicht auf den Quota angerechnet werden sollen. Da ich eh schon immer ein Freund von Wasduselbsthostenkannsthosteselbst bin, habe ich mir piwigo angeschaut. Vorher noch kurz nextcloud als Galerie ausprobiert, das ist aber leider komplett unbrauchbar dafür. Erst hatte ich die Daten noch via nextcloud client gesynct und einfach einen symlink in den galleries Ordner von piwigo gelegt. Fand ich aber nervig und ist überflüssig. Einfach die Fotodaten via rsync in den galleries Ordner und via Webinterface syncen lassen und fertig. Natürlich liegen die Fotos nochmal auf dem NAS.

Die Lösung gefällt mir ausgesprochen gut und funktioniert wunderbar. Sollte jemand eine gute andere  Webgalerie Software kennen, immer her damit.  Optimal wäre es natürlich wenn die Kamera (die natürlich heute alle WLAN haben) direkt syncen könnte, ohne den Weg über den PC  zu gehen.

Kurztipp: eine Datei leeren

Wir haben eine Datei, die wir einfach nur leeren wollen. Die Dateirechte sollen so bleiben und wir wollen nicht mit rm&touch&chown&chmod arbeiten.

$ l machmichleer.txt
-rw-rw-r-- 1 thomas thomas 27K Apr 21 10:06 machmichleer.txt

$ > machmichleer.txt

$ l machmichleer.txt
-rw-rw-r-- 1 thomas thomas 0 Apr 21 10:07 machmichleer.txt

mod_macro mit Apache 2.4

mod_macro ist dufte, besonders wenn man nicht nur Apache Vhosts für 10-20 Leute verwaltet.  Da gibt es etliche sinnvolle Einsätze für.

Das Modul mod_macro ist default bei apache 2.4 dabei.

$a2enmod macro

Nun kann man sich eine einfache macro.conf anlegen:

<Macro VHost $name $domain>
<VirtualHost *:80>
    ServerName $domain
    ServerAlias www.$domain
    DocumentRoot "/var/www/vhosts/$name"
    ErrorLog "/var/log/httpd/$name.error_log"
    CustomLog "/var/log/httpd/$name.access_log" combined
</VirtualHost>
</Macro>

Wir haben damit ein Macro namens VHost angelegt. Dieses Macro kann mit folgenden Werten gefüttert werden:

$name $domain

Wollen wir das Nacro nun in unserer vhost.conf nutzen, schreiben wir dort einfach nur:

Use VHost example example.com
...
Use VHost montag baldistfruehling.org

Wir übergeben also den Wert example und example.com an das Macro mit dem Namen VHost. Dabei ist die Reihenfolge der Werte durch das Macro vorgegeben. Der Apache baut uns damit unsere Vhost.conf zusammen.

Fertig  sind unsere Vhosts. Einfach den Apache neu starten und das war es.  In der Dokumentation wird aus verständlichen Gründen noch vorgeschlagen die Macro Definition wieder zu entfernen wenn sie nicht mehr gebraucht wird.
Dies geschieht einfach  mit

UndefMacro VHost

Besonders bei größere Konfigurationen, vermeidet man damit Konflikte.

Will man mehrere Werte übergeben z. B.  IP Listen, kann man einfach diese einfach in Anführungszeichen setzen.

Use RestrictedAccessPolicy "192.54.172.0/24 192.54.148.0/24"

Hinweise:

Die macro.conf kann natürlich in beliebig viele Dateien auf gesplittet werden. Optimalerweise sollten die Namen der Macro Dateien Aufschluss über deren Funktion geben.  Das Include  der macro.conf muss vor dem Include der vhost.conf stehen.

Eine Dokumentation zu mod_macro findet man unter

https://httpd.apache.org/docs/2.4/mod/mod_macro.html

Die ist sehr gut, daher habe ich auch auf eigene Beispiele verzichtet.

 

Kurztipp: ProxySQL…missed 3 heartbeats

Tauchen bei ProxySQL in der Logdatei immer wieder Einträge in der Art

...MySQL_Monitor.cpp:1126:monitor_ping(): [ERROR] Server db7:3306 missed 3 heartbeats, shunning it and killing all the connections

auf, liegt es eventuell daran, dass kein mysql-monitor_username mit dem mysql-monitor_password auf den Nodes eingerichtet ist.  Als Folge davon unterbricht ProxySQL die Verbindung zu den Nodes. Einfach mal bei ProxySQL schauen was dort eingetragen ist. Default ist monitor/monitor (jedenfalls in der 1.3.3er).

mysql> SELECT * FROM global_variables WHERE variable_name IN ('mysql-monitor_username','mysql-monitor_password','mysql-monitor_connect_interval','mysql-monitor_ping_interval','mysql-monitor_history');

+--------------------------------+------------------+
| variable_name                  | variable_value   |
+--------------------------------+------------------+
| mysql-monitor_connect_interval | 60000            |
| mysql-monitor_history          | 600000           |
| mysql-monitor_password         | monitor          |
| mysql-monitor_ping_interval    | 10000            |
| mysql-monitor_username         | monitor          |
+--------------------------------+------------------+
5 rows in set (0.01 sec)


Ändern kann man das Passwort einfach mit

mysql> UPDATE global_variables SET variable_value="GEHIRNSABOTAGE" WHERE variable_name="mysql-monitor_password";
Query OK, 1 row affected (0.00 sec)

mysql> LOAD MYSQL VARIABLES TO RUNTIME;
Query OK, 0 rows affected (0.00 sec)

mysql> SAVE MYSQL VARIABLES TO DISK;
Query OK, 46 rows affected (0.00 sec)

und fertig. Der Monitoraccount muss natürlich auch auf den Nodes eingetragen werden. Dann sollten auch Tests mit Sysbench & Co funktionieren.

Über

http://proxysql.blogspot.de/2015/09/proxysql-tutorial-setup-in-mysql.html

bin ich drauf gekommen.

Kurztipp: Die IP bei ausgehenden Mails entfernen

Um die Sender-IP bei ausgehen mails zu entfernen nutze ich folgendes unter Postfix:

In die /etc/postfix/master.cf

submission inet n - - - - smtpd

...

-o cleanup_service_name=subcleanup

subcleanup unix n - - - 0 cleanup
-o header_checks=regexp:/etc/postfix/submission_header_checks

Und in der /etc/postfix/submission_header_checks


/^Received: .*/ IGNORE
/^X-Originating-IP:/ IGNORE

 

Ich versende über den Submission Port 587.  DKIM, SPF & Co sind davon unbeeinflusst und tun weiter ihr Werk.

 

 

Kurztipp: MySQL Benutzer Connections beschränken

Die Anzahl der Connections kann man einfach global über die my.cnf beschränken.

max_connections = 500

Man kann auch pro Benutzer diverse Limits setzen (Connections pro Stunde, Updates pro Stunde usw.).

Will man einfach generell für jeden Benutzer ein Connection Limit setzten tut es der Eintrag

max_user_connections = 400

in der my.cnf. Der sollte natürlich unter der Anzahl von max_connections liegen, damit eine falsch konfigurierte Anwendung nicht die gesamte Anzahl der Connections belegt. Nach der Änderung natürlich den Dienst neu starten. Zur Laufzeit geht es auch via mysql mit

mysql> set global max_connections = 500;

mysql> set global max_user_connections = 400;

Mit

mysql> show variables like "%connections";


+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| max_connections        | 500 |
| max_user_connections   | 400 |
+----------------------+-------+

kann man nochmal die Einstellung überprüfen. Die Werte sind natürlich nur Beispiele und sollten je nach System angepasst werden.

 

 

 

 

 

Kurztipp: opendmarc und Probleme mit dem Mailversand via client

Im Zusammenhang mit spf, dkim, dmarc und opendmarc:

IgnoreAuthenticatedClients true

in der /etc/opendmarc.conf hat geholfen damit auch Thunderbird wieder mails verschicken durfte wenn man

RejectFailures true

eingetragen hat.

IgnoreAuthenticatedClients If set, causes mail from authenticated clients (i.e., those that used SMTP AUTH) to be ignored by the filter. The default is “false”.

Informationen zur opendmarc.conf findet man hier.

ok ein kleines Update.

IgnoreAuthenticatedClients true

funktioniert nicht so wie es soll. SMTP Auth wird trotzdem von dmarc ignoriert. Was ich getan habe ist nun den submission Port für Clients zu nutzen und dabei keinen DMARC check durchzuführen. Wäre auch unsinnig.

submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_milters=inet:localhost:12301

Hinter inet:localhost:12301 verbirgt sich DKIM

 

noch ein update:

damit opendmarc auch

IgnoreAuthenticatedClients true

berücksichtigt ist die 1.31er Version erforderlich, z.B. die aus Debian/stretch, bei jessie ist leider nur die 1.30er dabei.

https://packages.debian.org/stretch/amd64/opendmarc/download

https://packages.debian.org/stretch/amd64/libopendmarc2/download

Dadurch braucht man den Eintrag bei submission quasi nicht. Trotzdem ist der Weg über den submission sinnvoll, allein schon wegen der s2s und c2s Trennung.

Danke an Jan für den Hinweis mit der 1.31er Version.

Kurztipp: Debian von 7 zu 8 und roundcube will nicht mehr

PHP mag wohl keine selfsigned Zertifkate mehr ab 5.6. Jedenfalls lief mein roundcube nicht mehr nach dem Upgrade von wheezy zu jessie . Geholfen hat folgendes in die config.inc.php von roundcube einzutragen:

$config['imap_conn_options'] = array(
 'ssl'         => array(
     'verify_peer'       => false,
     'verfify_peer_name' => false,
  ),
);
$config['smtp_conn_options'] = array(
  'ssl'         => array(
      'verify_peer'      => false,
      'verify_peer_name' => false,
  ),
);

Kurztipp: MySQL auf eine andere Partition verschieben (Debian 7)

Montag im Büro und die Data Partition eines MySQL Servers ist fast voll gelaufen.

0. Neue (LVM) Partiton einbinden.

1. Rsync des Datadirs

rsync -avh --progress --stats /var/lib/mysql/ /mnt/mysql/data/

2. MySQL stoppen

3. nochmal rsync

rsync -avh --progress --stats /var/lib/mysql/ /mnt/mysql/data/

4. Verschieben des alten Datadirs und Symlink anlegen

mv /var/lib/mysql /var/lib/mysql_old
ln -s /mnt/mysql/data /var/lib/mysql

5. MySQL starten und fertig

6. Irgendwann mal das mysql_old löschen

Schöner ist natürlich man ändert die Pfade in der my.cnf, aber manchmal muss es einfach schnell gehen. Falls man Apparmor nutzt, anpassen der Pfade nicht vergessen.

Laconica…aehhh StatusNet…aehh nun GNU social geht weiter

Bei StatusNet ist schon lange nichts mehr geschehen. 2013 ist StatusNet quasi zu GNU social geworden. Darauf ist erst mal lange Zeit nichts passiert. Nun scheint aber die Entwicklung weiter zu gehen. Ich habe jedenfalls relativ problemlos von StatusNet 1.1.1 auf gnu social 1.1.3-alpha1 updaten können. Für den Jabberbot sollt man den Wert der Variable PING_INTERVAL in der Datei plugins/Xmpp/lib/xmppmanager.php etwas hoch setzen, bei mir steht er auf 86400. Bedeutet also jeden ‘Tag ein reconnect. Zudem ist startdaemons jetzt kein PHP Skript mehr sondern ein bash Skript. Bekommen kann man die Software unter http://gnu.io/social/resources/code/.

Das ist alles dufte, unglaublich dufte.

 

 

Neue Hardware: CuBox-i4Pro

Als Ablösung für den Raspberry habe ich mir vor einigen Tagen ein CuBox-i4Pro gekauft. Zur Zeit nutze ich noch Openelec als OS, die Images dafür findet man hier. Als nächstes (sobald Zeit) schaue ich mir mal Android an. Die Perfomance ist sehr gut und kein Vergleich zum Raspberry. Plugins wie Apple Trailer, Dokumonster, Mediathek usw. laufen deutlich besser. Auch das Spulen oder herunterladen von Untertiteln läuft spürbar schneller. Nicht besonders erstaunlich und eigentlich auch zu erwarten, denn das Teil kostet schließlich auch ca. 4x soviel wie ein Raspberry.  Der Stromverbrauch liegt bei ca. 3 W bei Last und 1 W im Idle. Wie der Raspberry ist auch der Cubox als always on Device gedacht, also ein richtiges Runterfahren gibt es eigentlich nicht.

CuBox-i-first-562x421

Das Teil hat natürlich auch ein paar Nachteile, jedenfalls mit Openelec als OS. So funktioniert Bluetooth noch nicht, CEC hängt manchmal und ab und an friert das Bild nach Schauen eines Videos ein, das passiert aber relativ selten und bisher noch nie während des Abspielens. Wäre schön wenn das noch behoben werden würde, aber auch kein Problem damit klar zukommen. Vielleicht tauchen manche Probleme auch nur bei mir auf.

Ich hoffe es gibt bald auch raspbmc bzw.  osmc  für den Cubox. Generell gibt es einige images für den cubox. Unter http://blog.ecservices.de/2014/11/03/project-ignition  findet man einen universal Installer. Dabei sind auch  images für Xbian, Suse, Geekbox, Debian, Archlinux usw. Man kann also einiges ohne großen Aufwand ausprobieren.

Als kleines zwischen Fazit nach 1-2 Wochen in Benutzung kann ich eigentlich nur sagen, dass ich recht zufrieden mit dem Teil bin. Ein Raspberry steht zwar daneben bereit um im Notfall einspringen zu können, wurde bisher aber nicht gebraucht.

Sollte meine Tochter mir etwas mehr Zeit gönnen schreibe ich etwas ausführlicher was zu dem Teil, bzw. muss ich auch  Zeit haben mir den Cubox genauer anzuschauen.

 

Update: Mittlerweile läuft mit der Openeelc 5.0er eigentlich alles bis auf CEC. CEC verliert ab und an die Verbindung.