DigiLoog

PC関係の事なら何でもいけるそんな処

Archive for the ‘Linux’ Category

バージョンアップしたら頗る調子が悪いのだが…

2011年04月30日(土) - 23:35 | カテゴリ: Linux

自鯖をCentOS 5.5からCentOS 5.6にアップデートしてから
なぜだがsawtchとかWordPressのWP-DBManagerが調子悪くなってしまった。
動作自体には問題が無いのだが、
swatchでは、検出はするけどログの中身がなんか変な状態になっている…
WP-DBMではweb上では普通にSQLコマンドを送信したり、
バックアップを手動では出来るのだが、自動バックアップやらの内部処理関係が動かない……orz
一応、設定ファイルやらを見たのだが、今までと変わっている所は無い模様。
一部設定ファイルで.rpmsaveやら.rpmnewが出来ていて入れ替わっている事があるが、
実際に今までの設定ファイルと新規の設定ファイルを見比べてみると、
項目は違えど意味は同じになっているという。

今までは何となく解決する事が出来てきたけど、
今回直面している問題はどうも『yum update』が原因っぽいのでどうしようもないのがなぁ~
たしかに、ダウングレードすれば問題は解決するだろうが、
CentOS 5.6にupdateしたのに一部項目だけダウングレードするのは気が引ける…
もう一度設定ファイルをなめてくるか..


Drobo FSにOpenSSHを入れてみた – (03)

2011年03月27日(日) - 00:00 | カテゴリ: Linux

前(エラー回避編)

6. ユーザ設定
まずユーザ登録。ちなみに、初期状態ならDashboardの方で登録してあるユーザ+パスワードとrootでログインする事が出来る。
必要なら、SSH専用ユーザをDashboard上で作成しておくといいかもしれない。

次にrootパスワードの変更(SSH鯖を入れたなら、絶対にやる。やっておかないとrootで簡単に誰でも入れてしまう)
と言っても先の通りpasswdでパスワードを変更しても再起動をかけるとなぜかrootのパスワードがrootに戻ってしまう。
なので、Dropbear付属のパスワード変更スクリプトを利用してrootパスワードを変更する。
_/_/_/_/_/ コ マ ン ド _/_/_/_/_/
# cd /mnt/(DroboFSのDNS名)/Shares/DroboApps/dropbear
# ./root_passwd(または、[# sh ./root_passwd])
//以後、普段のpasswdと同じ。
_/_/_/_/_/ こ こ ま で _/_/_/_/_/
このスクリプトではrootのパスワードしか変更する事が出来ない。
他のユーザはDashboardから変更する。

