====== NetCup-Server ====== Dieser Server ist der Ersatz für den [[stratoserver|Strato-Server]] * IP: ''89.58.50.141'' * IPv6: ''2a03:4000:68:f00::/64'' * MAC: ''c6:6c:c0:74:06:4d'' ====== Vorarbeiten ====== ===== Dienstprogramme hinzufügen ===== apt install \ vim \ apache2-utils \ mc \ rcs \ rsync \ swaks \ ufw ===== Benutzer springm hinzufügen ===== adduser springm ===== ssh absichern für root und springm ===== ssh-copy-id -i .ssh/id_rsa_20180121.pub r-netcup Open the SSH configuration file /etc/ssh/sshd_config, search for the following directives and modify as it follows: /etc/ssh/sshd_config PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no Once you are done save the file and restart the SSH service. sudo systemctl restart ssh ===== ufw ===== ufw allow proto tcp from any to any port 25,80,443,110,143,465,587,993,995 ufw enable Prüfen mit ''sudo nmap markus-spring.de'' PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http 110/tcp closed pop3 143/tcp open imap 443/tcp open https 465/tcp open smtps 587/tcp open submission 993/tcp open imaps 995/tcp closed pop3s 8081/tcp open blackice-icecap ===== docker installieren ===== Neues Repository einrichten, utilities und docker installieren sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin ====== Services ====== ===== traefik ===== Basierend auf https://goneuland.de/traefik-v2-reverse-proxy-mit-crowdsec-einrichten/ Es wird ein .env-File benutzt. Entrypoints umbenannt in ''web'' und ''websecure'' analog zur Traefik-Dokumentation, der Default-Certificate-Resolver heißt jetzt ''standard'' ===== crowdsec ===== Mit Docker-Bouncer installiert ===== nextcloud ===== ===== dokuwiki ===== Von https://loganmarchione.com/2022/03/the-best-way-to-run-dokuwiki-in-docker/ Die alte Installation mit dem image von linuxserver.io ist beim Watchtower-Update kaputtgegangen. dokuwiki-Updates über das Updater-Plugin in dokuwiki selbst - https://wiki.markus-spring.de/doku.php/computer:netcupserver?do=admin&page=upgrade ==== Maximale Breite für Text in der Bildschirmdarstellung ==== .dokuwiki { max-width:1280px; margin:auto } ===== watchtower ===== email notification funktioniert noch nicht ===== mailserver ===== Installation folgt https://docker-mailserver.github.io/docker-mailserver/latest/examples/tutorials/basic-installation/ ==== dkim ==== dkim keys liegen in ''~/docker/mailserver/docker-data/dms/config/opendkim/keys//mail.txt''. Mit folgendem Perl-Einzeiler in die richtige Form für z.B. cloudflare überführen: cat mail.txt | perl -ne '$_=~s/"\s+$|^\s+"|^.*?\( "|" \).*?$//g; print $_' ==== sieve ==== Port 4190 ist auf dem Server nicht erreichbar (traefik?), deshalb müssen die Sieve-Filter mit dem Emacs direkt bearbeitet werden: ''/ssh:r-netcup:/home/springm/docker/mailserver/docker-data/dms/mail-data/markus-spring.de/me/sieve/default.sieve'' (me may vary...) === Sieve-Befehl ausführen === docker exec -it mailserver /usr/bin/sieve-filter -u 'logs@markus-spring.de' -e -W -vv \ -C /var/mail/markus-spring.de/logs/home/.dovecot.sieve Inbox === Gesendete Mails entsprechend Filterregeln in Ordner transportieren === Python-Skript zum Umschreiben der Filterregeln und zur Ausführung in das Verzeichnis ''~/docker/mailserver/docker-data/dms/python'' legen und per cron des mailservers ausführen. Hierzu crontab-file in ''~/docker/mailserver/docker-data/dms/cron'' ablegen. */10 * * * * docker /usr/local/python/distribute_sent_mails.py>/dev/null ===== Sicherheitsprüfung webserver ===== perl ~/perl/nikto/program/nikto.pl -h https://markus-spring.info ====== IP/DNS/DMARC-Check ====== * https://dnschecker.org/spf-record-validation.php ===== Ideen / Links =====