All posts by admin

Apache Speicherbedarf senken

Die Standard Apache-Konfiguration ist für ausgewachsene Maschinen ausgelegt und daher für kleine virtuelle Server-Instanzen ungeeignet. Nachfolgend beschriebe Änderung senkt den Speicherbedarf deutlich.

Konfiguration

1
sudo vi /etc/apache2/apache2.conf
1
2
3
4
5
6
7
8
9
10
# Low memory setup
# Low memory setup
<IfModule mpm_prefork_module>
    StartServers 2
    MinSpareServers 2
    MaxSpareServers 5
    ServerLimit 128
    MaxClients 128
    MaxRequestsPerChild 4000
</IfModule>

Ergebnis

Munin-memory
Im Chart sind zwei Senkung des für Anwendungen allokierte Speichers (committed) sichtbar. Die erste Senkung ist auf eine Anpassung der MySQL Konfiguration zurückzuführen. Die zweite Senkung wurde durch die oben beschriebene Anpassung der Apache-Konfiguration verursacht.

WordPress DB Backup & Restore

Das Sichern und Rücksichern einer WordPress Datenbank (MySQL) kommt bei mir nicht jeden Tag vor, daher habe ich die wichtigsten Schritte nachfolgend kurz zusammengefasst:

Datenbanken finden

Die von WordPress verwendete Datenbank kann in der wp-config.php gefunden werden. Um eine Übersicht aller Datenbanken zu erhalten:

1
mysql --user=user_name --password=your_password
1
2
3
4
5
6
7
8
9
10
11
12
SHOW DATABASES;
+--------------------+
| DATABASE           |
+--------------------+
| information_schema |
| wordpress          |
| mysql              |
+--------------------+
3 ROWS IN SET (0.00 sec)
 
quit
Bye

Datenbank sichern

Ist die richtige Datenbank gefunden, kann diese in eine Datei (etwa backup.sql) gesichert werden:

1
2
mysql --user=user_name \
--password=your_password db_name > backup.sql

Datenbank anlegen

Für die Rücksicherung wird eine Datenbank sowie ein neuer Benutzer mit Kennwort entsprechend der wp-config.php angelegt:

1
mysql --user=user_name --password=your_password
1
2
3
4
5
6
7
CREATE DATABASE db_name;
CREATE USER @localhost IDENTIFIED BY 'your_password';
GRANT ALL ON db_name.* TO user_name@localhost;
 
SHOW DATABASES LIKE 'db_name';
SELECT Host, USER FROM mysql.user WHERE USER LIKE 'user_name';
SHOW grants FOR user_name@localhost;

Datenbank zurücksichern

Jetzt kann die Datenbank zurückgesichert werden:

1
2
mysql --user=user_name \
--password=your_password db_name < backup.sql

Vernetzung der eigenen vier Wände

In letzter Zeit wurde ich einige Male gefragt, was bei der Vernetzung der eigenen vier Wände zu beachten ist. Nachfolgend ein paar grundlegende Hinweise:

  • Die Adern werden an der Dose in der Regel nach T568A oder T568B aufgelegt (Es empfiehlt sich auf einen Standard zu setzen um Verwechslungen zu vermeiden.)
  • Um für spätere Anwendungen gerüstet zu sein, sind hochwertige Kabel (Cat. 7) empfehlenswert, insbesondere da der Preisunterschied nicht allzu groß ist
  • Die Anzahl netzwerktauglicher Geräte steigt ständig, daher sollten Dosen immer doppelt belegt werden
  • Beim Verlegen dürfen die Kabel nicht geknickt werden (Faustregel für den Biegeradius ist eine Mineralwasserflasche, Details finden sich im Datenblatt des Kabels)
  • Um ideale physikalische Eigenschaften zu gewährleisten, muss die Doppeladern unbedingt bis auf die letzten mm verdrillt bleiben

Hilfreiche Werkzeuge

Abschließende Hinweise

  • Im Zweifelsfall sollte lieber der Fachmann zu Rate gezogen werden um Schaden an teuren Endgeräten, Verletzungen und Frust zu vermeiden.
  • Beim Verlegen die üblichen Installationszonen zu beachten.

