netcup Gutscheine April

Für einen günstigen V/RootServer, Webspace oder nur für Domains kann ich die netcup GmbH wärmstens empfehlen. Ich bin bei der netcup GmbH seit 2011 ein sehr zufriedener Kunde. Netcup ist Ende 2016 ein Teil des österreichischen IT-Anbieter Anexia geworden.
Über das Netcup-Partnerprogramm wurden nachfolgende Gutscheine generiert. Bei diesen erhalte ich eine kleine Provision als Dankeschön. Es würde mich freuen, wenn Du einen meiner Codes verwenden würdest.

Falls ein Code nicht funktionieren sollte, einfach einen neuen probieren und am Besten einen Kommentar oder eine kurze E-Mail an nc@m-hofmann.eu schreiben. Ich fülle diese dann schnellstens wieder auf.

Die Gutschein Codes können unter folgender URL eingelöst werden:
https://www.netcup.de/bestellen/gutschein_einloesen.php

5€ Neukunden Gutschein

Dieser Gutschein ist nur für Neukunden einmalig einlösbar! ( Nicht auf nur Domains )
36nc15955928870

Weiterlesen

Gitlab-Runner Registrieren

docker exec -it gitlab_gitlab-runner_1 bash
//im Web den Token von Gitlab holen und eintragen
gitlab-runner \
    register -n \
    --name "Docker Runner" \
    --executor docker \
    --docker-image docker:latest \
    --docker-volumes /var/run/docker.sock:/var/run/docker.sock \
    --url  http://gitlaburl/ \
    --registration-token token \
    --tag-list docker,stag,prod

exit

SOGO Lesebestätigung senden

Mein SOGO von meinem Mailcow Server sendet automatisch keine Lesebestätigung, wenn diese jemand anfordert. Man sieht diese nicht einmal.

Das lässt im Postfach unter Einstellungen -> E-Mail -> IMAP-KONTEN => Einstellungen des Kontos ändern.
Standartmäßig ist „Niemals eine Bestätigung senden“ ausgewählt. Dies habe ich auf „Erlaube eine Bestätigung für einige Nachrichten“ geändert. Hierbei habe ich überall die Option gewählt, dass SOGO nachfrägt ob eine Bestätigung gesendet werden soll.

FritzBox DS-Lite Remote-Zugang

Leider gibt es über meinen Provider nur noch einen DS-Lite Zugang, bei dem man nur öffentliche IPV6 Adressen bekommt. Der Zugriff über IPV4 funktioniert nicht.
Somit funktioniert der Zugriff auf die FritzBox über myfritz.net nur, wenn der Provider IPV6 unterstützt. Über das Mobilfunknetz habe ich das bisher noch nie gesehen.

Da ich manchmal von unterwegs Geräte im Heimnetzwerk über die FritzBox starten will benötige ich diesen Zugang unbedingt. Das ganze habe ich über meinen Server mithilfe eines Apache-Reverseproxy gelöst.

Die FritzBox muss in einem MyFRITZ! Konto registriert sein und der Internetzugriff aktiviert sein.

Hierbei erhält man eine MyFRITZ!-Adresse welche auf die IPV6 der FritzBox zeigt.

Damit der Zugriff auf die FritzBox über den Proxy funktioniert muss der DNS-Rebind-Schutz für die Domain deaktiviert werden

Eine Apache 2 Konfig für HTTPS kann wie folgt aussehen:

<VirtualHost *:443>
  ServerName fritzbox.m-hofmann.eu
<Location />
 AuthType Digest
 AuthName "Martin's FritzBox"
 AuthDigestProvider file
 AuthUserFile /pfadzurPW-Datei/.fritzboxUsersPW
 Require valid-user

  ProxyPass  https://adresse.myfritz.net:47297/
  ProxyPassReverse  https://adresse.myfritz.net:47297/
  ProxyPreserveHost On
  ProxyAddHeaders On
  RequestHeader set X-Forwarded-Proto "https"
</Location>

  SSLCertificateFile /sslcerts/m-hofmann.eu/fullchain.pem
  SSLCertificateKeyFile /sslcerts/m-hofmann.eu/key.pem

  SSLProtocol all -SSLv2 -SSLv3
  SSLHonorCipherOrder on
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
  SSLProxyEngine On

  # If you plan to proxy to an untrusted HTTPS host:
  SSLProxyVerify none
  SSLProxyCheckPeerCN off
  SSLProxyCheckPeerName off
  SSLProxyCheckPeerExpire off
</VirtualHost>

Der Zugriff wurde zusätzlich über einen Passwortschutz HT-Digest abgesichert. Die PW-Datei wird mit folgendem Befehl angelegt:

htdigest -c .fritzboxUsersPW "Martin's FritzBox" Martin

Es kann aber auch eine Basic-Auth verwendet werden. Ich setze allerdings immer auf HT-Digest, da hierbei die Login-Daten verschlüsselt übertragen werden!

WD-MyCloud Ex2 Ultra SSH PUB-Key Notizen

Nas WEB GUI=>Neuer Benutzer hinzufügen, SSH in Einstellung -> Netzwerk aktivieren

Login sshd@nas_ip

