O'Reilly logo

Mac OS X Hacks by Rael Dornfest, Kevin Hemenway

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Controlling Web-Server Access by Hostname or IP Address

It’s easy as pie to get Apache serving something exciting, but at times, the joy of a running web server needs to be curbed by the stern eye of security. We’ll take a quick look at how to enable hostname or IP access control, creating a set of acceptance or denial rules for content we want restricted.

While Apache can certainly handle authenticated access control, we’re only going to touch on the location-based side of it for this hack (we get to usernames and passwords in our next one). To protect our Apache server, we’re going to open httpd.conf [Hack #89] with our favorite text editorand modify (or define) the directory we want protected. In our example, we’re going to protect the entire web server, so we’ll look for our document root, which should look something like this:

<Directory "/Library/WebServer/Documents">
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order Allow,Deny
  Allow from all
</Directory>

Quite simply, the Order Allow,Deny and Allow from all lines are the magic that will stop outside visitors from perusing our site. Right now, as these lines stand, we’re wide open to the public. This is what we’re going to end up with:

<Directory "/Library/WebServer/Documents">
  Options Includes FollowSymLinks MultiViews
  AllowOverride None
  Order Deny,Allow
              Deny from all
              Allow from gatesmcfaddenco.org
</Directory>

See what we’ve done here? The first thing we did was flip our Order directive. This tells Apache ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required