Apache-Server lauscht nicht auf Port 80

Apache-Server lauscht nicht auf Port 80

Sowohl meine Arbeitsstation als auch mein Server befinden sich im selben LAN-Segment und können sich gegenseitig anpingen (und ich kann von meiner Arbeitsstation aus problemlos per SSH auf den Server zugreifen).

Habe eine Standardinstallation von Apache auf CentOS 7 durchgeführt.

Habe den Dienst gestartet, kann aber von meiner Arbeitsstation aus nicht zu meinem Webserver navigieren.

NMAP-Berichtsport 80 wird gefiltert.

Ich habe SELinux auf dem Server deaktiviert, aber der Port wird immer noch gefiltert.

Hier ist, was netstat -l mir gibt:

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN
tcp6       0      0 [::]:http               [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN
raw6       0      0 [::]:ipv6-icmp          [::]:*                  7

Merkwürdigerweise zeigt netstat -na an, dass Port 80 lauscht, allerdings für IPv6 (obwohl ich irgendwo gelesen habe, dass das nicht unbedingt bedeutet, dass er nicht auch auf IPv4 lauscht).

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN
tcp        0     64 10.1.1.1:22             10.2.2.2:44939        ESTABLISHED
tcp6       0      0 :::80                   :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:25                  :::*                    LISTEN
raw6       0      0 :::58                   :::*                    7

Hier sind die relevanten Teile meiner /etc/httpd/conf/httpd.conf (die ich nicht geändert habe)

<Directory />
    AllowOverride none
    Require all denied
</Directory>

<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

<Directory "/var/www/html">

    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<Files ".ht*">
    Require all denied
</Files>

Der Dienst scheint ordnungsgemäß zu laufen:

httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
   Active: active (running) since Fri 2015-10-02 08:36:40 EDT; 1h 27min ago
  Process: 23294 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 23302 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─23302 /usr/sbin/httpd -DFOREGROUND
           ├─23303 /usr/sbin/httpd -DFOREGROUND
           ├─23304 /usr/sbin/httpd -DFOREGROUND
           ├─23305 /usr/sbin/httpd -DFOREGROUND
           ├─23306 /usr/sbin/httpd -DFOREGROUND
           └─23307 /usr/sbin/httpd -DFOREGROUND

Warum lauscht es nicht auf Port 80?

Antwort1

Da Michael Hampton Ihren Beitrag kommentiert hat, würde ich wetten, dass Ihre Firewall (iptables) Ihren Datenverkehr blockiert.

Deaktivieren Sie es entweder ( systemctl disable firewalld) oder weisen Sie es an, Datenverkehr auf Port 80 zuzulassen ( firewall-cmd --zone=public --add-port=80/tcp --permanent).

Antwort2

Die Tatsache, ob Port 80 gefiltert ist oder nicht, ist für die Netstat-Ausgabe nicht relevant. Selbst wenn iptables so konfiguriert ist, dass Verbindungen zu diesem Port blockiert werden (DROP oder REJECT), sollten Sie sehen, dass Apache auf Port 80 lauscht.

Der Punkt ist, dass httpd so konfiguriert ist, dass es sowohl auf IPv4- als auch auf IPv6-Adressen (0.0.0.0 und ::) hört, und in diesem Fall zeigt netstat nur die IPv6-Adresse an. Die Erklärung finden Sie hier:

https://bugs.launchpad.net/ubuntu/+source/net-tools/+bug/657270

Kurz gesagt: In diesem Fall kann die IPv6-Verbindung BEIDE Protokolle bedienen und daher wird nur ein Socket geöffnet. Und da nur ein Socket geöffnet ist, wird in der Netstat-Ausgabe nur ein Socket angezeigt.

Antwort3

Überprüfen Sie die iptables-Regeln ( iptables-save) und sehen Sie nach, ob Port 80 zulässig ist.

Zu Testzwecken können Sie service iptables stopoder tun iptables -F.

verwandte Informationen