VPN」カテゴリーアーカイブ

RAID 故障時の通知方法を考えた結果 nagios に組み込んだ

RAID で使っていたHDDが故障した話 を書いたのだけど、実は RAID が崩れてから4ヶ月ほど気づいていなかった。これはまずいな、ということで、通知方法を考えてみた。

普段サーバとして使っているマシンなので、 RAID に問題があっても通知してくれないと気づけない。通知方法はいろいろあるけど、今回はメールで通知することを考える。マシン自体からメールを送ることも考えたけど、メールサーバは持っていないし、簡単に SMTP を叩けるようなメールアドレスもあいにくない。

そこで、VPN 内を監視するのに使っている nagios で監視することにした。これまではエージェントレスで使っていたけど、RAID の情報は NRPE を使って取得することとし、設定した。

RAID をチェックするプラグインは GitHub からダウンロードする必要があるっぽい。RAID が壊れたらちゃんと通知が来るのか?の確認はしていないのだけど、なんとかなることを祈る。

SoftEther VPN を v4.21 へアップデート

SoftEther VPN を使って私用の VPN 環境を構築して使っている。拠点間を接続するのにとても重宝している。

公開されたからだいぶ経ってしまってはいるが、今回 v4.21 へとアップデートした。
このサイトを参考にして実施したところ無事完了。
設定がちゃんと引き継がれるかが心配だったけど、特に問題はなさそう。

OpenVPN client on CentOS 7

CentOS 7 を OpenVPN client にする話。
うまい説明が見つけられなかったのでメモしておく。

tun の場合は openvpn を起動するだけで OK だけど、 tap の場合には openvpn を起動するだけでは繋がらない。
この場合、あらかじめブリッジを作成しておいて (br1とする) 、openvpn が作った tap デバイス (tap1 とする) する。

# brctl addif br1 tap1

とした上で、

# ifconfig tap1 up

とし、 br1 に振った(振られた) IP アドレスで VPN につながるようになる。

WHR-300HP2 を dd-wrt 化したときの openvpn クライアントのスループット

  • WHR-300HP2 を dd-wrt 化 (v24-sp2 (01/10/14) std, build 23320)
  • openVPN の設定 Cipher=AES-128 CBC, Hash=SHA1
  • VPNサーバは SoftEther を使用

という環境で、12Mbps くらいで WHR-300HP2 の load が 1 に近くなる。
光回線を引いている場合には VPN 接続がボトルネックになる。

3000円くらいのルータなので性能的には仕方ないかな。
暗号化の設定を変えればもっとスループットは出そうだけど、セキュリティ強度とのトレードオフになる。

光プレミアム配下から OpenVPN で SoftEther に接続する際の MTU 設定

SoftEther を使った VPN Server に光プレミアム配下の OpenVPN Client から接続してみた。

光プレミアムでは MTU が 1438 で、通常よりも小さいらしい。
通常は OpenVPN Client は mssfix と fragments で Client側から MTU の設定をできるようだが、SoftEther の OpenVPN サーバ機能はこれに対応していないらしく、VPN Server に接続できなくなる。

Tunnel MTU Setting のデフォルト値は 1400 なんだけど、このままだと、一部サイトにつながらないという問題が発生した(具体的には Android 端末から Google Play が利用できなかった)。
そこで、 Tunnel MTU Setting 項目を1300にしてつないでみると、接続の問題は解決した。
すこしずつ値を大きくしてどこまで大きくできるか試すのが良いみたい。

自分の環境では 1310 ではちゃんと使えたけど、1350 では接続に問題が生じた。

SoftEtherを使ってVPS上にVPNサーバを構築する

安価にもてるのであればVPN環境がほしかった。VPNにはいろいろあれど、SoftEtherというのがいろんなプロトコルに対応していてかつ簡単に構築できそうだったので、さくらVPS上にVPNサーバを構築してみた、という話。

個人用途におけるVPNを持つ目的

  • 公衆無線LAN等のネットワークを使いつつセキュアに通信したい
  • 外出時に自宅のネットワークにセキュアにアクセスしたい(リモートデスクトップ、ファイルサーバ等)
  • 拠点間をVPNでつなぎたい(自宅と実家等)
    • 実家環境のメンテナンスの容易化
    • (自宅よりも広い)実家にPCをおいてリモートデスクトップ

VPNを実現するために欲しいもの

  • 24時間365日安定稼動できて外からアクセス可能なVPNサーバ
    • 電気代、騒音、停電(ブレーカー断)、ポートフォワードとかめんどい・・・そこでVPS(月1000円以下)ですよ
    • Raspberry pi (3Wくらい?)でVPNサーバとかはちょっと興味あるけど。。
  • VPNサーバに参加可能なルータ
    • PC等をひとつずつ設定するのは面倒、NWプリンタ等VPNクライアント機能がない機器もつなぎたい
    • VPNクライアントの機能を持つルータは家庭用ではほとんどない、つまり高い
    • dd-wrt 使って家庭用ルータをVPNクライアントにしよう(一番安い)

SoftEtherを使ってみる

  • VPSにSoftEtherをインストール
    • OpenVPN互換機能を有効にしてクライアントからはOpenVPNのクライアントとしてつなぐ
    • このときdd-wrtでは圧縮がデフォルトでadaptiveに設定されているので注意
  • クライアントのつなぎ方
    • dd-wrt化したルータを用意
    • とりあえず同じ仮想Hubに全部つなげる(同じセグメントに見せたい)
    • ルータ以外の端末はtapでもtunでもあんまり関係ない模様
      • Android, iPhoneからはtunでしかつながらないらしい
      • Androidからつなぐ場合はOS標準のVPNよりも、OpenVPN Connectのほうが使い勝手が良い
    • ルータはtapでつなぐ
      • サンプルの設定とおなじになるようにdd-wrtに設定すればつながる。
      • tapをvlanにつなぐ
      • dd-wrtのdhcpサーバはオフにするのを忘れずに
  • GUIの設定ツールはWindows専用
    • Windows環境を持っていない場合はCUIのvpncmdだけでも十分設定可能
  • 性能をちゃんと出そうとするとSecureNATはなんだかんだ使えなかったのでDHCPサーバ、DNSサーバをVPSにインストール、iptablesでNATを設定。
    • 仮想HUBからtapデバイスを作成(これはVPS上で見える)、br0を手動で作成してvpnserverが起動した時に br0 と tap が接続されるように設定。ipアドレスは br0 に振る
    • 仮想DHCPサーバはMACアドレスによる固定割り当てができない
    • 仮想NATは性能が出ない
  • iptablesの設定
    • SNATとMASQUERADEが設定されてればOKっぽい。
    • lineのビデオ通話もできたしハッピー
  • dhcpdの設定
    • OpenVPNクライアントになってるルータに接続した機器のMACアドレスはそのままDHCPサーバに見えるので、IP固定等は機器自体のMACアドレスで設定できる
  • bindの設定
    • VPSが参照しているDNSにforwardするよう設定

参考

更新履歴

  • 2015年1月14日 – 表記を一部修正