I'm setting up a Linux (Redhat 9) web server using Apache 2.0 and I'm having difficulty getting Apache to receive HTTP requests on port 80 (actually, on any port under 1024) from non-localhost machines. That is, I can view my test page on my web server using http://localhost:80, however, if I tell Apache to listen on a port higher than 1024 (such as 8000) I can view my web server's test page from the Internet.
Here are the things I have tried so far:
1. Verified that the httpd daemon is started as "root". If it is not started as root then the default security policy prevents people from accessing ports below 1024.
2. When Apache is told to listen on port 80 and I try to browse to my web server from the Internet my firewall accepts these requests and I can see it in the logs, however, I don't see anything in the Apache logs, even at the "debug" log level.
3. I can telnet to port 8000 on my web server from another machine but I can't telnet to port 80.
4. Even when I set my firewall to accept all incoming requests I still have the same problem. Hence, the problems is not likely to be caused by a misconfigured firewall.
5. I can ping my web server from the Internet at all times.
I don't understand why I can't get Apache to listen on port 80 and function like everyone else's web server.
All help is much appreciated.
Ok, I've determined that my ISP blocks packets destined for ports 80, 21, and 445. I'm sure this is a marketing decision as well as a security motivated solution as it effectively prevents a customer from running a useful web or ftp server, forcing them to upgrade to their expensive server bundle. :-(