UT-VPNを自動起動するように設定する

新しいUT-VPNがリリースされました。Linux版はビルドした後、インストーラーがvpnserverをサービスに登録してくれたりするようになっているかなぁと期待していましたが、旧バージョンのインストーラーと同じで、そこまでは面倒を見てくれないようです。従って、サーバーをリブートした後も、自動でvpnserverがサービスとして自動起動するように設定します。(というか、旧バージョンの時からサービス起動するようにしていました。)方法は次のとおりです。

ます、utvpnserverの場所をwhichコマンドで確認します。

# which utvpnserver
/usr/bin/utvpnserver

パスが分かりましたので、次の内容を記述したファイルを/etc/init.d/に「utvpnserver」など適当な名前で作成します。

#!/bin/sh
# chkconfig: 2345 99 01
# description: UT-VPN Server 4.0
DAEMON=/usr/bin/utvpnserver
LOCK=/var/lock/utvpnserver

test -x $DAEMON || exit 0

case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

作成したファイルのパーミッションを変更し、スクリプトからvpnserverを起動し動作確認します。

# chmod 755 /etc/init.d/utvpnserver
# /etc/init.d/utvpnserver start

きちんと起動が確認できたら、chkconfigで自動起動登録しておきます。

# chkconfig --add utvpnclient

同様にvpnclientの自動起動ファイルも作成します。上記のコードおよびコマンドライン引数のvpnserverをvpnclientに変更するだけです。

が、これだけではサーバーに対してリモートデスクトップ接続をしようとしてもうまくいきません。仮想LANカードにIPアドレスが割り当てられていないためです。
これもサーバーの起動時に、意中のIPアドレスを割り振ることとします。

ifconfigコマンドで仮想NICに固定IPを割り当てます。

# ifconfig utvpn_vpn 192.168.100.60 netmask 255.255.255.0

この場合だと、192.168.100.60を割り当てています。IPは構築した環境に合わせて意中のものを指定します。

これを自動化するスクリプトにして、先ほどの自動起動スクリプトに組み込むことにします。

#!/bin/sh 
/sbin/ifconfig utvpn_vpn 192.168.100.60 netmask 255.255.255.0

上記のコードを記述したファイルを/sbinあたりにset_ipaddr.shとして作成し、実行権限を与えておきます。

そして、先ほどの自動起動スクリプトにこのset_ipaddr.shを呼び出すように記述を加えます。

#!/bin/sh
#!/bin/sh
# chkconfig: 2345 99 01
# description: UT-VPN Server 4.0
DAEMON=/usr/bin/utvpnserver
LOCK=/var/lock/utvpnserver
 
test -x $DAEMON || exit 0
case "$1" in
    start)
        $DAEMON start
        touch $LOCK
        sleep 4
        /sbin/set_ipaddr.sh
        ;;
    stop)
        $DAEMON stop
        rm $LOCK
        ;;
    restart)
        $0 stop
        sleep 3
        $0 start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac
exit 0

これで、仮想NICに意中のIPが自動で付与されるようになりました。念のために、サーバを再起動して、ifconfigで指定したIPが割り振られているか確認してみて、問題なければOKです。

SoftEther VPN プロジェクトでUT-VPNを導入してみた

今日メールを見ると、「SoftEther VPN プロジェクト」からUT-VPNの新しいバージョンが公開されているとメールがありました。
各種のプログラムがVer.4になっているようです。現在までは、ウィンドウズ対応のバイナリだけがVer.4で他はVer.2という状態でしたから、これで各種のプラットフォームでバージョンの足並みが揃ったようです。

さくらのVPSにUT-VPNのLinux版を導入して、自宅と職場でリモートデスクトップしたり、サーバーにVNCしたりしていましたが、この機にUT-VPNをアップデートしてみることにしました。
旧バージョンではLinux版はバイナリが提供されていなかったので、ソースからコンパイルする必要がありました。しかも、結構、OpenSSLのバージョンでコンパイルができなかったり、コンパイル後も実行してみるとVPNSERVERがエラーをはいて停止したりして実行できなかったりと、なかなか導入までが面倒なものでした。
が、今回は各種バイナリも提供されているようで、

make install

だけでも導入できるようです…。

が、ここはやっぱりソースからコンパイルすることにしてみます。環境はCentOS6.5です。旧バージョンが無事ビルドできている環境なら問題はないはずですが、準備としては次のとおりです。

事前準備

yum -y groupinstall "Development Tools"
yum -y install readline-devel ncurses-devel openssl-devel

として、依存関係のあるパッケージを導入しておきます。

UT-VPNのビルド

  1. まずはソースコードのタウンロード
  2. ダウンロードしたファイルをサーバーにアップロードします。
  3. アップロードしたファイルを展開し、展開してできたディレクトリにcdします。
  4. configuerファイルのパーミッションに実行権限を与えます。
  5. # ./configure を実行します。
  6. # make でmakeします。
  7. # make install でインストールします。

