Hi Tobias, Am 10.08.21 um 19:53 schrieb Tobias Crefeld:
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. Nein, Nextcloud braucht das nicht, aber ich habe eine kleine Anwendung gemacht und mit Perl kenne ich mich am Besten aus.
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.
Soweit ich das oben verstehe soll der Server also 2 verschiedene IPs haben, oder ist das nur in der Apache Konfig? Einen DNS Server habe ich aber nicht. Nur die Fritzbox bzw die hosts-files. Ich habe im Büro zwar einen Apache (2.2) betreut und der hatte auch mehrere vhosts, aber was man da so angeben kann weiss ich nicht. Ich war froh dass es dann so wie ich es konfiguriert hatte, funktioniert hat. Gibt es irgendwo ein Beispiel für sowas ?
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.
SSH ist nur mit key erlaubt und für root gar nicht.
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.
vielen Dank,