MultiUser
Anmeldungsdatum: 21. Juni 2009
Beiträge: 159
Wohnort: Schleswig-Holstein
|
Moin Leute, bin noch relativ blutiger Anfänger bei Ubuntu Server, zumindest was Apache angeht. Ich habe einen Ubuntu Server 14.04 auf einem kleinen Server laufen. Der Server ist hier im Heimnetzwerk und hängt an einer FritzBox. Port 80 ist von außen erreichbar, DDNS per FritzBox eingerichtet (Subdomain bei Shared Hosting). Den Apache habe ich schon mit "ServerName localhost" in der apache2.conf von der Fehlermeldung beim restart oder reload befreit. Ich möchte nun einige Dienste auf dem Server per Subdomain erreichbar machen und den Server auch mit www. ansprechbar machen. Da ich bisher localhost verwendet habe, dachte ich, dass ich einfach einen Alias in dem <VirtualHost *:80> einrichte: www.localhost
Klappt natürlich nicht. Und das bringt mich zu der Frage wie ich das hinbekommen kann, aber auch noch vielmehr: Ich scheine da was vom Konzept her einfach nicht zu verstehen: Es wird immer in der Doku von Domains gesprochen, aber ich habe keine Domain in dem Sinne. Ich habe einen Hostname vom Server, eine interne IP vom Server (192.168. ...), die FritzBox hat ne öffentliche Adresse, DDNS ist eingerichtet und das war's. Was zum Teufel sollte ich beim Apache denn anderes als localhost oder test eintragen und was muss ich tun, damit www. als Alias läuft und neue Subdomains mit vhost anlegen kann? Wenn mir da jemand auf die Sprünge helfen und mir das verständlich machen könnte wäre ich sehr dankbar. Ich habe mich jetzt schon ne Weile durch's Netz gewühlt...
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21833
Wohnort: Lorchhausen im schönen Rheingau
|
Hast Du denn einen DNS-Eintrag www, der auf deinen Server zeigt? Oder eine entsprechende Hosts-Datei auf dem aufrufenden PC?
|
MultiUser
(Themenstarter)
Anmeldungsdatum: 21. Juni 2009
Beiträge: 159
Wohnort: Schleswig-Holstein
|
Die FritzBox führt den Server mit Hostname und IP auf. DNS macht die FritzBox selbst und der Server holt sich von ihr eine (in der FritzBox fest eingestellte) IP via DHCP. Den Rechnern im LAN (und den Rechnern über's Internet per Port Forwarding) ist der Server also bekannt, bzw. der Hostname wird aufgelöst. Zum Verbinden via SSH oder HTTP brauche ich auf dem Client immer nur den Hostname. Einträge in den hosts-Dateien der Clients will ich nicht machen. Es soll ohne Client-Modifikationen funktionieren. Was ich nicht verstehe ist, warum ich einen DNS-Eintrag auf www brauche (mal abgesehen davon, dass ich nicht wüsste wie ich den in der FritzBox anlegen müsste, außer direkt per SSH und dann irgendwas unter der Haube zu verbiegen). Reicht es denn nicht, wenn der Server an sich per IP und Hostname bekannt ist und der Client beim Server anfragt und der Server dann die Subdomain intern auf z.B. ein anderes RootDirectory weiterleitet? Zumindest dachte ich immer, dass das so funktioniert. Client → Server-Hostname → Server behandelt die Subdomain-Anfrage intern. Wenn nicht: Wie funktioniert das denn dann und was müsste ich machen?
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21833
Wohnort: Lorchhausen im schönen Rheingau
|
gehen wir mal durch, was passiert, wenn Du den webserver ansprichst:
Du tippst den namen (in dem Fall www ) in die Adressleiste Der Browser versucht, den Namen durch einen Eintrag in der hosts, DNS oder einen lokalen hostnamen (klappt nicht immer) aufzulösen Kann der Name zu einer IP aufgelöst werden, verbindet sich der Browser zu dieser IP und sendet den namen als HTTP-Header mit Der angesprochene Server liefert abhängig vom mitgesendeten namen entweder die Site aus oder seine default-Seite
An diesem grob vereinfachten Beispiel siehst Du, dass Du an 2 Stellen eingreifen musst. bei 2. musst Du auf irgendeine Art und Weise dem aufrufenden Rechner klar machen, dass "www" mit der IP deines Servers aufgelöst werden muss. Bei 4. musst Du dann einen vhost definieren, der diese Anfrage entgegennimmt, wobei dir der default-vhost reicht, wenn ich dich richtig verstehe
|
mandrake1988
Anmeldungsdatum: 25. Dezember 2008
Beiträge: 68
Wohnort: Berlin
|
Hi, Mit einer öffentlichen Subdomain von einem dynamic DNS Anbieter kannst du genau diese eine Adresse einer dynamischen IP zuordnen - das war und ist der Zweck dieser kostenlosen Angebote. Dann interessiert der interne Hostname oder die interne IP aber niemanden und mit Aliasen/Virtual Hosts wirst du rein garnichts erreichen. Willst du mehrere Dienste anbieten, Subdomains benutzen und und und brauchst du eine statische IP-Adresse für deinen Anschluss (gibt es z.B. für Firmen als Business-Angebot schon lange) einen gemieteten/gehosteten Server, welcher mit statischer IP in einem Rechenzentrum betrieben wird eines der Plus-Pakete von dynamic DNS Anbietern, die dir eigene DNS-Verwaltung und Wildcard-Domains erlauben, am besten mit einer eigenen Domain - die werden aber definitiv was kosten (20-25$ pro Jahr ca)
Dann kannst du dem Apachen jede einzelne Subdomain entweder als Alias oder als eigener virtueller Host kenntlich machen. Wenn du sowas nicht willst vergiss dein Vorhaben wieder, dann wirst du das nur mit ganz viel Ahnung und nem total übertriebenen Aufwand hinbekommen - das gibt dann aber ein großes Gefrickel. Grüße, mandrake
|
MultiUser
(Themenstarter)
Anmeldungsdatum: 21. Juni 2009
Beiträge: 159
Wohnort: Schleswig-Holstein
|
redknight schrieb: Browser versucht, den Namen aufzulösen
Nur als Verständnisfrage:
Es ist also nicht so wie ich es immer angenommen hatte, dass der Browser den Hostnamen oder die Haupt-Domain aufzulösen versucht, sich dorthin verbindet und dann einfach nur die Subdomain beim Server anfragt, sondern die Subdomain als eigenständige "Domain" betrachtet?
Sprich: serverhostname und www.serverhostname sind für den Browser zwei vollkommen unterschiedliche "Domains"? Also so unterschiedlich wie example.com und example.de? Den Punkt 4. möchte ich in der Apache-Config machen. Das müsste, wenn ich das richtig verstanden habe, also auch mit www.localhost hinbekommen bzw. www.serverhostname? Punkt 2... hm... Ich müsste also irgendwie den DNS der FritzBox um diesen Eintrag ergänzen, wenn ich das richtig sehe...?
|
MultiUser
(Themenstarter)
Anmeldungsdatum: 21. Juni 2009
Beiträge: 159
Wohnort: Schleswig-Holstein
|
mandrake1988 schrieb: Mit einer öffentlichen Subdomain von einem dynamic DNS Anbieter
In diesem Fall bietet mir mein Hoster (Shared Hosting) nur die Möglichkeit, DDNS auf eine Subdomain meiner bei dem Hoster liegenden DE-Domain zu legen, was ich derzeit nutze. Server hinter der FritzBox spreche ich über verschiedene Ports an, die dann von der FritzBox auf die entsprechenden Server auf Port 80, usw. umgeleitet werden. Statische IP-Adresse werde ich bei meinem Internetprovider in dieser Form nicht kosteneffizient bekommen. Dafür müsste ich viel mehr zahlen. Es dreht sich hier um ein privates Projekt, wenn man möchte um eine private Cloud in verschiedenen Formen. Gehosteter Server scheidet auch aus, der Server muss und soll hier zuhause stehen. Dynamic DNS-Anbieter... hm... Könnte man noch drüber nachdenken, wenn es dann klappt und unabhängig vom Anschluss ist. Da ich meine Domain, die ich verwenden möchte, aber schon bei einem anderen Hoster liegen habe... hm...
Aber dann mal die Frage: Wenn man z.B. ne OwnCloud zu Hause aufsetzen will - das haben doch schon sehr viele Leute gemacht, auf ihrem privaten Anschluss. Wenn außerdem zum Beispiel ein anderer Dienst (separater CalDAV oder so) eine Subdomain benötigt, dann werden das andere Leute doch auch schon so hinbekommen haben...? Ich kann gerade nicht glauben, dass das so ein Akt sein soll, wenn das doch schon so oft gemacht wurde. Wenn ich einen Dynamic DNS-Anbieter nehmen würde bei dem ich eine Domain hosten kann und den Apache entsprechend konfiguriere, also die vhosts einrichte: Dann würde es gehen? Oder muss ich noch etwas beachten?
dann wirst du das nur mit ganz viel Ahnung und nem total übertriebenen Aufwand hinbekommen - das gibt dann aber ein großes Gefrickel.
Nehmen wir mal an, ich würde das Gefrickel in Kauf nehmen... (Ich will ja auch was lernen): Was wären die Stichpunkte mit denen ich mich da beschäftigen müsste, bzw. kurz gefasst die allgemeine Vorgehensweise? Danke für alle Infos!
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21833
Wohnort: Lorchhausen im schönen Rheingau
|
MultiUser schrieb: Nur als Verständnisfrage:
Es ist also nicht so wie ich es immer angenommen hatte, dass der Browser den Hostnamen oder die Haupt-Domain aufzulösen versucht, sich dorthin verbindet und dann einfach nur die Subdomain beim Server anfragt, sondern die Subdomain als eigenständige "Domain" betrachtet?
Sprich: serverhostname und www.serverhostname sind für den Browser zwei vollkommen unterschiedliche "Domains"? Also so unterschiedlich wie example.com und example.de?
Richtig. Subdomains können ja auch auf anderen IPs liegen. Du kannst dem Apache sagen, dass unterschiedliche Namen die gleiche Konfig haben sollen (Stichwort SERVERNAME und SERVERALIAS) Den Punkt 4. möchte ich in der Apache-Config machen. Das müsste, wenn ich das richtig verstanden habe, also auch mit www.localhost hinbekommen bzw. www.serverhostname?
Aber warum? Das macht doch in einem setup ohne Domin überhaupt keinen Sinn
|
MultiUser
(Themenstarter)
Anmeldungsdatum: 21. Juni 2009
Beiträge: 159
Wohnort: Schleswig-Holstein
|
redknight schrieb: Subdomains können ja auch auf anderen IPs liegen
Subdomains sind also demnach (bis auf die Config beim Apache) eigentlich eine reine DNS-Sache. Und wenn ohne Domains gearbeitet wird, dann kann man einen Server nur per Hostname oder IP ansprechen, er kann aber keinen Sub-Hostname haben, sozusagen?
Du kannst dem Apache sagen, dass unterschiedliche Namen die gleiche Konfig haben sollen (Stichwort SERVERNAME und SERVERALIAS)
Genau das wollte ich machen. Nehmen wir mal an, mein Server hat den Hostname "imbissbude" und eine IP 192.168.1.15. Wenn ich eine zweite Site drauf einrichten wollte und diese unter "wurstbude" verfügbar mache, dann müsste ich dem DNS auch klarmachen, dass der fake "hostname" bzw. virtual host "wurstbude" auch auf die 192.168.1.15 zeigen soll, richtig? Ok, da das offenbar alles irgendwie komplizierter wird, hier eine konkrete Anfrage:
Ich möchte Baikal als CalDAV Server installieren und es wurde beschrieben, dass dieser eine Subdomain voraussetzen würde. Der Server (Hardware) an sich erfüllt im lokalen Netz den Zweck von Fileserver, Webseite, Kalender-Server, XMPP-Server, Fotogalerie, etc. Ich möchte aber jetzt mehrere Webseiten verfügbar machen für verschiedene Zwecke. Baikal wird über WebDAV/CalDAV zugreifbar sein. Ich möchte sukzessive diese Dienste alle nicht nur im lokalen Netz nutzen, sondern auch über DDNS von außerhalb. CalDAV auf Smartphone z.B. Nach Möglichkeit hätte ich gerne für jeden Dienst eine "Subdomain" bzw. "Sub-Hostname" oder was auch immer an dieser Stelle möglich ist. Das alles hat nur privaten Anspruch, kein Hosting von Webseiten für andere oder so.
Kann ich das nur über Ports (Samba, XMPP, HTTP über Portweiterleitung, ...) und Unterverzeichnisse im var/www/html/site –> DDNS-Subdomain.eigentlichedomain.de/site bewerkstelligen oder gibt es dafür eine Lösung im Sinne von Sub-Wasauchimmer, welche ich mit dem DDNS nutzen kann? Der DDNS liegt ja schon auf einer Subdomain. Vielen Dank für die Geduld!
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21833
Wohnort: Lorchhausen im schönen Rheingau
|
MultiUser schrieb: Ok, da das offenbar alles irgendwie komplizierter wird, hier eine konkrete Anfrage:
Endlich. Ich wollte dich schon auf Richtig fragen verweisen... Bitte demnächst vollständige Anfragen, danke. Wo hast Du das her? Auf der Projektseite steht nur von "Upload and get startet", sogar von ready to use with only webspace. Warum es einen extra vhost brauchen sollte, wenn das die Werbung ist, verstehe ich nicht. Der Server (Hardware) an sich erfüllt im lokalen Netz den Zweck von Fileserver, Webseite, Kalender-Server, XMPP-Server, Fotogalerie, etc. Ich möchte aber jetzt mehrere Webseiten verfügbar machen für verschiedene Zwecke.
Bis dahin geht es noch ohne vhosts Baikal wird über WebDAV/CalDAV zugreifbar sein. Ich möchte sukzessive diese Dienste alle nicht nur im lokalen Netz nutzen, sondern auch über DDNS von außerhalb. CalDAV auf Smartphone z.B.
siehe unten Dann wirst Du um DNS nicht rumkommen. Sobald es von außen erreichbar ist, geht es aber vom privaten Anspruch weg. Da gelten dann andere Anforderungen, auch was die Sicherheit betrifft.
|
MultiUser
(Themenstarter)
Anmeldungsdatum: 21. Juni 2009
Beiträge: 159
Wohnort: Schleswig-Holstein
|
Danke erstmal! Auch für die Geduld! ☺ redknight schrieb: Dann wirst Du um DNS nicht rumkommen.
Ok, dann werde ich mich damit bei Gelegenheit intensiver auseinandersetzen.
Sobald es von außen erreichbar ist, geht es aber vom privaten Anspruch weg. Da gelten dann andere Anforderungen, auch was die Sicherheit betrifft.
Also, CalDAV, CardDAV, XMPP, eine interne Webseite und Fotogalerie soll für die Familie da sein und sonst nicht von jemand anderem benutzt werden. Die Firewall auf dem Server ist entsprechend dicht gemacht worden und lässt nur noch diese Dienste durch. Port-Weiterleitungen in der FB sind explizit festgelegt, alles andere wird nicht durchgelassen. SSH, Samba, etc. sind nur per VPN möglich, weil auf lokales Netz beschränkt. CalDAV, Webseite, etc. wird nur die Familie Kenntnis von bekommen (sind auch User- und Passwort-geschützt), vom Rest gar keiner. Konkrete Frage 2: Welche Anforderungen muss ich erfüllen bzw. meintest du und welche Sicherheitsvorkehrungen muss ich treffen? (Stichworte?) Gibt es da eventuelle Empfehlungen zur weiteren Lektüre, die sich auf das Wesentliche konzentriert? Danke!
|
MultiUser
(Themenstarter)
Anmeldungsdatum: 21. Juni 2009
Beiträge: 159
Wohnort: Schleswig-Holstein
|
redknight schrieb: Endlich. Ich wollte dich schon auf Richtig fragen verweisen...
Danke auch für diesen Hinweis, ich werde es mir durchlesen, scheint einem beim Strukturieren zu helfen.
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21833
Wohnort: Lorchhausen im schönen Rheingau
|
MultiUser schrieb: Also, CalDAV, CardDAV, XMPP, eine interne Webseite und Fotogalerie soll für die Familie da sein und sonst nicht von jemand anderem benutzt werden.
Heisst "nur von der familie" nun aus dem internen Netz oder auch von extern? 😉 Die Firewall auf dem Server ist entsprechend dicht gemacht worden und lässt nur noch diese Dienste durch.
Das bringt dir aber bei einer php-Lücke herzlich wenig. CalDAV, Webseite, etc. wird nur die Familie Kenntnis von bekommen (sind auch User- und Passwort-geschützt), vom Rest gar keiner.
Wenn die von extern verfügbar sein sollen, findet man sie auch mit Portscans Konkrete Frage 2: Welche Anforderungen muss ich erfüllen bzw. meintest du und welche Sicherheitsvorkehrungen muss ich treffen? (Stichworte?)
Bei php-basierten Anwendungen würde ich
php sauber konfigurieren, zum Stichwort "php-Hardening" finden sich da sicher einige Anleitungen (Schlagwort "open basedir" ) Den apache sauber konfigieren, so dass Du jede webanwendung unter einem einzlenen user laufen lässt, wenigstens aber den php-Teil davon (Schlagwort suexec )
|
xabbuh
Anmeldungsdatum: 25. Mai 2006
Beiträge: 6411
|
redknight schrieb: Den apache sauber konfigieren, so dass Du jede webanwendung unter einem einzlenen user laufen lässt, wenigstens aber den php-Teil davon (Schlagwort suexec )
Heutzutage würde ich da vermutlich eher PHPs FPM nutzen, das es schon von Haus aus unterstützt, Skripte unter unterschiedlichen Nutzern laufen zu lassen.
|
MultiUser
(Themenstarter)
Anmeldungsdatum: 21. Juni 2009
Beiträge: 159
Wohnort: Schleswig-Holstein
|
redknight schrieb: Heisst "nur von der familie" nun aus dem internen Netz oder auch von extern? 😉
Auch von extern (3 Standorte), also übers Internet. ☺
Das bringt dir aber bei einer php-Lücke herzlich wenig.
Wenn die von extern verfügbar sein sollen, findet man sie auch mit Portscans
PHP ist sicher eine Sache, aber wenn ich Dienste von außerhalb nutzen möchte, dann müssen sie ja auch erreichbar sein. Ich versuche schon immer, alles soweit abzusichern wie möglich, also Passwort-Abfragen, HTTPS, FW, etc. Wenn ich was von außerhalb nutzen möchte, dann muss ich doch irgendein Risiko eingehen, welches ich natürlich zu minimieren versuchen kann?
Bei php-basierten Anwendungen würde ich
"php-Hardening"
apache sauber konfigieren
Ok, das kann ich machen um diese Teile zu schützen. In Bezug auf obige Ausführungen:
Was sollte ich außerdem absichern? FW einstellen - klar. Verschlüsselung - klar. PHP und Apache, ok, muss ich dann noch machen. Was sonst noch? Ist PHP denn so anfällig? Ist das bei anderen Sprachen/Anwendungen (asp, jsp, py, perl, ...) nicht so?
Danke nochmal!
|