Raspberry PI + Raspbian + Unbound 自分メモ

 特に使うアテもないのに、噂の Raspberry PI(ラズパイ) 2B を衝動買い。
 初代よりも省電力ということで、初代で作ってある宅内 DNS キャッシュサーバー(希望しない広告サイトなどを遮断するフィルターサーバー)を新しい 2B に刷新しようかと思い、先日メモった手順に従って セットアップを試みたものの、Arch Linux が立ち上がって来ません。


 インストール最初に表示された「このOSはサポート外ですぞ」という警告を無視して進めたせいだと思いますが、SSH どころかコンソールからも全くもって使用不能
 よく分からないので、Raspberry の中の人イチオシの Raspbian を使って同様の構成に仕上げることが出来たので、自分メモを兼ねて、構築手順をメモっておきます。


http://dl.ftrans.etr.jp/?2b6c777a780043da8725ec43f6bcd055d23c3193.jpg


※拙作「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 に書き換えてみたところ、ブラウザ内でマウスカーソルがクルクル回ることなく、キビキビした動作になりました。


 使ってる人がいるのか不明ですが、興味ある方はお試しくださいませ。
(一緒に人柱になりましょう、笑)