On Tue, 10 Aug 2021 14:07:49 +0200 Werner Franke werner_franke@arcor.de wrote:
Apache: Vom Internet soll eigentlich nur Web-Seiten über https erreichbar sein.
Der Apache ist jedoch auch für cgi-bin/Perl konfiguriert. Das brauche ich aber nur im Intranet. Kann man irgendwie verhindern, dass er auf diesbezügliche Anfragen aus dem Internet antwortet bzw. irgendwie reagiert ?
Das cgi-bin Zeugs nur für http konfigurieren aber nicht für https?
Ich gehe mal davon aus, dass Nextcloud kein Perl braucht.
Wenn sowas wie Container keine Option (oder Overkill) ist, würde ich mit IP-based virtual hosting arbeiten. Auf dem Linux-Server richtest Du ein IP-Alias und in der Apache-Konfiguration virtual-host-Konfigurationen für jede IP-Adresse ein. "Default" wird deaktiviert. Die eine IP-Adresse und somit die damit verbundene virtual-Host-Konfig ist per Port-Forward über die Fritzbox von außen erreichbar und dort richtest Du die Nextcloud-Konfiguration ein. Die andere ist nicht von außen erreichbar und dort richtest Du Deine perl-Applikation ein. Am besten gibst Du beiden noch einen eigenen Namen im internen DNS-Server, so vorhanden. Wenn Du Letencrypt verwendest, dann bietet er Dir bei der initialen Einrichtung beide vhost-Konfigs an und da musst Du halt nur die für externen Zugriff auswählen.
Hinsichtlich ssh solltest Du nur public key authentication erlauben. Bei "root" vielleicht gar kein ssh-Login erlauben und stattdessen über persönliche Accounts als Zwischenstation arbeiten.
Wenn Du intern unbedingt weiterhin mit Passwort arbeiten willst oder sonstwie ssh-Restriktionen auf externe Zugriffe beschränken willst, wird's etwas aufwendiger, geht aber im Prinzip auch.
Einen schönen Überblick über die unerlaubten Zugriffe liefert Dir Logwatch. Da siehst Du auch, welche User "bekannt" sind und man sieht auch erfolgreiche ssh-Logins, die vielleicht gar nicht erwünscht waren. Das failed-Login-Rauschen reduziert man z.B. über denyhosts - z.B. drei vergebliche Login-Versuche und die IP wird für mehrere Tage auf tcp-Level gesperrt. Andere nehmen fail2ban, welches auch für http/https geeignet ist.
Gruß, Tobias.