MACのインターネット共有は便利なので、ついつい使いたくなってしまうのですが、はやりセキュリティを考慮しないのは危険ということで、インターネット共有を行う際に、指定したMACアドレス以外は、接続できないようにしたいと思います。
環境
- Mac OS X Lion
どのレイヤーでやるか
最初、ipfwでやろうとしたのですが、どうにもうまく行かず。
インターネット共有では、dhcpでIPアドレスをばらまいてるわけですが、ココで指定したMACアドレス以外にはdhcpでアドレスを付与しない方向に切り替えました。
想定外の端末が直接アドレス指定してアクセスしてくるリスクには、払い出すアドレス数の管理+ipfw等で対応することとします。もちろん、無線LANのキーを設定するのは言うまでもありません。
もし、下記を実行して、セキュリティインシデント起こしても当方は知りません( ー`дー´)キリッ
概要:インターネット共有の手順
[システム環境設定] -> [共有] -> [共有する接続経路(Ethernet)] + [相手のコンピュータが使用するポート(Wi-Fi)]を選択し、インターネット共有チェックボックスをONにします。
そうすると、bootpが動き出し、/etc/bootpd.plist が生成されます。このファイルを編集するのですが、難があり、デーモン起動時に新規にファイル生成し、デーモン停止時にファイルを削除しやがります。この点、多少ケアが必要です。
/etc/bootpd.plist 実際のファイルサンプル
[xml]
[/xml]
allowの部分に注目して欲しいのですが、
[xml]
[/xml]
allowで指定したMACアドレスだけに、IPアドレスを割り振るようになります。(その他はデフォルト値です)
実際のオペレーション
[bash]
#設定ファイルを編集して
sudo vim /etc/bootpd.plist
#chflagsを立てます
sudo chflags uchg /etc/bootpd.plist
# インターネット共有開始
[/bash]
ファイルが消されてしまう対策として、BSD系OSで使用出来るchflagsを利用します(chmodでreadOnlyにしても消されるので)。
もっとエレガントな方法ありそうな気はしますが。。。
再度ファイルを編集したくなったら
[bash]
sudo chflags nouchg /etc/bootpd.plist
[/bash]
上記を叩けばOKです。
ではでは。
参考にしました
https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/bootpd.8.html