MySQL Speicherbedarf senken

Kleinere LAMP-Instanzen laufen heute meist in virtuellen Server-Umgebungen, hier ist Speicher knapp bemessen. Mit dem Abschalten der InnoDB Database Engine lässt sich MySQL deutlich abspecken.

Schritt 1 — prüfen ob InnoDB als Engine verwendet wird:

1
2
3
4
5
6
7
8
9
10
$mysql_pass=your_password
mysql -p$mysql_pass -e "select distinct ENGINE FROM information_schema.TABLES"
+--------------------+
| ENGINE             |
+--------------------+
| MEMORY             |
| MyISAM             |
| CSV                |
| PERFORMANCE_SCHEMA |
+--------------------+

Im Beispiel taucht InnoDB nicht auf und kann daher deaktiviert werden.

Schritt 2 — InnoDB deaktivieren

Sollte eine Datenbank InnoDB-Tabellen haben, lässt sich die DB-Engine mit folgende Script auf MyISAM umstellen. (Vorher Backup anlegen!)

1
2
3
4
5
mysql_pass='your_password'
db='your_database'
for t in `mysql -p$mysql_pass --skip-column-names -B -e "select table_name FROM information_schema.TABLES where engine = 'innodb'"`; do
    mysql -p$mysql_pass $db -e "ALTER TABLE $t ENGINE=MYISAM";
done

Schritt 3 — InnoDB deaktivieren

Unter Debian/Ubuntu lässt sich die InnoDB Engine in der Konfigurationsdatei /etc/mysql/my.cnf mit folgenden Zeilen deaktivieren:

1
2
innodb=OFF
default_storage_engine=MyISAM

Schritt 4 — Test

sudo service mysql restart
mysqladmin -u root -p$mysql_pass var | grep have_innodb

#Vorher
| have_innodb        | YES

#Nachher
| have_innodb        | DISABLED

Ergebnis

Munin-memory
Im Chart sind zwei Senkung des für Anwendungen allokierte Speichers (committed) sichtbar.
Die erste Senkung ist auf die oben beschriebene Anpassung der MySQL-Konfiguration zurückzuführen. Die zweite Senkung wurde duch eine Anpassung der Apache Konfiguration verursacht.

Tipp: Sprechende Passwörter

Sicher generierte Passwörter sind in keinen Wörterbuch zu finden, aber leider im Alltag nicht sonderlich praktisch. Das Programm APG (Automatischer Passwort-Generator) schlägt sprechende Passwörter vor und ist als Paket für Debian und Ubuntu verfügbar.

Interessante Parameter

  • -a 0 — sprechende Passwörter
  • -M SNCL — S Sonderzeichen, N Zahlen, CL Groß-/Kleinbuchstaben
  • -n 16 — Anzahl Passwortvorschläge
  • -t — Aussprache des Passowort
  • -l — Buchstabiert das Passwort