このあたりは前のバージョンと同じです。
ちなみに、旧バージョンをインストールしたまま、コンパイル・インストールしましたが、設定を含めて、そのまま移行できました。

vpncmd about

vpncmd about

一応、vpncmdでバージョンを確認すると、Ver.4になっていることが確認できます。

旧バージョンと比べると格段に導入までのハードルが下がっています。

windows用ut-vpn client

windows用ut-vpn client

ウィンドウズ版のVPNクライアントもVer.4にアップデートしておきました。こちらも、設定等そのまま引き継がれました。
Desktop VPNを2契約していたのですが、UT-VPNが十分実用になるようですので、そのうちの1契約分を解約しました。Desktop VPNは長期契約をしていると月額料金が半分ほどになりますから、契約期間の短い方を解約しました。
もう1契約はやはり、緊急用に残しておきます。
フリーのUT-VPNのいいところは、もちろんオープンソースであることですが、それ以外にもDesktop VPNだと接続本数が増える毎に契約料金が増したり、Macをクライアントで接続すると別料金を取られたりと、結構コスト高になってしまって、フルに活用するにはお金がかかるのですが、これらも含めて自分で自由になるサーバーがあれば、最小のコストで手軽でありながら強力でセキュアなVPN環境を構築できることにつきます。

StreamingServerを作る -Crossfire編-

crossfire

crossfire


Linuxサーバー上にCrossfireでストリーミングサーバーを作ってみます。
Crossfireの利用には、mt-daapが導入されている必要があります。
CentOSでは

yum -y install mt-daapd

として、mt-daapdパッケージをインストールします。
続いて、/etc/mt-daapd.confを編集します。
楽曲データを置いておくディレクトリを指定します。例えば次のような感じです。

mp3_dir /opt//musics   #これはアップロードした楽曲データの場所に合わせる。

あとはmt-daapdのサービスを起動します。

service mt-daapd start
chkconfig mt-daapd on

最後に、楽曲データをmt-daapd.confで指定したディレクトリにアップロードして完了です。楽曲データはWEBからアクセスできないところにおいておくのがいいでしょう。ただし、楽曲データは一つのディレクトリにまとまっていないといけません。ディレクトリ単位でアーティストやアルバムを管理したい場合はうまくいきません。私としてはここがmt-daapへのマイナスポイントになりました…。

自宅サーバーなどに導入した人は、iTunesをmt-daapサーバーに接続して、iTunesで楽曲を聴いている人もいるようです。VPS上にあるmt-daapサーバーにiTunesを接続できれば良かったのですが、ルーターを越えて接続させることが残念ながらできませんでした。

iTunesはあきらめて、クライアントで楽曲を聴くためにCrossfireの導入をします。
まず、ダウンロードします。
最も新しいもので、「0.6Beta」であるうえに、2009/05/05以降は開発が止まっています。
Crossfireにバグフィックスや新機能、バージョンアップ等を期待するのはやめておいた方がいいようです。今後長く利用しようとすることも躊躇します。

ダウンロードしたファイルを展開して、サーバーにアップロードします。ウェブルートでも好きなディレクトリを作ってもOKです。
パーミッションを適切に変更します。

Crossfireの実行
Crossfireをアップロードしたサイトにアクセスします。
http:////といった感じですね。

Crossfireの初期設定
Crossfireの設定ファイル「config.xml」を編集します。
最低限、次の箇所を編集すればOKです。

<server username="ユーザー名" password="当該ユーザーのパスワード">
    <hostname>サイト名</hostname>
    <portnumber>3689</portnumber>
  </server>

ポート番号はサーバー環境に合わせて適宜修正をします。
これで完了です。後はアップロードした楽曲データをCrossfireに読み込ませます。
再生はAmpacheと同様、フラッシュプレーヤーで再生されます。
自分は、CSSを少し修正して、表示フォントと楽曲のアートワークの表示を「正方形」に変更しました。なぜかアートワークが微妙に横長の表示になるので、CDジャケットの写真がおかしな表示になってしまう仕様でした。このあたりは本質とは関係ないので省略です。

Crossfireをセットアップしてみましたが、config.xmlの存在を知っていると、WEBからユーザーやパスが丸見えになってしまうのがちょっと使えないところですね…。回避策があるのでしょうか…。
今後のアップデートもなさそうなので、本格的に利用するのはあきらめました。

ちなみに、Andoroid用のアプリは「Music Pump DAAP Player」がとても良かったです。アンドロイド端末で曲を聴くだけなら、mt-daap
サーバを立てて、このMusic Pump DAAP Playerを利用すれば全く問題なしです。ちなみに、現在378円也。自分が購入したときには450円でしたから、知らない間に値下がりしていたのか…。フリーのデモ版もあるけど、楽曲が半分しか表示されないホントのお試し仕様です…。
フリーなら「DAAP Media Player」というのがあったけど、ちょっと自分には使いにくかったので却下です。

