====== 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 =====