Hallo zusammen,
ich weiß das Forum ist eigentlich für Ubuntu gedacht, mein Problem läuft zwar auf nem Pi mit Wheezy ich würde mich aber freuen, falls mir trotzdem jemand helfen könnte:
Ich möchte gerne einen kleinen Home-Webserver auf meinem Raspberrypi zum Laufen bringen.
Leider gibt's bei Unitymedia nur noch Dualstack-Lite für Neukunden und deswegen kriegt nichtmal mein Router eine IPv4-Adresse fürs Internet. Ein IPv6-Setup möchte ich aber nicht machen. Da ich noch einen V-Server mit einer IPv4 Adresse habe, habe ich auf diesem einen OpenVPN-Server installiert und den Raspberrypi als Client verbunden.
Mit der OpenVPN Option "redirect-gateway def1" kann man sämtlichen Traffic des Clients über den Server laufen lassen. Am Server ist IPv4-Forward an und der ankommende Traffic wird per MASQUERADE weitergeleitet. Der Server fungiert quasi als Router. Damit der Webserver auf dem Pi auch über die IP vom V-Server erreichbar ist muss natürlich der HTTP-Port per DNAT geforwardet werden. Als Webserver läuft übrigens Apache, daran liegts aber glaube ich nicht.
Damit, dachte ich, sollte es laufen. Tat es am Anfang auch, doch nachdem ich die ersten Grafiken einbaute liesen diese sich nicht bzw. nur sehr langsam laden. Grafiken je nach Format lassen sich alle ab ca. 2KB~ nicht mehr laden. Was darunter liegt dauert sehr lange (ca. 1-2 Minuten) wird aber letztendlich angezeigt.
Über den Apache error.log lässt sich nichts besonderes herauslesen und der access.log zeigt nur, dass die HTTP-Anfragen zwar ankommen ,die Anfragen für die Grafiken aber erst wesentlich später. Das passiert wenn man den Webserver per Internet oder VPN aufruft. Lokal allerdings werden die Grafiken einwandfrei angezeigt und geladen, was mich zu der Annahme führt, dass es irgendein Netzwerkproblem sein könnte.
iptables des VPN-Servers:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT udp -- anywhere anywhere udp dpt:openvpn fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere Ubuntu-1204-precise-64-minimal tcp dpt:http Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http Chain fail2ban-ssh (1 references) target prot opt source destination DROP all -- 221.229.166.98 anywhere RETURN all -- anywhere anywhere iptables -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- anywhere anywhere tcp dpt:http to:10.8.0.10:80 Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 10.8.0.0/24 anywhere |
iptables des Pi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT tcp -- anywhere anywhere tcp dpt:http Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:http Chain fail2ban-ssh (1 references) target prot opt source destination RETURN all -- anywhere anywhere |
Wie man sieht habe ich den HTTP Port überall nochmal seperat geöffnet. Ich denke eigentlich müsste es reichen, das auf dem VPN-Server zu tun. Ich bin zwar kein Experte, hätte aber gedacht, dass ich das zum Laufen bringe. Ich hoffe jemand kann mir vielleicht weiterhelfen.
Vielen Dank für eure Antwort.