Der Dienst, der auf einem bestimmten Port ausgeführt wird, funktioniert von jeder Website ... Wie kann ich das deaktivieren?

369
Xemrer

Ich führe also mehrere Webseiten auf meinem VPS aus und verwende die virtuellen Hosts von Apache, um sicherzustellen, dass alle Benutzer, die zu meiner Website geleitet werden, an die richtige Website gesendet werden. Leider habe ich nach dem Einrichten einer Jenkins-Instanz aufgefallen, dass ich zu jeder dieser Domänen wechseln kann, die auf meine VPS unter verschiedenen vhosts verweisen und 8080 an sie anhängen, um zum Jenkins-Server zu gelangen. Ich möchte einen Weg finden, um dies zu verhindern und mir zu erlauben, nur über ip: port auf den Jenkins-Server zuzugreifen. Jede Hilfe wird sehr geschätzt!

Gibt es eine Möglichkeit, die Verbindungsversuche mit ip: 80 aufzugeben? Vielen Dank.

0
Deaktivieren Sie 8080 und erlauben Sie nur 443 für HTTPs-Verkehr. Richten Sie dann einen Reverse-Proxy ein, der Ihre Jenkin-Installation grundsätzlich an einen bestimmten URI weiterleitet. Beispielsweise erhält "https: // jenkin.example.com" den Reverse-Proxy auf "https: //example.com: 8080" und fügt eine Art Auth vor ihm hinzu oder lässt nur bestimmte IPs in Apache zu . shinjijai vor 6 Jahren 0
Fügen Sie eine Firewall-Regel (iptables) hinzu, um den Zugriff auf Port 8080 zu verweigern (es sei denn, die Quelle ist localhost oder der Webserver). davidgo vor 6 Jahren 0

1 Antwort auf die Frage

0
Anaksunaman

Ich kann zu jeder dieser [...] Domänen gehen und sie anhängen :8080, um zum Jenkins-Server zu gelangen. Ich möchte einen Weg finden, um dies zu verhindern und mir zu erlauben, nur über Jenkins auf den Server zuzugreifen ip:port.

Wie in den Kommentaren angedeutet, besteht der erste Schritt darin, den öffentlichen Zugriff auf zu blockieren your_ip:8080(Jenkins kann noch intern an diesem Port laufen). Wie Sie dies tun, hängt wahrscheinlich von Ihrem VPS ab (auch wenn Ihre iptables- oder Firewall-Schnittstelle ein guter Startpunkt ist).

Der zweite Schritt besteht darin, den "standardmäßigen" virtuellen Apache-Host für Port zu :XXeinem Reverse-Proxy (unter Verwendung des Apache- Mod_proxy- Moduls) zu machen und das Proxy-Ziel als (lokale) Referenz auf Jenkins festzulegen, der auf Port arbeitet :8080. Dieser Reverse Proxy würde den Zugang zu Jenkins ermöglichen, auch wenn er sonst öffentlich gesperrt wäre. Sie werden wahrscheinlich besonders an den offiziellen Wiki-Notizen von Jenkins interessiert sein, wenn Sie Jenkins hinter Apache laufen lassen .

Anmerkungen

  • Der Grund, aus dem Sie möchten, dass Ihr Reverse-Proxy der "Standardhost" für einen bestimmten Port ist, besteht darin, dass bei Apache und namenbasierten virtuellen Hosts dieser "Standardhost" (normalerweise der erste virtuelle Host mit Port :XX) zurückgegeben wird, wenn eine IP-Adresse angegeben ist angefordert.

  • Der Port für Ihren Reverse Proxy wird durch Ihren virtuellen Hosteintrag definiert. Wenn Apache und Jenkins jedoch auf demselben Server arbeiten, kann dieser Port nicht derselbe sein, auf dem sich Jenkins befindet (z :8080. B. ).

  • Vergessen Sie nicht, die richtige ListenAnweisung für den Port :XXin Ihrer Apache-Konfiguration hinzuzufügen .

  • Wenn Sie einen Port :443(SSL) verwenden, sollte Ihr Zertifikat für diesen Port Ihre IP-Adresse als gültigen Namen enthalten. Andernfalls erhalten Sie wahrscheinlich Warnmeldungen.


Um klar zu sein, Port :XXist nur ein Beispiel / Platzhalter und bedeutet einen beliebigen Port, den Sie auswählen.


Gibt es eine Möglichkeit, die ich auch versuchen kann, eine Verbindung ip:80herzustellen?

Habe Apache nur Listenan anderen Ports als :80. Dadurch wird jedoch der normale :80HTTP-Zugriff auf Ihre Websites unterbrochen (dh, wenn ein Benutzer nicht explizit https://in seinen Browser eingibt oder einen expliziten https://Link aufruft, kann er keine Verbindung herstellen).

Als Kompromiss können Sie dasselbe Verfahren (mit einem "Standard" -Host auf Port :80) verwenden, um Anforderungen an Ihre Hauptsite oder an einen anderen Ort (z https://www.google.com. B. ) umzuleiten (und nicht als Proxy ).