Linuxの最近のブログ記事

CentOS6 のバグ

| | トラックバック(0)

ついに、CentOS6を新規導入しました。

 

で、ちょっとひっかかったところがあったので、メモ的に残しておきます。

 

CentOS6新規インストール後、yumが使えません。yum自体はインストールされていますが、リポジトリを探しに行けないようです。

Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* base: distrib-coffee.ipsl.jussieu.fr
* c6-media:
* centosplus: distrib-coffee.ipsl.jussieu.fr
* extras: distrib-coffee.ipsl.jussieu.fr
* updates: distrib-coffee.ipsl.jussieu.fr
file:///media/CentOS/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/CentOS/repodata/repomd.xml
Trying other mirror.
file:///media/cdrecorder/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/cdrecorder/repodata/repomd.xml
Trying other mirror.
file:///media/cdrom/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/cdrom/repodata/repomd.xml
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: c6-media. Please verify its path and try again

こんな感じのエラーがでます。

ggってみましたら、CentOSのフォーラムにこんな投稿がありましたので、早速実践。

バグリポート

yum-config-manager --disable c6-media

で、直りました。

 

あ、それと、CentOS6には、perlのSSLライブラリである、Net::SSLeayが入ってません。

webminなどをSSLモードで動作させる場合は、事前にインストールする必要があります。

インストールの方法は

こちら(webminのサイト)

 

巷で話題の、Apache Killer対策のため、Apacheのアップデートを試みました。

クララオンラインの方をアップデートしようとしたのですが、その前に、実験的に使えるねっとの方を先にアップデートしました。そのときの流れです。

クララオンラインの方で、アップデートの手順があったので、それに習うことにしました。

参考→http://support.clara.jp/news/110901_apache_update.htm

まず、使えるねっとでは、yumが入っていないので、それを先にインストール。
色々大変です。

ファイルを暗号化する

| | トラックバック(0)

バックアップファイルを暗号化する方法です。

OpenSSLの機能を利用します。ただ、OpenSSLにはものすごい沢山のオプションや機能があるので、どれを使うかは人それぞれみたいです。

私は、アルゴリズムをdes3で、saltを利用した暗号化を使ってみました。

 

基本コマンドライン

openssl des3 -e -salt -in <元ファイル名> -out <暗号化後のファイル名>

 

パスワードを予め指定する場合のコマンドライン

openssl des3 -e -salt -in <元ファイル名> -out <暗号化後のファイル名> -pass pass:<パスワード>

 

復号化のコマンドライン

openssl des3 -d -salt -in <暗号化前のファイル名> -out <復号化後のファイル名>

 

これでバックアップデータに万が一のことがあっても、流出を防ぐことができそうです。

但し、パスワードを忘れたりすると、復号化できませんので、お気をつけを。

 

<参考URL>

https://nona.to/fswiki/wiki.cgi?page=OpenSSL+Command-Line+HOWTO#p31

http://www.atmarkit.co.jp/fsecurity/rensai/securitytips/026openssl.html

http://x68000.q-e-d.net/~68user/unix/pickup?openssl

サーバーがSambaに限らないようですが、クライアントがWinXPの場合、WebClient機能の絡みで、右クリックの反応だけ遅くなることがあります。

実際、これでしばらく悩みました。

Sambaサーバーを変更したところ、右クリックが異常に遅くなったのです。

やっと解決方法を発見!

http://www.monyo.com/technical/windows/41.html

 

つまり、旧サーバーでは、Apache Webサーバを導入していたのですが、新しいサーバーでは、未導入だったのです。WinXPは、ポート80番で反応がないので、反応があるまで何度も確認を送り、タイムアウトすると、ようやくメニューを表示してくれるという次第なのだそうで...。

社内のクライアントの全てのWebClient機能を停止するのは、大変なので、サーバーの方で対処。

新サーバーにもApache Webサーバをインストールしたら、事象は直りました。

(追記:とりあえず、80番ポートを開放するだけでもよいようです)

 

...なんと...。

以前に記録した、OpenPNE(Usagi ver.)のサーバーの移転が必要になり、色々実験をした結果を残します。

 

移転方法(ざっくりと):

  1. メンテナンスモードに変更
  2. MySQLのデータをバックアップ
  3. ファイルのバックアップ(スキン等の変更したものだけでも良い)
  4. 新しいサーバーに新しいOpenPNEをインストール
  5. バックアップしたSQLデータをインポート
  6. ファイルの差し替え(上記3.でバックアップしたものだけを)

