Apache nicht übers Intranet erreichbar

mschlegel

Erfahrenes Mitglied
Noch eine Linux-Frage

Auf dem Linux-Server läuft auch ein Apache mit einer Faxsoftware. Komischerweise kann ich den Apache (über Port 80) nur direkt von selbigen aus erreichen. Alle anderen Rechner im Netzwerk haben keinen Zugriff.

iptables -L INPUT sagt mir folgendes (die Firewall war jetzt mal für mich das naheliegenste)
Code:
Marvin:/home/remote # iptables -L INPUT
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
input_ext  all  --  anywhere             anywhere            
input_ext  all  --  anywhere             anywhere            
input_ext  all  --  anywhere             anywhere            
LOG        all  --  anywhere             anywhere            limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-IN-ILL-TARGET ' 
DROP       all  --  anywhere             anywhere

Also eigentlich sollte es reichen in einem Rechner im Netzwerk http://192.168.0.110 einzugeben...
 
Der Apache Server ist aber nicht nur an localhost gebunden, oder?

Was sagen denn die beiden Befehle:
Bash:
netstat -tlpn | egrep "apache|:80"
und
Bash:
grep -i -R "Listen" /etc/apache*/*

Dein Iptables Output ist auch nicht so aussagekräftig.
Dafür wär eine gesprächigere Ausgabe besser:
Bash:
 iptables -v -n -L INPUT
und da eine zusätzliche Chain noch definiert wurde auch noch:
Bash:
 iptables -v -n -L input_ext

Ich würd zuerst mal nachsehen, ob der Apache richtig konfiguriert ist. Danach kann man über die Firewallregeln überprüfen.
Firewallregeln öffentlich zu posten ist immer eine Sicherheitslücke. Im Zweifelsfall kann mans auch per PN regeln.
 
Also konfiguriert hab ich da bis jetzt noch nix weiter, nur ein Virtueller Host


netstat -tlpn | egrep "apache|:80"
Code:
tcp        0      0 :::80                   :::*                    LISTEN      18356/httpd2-prefor

grep -i -R "Listen" /etc/apache*/*
Code:
/etc/apache2/httpd.conf:#  |-- listen.conf . . . . . . . . . . . . .  IP adresses / ports to listen on
/etc/apache2/httpd.conf:#  |-- listen.conf
/etc/apache2/httpd.conf:# IP addresses / ports to listen on
/etc/apache2/httpd.conf:Include /etc/apache2/listen.conf
/etc/apache2/listen.conf:# Listen: Allows you to bind Apache to specific IP addresses and/or
/etc/apache2/listen.conf:# http://httpd.apache.org/docs-2.2/mod/mpm_common.html#listen
/etc/apache2/listen.conf:# Change this to Listen on specific IP addresses as shown below to
/etc/apache2/listen.conf:# When we also provide SSL we have to listen to the
/etc/apache2/listen.conf:#       Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443"
/etc/apache2/listen.conf:#Listen 12.34.56.78:80
/etc/apache2/listen.conf:#Listen 80
/etc/apache2/listen.conf:#Listen 443
/etc/apache2/listen.conf:Listen 80
/etc/apache2/listen.conf:           Listen 443
/etc/apache2/listen.conf~:# Listen: Allows you to bind Apache to specific IP addresses and/or
/etc/apache2/listen.conf~:# http://httpd.apache.org/docs-2.2/mod/mpm_common.html#listen
/etc/apache2/listen.conf~:# Change this to Listen on specific IP addresses as shown below to
/etc/apache2/listen.conf~:# When we also provide SSL we have to listen to the
/etc/apache2/listen.conf~:#       Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443"
/etc/apache2/listen.conf~:#Listen 12.34.56.78:80
/etc/apache2/listen.conf~:#Listen 80
/etc/apache2/listen.conf~:#Listen 443
/etc/apache2/listen.conf~:Listen 80
/etc/apache2/listen.conf~:          Listen 443
/etc/apache2/vhosts.d/vhost.template:# NameVirtualHost statements can be added to /etc/apache2/listen.conf.
/etc/apache2/vhosts.d/vhost-ssl.template:# NameVirtualHost statements should be added to /etc/apache2/listen.conf.

Also wenn ich das recht verstehe, lauscht er auf 80, sollte doch stimmen.

Danke
 
Ja auf Port 80 und auf allen IPs. Also liegts an der Firewall.

Ist das eine die deine Distribution mitbringt, oder eine selbst installierte?
 
Die war schon dabei und ich hab da bis jetzt auch noch nichts dran geändert.

Gibts vielleicht eine Standardregel für iptables wo man den Apache auf Port 80 freigeben kann (für alle Rechner im Netzwerk 192.168.0.0)?

Danke
 
Ja gibts schon, aber ich würd das über das Firewalltool bei deiner Konfiguration einstellen.
Bei SuSE z.B. im Yast.

So kannst du fürs laufende System den Port freischalten. Vorrausgesetzt die ausgehenden Pakete sind erlaubt.
Bash:
# Für 192.168.0.x
iptables -I INPUT 1 -p tcp -s 192.168.0.0/24 --dport 80 -j ACCEPT
# oder für 192.168.x.x
iptables -I INPUT 1 -p tcp -s 192.168.0.0/16 --dport 80 -j ACCEPT
 
Danke, der Apache meldet sich jetzt

Ich hatte es schon über Yast probiert, allerdings ohne Erfolg und ich wollte dann auch mit meiner Unwissenheit nichts kaputt machen :)

Nur ein Problem bleibt noch: Der virtuelle Host funktioniert noch nicht von außen, also http://fax soll entgegengenommen werden. Direkt auf dem Server funktionierts?
 
Kannst du am Client den Host fax pingen?

Ich vermute schonmal jetzt ein Problem mit der Namensauflösung.
Entweder du trägst im DNS nen neuen Namen "fax" ein, oder Du editierst manuell auf jedem Client die hosts Datei.
Unter Linux in /etc/hosts unter Windows in %SYSTEMROOT%\system32\drivers\etc
Eventuell musst du da die hosts.sam zuerst in hosts umbenennen.
 
Hmmm ok, da ich am Router keine DNS-Einträge ändern kann hab ich den Virtuellen Hosts wieder auf * geändert.

Anstatt der IP gibt man jetzt halt den Servernamen ein, das ist auch noch komfortabel genug und da auch nur eine Anwendung auf dem Apache läuft ist das auch kein Problem.

Nochmal Danke für deine Hilfe.
 
Ich muss nochmal nachfragen.

Die Firewallregel ist nach einen Neustart des Rechners nicht mehr vorhanden und ich muss sie erneut eingeben.
Wo muss ich diese Regel eintragen damit sie erhalten bleibt?

Danke
 
Zurück