ok,
here is my version
I use an USB disk mounted on /opt/
I did :
15 minute lease time.
The 15 min lease time make sure that the IP will change inside a 15 minute window.
nvram set lan_dhcp_lease=900
nvram commit
mkdir /opt/etc
mv /etc/ethers /opt/etc
cp /opt/etc/ethers /opt/etc/ethers.open
cp /opt/etc/ethers /opt/etc/ethers.closed
ethers has the list of MAC-address to IP
edit ethers.closed so the closed ip's are in the closed range.
edit ethers.open so the open ip's are in the closed range.
edit crontab:
open every day at 8 and close on day before week days 21:45 and 00:30 on weekends.
crontab -e
0 8 * * * cp /opt/etc/ethers.open /opt/etc/ethers >/dev/null 2>&1
45 21 * * sun,mon,tue,wed,thu cp /opt/etc/ethers.closed /opt/etc/ethers >/dev/null 2>&1
30 0 * * fri,sat cp /opt/etc/ethers.closed /opt/etc/ethers >/dev/null 2>&1
go to :
http://www.macsat.com/macsat
and setup crond as decsribed in the cron tutorial.
Next to do is to block the selected range of ip's in the FW, I use FW-builder to make it the FW script in a GUI.
Here I block everything to/from INET except email (pop3/smtp and dns).
That should be it... I hope I remembered every small step