2月
10
2010
0

GmailでWordPressをバックアップ

こんなクソブログですが基本的に自分の二次記憶として書いているので,なくなると困ったことになります

一応サーバのバックアップはしっかりしていますが,もっと安心できるところに置きたいと思っていたところ良さそうなプラグインを見つけました

WordPress Database Backupを使うと定期的にメールでDBのバックアップを添付して送ることが出来ます

天下のGoogleのサーバならディザスタリカバリもバッチリでしょう

インストールは展開するだけです

$ wget http://ilfilosofo.com/downloads/plugins/wp-db-backup.tar.gz
$ tar zxvf wp-db-backup.tar.gz -C public_html/wp-content/plugins/

あとは,「ダッシュボード」→「プラグイン」と移動してWordPress Database Backupの「使用する」をクリック

プラグインの設定は「ダッシュボード」→「ツール」→「バックアップ」から行えます

最初アクセスすると.「バックアップディレクトリが見つからず、作成もできませんでした。」といわれるので指定された名前のディレクトリを作成します

$ mkdir -m 777 wp-content/backup-21428

リロードして,送付先のメアドを入れてオシマイ

あとは,画像とか動画のバックアップをどうしようかなぁ
Flickrとかにアップして貼るのが一番ラクなのかも

Written by h2 in: PC | タグ:
2月
04
2010
2

OpenVPN導入2@Ubuntu 9.10

前回からのつづきです

証明書や秘密鍵などの生成が終わったので,サーバの設定に入ります

設定ファイルの雛形があるので,コピーして使います
なぜかサーバ用だけ固められているので,展開しましょう

% sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
% sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
% sudo gunzip /etc/openvpn/server.conf.gz

構成はL2トンネル+ブリッジにします

サーバの設定ファイルは以下の通り(IPとかは環境に応じて修正して下さい)

    主な変更箇所は

  • 接続時,自宅ネットワークのDNSサーバを参照
  • TLS-AUTHを使用
  • 暗号化アルゴリズムに256bitのAESを使用
  • リンクMTUを1472に設定
  • MTUはいずれ最適化しようと思いますが,ドキュメントに

    However, for many cases, using a value of 1472 will maximize performance for TUN devices over IPv4.

    と書いてあったので,とりあえず1472を指定(実はうちIPv6)
    フラグメントしてようが,とりあえず繋がってるのでよしとしますw
    もうすぐIPv6とおさらばするので

    port 1194
    proto udp
    dev tap0
    ca CAの証明書
    cert サーバの証明書
    key サーバの秘密鍵
    dh DHパラメータ
    ifconfig-pool-persist ipp.txt
    server-bridge 192.168.86.10 255.255.255.0 192.168.86.101 192.168.86.125
    push "dhcp-option DNS 192.168.86.10"
    keepalive 10 120
    tls-auth 共通鍵 0
    cipher AES-256-CBC
    comp-lzo
    persist-key
    persist-tun
    log-append  /var/log/openvpn.log
    verb 4
    link-mtu 1472
    

クライアントの設定ファイルもサーバに合わせて変更しましょう

    client
    dev tap
    proto udp
    remote VPNサーバの名前orアドレス 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    ca CAの証明書
    cert クライアントの証明書
    key クライアントの秘密鍵
    ns-cert-type server
    tls-auth 共通鍵 1
    cipher AES-256-CBC
    comp-lzo
    verb 4
    link-mtu 1472
    

次にブリッジの設定です
ブリッジ操作用のコマンドを使うのでインストールしましょう

% sudo apt-get install bridge-utils

ブリッジの作成と削除を行うスクリプトの雛形があるので,コピーして使います

% sudo cp /usr/share/doc/openvpn/examples/sample-scripts/bridge-st* /etc/openvpn/

まず,ブリッジの作成を行うbridge-startスクリプトです
ブリッジにデフォゲを設定するように変更しました

#!/bin/bash                                                                                     

#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################

# Define Bridge Interface
br="br0"

# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"

# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0"
eth_ip="192.168.86.10"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.86.255"
eth_gateway="192.168.86.1"

for t in $tap; do
    openvpn --mktun --dev $t
done

brctl addbr $br
brctl addif $br $eth

for t in $tap; do
    brctl addif $br $t
done

for t in $tap; do
    ifconfig $t 0.0.0.0 promisc up
done

ifconfig $eth 0.0.0.0 promisc up

ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast
route add default gw $eth_gateway $br

つづいて,ブリッジの削除を行うbridge-stopスクリプトです
ブリッジの削除後,eth0をもとの設定に戻すように変更しました

#!/bin/bash                                                                                     

####################################
# Tear Down Ethernet bridge on Linux
####################################

# Define Bridge Interface
br="br0"

# Define list of TAP interfaces to be bridged together
tap="tap0"

# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0"
eth_ip="192.168.86.10"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.86.255"
eth_gateway="192.168.86.1"

ifconfig $br down
brctl delbr $br 

for t in $tap; do
    openvpn --rmtun --dev $t
done

ifconfig $eth $eth_ip netmask $eth_netmask broadcast $eth_broadcast
route add default gw $eth_gateway $eth

ブリッジの作成・削除とOpenVPNサーバの起動・終了のタイミングは次の順で行います

  1. ブリッジの作成
  2. OpenVPNサーバの起動
  3. OpenVPNサーバの終了
  4. ブリッジの削除

OpenVPNの起動前にbridge-startを実行して,終了後にbridge-stopを行うようにします
64-67行目と81-84行目を追加しました

% sudo vim /etc/init.d/openvpn
 34 start_vpn () {
 ・・・
 60     # Check to see if it's already started...
 61     if test -e /var/run/openvpn.$NAME.pid ; then
 62       log_failure_msg "Already running (PID file exists)"
 63     else
 64       # Add bridge
 65       if [ -f /etc/openvpn/bridge-start ]; then
 66         /etc/openvpn/bridge-start
 67       fi
 68
 69       $DAEMON $OPTARGS --writepid /var/run/openvpn.$NAME.pid \
 70       $DAEMONARG $STATUSARG --cd $CONFIG_DIR \
 71       --config $CONFIG_DIR/$NAME.conf $script_security < /dev/null || STATUS=1
 72     fi
 73     log_end_msg $STATUS
 74 }
 75 stop_vpn () {
 76   kill `cat $PIDFILE` || true
 77   rm -f $PIDFILE
 78   rm -f /var/run/openvpn.$NAME.status 2> /dev/null
 79   log_end_msg 0
 80
 81   # Remove bridge
 82   if [ -f /etc/openvpn/bridge-stop ]; then
 83     /etc/openvpn/bridge-stop
 84   fi
 85 }

これで,OpenVPNサーバを起動すると

% ifconfig
br0       ・・・
eth0      ・・・
lo        ・・・
tap0      ・・・

% route
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
192.168.86.0    *               255.255.255.0   U     0      0        0 br0
default         192.168.86.1    0.0.0.0         UG    0      0        0 br0

のように,tap0とbr0が作られて,ゲートウェイが設定されるようになります

OpenVPNサーバを終了すると

% ifconfig
eth0      ・・・
lo        ・・・

% route
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
192.168.86.0    *               255.255.255.0   U     0      0        0 eth0
default         192.168.86.1    0.0.0.0         UG    0      0        0 eth0

のように,tap0とbr0は削除され,もとの設定に戻ります

細かいところですが,このままだとOpenVPNサーバの起動中にnetworkingを再起動すると,ルーティングテーブルがバグります
テーブルを見れば分かるように,192.168.86.0についてはbr0が先に,デフォゲはbr0のメトリックの方が小さいので問題なく動きますが・・・
ちょっと気持ち悪い

% route
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
192.168.86.0    *               255.255.255.0   U     0      0        0 br0
192.168.86.0    *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth0
default         192.168.86.1    0.0.0.0         UG    0      0        0 br0
default         192.168.86.1    0.0.0.0         UG    100    0        0 eth0

なので,networkingを再起動するときにOpenVPNサーバが動作していれば,OpenVPNサーバも一緒に再起動するようにしました
76-80行目と92-95行目を追加しました
本来ならnetworkingをstopする時にも,OpenVPNサーバを終了させるべきかも知れませんが,networkingをstopすることはまずないのでズボラしました

% sudo vim /etc/init.d/networking
 75 force-reload|restart)
 76 >... # Stop openvpn if running
 77 >...if [ -e /var/run/openvpn.server.pid ]; then
 78 >...>...OPENVPN="TRUE"
 79 >...>.../etc/init.d/openvpn stop
 80 >...fi
 81
 82 >...process_options
 83
 84 >...log_action_begin_msg "Reconfiguring network interfaces"
 85 >...ifdown -a --exclude=lo || true
 86 >...if ifup -a --exclude=lo; then
 87 >...    log_action_end_msg $?
 88 >...else
 89 >...    log_action_end_msg $?
 90 >...fi
 91
 92 >...# Restart openvpn
 93 >...if [ "$OPENVPN" = "TRUE" ]; then
 94 >...>.../etc/init.d/openvpn start
 95 >...fi
 96 >...;;

OpenVPNサーバが起動している場合,bridge-startでeth0のアドレスが変更されて経路情報も消えているので,85行目の「ifdown -a –exclude=lo」で

RTNETLINK answers: No such process
SIOCDELRT: No such process

といわれますが,特に問題はありません

以上で,OpenVPNの設定はオシマイです

Written by h2 in: PC | タグ:
2月
03
2010
0