基本的には以上。

OpenPNEは、画像データもSQLデータとして格納するようになっているらしいので、基本的にはSQLデータをきちんとバックアップとれれば、新規インストールを行った後にSQLデータをインポートすることで稼働には問題はない。

 

追記として、今回は、サーバー移転に当たって、別ドメインに移転の実験を行ったが、その場合は、設定ファイル(OpenPNE_DIR/conf/config.php)内の記述を変更する必要があった。また、同じドメインでも、サーバーによってはディレクトリの位置が異なることがあるので、その場合は修正が必要である。

 

次回、SQLデータのバックアップの際の注意点を記述する。

 

 メモ的記録ですが、CentOS5をインストールした直後には、LDAP環境で使うために、必要なものを多少追加しなければ、なりません。その記録をしておきます。全てyumでインストールできます。

 

  mysql-server (MySQLがインストールされていないことがあるので:mysqldではなく、mysql-serverを入れましょう)

  php-mysql(MySQLとphpが連携するようにする)

 php-mbstring (phpでマルチバイトを使えるようにする)

 

 あと、xoops等をインストールする際には、httpd.confの、memory limitを上げてやる(初期値は16M)ことと、php.ini の[mbstring]ディレクティブを変更してあげると、大丈夫かと。

 前回は、リモート管理に関する機能について、iptalesを用いたファイアウォールで、IPアドレスによる発信元制限をかけることについて触れましたが、httpサーバーである、Apacheにも似たような機能があります。例えば、ログ閲覧等の管理者のみがアクセスすべきページやスクリプトなどに、制限をかけることができます。

 Apacheの設定ファイルはetc/httpd/conf/httpd.confですが、この設定ファイルに、<Directory>ディレクティブや<Files>ディレクティブで、指定のディレクトリやファイルを指定し、Deny Allowディレクティブ等で、アクセスの許可、不許可を記述します。

例)

<Directory /var/www/html/admin/>    
  Order Deny,Allow
  Deny from all
  Allow from 222.222.222.222
</Direcroty>

 

 ※adminというディレクトリについて、ホストがIPアドレス222.222.222.222の場合だけ閲覧を許可し、それ以外のホストは拒否(Forbidden)する。という例。

 サーバーホスティングの設定でよく見かける、「.htaccess」というファイルは、このhttpd.confファイルの、<Directory>ディレクティブ等の記述を、ディレクトリごとに記述できるファイルのことです。共有サーバー等、自分でhttpd.confの編集ができない場合に用いる場合が多いです。逆、httpd.confファイルを編集できる場合は、できるだけ.htaccessファイルを用いずに、httpd.confファイルで指示した方が良いそうです。

 但し、あまりにもディレクティブが増えすぎると、httpd.confも乱雑になってしまうので、いくつかのconfファイルに分けて、登録する方法もあるようです。特にヴァーチャルホストの設定をした場合、それぞれのドメインごとに設定が分かれますので、ドメインごとにconfファイルをつくるのが良いようです。Plesk等の場合は自動的にvhosts.confの様な設定ファイルを生成してくれるので、便利なんですが。

 

社内サーバーが一通りできあがったので、公開サーバーに挑戦することに。

色々事情があって、光回線を2本ほど増やしたので、それらを使って公開サーバーのテストをしています。

手順としては、以下の通り。

1 ダイナミックDNSサービスを使って、ドメインを設定

2 ルーターのアドレス変換機能を使って、httpやssh等のポートのみを開き、サーバー機に渡すようにする

3 サーバー機のファイアウォールの設定をする

4 apache php mysql 等の設定を行う

 

1 ダイナミックDNSサービスには、無料、有料のものがある。有料でいうと、DynDNS等。無料のものが、MyDNSや、ルーター会社がルーター購入者専用に用意しているもの等。

まずは、coregaのルーターで実験したので、coregaの無料ダイナミックDNSサービス「corede.net」でドメインを設定してみる。このサービスでは、corede.netのサブドメインであれば、無料、独自ドメインであれば、有料ということなので、まずはサブドメインから実験してみる。

次に、有料ダイナミックDNSも試してみる。DynDNSは、英語のみだが、設定はDotstar並なので、慣れればそれほど難しくはない。バッファローのルータが、DynDNSに対応しているので、こちらで登録。年間$27.50と、固定IPを取得することと比較すると格安。

