日記から戻る
過去日記ログ
他の月を見る


☆- ログ倉庫・・・っぽいもの、若しくは鯖メモ -☆
検索で飛んできた人はこちらで内部検索してください、むしろ自分が楽するために設置

(2008/01)



[ apt.conf ]
インターネットに直接出られないセグメントから、ソフトウェア等のアップデートをしたい場合の小技(vine編)

インターネットに直接出られるセグメントの端末でproxyを立てて、apt.confにproxyを使用するように書く
今回はちょうど仮想マシン上にapacheがいたのでproxyにする


# vi /etc/apache2/conf/httpd.conf
−−−−−−−−−−−−−−−−−−−−−−−−−−
ProxyRequests On
−−−−−−−−−−−−−−−−−−−−−−−−−−


次にアップデートしたい側のサーバ


# vi /etc/apt/apt.conf
−−−−−−−−−−−−−−−−−−−−−−−−−−
APT
{
 Get
 {
  Download-Only "false";
  Show-Upgraded "true";
 };

};

RPM
{
  AutoRebuildDB "false";
}

Acquire
{
  CDROM::Copy "true";
  Retrys "0";
}
Acquire::http::Proxy "http://ProxyAddress/";
−−−−−−−−−−−−−−−−−−−−−−−−−−


これでapt-getが繋がる、一時的な処置なんで終わったら戻しておく事
2008/01/25(Fri) 晴れ



[ Apache HTTP Server 2.2.8 ]
Apache 2.2.8 Released という事で、Apache2.2.8がリリースですよ
・・・金曜に2.2.6で検証したら土曜に2.2.8が出やがった、しかも使うモジュールのセキュリティfixが入って
今回はtomcat6.0.14と連携するのでmod_proxyとmod_proxy-ajpも付けて、かつSSL対応というか443でしか通信しない

まずopensslのインストールから


# tar -zxvf openssl-0.9.8g.tar.gz
# cd openssl-0.9.8g
# ./config
# make
# make test
# make install


これをやっておかないとApacheのconfigureで--with-sslが指定できない


# tar -zxvf httpd-2.2.8.tar.gz
# cd httpd-2.2.8
# ./configure --enable-so --enable-proxy --enable-proxy-ajp --enable-ssl --with-ssl=/usr/local/ssl
# make
# make install


tomcatとJDKをインストール


# chmod +x jdk-6u3-linux-i586-rpm.bin
# ./jdk-6u3-linux-i586-rpm.bin
#
#
# tar -zxvf apache-tomcat-6.0.14.tar.gz
# cp -R apache-tomcat-6.0.14/ /usr/local/
# ln -s /usr/local/apache-tomcat-6.0.14 /usr/local/tomcat
# vi /home/tomcat/.bash_profile
−−−−−−−−−−−−−−−−−−−−−−−−−−
JAVA_HOME=/usr/java/jdk1.6.0_03
CATALINA_HOME=/usr/local/apache-tomcat-6.0.14
PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH
export JAVA_HOME
export CATALINA_HOME
export PATH
−−−−−−−−−−−−−−−−−−−−−−−−−−


さて、使うものは入れたので設定を行う
まずはSSLで使う鍵の生成


# cd /usr/local/ssl/bin/
# ./openssl md5 * > rand.dat
# ./openssl genrsa -rand rand.dat -out server.key 1024
# ./openssl req -new -key server.key -out server.csr
# cp -r /usr/local/src/openssl-0.9.8g/apps/demoCA/ /usr/local/ssl/CA/
# cd /usr/local/ssl/CA/
# chmod 700 /usr/local/ssl/CA/
# mv cacert.pem cacert.pem.org
# cd private/
# mv cakey.pem cakey.pem.org
# cp /usr/local/ssl/openssl.cnf /usr/local/ssl/CA/
# vi /usr/local/ssl/CA/openssl.cnf
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[ CA_default ]

#dir      = ./demoCA       # Where everything is kept
dir       = /usr/local/ssl/CA/
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

# /usr/local/ssl/bin/openssl genrsa -des3 -out cakey.pem 1024
# cd /usr/local/ssl/CA/
# /usr/local/ssl/bin/openssl req -new -x509 -key private/cakey.pem -out cacert.pem
# mkdir /usr/local/ssl/CA/newcerts
# /usr/local/ssl/bin/openssl ca -config openssl.cnf -policy policy_anything -in /usr/local/ssl/bin/server.csr -out server.crt


作った鍵をApacheのconfディレクトリへコピー


# cp /usr/local/ssl/bin/server.* /usr/local/apache2/conf/
# cp /usr/local/ssl/CA/server.crt /usr/local/apache2/conf/


これらを読み込むようにApache側に設定を行う
SSLを使用するので、先頭の#を外してhttpd-ssl.confのincludeを有効にする


# vi /usr/local/apache2/conf/httpd.conf
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−


conf/extra/httpd-ssl.confにて先ほどコピーした鍵を読み込む設定が必要になる


# vi /usr/local/apache2/conf/extra/httpd-ssl.conf
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
#SSLCertificateFile "/usr/local/apache2/conf/server-dsa.crt"

SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
#SSLCertificateKeyFile "/usr/local/apache2/conf/server-dsa.key"
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−




おまけ
server.keyを作る時にパスワードなしで作った、パスワードありにするには


# ./openssl genrsa -des3 -rand rand.dat -out server.key 1024


パスワードを付けた鍵からパスワードなしの鍵に変更するには


# ./openssl rsa -in server.key -out server.key


パスワードありのままじゃApacheの起動時にパスワード求められてしまうんで、OS起動時に自動起動とか困る
2008/01/24(Thr) 晴れ



