(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分を参照、表示されるメッセージは
●ケース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)
|
|