Page 1 of 1
Keyhelp Zugriff auf IP beschränken
Posted: Thu 31. Mar 2022, 14:20
by v3ng
Hi,
Wir nutzen Keyhelp rein headless über die API Schnittstelle.
Zugriffe finden demnach ausschließlich seitens des Admins statt.
Aus diversen Gründen möchten wir das Login Form beim Aufruf des Hostnamen/ IP Adresse nur ausliefern, wenn die request von einer zuvor definierten IP stammt, ansonsten soll lediglich der statuscode 403 zurückgegeben werden.
Prinzipiell ja recht einfach mittels einer htaccess bzw dem vHost möglich.
Die Frage ist nur wie ich das auch updatesicher hinbekomme, da Keyhelp standardmäßig ja recht viel überschreibt.
Mir ist durchaus bewusst, dass der Admin Login auf eine IP begrenzt werden kann, ich möchte allerdings Keyhelp prinzipiell nur ausliefern, wenn der request von der richtigen IP kommt
Hat hier jemand eine Idee?
Danke!
Re: Keyhelp Zugriff auf IP beschränken
Posted: Thu 31. Mar 2022, 15:58
by Tobi
Nicht probiert, sollte aber funktionieren.
Du beschränkst den Zugriff aufs Panel auf die SERVER-IP und legst einen eigenen VHost als ReverseProxy an.
Dann kannst du den Zugriff beliebig manipulieren.
Es könnte sein, dass KeyHelp sich weigert die SERVER-IP zu speichern, weil du dich ja dann selbst aussperren würdest.
In dem Fall erstmal deine aktuelle IP eintragen und anschließend in der DB auf die SERVER-IP ändern.
Viel Spaß beim Basteln!
Re: Keyhelp Zugriff auf IP beschränken
Posted: Thu 31. Mar 2022, 17:35
by v3ng
Ich würde die IP einfach auf die IP unseres VPNs beschränken, ein reverse Proxy sollte da ja nicht nötig sein.
Die Frage wäre nur, wie ich das am besten konfiguriere, dass das auch nach updates oder config rewrites bestehen bleibt.
Vielleicht hat @Alexander hier eine Idee?

Re: Keyhelp Zugriff auf IP beschränken
Posted: Thu 31. Mar 2022, 17:44
by Jolinar
Wenn es nun nicht unbedingt der 403er beim unauthorisierten Zugriffsversuch sein muß, könntest du das eventuell auch über die 2FA abfangen...

Re: Keyhelp Zugriff auf IP beschränken
Posted: Fri 1. Apr 2022, 09:32
by Alexander
Vielleicht auch nur einfach mittels Cronjob alle paar Stunden überprüfen, ob eine .htaccess Datei in /home/keyhelp/www/keyhelp/ exitiert.
Falls nein, dann legst du sie an mit dem Inhalt "Nur IP XY darf zugreifen". Im Zuge eines KeyHelp-Updates wird der genannte Ordner ausgetauscht, deswegen legst du diesen Cronjob am Besten so, dass er immer nach deinem eingestellten Control-Panel-Update Wartungsintervall + 1 Stunde läuft.
Re: Keyhelp Zugriff auf IP beschränken
Posted: Fri 1. Apr 2022, 12:01
by v3ng
Alexander wrote: ↑Fri 1. Apr 2022, 09:32
Vielleicht auch nur einfach mittels Cronjob alle paar Stunden überprüfen, ob eine .htaccess Datei in /home/keyhelp/www/keyhelp/ exitiert.
Falls nein, dann legst du sie an mit dem Inhalt "Nur IP XY darf zugreifen". Im Zuge eines KeyHelp-Updates wird der genannte Ordner ausgetauscht, deswegen legst du diesen Cronjob am Besten so, dass er immer nach deinem eingestellten Control-Panel-Update Wartungsintervall + 1 Stunde läuft.
Danke, das wäre natürlich eine Idee!
Folgendes funktioniert soweit prima, die Frage wäre nur, wie ich bei Requests zur API allow from all setzte, kennt da jemand spontan den Syntax?
Code: Select all
order deny,allow
deny from all
allow from IPV4
allow from IPV6
Re: Keyhelp Zugriff auf IP beschränken
Posted: Fri 1. Apr 2022, 12:05
by Tobi
v3ng wrote: ↑Fri 1. Apr 2022, 12:01
Folgendes funktioniert soweit prima, die Frage wäre nur, wie ich bei Requests zur API allow from all setzte, kennt da jemand spontan den Syntax?
https://letmegooglethat.com/?q=allow+si ... e+htaccess
Re: Keyhelp Zugriff auf IP beschränken
Posted: Fri 1. Apr 2022, 12:34
by v3ng
Naja das problem ist ja, dass die <Directory> setting in der htaccess nicht funktioniert, ich also wohl auf regex zurückgreifen muss.
Edit:
Ich habe jetzt erstmal zusätzlich allow from all in die bestehende .htaccess im api folder gepack.
Wenn jemand aber eine Idee hat, wie der Syntax aussehen muss, um in der keyhelp/.htaccess requests an die API generell zu akzeptieren gerne raus damit
Code: Select all
# Restrict access to Keyhelp panel to IP
# Allowed IPs
SERVER_IPV4=""
SERVER_IPV6=""
echo "order deny,allow
deny from all
# Allow VPN IP
allow from $SERVER_IPV4
allow from $SERVER_IPV6" > /home/keyhelp/www/keyhelp/.htaccess
# Allow from all for API requests
echo "allow from all" >> /home/keyhelp/www/keyhelp/api/.htaccess