最後に無料サービスも試してみる。MyDNSは無料で使えるサービス。但し、ルーターが自動的にIPを更新してくれる、上記のサービスとは異なり、FTP、メール、BASIC認証、手動設定等の方法でIPアドレスの通知が必要。

 

2 ドメインの設定が完了したら、ルーターの設定を変更。アドレス変換機能を使って、ルーターのWAN側のIPアドレスにあるポートに要求がきた場合にローカールアドレスに変換するように設定する。例えば、WAN側のIPが222.222.222.222として、ローカルのサーバ機のローカルIPアドレスが192.168.0.30とすると、222.222.222.222宛に22番ポート(SSH)の要求がきた際に、192.168.0.30のポート22番にわたすように設定する(バッファローのルーターの設定例)ルーターのアドレス変換は、最低限必要なポートだけ開けるようにする。

 

3 サーバー機の側でもポートの設定は必要。特に、SSH(22番ポート)やFTP(21番ポート)については、送信元IPアドレスを設定する等して、誰でもが接続することができないようにすることが肝要。遠隔操作を前提にしているので、webmin(10000番ポート)も設定。これで大体の設定は可能に。もちろんこのポートも発信元IPの制限をかける。

 

4 サーバーの設定。sshやftpは通常使うように設定する。apacheの設定について、今回仮想サーバーの設定を試してみる。上記2番のダイナミックDNSの設定で、複数のドメイン設定をしてみた。その上で、apacheの仮想サーバーを設定。例えば、domain.comのサブドメインをtest.domain.comとして、上記ダイナミックDNSにて両方のドメインを登録したとする。

バーチャルドメインの設定は以下のような感じ。

<VirtualHost 192.168.0.30>
DocumentRoot /var/www/vhosts/domain.com/html
ServerName www.domain.com
<Directory /var/www/vhosts/domain.com/html>
allow from all
Options +Indexes
</Directory>
</VirtualHost>
<VirtualHost 192.168.0.30>
DocumentRoot /var/www/vhosts/domain/subdomains/test/html
ServerName test.domain.com
<Directory /var/www/vhosts/domain/subdomains/test/html>
allow from all
Options +Indexes
</Directory>
</VirtualHost>

これで、www.domain.com とtest.domain.comは別々の内容を表示させることができるようになります。もちろんサブドメインだけでなく、別々のドメインの表示もできます。

 

xoopsの設定もやってみたかったので、色々実験。CentOS5で、標準に用意されていないのは、php-mbstringなので、yumでインストールしておく。また、open_basedirの設定もされていないので、上記バーチャルホスト設定のディレクトリに、

    php_admin_flag safe_mode off
     php_admin_value open_basedir "/var/www/vhosts/domain.com/html:/var/www/vhosts/domain.com/xoops_trust_path"

等の記述を入れておくことを忘れずに。safe_modeもmasterではonにしておき、このディレクトリのみoffにしておくとよいのではないかと思う。

 

その後...

| | トラックバック(0)

 サーバー管理も安定期に入ってしまったようです。

 社内サーバーに関しては、ほぼしなければならない事項は済み、毎日バックアップも行われている状態です。正直、一旦構築が終わると、ほとんど何もしなくても良いのがLinuxなんですね。非常に楽です。

 Webサーバー(レンタル)の方は、あれからまたいくつかのサイトを構築しましたが、Xoopsがメインなので、今まで拾得してきた内容でほぼ問題なし。こちらも、一度学習すると、非常に楽にできますね。

 また、新しいことに挑戦することになれば、またここに記載する予定ですが、近い内はほぼトラブルなくやれそうです。

前回の続き。最終的なスクリプトは以下のような感じになりました。

 

#!bin/bash

basedir=/root/backup
workdir=$basedir/temp
timestamp=`date +%Y%m%d%H%M`
newdir=$basedir/`date +%Y%m%d%H%M`

if mkdir $newdir; then
  echo New directory : $newdir
else
  exit
fi

mysqldump --user=test --password=***** test TABLE1 TABLE2 > $workdir/test_DUMP.sql
cd $workdir
tar czf $newdir/test$timestamp.tar.gz .
scp $newdir/test$timestamp.tar.gz 192.168.2.32:~/test
rm -rf $workdir/*
rm -rf $newdir

 

 排他処理が入っているので、ダブってスクリプトが起動されることもありません。また、作業領域を毎回つくって、そこで作業させ、最後に消去しているので、作業領域が中途半端に残ることもありません。