ということで、何も考えずに楽曲をアップロードして、アンドロイド端末で聴くというなら、これでもいいかなという感じです。ただし、WEBアプリケーションとしてのCrossfireは、私としては採用できないなぁというものでした。
もう一つマイナスポイントを挙げておくと、楽曲の並び方も日本語のタイトル名だとアルバムのトラック順に並んでくれませんでした…。もちろんトラック順はタグに正確に記録されているんですが…。

StreamingServerを作る -Ampache編その2- 「AndoroidApp クライアント導入編」

さくらのVPSにAmpacheをインストールして、ストリーミングサーバーを作りました。こんどは、外出したときにタブレットから楽曲データを再生できるようにします。
といってもアンドロイドのアプリでAmpacheに対応したもをの導入するだけです。
私は、「JUST PLAYER」を導入しました。日本語表示も問題なく、フリーソフトになっています。
また、JUST PLAYER単独ではAmpacheには接続できませんので、「Ampache Provider」も合わせて導入が必要です。
さらにAmpacheの側で、ACL追加でACLタイプ「RPC」を追加しておかなければいけません。導入ではまりやすいポイントは、これくらいかな・・。

Ampacheはそれなりに快適ですが、少しアンドロイドアプリが重い感じです・・・。
この際、別のソフトでもストリーミングサーバーを作ってベストなものを決定してみます。

WordPressをVer.3.8にしてみた

もう年が変わっている…。2014年の幕開けなのですが、結構仕事がハードで年末までほぼ暇がなかった…。さすが我が社はブラック企業の鑑です。だから正月気分が抜けないなんてことは全くないわけで・・・これだけは安心ですよ。

で、気がついたらかなり前から予告されていたWordPress Ver3.8が日本語対応になっていたので、サクッとアップデートしてみました。
すると・・・ダッシュボードのWマークやらコメントの吹き出しマークやら、新規記事の追加ボタンの+マークが表示されなくて、□になっている。
どうせアップデートで大幅に出遅れている私なので、世間では既知の問題だろうとGoogle先生にお尋ねすると解決策がいくつか提示されていました。

  • 抜本的対策  プラグインの「wp-multibyte-patch」をVer.1.9にする。
  • その他対策1 .htaccessに記述を追加する。
  • その他対策2 ブラウザのキャッシュをクリアする。
  • その他対策3  /wp-content/plugins/wp-multibyte-patch/ext/ja/admin.cssを修正する。

私の場合は、そもそもWordPressを3.8にアップデートしたときにプラグイン関係もすべてアップデートしており、「wp-multibyte-patch」もV1.9に更新された対策済みのバージョンになっているにも係わらず、やはりダッシュボードのボタンの一部が表示されないため、「その他対策3」は実施しても無意味と考えられます。よって、1と2をやってみましたが改善せず…。
ただし、「Gatespace’s Blog」さんの「[WordPress 3.8] テーマやプラグインでダッシュボードメニューのアイコンを設定する方法」が解決の参考になりました。
要は、自分が使っていた管理画面に任意のCSSを適用するプラグイン「WP Custom Admin CSS」を無効化することで、解決しました。
上記のプラグインは、Unformed Buildingさんの『WordPress の管理画面にスタイルシートを追加するプラグイン「WP Custom Admin CSS」』という記事中で紹介されています。ありがたく使わせていただいています。

さて、解決したのはいいけれど、管理画面のフォントがちょっぴり汚くなってしまっています。まあ、もとのデフォルトに戻っただけなんですが、これを再度、フォント「Meiryo」で表示できるように修正します。
プラグイン「WP Custom Admin CSS」で追加できる任意のCSSにダッシュボードのボタンで使っているフォント「Dashicons」を追加してやります。

私が上記プラグインで追加してオーバーライトしているCSSは以下のようなものです。


/* Example
-----------------------------------------------------*/

body.wp-admin * {
 font-style: normal !important;
 font-family: Dashicons, Helvetica, Arial, "\0030e1\0030a4\0030ea\0030aa", meiryo, sans-serif !important;
}

body.wp-admin input[type="text"] {
 font-family: Helvetica, Arial, "\0030e1\0030a4\0030ea\0030aa", meiryo, sans-serif, monospace !important;
}

body.wp-admin textarea {
 font-family: Helvetica, Arial, "\0030e1\0030a4\0030ea\0030aa", meiryo, sans-serif, monospace !important;
}

div.wp-full-overlay-sidebar-content accordion-container {
 font-family: Meiryo,sans-serif !important;
 font-style: normal !important;
}

body.wp-admin *  のfont-familyに「Dashicons」を追加しただけです。
管理画面をリロードすると、きちんとボタン類が表示されていましたので、問題はすべて解決です。

なお、これはあくまで私の作成したカスタムCSSがWordPreww3.8に対応できていなかっただけで、決してプラグイン「WP Custom Admin CSS」の問題ではありません。
改めて作者様には感謝を申し上げます。ありがとうございます。