E-Mail Konfiguration

IMAP-Einstellungen

Posteingangsserver (IMAP) fenomedia.de

Port/Sicherheit 993 + SSL/TLS

Authentifizierung Verschlüsseltes Passwort

Benutzername user@fenomedia.de

SMTP-Einstellungen

Postausgangsserver (SMTP) fenomedia.de

Port/Sicherheit 465 + SSL/TLS

Authentifizierung Verschlüsseltes Passwort

Benutzername user@fenomedia.de

CSRF (Cross Site Request Forgery) verhindern

  1. Token generieren
  2. session_start();
    if (empty($_SESSION['csrf_token'])) {
        $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
    }
  3. Token in den Meta-Tag generieren
  4. Token mit jQuery schicken
  5. $.ajaxSetup({
        headers : {
            'CsrfToken': $('meta[name="csrf-token"]').attr('content')
        }
    });
  6. Serverseitige Überprüfung
  7. session_start();
    if (empty($_SESSION['csrf_token'])) {
        $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
    }
    
    header('Content-Type: application/json');
    
    $headers = apache_request_headers();
    if (isset($headers['CsrfToken'])) {
        if ($headers['CsrfToken'] !== $_SESSION['csrf_token']) {
            exit(json_encode(['error' => 'Wrong CSRF token.']));
        }
    } else {
        exit(json_encode(['error' => 'No CSRF token.']));
    }

    Quelle: Stackoverflow

chrooted ssh Nutzer anlegen

Chroot-Verzeichnis mit allen Unterverzeichnissen anlegen:

mkdir /home/chroot/
mkdir /home/chroot/home/
cd /home/chroot
mkdir etc
mkdir bin
mkdir lib
mkdir usr
mkdir usr/bin
mkdir dev
mknod dev/null c 1 3
mknod dev/zero c 1 5

Alle nötigen Befehle für den Nutzer anlegen

APPS="/bin/bash /bin/ls /bin/mkdir /bin/mv /bin/pwd /bin/rm /usr/bin/id /usr/bin/ssh /bin/ping /usr/bin/dircolors"
for prog in $APPS;  do
        cp $prog ./$prog

        # obtain a list of related libraries
        ldd $prog > /dev/null
        if [ "$?" = 0 ] ; then
                LIBS=`ldd $prog | awk '{ print $3 }'`
                for l in $LIBS; do
                        mkdir ./`dirname $l` > /dev/null 2>&1
                        cp $l ./$l
                done
        fi
done

Passwd für Nutzer anlegen:

cp /lib/libnss_compat.so.2 /lib/libnsl.so.1 /lib/libnss_files.so.2 ./lib/
 echo '#!/bin/bash' > usr/bin/groups
 echo "id -Gn" >> usr/bin/groups
 touch etc/passwd
 grep /etc/passwd -e "^root" > etc/passwd

Gruppenrechte anlegen:

grep /etc/group -e "^root" -e "^users" > etc/group

Chroot-Nutzer anlegen:

useradd -s /bin/bash -m -d /home/chroot/./home/testuser -c "testuser" -g users testuser

Passwort für Nutzer hinterlegen:

passwd testuser

Angelegten Nutzer in chroot-Umgebung kopieren:

grep /etc/passwd -e "^testuser" >> /home/chroot/etc/passwd

Fertig!

Quelle

Umstellen auf Key-Authentifizierung

Als der User, über welchen man sich später anmelden möchte einloggen.
Dann mit

ssh-keygen

jeweils einen public und private Key erzeugen.

Den privaten Key id_rsa runterladen.

Den public key mit

mv id_rsa.pub authorized_keys

in die authorisierten Schlüssel aufnehmen.

Aus Sicherheitsgründen die Rechte des Publickeys anpassen mit

chmod 0700 ~/.ssh -R

Dann den Login mit dem private key testen

ssh -i id_rsa xxx.xxx.xxx.xxx

Wenn alles funktioniert die Methode für Passwortauthentication deaktivieren in der /etc/ssh/sshd_config

PasswordAuthentication no

Jetzt noch den SSH-Service neustarten

service ssh restart

Voila!

Quelle