OpenVPN導入1@Ubuntu 9.10

出先や実家から自宅のネットワークにアクセスするためにVPNを導入しています

PPTPは論外として,自宅鯖移行のついでにiPhone/iPod TouchがサポートしているL2TP over IPsecも考えたのですが,プロトコルの仕様が少し曖昧なせいかプラットフォームによっては安定しないそうなので(実際安定しなかった),OpenVPNにしました

以下,作業ログです

インストール

% sudo aptitude install openvpn

サーバとクライアントの確認に証明書を使いますが,貧乏なのでオレオレ証明書です

OpenVPNには認証局や証明書を作成するためのeasy-rsaという便利なスクリプトがついています

% cd /usr/share/doc/openvpn/examples/easy-rsa/2.0

まず,オレオレ認証局 (CA) を作ります
sourceコマンドを使用する箇所があるので,rootでシェルを起動しましょう

% sudo -s

varsを適宜書き換えます
KEY_SIZEは2048bit以上にすることを強くオススメします
オレオレなので他は何でもOKです

# vi vars
export KEY_SIZE=2048
export KEY_COUNTRY="国"
export KEY_PROVINCE="州"
export KEY_CITY="都市"
export KEY_ORG="組織"
export KEY_EMAIL="メアド"

作業に必要な環境変数を設定して,スクリプトを実行します

# . ./vars
# ./clean-all
# ./build-ca

いくつか質問されるので答えましょう
基本Enter連打でOKです

続いて,サーバの秘密鍵と証明書を作ります

# ./build-key-server サーバ名

いくつか質問されるので答えましょう
基本Enter連打でOKですが,チャレンジパスワードを聞かれます

さらに,クライアントの秘密鍵と証明書を作ります

一般的には,クライアントが自分で鍵と証明書要求CSRを作って,認証局が署名して返します
具体的には,クライアントがbuild-reqやbuild-req-passスクリプト(パスフレーズで保護された証明書を作成)で生成したCSRに,CAがsign-reqスクリプトで署名します

今回は自分以外に使用者がいないので,認証局上で直接クライアントの鍵を作ってしまいます

# ./build-key クライアント名

いくつか質問されるので答えましょう
基本Enter連打でOKですが,チャレンジパスワードを聞かれます

最後に,DiffieHellmanパラメータを生成します

# ./build-dh

秘密鍵とDHパラメータは管理者以外が読めないようにしておきましょう

# chmod 600 keys/*.key
# chmod 600 keys/dh2048.pem

直接生成したファイルを参照しても構いませんが,「/etc/openvpn」以下に必要なファイルを置きましょう
自分はkeysというディレクトリを作成して,その中にまとめてあります

# mkdir /etc/openvpn/keys
# cp keys/CA証明書 /etc/openvpn/keys/
# cp keys/サーバ証明書 /etc/openvpn/keys/
# cp keys/サーバ秘密鍵 /etc/openvpn/keys/
# cp keys/DHパラメータ /etc/openvpn/keys/

クライアントにCAの証明書と秘密鍵を渡します
秘密鍵の受け渡しは安全な方法で

TLS-AUTHの共通鍵も生成しておきます
念のためアクセス権が600になっているか確認しましょう

# openvpn --genkey --secret /etc/openvpn/keys/ta.key

次回につづく

Written by h2 in: PC | タグ:
2月
02
2010
0

ATOK X3 for LinuxをUbuntu 9.10 (Karmic Koala) x86_64版にインストール

ようやくKarmicに移行できたので,ATOKも入れ直してみました