Beispiel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ apg -a 0 -M SNCL -n 16 -m 10 -t
1tufwivEp\ (ONE-tuf-wiv-Ep-BACKSLASH)
Witt,ocef1 (Witt-COMMA-oc-ef-ONE)
klyer%Onk4 (klyer-PERCENT_SIGN-Onk-FOUR)
byd%Onoft4 (byd-PERCENT_SIGN-On-oft-FOUR)
4Knumjaid~ (FOUR-Knum-jaid-TILDE)
'Ovnenyoc8 (APOSTROPHE-Ov-nen-yoc-EIGHT)
Ougpyt9Oj( (Oug-pyt-NINE-Oj-LEFT_PARENTHESIS)
Id,Ods2Cid (Id-COMMA-Ods-TWO-Cid)
nonyen~Oc2 (non-yen-TILDE-Oc-TWO)
Wi4BlaHod@ (Wi-FOUR-Bla-Hod-AT_SIGN)
rhyp0Drun$ (rhyp-ZERO-Drun-DOLLAR_SIGN)
Kar9ordel" (Kar-NINE-ord-el-QUOTATION_MARK)
hanvu#Wav9 (han-vu-CROSSHATCH-Wav-NINE)
NanMov,ox7 (Nan-Mov-COMMA-ox-SEVEN)
pebliv3Ol% (pe-bliv-THREE-Ol-PERCENT_SIGN)
5OgumKiOk; (FIVE-Og-um-Ki-Ok-SEMICOLON)

Referenzen

https://help.ubuntu.com/community/StrongPasswords
http://packages.debian.org/stable/apg
http://packages.ubuntu.com/apg

 

Meine Android-Apps

Contents

Browser

Cloud

  • DAVdroid (F-Droid)
  • CalDAV-Sync – CalDAV Client
  • Tasks – Aufgabenverwaltung in Verbindung mit CalDAV-Sync beta
  • CardDAV-Sync beta – CardDAV Client
  • Contact Editor Pro – editiert zuverlässig Kontakte
  • FolderSync – Cloud-Storage Client
  • Papyrus Ex – einfacher Datei-basierter Texteditor, arbeitet gut mit FolderSync (Play Store)
  • K-9 Mail – open-source E-Mail Client mit hervorragender IMAP-Unterstützung (F-Droid(
  • WordPress – WordPress Client (D-Droid)
  • Calendar Color (F-Droid)
  • Seafile (F-Droid)
  • Contacts Editor Pro (Play Store)

Media

  • AntennaPod – open-source Podcast Manager / Player
  • MX Player – hervorragender Media-Player mit unterstützung für HW-Dekoder
  • HomeRunTV – streamt live TV von HDHomeRun
  • VLC (F-Droid)
  • FishBowlFoto (Play Store)

Reisen

  • DB Navigator – Fahrplanauskunft der Deutschen Bahn
  • Navigator (Play Store)
  • ADAC Gas Price (Play Store)

Remotezugriff

Sicherheit

Werkzeuge

  • Barcode Scanner – scannt Barcodes und QR-Codes (F-Droid)
  • Mifare Classic Tool (F-Droid)
  • NFC TagInfo – liest NFC-tags aus (F-Droid)
  • Search Light – einfache Taschenlampen-App für das Blitzlicht
  • Skitch – Screenshot App
  • Swype Keyboard – Swype Keyboard inkl. Spracheingabe von Nuance
  • F-Droid – alternativer App-Store
  • Share via HTTP – Dateien per lokalem Webserver verteilen
  • AFWall+ (F-Droid)
  • SendReduced (F-Droid)
  • Ghost Commander (F-Droid)
  • WPS Office (Play Store)
  • Share via http (F-Droid)

Widgets

Shopping

  • eBay (Play Store)
  • eBay Kleinanzeigen (Play Store)

Spiele

  • Dumb ways to die (Play Store)

Lesezeichen für SSH

SSH bietet eine Vielzahl von Verbindungsparameter die sich, wie eine Lesezeichen, in der persönlichen SSH Konfigurationsdatei ~/.ssh/config ablegen lassen. Eine Übersicht der Parameter findet sich in der man-page ssh_config.

Um mögliche Anwendungsfälle zu illustrieren, nachfolgend zwei Beispielkonfigurationen für die ~/.ssh/config:

  1. Das Mediacenter im Wohnzimmer mit der IP-Adresse 192.168.178.10 hört auf Port 22. Der Login erfolgt mit dem Benutzer bob. Die grafische Oberfläche von Programmen soll auf den lokalen Rechner weitergeleitet werden. Der Port 5900 des Mediacenters soll über den lokalen Port 55900 erreichbar sein. Im lokalen Netzwerk ist Geschwindigkeit wichtiger als starke Kryptographie, daher wird Blowfish verwendet:
    1
    2
    3
    4
    5
    6
    
    HostName 192.168.178.10
      Port 22
      User bob
      ForwardX11 yes
      LocalForward 55900 192.168.178.10:5900
      Cipher blowfish-cbc
  2. Der Webserver www.example.com lässt sich auf Port 666 erreichen – “Security through obscurity”. Die Verbindung soll komprimiert werden:

    1
    2
    3
    4
    5
    
    Host web
      HostName www.example.com
      Port 666
      User admin
      Compression yes

Um eine Verbindung mit den oben gezeigten Konfigurationen zu starten, reicht ein einfaches ssh mc bzw. ssh web.