特に使うアテもないのに、噂の Raspberry PI(ラズパイ) 2B を衝動買い。
初代よりも省電力ということで、初代で作ってある宅内 DNS キャッシュサーバー(希望しない広告サイトなどを遮断するフィルターサーバー)を新しい 2B に刷新しようかと思い、先日メモった手順に従って セットアップを試みたものの、Arch Linux が立ち上がって来ません。
インストール最初に表示された「このOSはサポート外ですぞ」という警告を無視して進めたせいだと思いますが、SSH どころかコンソールからも全くもって使用不能。
よく分からないので、Raspberry の中の人イチオシの Raspbian を使って同様の構成に仕上げることが出来たので、自分メモを兼ねて、構築手順をメモっておきます。
※拙作「5V な小型パソコン向け高効率 UPS」はラズパイ2とも相性バッチリ
- Raspbian 自体は画面の指示に従って予めにインストールしておく
- デスクトップモードに切り替える必要なく、コンソールモードのままで良い
- デフォルトの管理者アカウント pi/raspberry でログイン
- とりあえず最新パッケージに更新
# sudo rpi-update # sudo apt-get update # sudo apt-get upgrade # sudo reboot
- ssh のパスワード認証をローカルのみに限定
# sudo nano /etc/ssh/sshd_config
末尾に以下追加
PasswordAuthentication no Match Address 192.168.1.* PasswordAuthentication yes
# sudo nano /etc/network/interfaces
#iface eth0 inet dhcp iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1
- DNS サーバーの設定は別のところで書く
# sudo nano /etc/resolv.conf
nameserver 192.168.1.1
- いったんリブートしとく
# sudo reboot
- Unbound 導入
# sudo apt-get install unbound # sudo nano /etc/unbound/unbound.conf
server: # trust-anchor-file: trusted-key.key interface: 0.0.0.0 access-control: 0.0.0.0/0 allow local-zone:"i-mobile.co.jp" redirect local-data:"i-mobile.co.jp 86400 IN A 127.0.0.1" local-zone:"doubleclick.net" redirect local-data:"doubleclick.net 86400 IN A 127.0.0.1" local-zone:"google-analystics.com" redirect local-data:"google-analystics.com 86400 IN A 127.0.0.1" local-zone:"microad.jp" redirect local-data:"microad.jp 86400 IN A 127.0.0.1" forward-zone: name: "." forward-addr: 192.168.1.1
# sudo /etc/init.d/unbound restart
- 正引きテストに必要なツールを入れる
# sudo apt-get install dnsutils
- 正引きテスト
# dig www.yahoo.co.jp @127.0.0.1
telnet 192.168.1.1
# dhcp service server # dhcp server rfc2131 compliant except remain-silent # dhcp scope 1 192.168.1.10-192.168.1.99/24 # dhcp scope option 1 dns=192.168.1.2 ←これ追加
DHCP でアドレスをもらって動いてる宅内クライアントのほうは、なにも設定変更しなくて大丈夫。
(追記)
Arch Linux で作ったときと同様に、遮断したいサイトの名前解決を自マシン(127.0.0.1)に詐称する仕組みですが、普通は自マシンの中に WEB サーバーはありません。
ブラウザはそんなこと知らず 127.0.0.1 からの応答を待ちます。
しばらくするとタイムアウトになるので、「希望しないサイトを遮断する」という目的は果たせるので実害はありませんが、いかんせん少々表示が遅くなるのが難点。
なにか良い方法はないものかと探し回ったところ すべてのHTTPリクエストに対して ステータスコード:200 を返すだけのWEBサイト なる謎のサイトを発見。
そこで書かれているとおり、試しに local-data: 〜 118.243.37.27 に書き換えてみたところ、ブラウザ内でマウスカーソルがクルクル回ることなく、キビキビした動作になりました。