上で普通のユーザを設定したら、root以外のユーザでログインしてみる。
そこからrootになろうとしても([$ su -])、
なにかエラーがでて(メモるの忘れた(´・ω・`))rootになる事が出来ない。
これは、DroboFSで使っているBusyBoxにSUID(SetUserID)が付属されていないから(BusyBoxはググって調べる)
これがないと、BusyBoxの場合root権限でsuを実行する事が出来ないのでエラーが出る。
なので、rootで入り直して
_/_/_/_/_/ コ マ ン ド _/_/_/_/_/
# chmod 755 /bin/busybox
# chmod +s /bin/busybox
_/_/_/_/_/ こ こ ま で _/_/_/_/_/
をすれば一般ユーザからでもsuを実行する事が出来る。

7. OpenSSHの設定
と言っても大方普段のOpenSSHと同じ設定方法で大丈夫。
最低限やるとしたら、
_/_/_/_/_/ sshd_config _/_/_/_/_/
Protocol 2
PermitRootLogin no
PermitEmptyPasswords no
_/_/_/_/_/ こ こ ま で _/_/_/_/_/
の三つぐらいかと。
また、公開鍵方式でログインも出来る(当たり前っちゃ当たり前だが…)
公開鍵方式でログインをするのなら、ググればいくらでも出てくるので割愛。
唯一のコツとしては、公開鍵方式でログインしたいユーザでSSH接続をしてから、
一回[$ cd]をやってホームディレクトリに戻った状態から設定をする事と、
常にrootで入りっぱなしのコンソールを用意しておく事(もし設定を間違えたとしても、rootでログインしているコンソールが一つでもあれば設定ファイルを上書き出来る)

あとは、sshコマンドのPATHを追加する。
普段のLinuxと同じようにもPATHを追加出来るのだが、それだと様々なユーザの.bashrcを書き換えるか、
boot時に読み込む様にするかしなければならない。
NAS等でbash系は書き換えたくないので、コマンド自体へシンボリックリンクを貼る事で代用する。
_/_/_/_/_/ コ マ ン ド _/_/_/_/_/
# cd /mnt/(DroboFSのDNS名)/Shares/DroboApps/openssh/bin
# chmod 755 *
# cd /usr/bin
# ln -s /mnt/(DroboFSのDNS名)/Shares/DroboApps/openssh/bin/ssh ssh
(以下必要なコマンド全てに対してリンクを貼る)
//新規作成したコマンドパスがちゃんと/usr/binの中から呼び出されているかを検証
# which ssh
//[/usr/bin/ssh]みたいになっていればOK
_/_/_/_/_/ こ こ ま で _/_/_/_/_/
しかし、このままだとrootからしかsshコマンドを実行出来ない。
これは、/dev内のtty関係のファイルとrandom系のファイルを一般ユーザからは実行する事が出来ないから。
一般ユーザでもsshコマンドを有効にするには、これらのファイルに対してパーミッションを変更するか、
権限やグループを変更すれば実行出来る様になる。

粗方な事は以上で終わり。
あとは、実際にsshd_configを煮詰めたり公開鍵でログイン設定をしているならパスワードでログインが出来ない事を確認したりする。
また、DroboFSはNASであってLinux鯖ではないので注意。あまりに弄りすぎるとDroboの内部構造が破壊されるかもしれない。


Drobo FSにOpenSSHを入れてみた – (02)

2011年03月26日(土) - 01:01 | カテゴリ: Linux

前(導入編)

5. OpenSSH起動エラー回避
以下は一例。他にも引っかかる要素はあるだろうけど確認できたのはこれらだけだった。
エラーログは先のopensshディレクトリ(varの下層)にある。エラーログを見て後はググるべし。
また、この項目では“OpenSSHサーバは起動していなくて、Dropbearサーバは起動している状態”を前提とする。
※BLOG自体の表示によってコマンドが改行されているみたいなっているが、本来は改行されていないので注意。
ノートパッド等にコマンドをコピペしてみると本来のコマンドが表示される。

I. 『error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory』
所謂共有ライブラリ迷子。sshdが起動する時にライブラリを参照出来ていないので直接指定する。
まず、rootでDroboFSにSSHログインをする。
_/_/_/_/_/ コ マ ン ド _/_/_/_/_/
//OpenSSHの使っているライブラリを確認してからシンボリックリンクを張る
# cd /mnt/(DroboFSのDNS名)/Shares/DroboApps/openssh/lib
# ls -l
# cd /usr/lib
//使っているDroboFSによってはライブラリ名(+数)が変わるかも
# ln -s /mnt/(DroboFSのDNS名)/Shares/DroboApps/openssh/lib/libcrypto.so libcrypto.so
# ln -s /mnt/(DroboFSのDNS名)/Shares/DroboApps/openssh/lib/libcrypto.so.1.0.0 libcrypto.so.1.0.0
# ln -s /mnt/(DroboFSのDNS名)/Shares/DroboApps/openssh/lib/libssl.so libssl.so
# ln -s /mnt/(DroboFSのDNS名)/Shares/DroboApps/openssh/lib/libssl.so.1.0.0 libssl.so.1.0.0
# ln -s /mnt/(DroboFSのDNS名)/Shares/DroboApps/openssh/lib/libz.so libz.so
# ln -s /mnt/(DroboFSのDNS名)/Shares/DroboApps/openssh/lib/libz.so.1 libz.so.1
# ln -s /mnt/(DroboFSのDNS名)/Shares/DroboApps/openssh/lib/libz.so.1.2.5 libz.so.1.2.5
//Dropbearを停止してOpenSSHが起動するかを確かめる(要再起動)
# cd /mnt/(DroboFSのDNS名)/Shares/DroboApps
# vi .servicerc
//ここでOpenSSHとDropbearの起動を入れ替える(YESとNOの反転)
# reboot(コマンドが無かったらDashboardから再起動)
_/_/_/_/_/ こ こ ま で _/_/_/_/_/
あとはOpenSSHの起動ログを見てエラーが出ていなかったらとりあえず成功。
実際にSSHで入ってみて確かめる。

II. 『fatal: /(それぞれ違うディレクトリ)/empty/sshd must be owned by root and not group or world-writable.』
これはemptyフォルダのパーミッションが正しくなく、sshdが読み込み(移動)をする事が出来ないから起きるエラー。
本来ならディレクトリのパーミッションにビット1を全部にたてれば(=移動可能にすればOK。例えば511とか755とか)いいのだが、
再起動するとパーミッションとユーザ・グループがバグるので却下。
色々解決方法はあるけど、一番楽な方法を記載。
_/_/_/_/_/ コ マ ン ド _/_/_/_/_/
//sshd_configを書き換えてsshdの実行ユーザを変更
# cd /mnt/(DroboFSのDNS名)/Shares/DroboApps/openssh/etc
# vi sshd_config
_/_/_/_/_/ 書 き 換 え _/_/_/_/_/
#UsePrivilegeSeparation yes

UsePrivilegeSeparation no
に変更
_/_/_/_/_/ こ こ ま で _/_/_/_/_/
# cd ..
//一応パーミッションも変えておく
# chmod -R 755 var
# chown -R root.root var
//chownがこれでダメだったら、以下に変更
# chown -R sshd.sshd var
_/_/_/_/_/ こ こ ま で _/_/_/_/_/
あとはログ見て、実際にログインしてみてで起動確認。

他のエラーはググってみれば標準Linuxでの解決方法があるからそこからはアイディアでなんとかなる。

続き(設定編)


  • 応援中

    D.C.5 Sweet Happiness ~ダ・カーポ5~スイートハピネス 2025年3月28日(金)発売予定 予約受付中
    バカップル・サプリメント