K.inc Tec Blog

Mein kleines EDV Logbuch

Category: Linux (Page 1 of 5)

Debian Linux – Zeichenkodierung einstellen

dpkg-reconfigure locales

Wenn das Kommando nicht auf Anhieb funktioniert (weil die Pakete bereits installiert sind), dann folgende Pakete nachinstallieren:

apt-get install locales language-env

Ob es geklappt hat sieht man mit dem Kommando

locale

In der Ausgabe müsste nun der neue Zeichensatz hinterlegt sein.

Wenn das nicht funktioniert, bitte vor der Konfiguration der locales noch die ENV Variable LC_ALL exportieren, mit der gewünschten locale:

export LC_ALL="de_DE.UTF-8"
dpkg-reconfigure locales

Debian Linux – Mails über Terminal senden

Es gibt hierzu mehrere Methoden. Ich konzentriere mich hierbei auf die wohl gängiste Methode per mailutils.

Weiterlesen

Ubuntu LTS Update 22.04 DNS Probleme

Zuerst einmal muss ich loswerden, dass mich Ubuntu langsam richtig aufregt. Ich rate davon ab sowas als Produktivserver zu nutzen. Da gibt es meiner Meinung nach bessere Alternativen, wie Debian oder CentOS, die weitaus stabiler laufen.

Weiterlesen

PostgresSQL Superuser Passwort zurücksetzen

Der Superuser für Postgres heißt postgres. Das Passwort kann zurückgesetzt werden, indem man die Authentifizierungsmethode in der Konfigdatei ändert.

Weiterlesen

Nginx unter MotionEyeOS installieren

Nginx von Raspbian kopieren

https://wiki.satria.de/index.php?title=MotionEyeOS

Da MotionEyeOs gut gegen Schreibzugriffe gesichert ist und auch kein apt nutzt, muss man etwas kreativ werden. Glücklicherweise ist Nginx nur ein kleines Paket und kann leicht von Raspbian kopiert werden.

Folgende Dateien werden benötigt:

/etc/nginx/nginx.conf
/etc/nginx/*
/usr/lib/libpcre.so.3.13.3 plus Symlink auf /usr/lib/libpcre.so.3
/usr/sbin/nginx
/var/lib/nginx/ (Ordner muss nur angelegt werden. Berechtigung muss für www-data vergeben werden, damit nginx dort temporäre Dateien speichern kann. Mit chown www-data:root /var/lib/nginx/)
/var/log/nginx/ (Ordner muss nur angelegt werden)

Schreibzugriff auf das Dateisystem

Dateisystem:

mount -o remount,rw / 

Bootpartition:

mount -o remount,rw /boot

Nginx Konfiguration

server {
  listen 80;
  listen [::]:80;

  listen              443 ssl;
  ssl_certificate     /etc/nginx/ssl/example.crt;
  ssl_certificate_key /etc/nginx/ssl/example.key;
  ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers         HIGH:!aNULL:!MD5;

  server_name example.com;

  location / {
      proxy_pass http://localhost:8080/;
      proxy_cache off;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
  }
}

SSL Zertifikat mit OpenSSL erzeugen

Siehe OpenSSL Befehlsübersicht

Init.d Script anlegen

Das mit Raspbian gelieferte Bootscript ist zu komplex, daher nutzen wir für MotionEyeOs das folgende.

/etc/init.d/S89nginx

case "$1" in
  start)
    echo Starting nginx...
    /usr/sbin/nginx
    ;;
  stop)
    echo Terminating all nginx instances...
    killall nginx
    ;;
  *)
    echo "Usage: /etc/init.d/nginx {start|stop}"
    exit 1
    ;;
esac

exit 0

Nginx als ReverseProxy

Basiskonfiguration

server {
  listen 80;
  listen [::]:80;

  server_name example.com;

  location / {
      proxy_pass http://localhost:8080/;
  }
}

SSL

server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     www.example.com.crt;
    ssl_certificate_key www.example.com.key;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ...
}

Websockets

https://www.nginx.com/blog/websocket-nginx/

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;

Linux Zeitzone ändern

Die Systemzeit wird konfiguriert, indem der Symlink /etc/localtime gegen eine Binärdatei mit dem Zeitzonen-Indentifier im Verzeichnis /usr/share/zoneinfo erzeugt wird. Also einfach auf eine andere Datei linken.

Initd startup script template

Folgendes Template nehme ich normalerweise als Vorlage für ein Initd Script. Habe das irgendwann mal so im Internet gefunden, weiß nicht mehr genau wo. Dürfte selbsterklärend sein.

#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....

# Source function library.
. /etc/init.d/functions

start() {
    # code to start app comes here 
    # example: daemon program_name &
}

stop() {
    # code to stop app comes here 
    # example: killproc program_name
}

case "$1" in 
    start)
       start
       ;;
    stop)
       stop
       ;;
    restart)
       stop
       start
       ;;
    status)
       # code to check status of app comes here 
       # example: status program_name
       ;;
    *)
       echo "Usage: $0 {start|stop|status|restart}"
esac

exit 0 

The format is pretty standard and you can view existing scripts in /etc/init.d. You can then use the script like so /etc/init.d/myscript start or chkconfig myscript start. The ckconfig man page explains the header of the script:

 > This says that the script should be started in levels 2,  3,  4, and
 > 5, that its start priority should be 20, and that its stop priority
 > should be 80.

The example start, stop and status code uses helper functions defined in /etc/init.d/functions

  1. Enable the script $ chkconfig --add myscript $ chkconfig --level 2345 myscript on
  2. Check the script is indeed enabled – you should see „on“ for the levels you selected. $ chkconfig --list | grep myscript

Raspi Notizen

Lichter Abschalten

sudo vi /boot/config.txt


#LinkLED 
dtparam=eth_led0=14
dtparam=eth_led1=14

#PiCam
disable_camera_led=1

Rote und Grüne LED ausschalten am Raspi

For the Raspberry Pi 3b you can add the following lines to /etc/rc.local:

sudo sh -c 'echo none > /sys/class/leds/led0/trigger'
sudo sh -c 'echo none > /sys/class/leds/led1/trigger'
sudo sh -c 'echo 0 > /sys/class/leds/led0/brightness'
sudo sh -c 'echo 0 > /sys/class/leds/led1/brightness'

Apache als SSL Reverse Proxy mit ModSecurity

Ein Reverse Proxy hat wesentliche Vorteile gegenüber direkt von außen erreichbaren Webseiten:

  1. Webserver sind nicht über IP Adresse erreichbar.
  2. Durch die Weiterleitung per Namensauflösung benötigt man nur eine externe IP und kann damit mehrere Webserver nach außen hin anbieten.
  3. Auf dem Reverse-Proxy können zerntral Sicherheitsfeatures implementiert werden.

Weiterlesen

Page 1 of 5

© 2016 kinc.de