ようこそゲストさん

無能日記

2012/06/09(土) twitterのアカウントでvpnを張れるサーバーを作ってみた

はてブ 2012/06/10 6:37 R&D (vpn)poti

twitterのアカウントでvpnを張れるサーバーを作ってみた

twitterの仲間どうしてVPNを張ってお互い直接通信すれば、
他の人には知られたくない情報も問題なくやり取りできるはず
いや、まぁ、VPNでないといけない理由はないけど
グループでなんかしようとか思ったときとか便利かもしれない
そうじゃないかもしれない
要するに、趣味ということですね

今回は、さくらのVPSにOPENBSDを入れて使っています
なぜOPENBSDなのかというと、
はじめはSEIL/X86入れようとしたけど入れられないし(誰か入れ方教えてまとめて)
よくよく考えるとwebdavとかwebサーバーとかも建てたいかな的なことになり、
あー、ならOPENBSDが一番お手軽なんじゃねってなったから

というわけで、中身はこんな感じです

vpn.png

ポイント:
  • ユーザーの管理はtwitterのリストの操作で完結
  • 1ヶ月に1回パスワードが自動更新される
  • パスワード等の通知はdirect messageで自動的に行われる
  • l2tpもpptpも利用可能
  • [twitterのユーザー名].[vpnドメイン]で任意のユーザーのアドレスを特定できる
  • トラフィック全通しでもnatしてインターネットできる
  • webdav等のwebサーバーもたてられる
一応Macからつないでみてるけどいまのとろ快調?
あとは、vpnサーバーに何かしらグループウェア的なものをインストールしたら
有意義に使えそうなそうでもないような

やってみたい?

やってみたい奇特な人はいないと思うけど、
ざっくりインストールの流れは以下
  1. twitterでリストを作成
  2. twitterにアプリ登録
  3. twitterにdirect message送信可能なaccess_tokenを生成
  4. さくらの vps 980円を契約 (試用期間はクレジットカード必要)
  5. さくらの vps に openbsdのインストール (バージョンは 5.1)
  6. rubyインストール
  7. pythonインストール
  8. pythonライブラリインストール
  9. primdインストール
  10. npppdとnpppctlインストール
  11. twitter2usercvs.py, npppctl2zone.sh インストール (自作です)
  12. primdns設定
  13. npppd設定
  14. ipsec設定
  15. nat設定
わりと面倒です
インストーラーっぽいものを用意しました。
クリーンなところからテストしてないけど、多分動く?
(あとでちゃんと試す)
インストーラーを使うと以下な感じ
  1. twitterでリストを作成
  2. twitterにアプリ登録
  3. twitterにdirect message送信可能なaccess_tokenを生成
  4. さくらの vps 980円を契約 (試用期間はクレジットカード必要)
  5. さくらの vps に openbsdのインストール (バージョンは 5.1)
  6. インストーラーのダウンロードとユーザー設定
  7. インストール
ただし、インストーラーはVPNのネットワークとして10.0.0.0/8台を
払い出す事を想定していますので被る人はそのままでは使えないと思います
そして、いろいろ責任は持ちません

twitterでリストを作成

  • vpn仲間用のリストを作成してください
  • direct messageを送信可能な相手でなければ行けません(お互いフォローしている)
  • 非公開でも構いません
  • 困ったらぐぐってください

twitterにアプリ登録

twitterにdirect message送信可能なaccess_tokenを生成

  • 下の方にアクセストークンを生成できるボタンがあるはず
  • ボタンを押す前にレベルをdirect message送信可能なものにする事をお忘れなく
  • 困ったらぐぐってください

さくらの vps 980円を契約

  • 契約してください
  • 困ったらぐぐってください
  • 別に自前のPCでも構いません(固定なグローバルIPが必要だったりと別の部分で面倒かもしれません)

さくらの vps に openbsdのインストール (バージョンは 5.1)

sudo wget ftp://ftp.jaist.ac.jp/pub/OpenBSD/5.1/amd64/bsd.rd

インストーラーのダウンロードとユーザー設定

  • インストーラーをとってきます
vpn_setup_0.2.tar.gz
tar -zxvf vpn_setup_0.2.tar.gz
cd vpn_setup_0.2
  • 設定編集
vi setting
#@_domain_suffix@#          myvpn 
vpnつないだユーザーに割り当てられるものです
ドメインをもっていればそこから、サブドメインを割り当てる
もしくは、この世に存在し得ない(あり得ないトップレベルとか)のものを使うのが無難
あまり長いとdirect messageの140文字に影響する
#@_ipsec_psk@#              hoge
ipsecのpreshared-key
あまり長いとdirect messageの140文字に影響する
#@_server_addr@#            1.1.1.1
vpnを受けるサーバーのアドレス
さくらvpsだとem0についている奴
#@_dns_server1@#            2.2.2.1
#@_dns_server2@#            2.2.2.2
さくらvpsが指定しているdnsサーバのアドレス
primary と secondary
#@_consumer_key@#           ekewgio3ghweiw
#@_consumer_secret@#        fekfwjgfijtio3398402d23f
twitterでアプリ登録した際にもらったconsumer_keyとconsumer_secret
#@_twitter_user@#           xpotix
vpn用のlistのオーナーになるユーザー
#@_twitter_list@#           @xpotix/vpnlist
vpn用のlistの正確な名前
#@_access_token@#           343432-fj3wjIJFE5ijfeijgewhwei4hgw4ijew
#@_access_token_secret@#    fpewkogewgewUHEiufh
生成したaccess_tokenとaccess_token_secret

インストール

  • make installしてください
make install
再起動までいったら多分完了しています
後は、Macやwindowsからつながるはず

Macの場合 /etc/resolver/myvpn (domain_suffixに指定したもの) に
nameserver 10.0.0.1
を書いてあげるといいです

後は好きにしてください