大変間が空いてしまいました。
以下、OpenVPNの導入作業手順を記します。
1.tunのインストール
以前のhamachiインストールの際に入れてありました。
確かUniversal TUN/TAP driverからソースファイルをもらってきてコトコトmakeすれば大丈夫だったはず。
自動起動するには/etc/rc.d/rc.localに
/sbin/tuncfg
の一行を入れておきます。
2.OpenSSLとLZOのインストール
これも何かの時に入れたものですが、tun同様、ソースからmakeして大きな問題はなかったはず。
ただOpenSSLは後で証明書や秘密鍵を作るときにパス(/usr/bin)を通してないとエラーになりました。
3.OpenVPN(2.0.9)のインストール
インストールそのものはノントラブル。
4.各種設定
他のサイト様にあるように
・(OpenVPNを解凍した階層)/openvpn-2.0.9/easy-rsaを/etc/openvpn/下にコピー
・(OpenVPNを解凍した階層)/openvpn-2.0.9/sample-config-files/server.confを/etc/openvpnにコピー
・(OpenVPNを解凍した階層)/openvpn-2.0.9/sample-scripts/openvpn.initを/etc/rc.d/init.d/openvpnとしてコピー
・/etc/openvpn/easy-rsa/varsの編集
・CA証明書とCA秘密鍵の作成
・サーバ証明書と秘密鍵の生成
・クライアント証明書と秘密鍵の生成+パスフレーズの消去
・/etc/openvpn/server.confの編集
をやっておきます。
/etc/openvpn/server.confは基本的にデフォルトのままですが
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
の4行は、各ファイルがserver.confと別階層にある場合はファイル名をフルパスで記述しておく必要があります。
あと
group nobody
の行がplamoでは「そんなグループはない」とエラーになりましたので、すでにある別のグループを指定するか、nobodyグループを新規で作らなければなりません。
5.ひとまず起動してみる
# /etc/rc.d/init.d/openvpn start
・・・
「/etc/rc.d/init.d/functionsがない」と怒られました。orz
確かにそんなファイルは存在しないんですよねえ。
それで「/etc/rc.d/init.d/funcutions」でググってみたら、
「ATOK X 格闘日記」という記事を発見。
それによるとslackware系には元々ないので、どこかから頂いてこなければならないようです。
というわけで、/etc/rc.d/init.d/funcutionsが入っているという
initscripts-xxx.i386.rpm
を探します。
今回は実験台になっているplamo3.2が相当古いので、できるだけ古いのを探します。
(当初何でもいいやと新し目のを試したら、後述するglibcバージョンエラーに悩まされたので…)
もっとも古いのと言っても、あんまり古いのは公開されていないようですが。
試した結果、RedHat7.0のinitscripts-5.49-1_lpp_3.i386.rpmで何とかOKでした。
エラーをサクサク解決できる方ならどれでも大丈夫でしょうが…
実作業は全て「ATOK X 格闘日記」様の記述に沿って行いました。改めて感謝です。
・rpm2tgzで変換
・tar zxvfしてできたfunctionsを/etc/rc.d/init.d/にコピー
(--- ここから下は要らないかも ---)
・initlogを/sbin/にコピー
・initlog.confを/etc/にコピー
5'.改めて起動してみると
今度は「/etc/rc.d/init.d/pr_functions」がないと怒られました。
これもinitscripts-5.49-1_lpp_3.i386.rpmの中にあったのでコピーします。
5''.またまた起動してみる
「/etc/sysconfig/networkがない」と怒られる…
これはちょっと見当たらなかったのと、名前からして(?)大したファイルでもなかろうと思い、ハナからなかった事にしてしまえ、と。
具体的には/etc/rc.d/init.d/openvpnを編集します。
・「. /etc/sysconfig/network」行をコメントにする
・ついでにその後も怪しいので
if [ ${NETWORKING} = "no" ]
then
echo "Networking is down"
exit 0
fi
を全部コメントにする
5'''.今度こそ!
・・・
# /etc/rc.d/init.d/openvpn start
Starting openvpn: [ OK ]
#
やれやれ。
しかしこれはサーバが上がっただけ。
この後にまだクライアント接続、ファイル共有が残っているのです。
ちなみにglibcバージョンのエラーの件です。
最初、initscripts-xxx.i386.rpmをそこそこ新しいものでやってみたところ
「glibc2.3.4がない」と怒られてしまいました。
適切なinitscriptsを適用すれば無問題なのですが、せっかく余計な足掻きをしたのでざっと記録に残しておきます。
6.glibcのアップデート(2.2.5→2.3.4)
「Linux glibc version up 2.2.3 to 2.2.5 to 2.3.6」
こちらのサイトが大変参考になりました。
以下行った手順です。
・glibc-2.3.4とglibc-linuxthreads2.3.4ソースを入手・展開
(glibc-linuxthreadsは展開後の./glibc-2.3.4内に展開)
・glibc-2.3.4と同階層に作業用ディレクトリを作り、その中で作業
# ../glibc-2.3.4/configure --enable-add-ons=linuxthreads --without-__thread --prefix=/usr
# vi Makefile
・「PARALLELMFLAGS=-j 4」のコメントを外します。
# make
# make check
※PCが遅いためかTime outエラーが出ましたが、気にせず次に進みます。
# make install
※エラー発生→ls等のコマンドが効かなくなる→ldconfigを実行して復活
これは知らないと冷や汗ものですね。
# env LANGUAGE=C LC_ALL=C make install
これで成功。
# make localedata/install-locales
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
以上で作業完了です。
…なんて、いかにもサラっと片付けちまったように書いてますが、実は数日にわたり七転八倒してます。
glibcのバージョンアップ手順は解説サイト毎に、オプションの付け方が微妙に違ってたりするんですね。
こればっかりは緻密な知識がない以上、自分とこの環境であれこれ試してみるしかありませんでした。
以下、OpenVPNの導入作業手順を記します。
1.tunのインストール
以前のhamachiインストールの際に入れてありました。
確かUniversal TUN/TAP driverからソースファイルをもらってきてコトコトmakeすれば大丈夫だったはず。
自動起動するには/etc/rc.d/rc.localに
/sbin/tuncfg
の一行を入れておきます。
2.OpenSSLとLZOのインストール
これも何かの時に入れたものですが、tun同様、ソースからmakeして大きな問題はなかったはず。
ただOpenSSLは後で証明書や秘密鍵を作るときにパス(/usr/bin)を通してないとエラーになりました。
3.OpenVPN(2.0.9)のインストール
インストールそのものはノントラブル。
4.各種設定
他のサイト様にあるように
・(OpenVPNを解凍した階層)/openvpn-2.0.9/easy-rsaを/etc/openvpn/下にコピー
・(OpenVPNを解凍した階層)/openvpn-2.0.9/sample-config-files/server.confを/etc/openvpnにコピー
・(OpenVPNを解凍した階層)/openvpn-2.0.9/sample-scripts/openvpn.initを/etc/rc.d/init.d/openvpnとしてコピー
・/etc/openvpn/easy-rsa/varsの編集
・CA証明書とCA秘密鍵の作成
・サーバ証明書と秘密鍵の生成
・クライアント証明書と秘密鍵の生成+パスフレーズの消去
・/etc/openvpn/server.confの編集
をやっておきます。
/etc/openvpn/server.confは基本的にデフォルトのままですが
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
の4行は、各ファイルがserver.confと別階層にある場合はファイル名をフルパスで記述しておく必要があります。
あと
group nobody
の行がplamoでは「そんなグループはない」とエラーになりましたので、すでにある別のグループを指定するか、nobodyグループを新規で作らなければなりません。
5.ひとまず起動してみる
# /etc/rc.d/init.d/openvpn start
・・・
「/etc/rc.d/init.d/functionsがない」と怒られました。orz
確かにそんなファイルは存在しないんですよねえ。
それで「/etc/rc.d/init.d/funcutions」でググってみたら、
「ATOK X 格闘日記」という記事を発見。
それによるとslackware系には元々ないので、どこかから頂いてこなければならないようです。
というわけで、/etc/rc.d/init.d/funcutionsが入っているという
initscripts-xxx.i386.rpm
を探します。
今回は実験台になっているplamo3.2が相当古いので、できるだけ古いのを探します。
(当初何でもいいやと新し目のを試したら、後述するglibcバージョンエラーに悩まされたので…)
もっとも古いのと言っても、あんまり古いのは公開されていないようですが。
試した結果、RedHat7.0のinitscripts-5.49-1_lpp_3.i386.rpmで何とかOKでした。
エラーをサクサク解決できる方ならどれでも大丈夫でしょうが…
実作業は全て「ATOK X 格闘日記」様の記述に沿って行いました。改めて感謝です。
・rpm2tgzで変換
・tar zxvfしてできたfunctionsを/etc/rc.d/init.d/にコピー
(--- ここから下は要らないかも ---)
・initlogを/sbin/にコピー
・initlog.confを/etc/にコピー
5'.改めて起動してみると
今度は「/etc/rc.d/init.d/pr_functions」がないと怒られました。
これもinitscripts-5.49-1_lpp_3.i386.rpmの中にあったのでコピーします。
5''.またまた起動してみる
「/etc/sysconfig/networkがない」と怒られる…
これはちょっと見当たらなかったのと、名前からして(?)大したファイルでもなかろうと思い、ハナからなかった事にしてしまえ、と。
具体的には/etc/rc.d/init.d/openvpnを編集します。
・「. /etc/sysconfig/network」行をコメントにする
・ついでにその後も怪しいので
if [ ${NETWORKING} = "no" ]
then
echo "Networking is down"
exit 0
fi
を全部コメントにする
5'''.今度こそ!
・・・
# /etc/rc.d/init.d/openvpn start
Starting openvpn: [ OK ]
#
やれやれ。
しかしこれはサーバが上がっただけ。
この後にまだクライアント接続、ファイル共有が残っているのです。
ちなみにglibcバージョンのエラーの件です。
最初、initscripts-xxx.i386.rpmをそこそこ新しいものでやってみたところ
「glibc2.3.4がない」と怒られてしまいました。
適切なinitscriptsを適用すれば無問題なのですが、せっかく余計な足掻きをしたのでざっと記録に残しておきます。
6.glibcのアップデート(2.2.5→2.3.4)
「Linux glibc version up 2.2.3 to 2.2.5 to 2.3.6」
こちらのサイトが大変参考になりました。
以下行った手順です。
・glibc-2.3.4とglibc-linuxthreads2.3.4ソースを入手・展開
(glibc-linuxthreadsは展開後の./glibc-2.3.4内に展開)
・glibc-2.3.4と同階層に作業用ディレクトリを作り、その中で作業
# ../glibc-2.3.4/configure --enable-add-ons=linuxthreads --without-__thread --prefix=/usr
# vi Makefile
・「PARALLELMFLAGS=-j 4」のコメントを外します。
# make
# make check
※PCが遅いためかTime outエラーが出ましたが、気にせず次に進みます。
# make install
※エラー発生→ls等のコマンドが効かなくなる→ldconfigを実行して復活
これは知らないと冷や汗ものですね。
# env LANGUAGE=C LC_ALL=C make install
これで成功。
# make localedata/install-locales
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
以上で作業完了です。
…なんて、いかにもサラっと片付けちまったように書いてますが、実は数日にわたり七転八倒してます。
glibcのバージョンアップ手順は解説サイト毎に、オプションの付け方が微妙に違ってたりするんですね。
こればっかりは緻密な知識がない以上、自分とこの環境であれこれ試してみるしかありませんでした。