以前書いた「ATOK X3 for LinuxをUbuntu 9.04 (Jaunty Jackalope) x86_64版にインストール」というエントリとほとんど同じです

  1. Xから全員ログアウト
  2. 「Ctrl+Alt+F2」でコンソールに切り替え
  3. CDをマウント
  4. 環境変数LANGを設定
    % export LANG=C
    
  5. 空のファイル「/etc/gtk-2.0/gtk.immodules」を作成
    % sudo touch /etc/gtk-2.0/gtk.immodules
    
  6. CDドライブに移動して,スクリプトを実行
    % cd /media/cdrom
    % sudo bash ./setupatok_tar.sh
    
  7. 質問が3つ表示されるので順に「yes」,「/usr/bin/gtk-query-immodules-2.0」,「/etc/gtk-2.0/gtk.immodules」と答える
  8. IA-32ライブラリをインストール
    % sudo apt-get install ia32-libs
    
  9. IIMFのライブラリをインストール
    % cd bin/tarball/IIIMF
    % tar zxvf iiimf-client-lib-trunk_r3104-js1.i386.tar.gz -C (どこか適当な場所)
    % tar zxvf iiimf-protocol-lib-trunk_r3104-js1.i386.tar.g -C (どこか適当な場所)
    % sudo mv (どこか適当な場所)/usr/lib/* /usr/lib32/
    
  10. アップデート
    1. ATOK X3 for Linux アップデートモジュール(wgetの場合はコチラ
    2. 解凍
      % tar zxvf atokx3up2.tar.gz
      
    3. ATOKのアップデート
      % cd atokx3up2/bin/ATOK
      % sudo tar zxvf atokxup-20.0-3.0.0.i386.tar.gz -C /
      
    4. IIMFのアップデート
      % cd ../IIMF
      % sudo tar zxvf iiimf-server-trunk_r3104-js3.i386.tar.gz --exclude=’./usr/lib’ -C /
      % sudo tar zxvf iiimf-server-trunk_r3104-js3.i386.tar.gz ./usr/lib
      % sudo mv usr/lib/* /usr/lib32/
      
    5. GTKのアップデート
      % sudo tar zxvf iiimf-gtk-64-trunk_r3104-js3.x86_64.tar.gz -C /
      % sudo tar zxvf iiimf-gtk-trunk_r3104-js3.i386.tar.gz --exclude=’./usr/lib’ -C /
      % sudo tar zxvf iiimf-gtk-trunk_r3104-js3.i386.tar.gz ./usr/lib
      % sudo mv usr/lib/gtk-2.0/immodules /usr/lib32/gtk-2.0/
      
    6. ATOK X3 for Linux Ubuntu 9.04(GTK+ 2.16) 対応モジュール(wgetの場合はコチラ
    7. モジュールのインストール
      % sudo tar zxvf atokx3gtk216.tar.gz -C /
      
  11. CDをアンマウント
  12. 好みに応じてIIIMFステータス非表示ツールを設定
    1. 公式サイトからIIIMFステータス非表示ツールをDL(wgetの場合はコチラ
    2. 「/opt/atokx3/bin/」に展開し,パーミッションをroot:root (755)にする
    3. 「/etc/X11/xinit/xinput.d/iiimf」の末尾に「/opt/atokx3/bin/iiimf_status_hide」を追加
  13. 起動設定
    % sudo bash /opt/atokx3/sample/setting_debian4.sh
    
  14. 「Ctrl+Alt+F7」でXに切り替え
  15. 再ログイン
Written by h2 in: PC | タグ: ,
2月
01
2010
0

PT2設定 予約録画

epgrec

日経Linuxの記事用に開発された録画予約システムのepgrecを使用します

Ajaxを使ったUIで,市販のHDDレコーダのように番組表を見ながら予約できます

epgrecは公式サイトからDLできますが,日経Linux2010年2月号に収録されてるバージョンは受信可能電波の自動スキャン機能が使えます

  1. epgdump
      epgrecではEPGデータの取得にepgdumpが必要です
      2SNのアップ板からDLできます

      % tar zxvf epgdumpr2-utf8.tar.gz
      % cd epgdumpr2/
      % make
      % sudo cp epgdump /usr/local/bin
      

      録画したtsファイルがあれば,epgdumpをテストしてみましょう
      出力ファイルに「-」を指定すると標準出力に出力されます

      地デジの32chを録画した場合

      % epgdump 0032ontvjapan.com test.ts -
      

      BSの場合

      % epgdump /BS test.ts -
      
  2. epgrec
      epgrecのインストールはWordPressとかとほぼ同じで簡単です

      データをMySQLに格納するので,epgrec用のデータベースとユーザを作ります

      mysql> create database epgrec;
      Query OK, 1 row affected (0.00 sec)
      mysql> grant all privileges on epgrec.* to h2@localhost identified by 'パスワード';
      mysql> flush privileges;
      

      ソースを任意の場所に展開します
      自分は「/var/www/epgrec」に展開しました

      % sudo tar zxvfp epgrec-nk201002sp.tar.gz -C /var/www/
      

      epgrecはEPGの定期更新や予約録画にcronとatを使うので,「/etc/at.deny」から「www-data」を削除しておきましょう

      録画データの保存先は別パーティションの「/home」以下にしたいので,リンクを張っておきました

      % sudp mkdir /home/tv
      % sudo chown h2:h2 /home/tv
      % chmod 777 /home/tv
      % cd /var/www/epgrec/
      % ln -s /home/tv tv
      

      あとは,ブラウザでepgrecにアクセスして,指示に従って設定するだけです

      設定が終わると,EPG更新用の設定をcronの設定ディレクトリにコピーして,cronを再起動するように指示されます

      % sudo cp /var/www/epgrec/cron.d/getepg /etc/cron.d/
      % sudo service cron restart
      

epgrecは便利ですが,そのまま外部に公開するのは危険です
認証もないし,MySQLのパスワードも丸見えです

Written by h2 in: PC | タグ: ,

TheBuckmaker WordPress Themes Webhosting, MP3, AAC & Co