Monit / Komfort und Sicherheit

tsk

Member
Hallo in die Runde,

ich bereite gerade auf einem lokalen Entwicklungsserver einen neuen Live Server vor. Dieser soll kritische Serverdienste, wie Monit, Postfixadmin und phpmyadmin auf einer eigenen ssl-only Subdomain mit Basic_Auth bieten, die ich nur aktiviere, wenn es etwas zu administrieren gibt. Zusätzlich läuft modsecurity und fail2ban, mit restriktiven Regeln. So weit, so gut.

Monit macht natürlich nur Sinn, wenn es immer läuft. Den Zugriff auf das Web-Interface habe ich per ufw ausschließlich für meine Heimat-IP zugelassen. Bislang läuft Monit noch auf dem Standardport 2812.

Die Fragen:
1) Ist eine Freigabe per Firewall ausschließlich für mich hier ein ausreichender Schutz?
2) Eine Portänderung für Monit erscheint mir sinnvoll. Wäre hier ein privilegierter Port nicht besser?

Die dritte Frage ist eine Komfortfrage, die mein Apache Wissen übersteigt. Gibt es eine Möglichkeit, ein Directory dazu zu bewegen, auf den Monit Port zu "übersetzen"? Soll heißen, ich spreche meinen Vhost wie folgt an:

Code:
https://subdomain.example.com/monit
und dies bildet eine Art Proxy zum Monit Interface? Wäre eine reine Komfortfunktion, aber nice-to-have.

Danke für alle Hilfe

EDIT: Sorry, sehe gerade das es ein eigenes Forum für Monitoring gibt. Sorry für den falschen Ort
 
Last edited by a moderator:

storvi

New Member
Wenn es sich nur um einen einzelnen Server handelt und du nur "ab und zu" mal draufschauen möchtest, wäre auch ein Portforwarding mit SSH möglich.

Dann brauchst du keinen nach außen erreichbaren Webserver anbieten und kannst über SSH-Keys dann stark abgesichert drauf zugreifen.

Vereinfacht würdest du dann auf dem Client ein
ssh -L 1234:localhost:443 username@serverip
absetzen und könntest im Browser dann über https://localhost:1234/monit auf den Server zugreifen (sofern dieser auf localhost:443 lauscht).

Nur mal so als Idee. Warum einen Webserver exponieren, wenn nicht benötigt.
Den Proxy kannst du lokal immer noch aufsetzen, da du so nur 1 Portweiterleitung benötigst.

Gruß
Markus
 

tsk

Member
Das klingt nach einer interessanten Idee. Bisher habe ich Port Forwarding per ssh abgeschaltet. Werde mich da mal weiter einlesen.

Danke für den Tipp
 

tsk

Member
WOW - das ist ja der Hammer. Und ein Ende vieler Sicherheitsbedenken. Einziges Mini-Problem. Ich musste eine Ausnahmeregel wegen eines ungültigen Zertifikats im lokalen Browser einrichten, da das richtige Zertifikat natürlich nicht für "localhost" gilt. Aber damit kann ich leben.

Nochmals 1000 Dank für die hervorragende Idee.
 

nexus

Active Member
Dann brauchst du keinen nach außen erreichbaren Webserver anbieten und kannst über SSH-Keys dann stark abgesichert drauf zugreifen.
Wenn ein vorhandener Webserver für administrative Aufgaben mitgenutzt werden soll, gäbe es auch noch die Möglichkeit, mit Client-Zertifikaten zu arbeiten. Dann hat man auf die administrativen Bereiche nur mit gültigem Zertifikat Zugriff.
Die Variante hat den Vorteil, daß man z.B. einen Browser auf einen USB-Stick packt, den mit einem entsprechenden Client-Zertifikat ausstattet und so von überall geschützten Zugriff auf seine Admintools hat.
 

storvi

New Member
Wenn ein vorhandener Webserver für administrative Aufgaben mitgenutzt werden soll, gäbe es auch noch die Möglichkeit, mit Client-Zertifikaten zu arbeiten. Dann hat man auf die administrativen Bereiche nur mit gültigem Zertifikat Zugriff.
Die Variante hat den Vorteil, daß man z.B. einen Browser auf einen USB-Stick packt, den mit einem entsprechenden Client-Zertifikat ausstattet und so von überall geschützten Zugriff auf seine Admintools hat.
Stimmt - auch eine Möglichkeit.
 

nexus

Active Member
Stimmt - auch eine Möglichkeit.
Vor allem auch eine ziemlich komfortable Lösung, besonders wenn mehrere User Zugriff haben sollen, denn bei deiner Variante müßten diese auch SSH-Zugriff haben, was nicht immer gewünscht ist.
Weiterer Vorteil: Du kannst jederzeit Zertifikate zurückrufen, wenn denn mal jemand keinen Zugriff mehr haben soll.

Wer ganz paranoid ist, läßt für die Admintools noch einen separaten kleinen Webserver auf einem anderen Port laufen und sichert über Zertifikate ab (so mache ich es auf meinen Servern inzwischen durchgehend). Dann hat man sogar noch Zugriff, wenn der eigentliche Webserver aus irgendwelchen Gründen streiken sollte. ;)
 
Last edited by a moderator:

storvi

New Member
Kommt immer darauf an.
Wenn du administrative Tools bedienst hast du häufig "eh" einen SSH-Zugang. Ansonsten bin ich ein Fan von SSH-Keys, welche auf einzelne Aufgaben beschränkt werden (command, no-tty...).

Ans Ziel kommt man mit beiden Lösungen, deine ist vielleicht ein Ticken eleganter :)

Gruß
Markus
 

nexus

Active Member
Ans Ziel kommt man mit beiden Lösungen, deine ist vielleicht ein Ticken eleganter :)
Logisch, es gibt immer mehrere Wege und vom Security-Level nehmen sich beide Löungen auch nicht viel ;)

Es ginge aber auch noch paranoider, wenn man beide Lösungen miteinander kombinieren würde :rolleyes::D
 

tsk

Member
Ich denke, beide Varianten bringen einen gewaltigen Sicherheitsschub, gerade bei exponiert kritischen Diensten. Alleine die Vorstellung, dass jemand ins Monit Interface gelangt, und dann erst mal den ssh Server abschaltet.

Ich habe mich für den ssh Tunnel entschieden. Meine Keys habe ich immer auf einem Stick dabei, wenn ich unterwegs bin. Damit habe ich auch schon früher Server gewartet. Kommt also der Mitnahme eines Client Zertifikats gleich, erfordert aber keinerlei Browsergedöns. Als letzte Sicherheit ist alles auch noch zusätzlich per Basic_Auth abgesichert. Und man kann alles auch per Lynx von der Kommandozeile nutzen.

Auch meine Subdomain kann ich abschalten. Es bleibt ein "localhost". Bleibt die Frage, ob mir ssl an dieser Stelle noch irgend etwas bringt.
 

Top