vi /usr/local/config/passwd
Homeverzeichnis des neuen Benutzers umstellen auf /shares/Benutername

cd /shares
chown Benutzername Benutzerverzeichnis

vi /etc/ssh/sshd_config
AllowUsers Benutzername hinzufügen
SSH per kill -HUP ‚cat /var/run/sshd.pid‚ neustarten (änderungen sind noch nicht Permanent -> nur zum testen)

SSH-Key erzeugen und aufs Nas kopieren
ssh-copy-id -i ~/.ssh/id_rsa.pub benutzername@nas_ip

Da man die SSHD_Config nicht permanent speichern kann kommt hier jetzt ein kleiner Hack ;-D
Über die Nas GUI eine App installieren (ich nehme hier jetzt phpMyAdmin)

vi /mnt/HD/HD_a2/Nas_Prog/phpMyAdmin/start.sh
Am Ende einfügen: sed -ir ’s/(AllowUsers .*)/\1 benutzername/‘ /etc/ssh/sshd_config
kill -HUP cat /var/run/sshd.pid
Über sed -ir ‚/PasswordAuthentication yes/c\PasswordAuthentication no‘ /etc/ssh/sshd_config
könnte nur Pub/Key erlaubt werden. Aber man müsste auch nen Key für den SSHD Benutzer erstellen, da su nicht funktioniert.

Das ganze wurde von mir zusammen gestückelt, also keine Garantie…

Refs: https://cutecoder.org/software/git-server-network-drive/
https://community.wd.com/t/ssh-without-password-for-non-root/93749

Let’s Encrypt Wildcard-Zertifikate mit acme.sh

Installation

git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "e-mail-adresse"

DNS

Beim anfordern von Wildcard Zertifikaten wird die DNS-Challenge verwendet. Dabei wird ein TXT-Record bei der Domain hinzugefügt.

Mehrere Domain-Anbieter verfügen über API’s, welche DNS-Einstellungen verändern können.

Bsp. Netcup:

export NC_Apikey="APIkey"
export NC_Apipw="APIpassword"
export NC_CID="Kunden-Nr"

Zertifikat beantragen

acme.sh --issue --dns dns_netcup -d m-hofmann.eu -d '*.m-hofmann.eu' --dnssleep 600

Je nachdem welche TTL bei der Domain eingestellt ist muss der Wert bei dnssleep verändert werden, da sonst die Änderung noch nicht vorgenommen wurde und somit die Zertifikat Ausstellung fehlschlägt.

Zertifikat installieren

acme.sh --install-cert -d m-hofmann.eu -d '*.m-hofmann.eu' --cert-file /sslcerts/m-hofmann.eu/cert.pem --key-file /sslcerts/m-hofmann.eu/key.pem --fullchain-file /sslcerts/m-hofmann.eu/fullchain.pem --reloadcmd "service apache2 force-reload"

Mailcow

export DEPLOY_MAILCOW_PATH="/mailcow-pfad/"
acme.sh --deploy -d m-hofmann.eu -d '*.m-hofmann.eu'  --deploy-hook mailcow

 

WordPress-Docker-Compose

Über diese Docker-Compose Datei kann WordPress mit PHP 7.4 hinter einem reverse Proxy (Port 81 oder anderem) betreiben. Es wird nicht das Image mit dem „latest“-Tag verwendet, da dieses PHP 7.3.X verwendet.
Falls dieses doch verwendet werden soll muss das authentication_plugin des MySQL-Server auf „mysql_native_password“ gestellt werden, da mit PHP 7.3 die neue standard Methode nicht unterstützt wird.

docker-compose.yml

version: '3'

services:
 db_wordpress:
   image: mysql:latest
   restart: unless-stopped
   container_name: db_wordpress

   command: [
        #bis php 7.4
#        '--default_authentication_plugin=mysql_native_password',
        '--character-set-server=utf8mb4',
        '--collation-server=utf8mb4_unicode_ci'
    ]
   volumes:
     - /srv/docker/m-hofmann.eu/wordpress/database:/var/lib/mysql
   environment:
     MYSQL_DATABASE: "${DB_NAME}"
     MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
  # ports:
  #   - 127.0.0.1:3307:3306

 wp:
   image: wordpress:php7.4-apache #latest  https://hub.docker.com/_/wordpress/
   restart: unless-stopped
   container_name: wordpress
   ports:
     - 127.0.0.1:81:80 
   volumes:
     - ./php.conf.ini:/usr/local/etc/php/conf.d/conf.ini
     - /srv/docker/m-hofmann.eu/wordpress/wp-data/:/var/www/html 
   environment:
     WORDPRESS_DB_HOST: db_wordpress
     WORDPRESS_DB_NAME: "${DB_NAME}"
     WORDPRESS_DB_USER: root
     WORDPRESS_DB_PASSWORD: "${DB_ROOT_PASSWORD}"
   depends_on:
     - db_wordpress
   links:
     - db_wordpress

.env

DB_ROOT_PASSWORD=wp-password
DB_NAME=wordpress

php.conf.ini

memory_limit = 500M
upload_max_filesize = 30M
post_max_size = 30M
max_execution_time = 600