views:

44

answers:

4

I have a website on the internet that I only want to be accessible from my house.

Could I have htaccess be restricted to the MAC address of my router? If not, are there any other options?

I don't think I could use IP address because my ISP changes it all the time.

+2  A: 

You can't use the MAC because it won't get past the next router. Usually, even if you have a dynamic IP, your ISP gives you a hostname that is fixed, something like customer1337.newyork.bestisp.com. See what it is here, and use that in the htaccess.

Bart van Heukelom
+1  A: 

Since you cannot use your MAC address or your IP Address, your best solution is to use DNS to maintain a host record. You can use dyndns or freedns to set up a dynamic dns record. Many routers these days actually allow you to configure your router to ping these sites to update your host record.

Suppose on freedns.afraid.org you set it up so that gregmyhome.mooo.com points to your router. Then you can update the htaccess file to allow access from that hostname. Apache will perform a reverse dns lookup upon your visiting the site, and let you in.

I will say, however, that there may be a delay which may cause you to be restricted for some time. This problem may force you to look to other authentication mechanisms, such as digest auth, client certificate, or even ssh tunnelling.

Mike Axiak
+1  A: 

In addition to Bart, you could just use a .htpasswd file and set a username and password for the site, so that only you can login.

Litso
A: 

you probably could but that's not what htaccess is for, in my opinion. unless you set up authentication using htaccess. but then your website will be accessible from everywhere that has the password.

iptables can do mac address filtering though. why don't you set that up?

so if your router's mac is xyz,

first set the default policy:

iptables -P INPUT DROP

then specifically allow yours:

iptables -A INPUT -p tcp –destination-port 80 -m mac –mac-source xyz -j ACCEPT

Oren Mazor
the mac address wouldn't make it to the remote server.
Mike Axiak