[ vncserver ]
OSと一緒にインストールされていたので設定、普段はsshでしか接続しないんで久々


# vi /etc/sysconfig/vncservers
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768"

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−


800x600だと小さいので1024x768で接続、display番号は1
VNCクライアントからは[IPアドレス]:1で接続、ブラウザからなら[IPアドレス]:5801
FWに5901と5801のポートを開けること、最後の数字はdisplay番号になることに注意
例えば VNCSERVERS="2:myusername" であればdisplay番号が2なので、5902、5802番ポートになる
ブラウザからは5801で繋がるのだが、ログインボックスが出た時点で最後のdisplay番号を書き換えれば2でも3でも
2008/01/23(Wed) 雨



[ ソフトウェアRAID-1とMBR ]
1/16の関連、実際に障害が発生してメンテナンスすると想定して、如何にダウンタイムを短くするかを考える
データ破損であればReBuildすれば良いだろう、だがディスク交換となると一度は電源を落とす必要がある
・・・ホットスワップじゃないんでね
OSの入れ直しからか、新しいディスクを搭載してReBuild掛けるかで、ダウンタイムに数時間の差が出るので16日分のになったのだが
そこで実際のメンテナンスを想定したパターンで検証してみた

●ケース1
 16日の分、ソフトウェアRAID-1でプライマリを抜いた状態で起動
 残されたセカンダリにMBRがないため起動不可、セカンダリにMBRのインストールをしておく必要がある
 方法は1/16分を参照、表示されるメッセージは


GRUB: Hard Disk Error


●ケース2
 セカンダリにケース1の対応済みでプライマリを抜いて起動
 セカンダリのみで起動可能

●ケース3
 起動可能なセカンダリと、故障したプライマリベイに新しいディスク(同容量・新品)を挿入して起動
 プライマリディスクが新品なので起動不可、表示されるメッセージは


FATAL: No bootable medium found! System halted.


●ケース4
 セカンダリディスクをプライマリに、新品ディスクをセカンダリに挿して起動
 そこからddで起動可能なセカンダリのクローンを作る、同容量のディスクを用意したのはこの為でもある


# dd if=/dev/hda of=/dev/hdb


 作成終了後、電源を落としてddで作ったディスクをプライマリへ、元々セカンダリにあったディスクを
 セカンダリへ搭載して起動
 起動中にfsckを実行しろとメッセージが出るものの、fsck実行後再起動すると問題なく起動した
 どうやらddはMBRもコピーするようだ

●ケース5
 ケース4で作ったddクローンディスクのみにして起動、これも起動する

●ケース6
 ddで作った時にfsckしろとメッセージが出たので手動でディスクを作る
 正常なセカンダリをプライマリに、新しい(さっきのとは別の)ディスクをセカンダリに挿して起動
 fdisk -l で表示されるプライマリの情報を基に、fdiskで新品のセカンダリに同じパーティションを作成する
 ヘッダ・セクタ・シリンダも合わせておく事
 作成した同じパーティションを持つディスクをRAID-1のミラーに追加してReBuildを掛ける
 同期完了後、電源を落としプライマリとセカンダリを入れ替えて起動
 MBRがないので起動不可

●ケース7
 ケース6で作ったディスクにケース1の対処をして起動
 問題なく起動する


まぁ、ちょーっと手間だけどfdiskで新しいの作った方が安全かな?
ハードウェアRAIDだとRAIDコントローラがそこらへんよきにはからってくれるのだろうか
2008/01/18(Fri) 晴れ



[ ソフトウェアRAID-1でのgrub ]
プライマリで障害が発生してもセカンダリでbootできるように


# grub
grub> device (hd0) /dev/hdc
grub> root (hd0,0)
grub> install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf
grub> quit
#


これは/bootがhda・hdcでRIAD-1組まれてる場合、HDDが2発ならhda・hdbになるので
/dev/hdc の箇所は適宜変更すること

また、/boot を / と別のパーティションに切っていない場合は
/grub/ のパスが /boot/grub/ になるらしい

仮想マシンでこの設定をして、仮想プライマリディスクを外してみたが起動できた
2008/01/16(Wed) 晴れ



[ 便利さの裏側に潜む狂気 ]
試験管のなかのコード :: "yum remove openssl" の恐怖
>・・・apt は大丈夫なのだろうか?? 怖くて試す気にはなれないが。
と書いてあったので試してみた(*´∀`)

rootで
# apt-get remove openssl

依存問題で一緒に削除されるパッケージの一覧がずらずら出てくる、vine4.1ではデフォルトインストールで102個
ところでなぜか1個インストールされるんだが・・・gstreamer08、名前からしてストリーム再生系?

しかしyumと違ってちゃんと確認を取るようだ
>何をしようとしているか分からない場合は、*絶対に*実行してはいけません

>あなたは重大な問題を引き起こす可能性のあることをしようとしています。
>本当に続行しますか?続行する場合は次のフレーズを入力してください
>Yes, do as I say!
ここでYesだけ入れたら実行されなかった

実行の最後でrpmがcommand not found言われてる
lsを打ってみる、使える
rpmを打ってみる、not found
apt-getを打ってみる、not found

ここでrebootしてみた
どうやらgnomeの起動も出来なかったようだ、シンプルなログイン画面が現れる
ここから復旧するには再インストールが一番早いな

Solarisでpkgrmしたらどうなるんだろ?
というかあれopensslじゃねぇし
2008/01/01(Tue) 晴れ

My Diary Version 1.21
[ 管理者:やま 著作:じゃわ 画像:牛飼い ]