« 2005年6月 | メイン | 2005年8月 »

2005年7月27日

Konfabulator2.1


icon_Konfabulator2.png

デスクトップの好きな場所に配置可能なアクセサリー的なファイル「Widget」を実行させる XML + JavaScript ランタイムエンジン。

なんと、米Yahooに買収されフリーウェアに・・・・・
買った人はどうなるの・・・・

参考サイト
PISCES
Konfabulator widget開発
こんふぁぶログ

投稿者 AJ : 11:46トラックバック (0)

2005年7月25日

FinderCleaner 1.5.2

FinderCleaner.png

指定したボリュームまたはフォルダ内に存在するさまざまな不可視ファイルを簡単に削除するためのツール。.DS_Store、リソースフォーク、FBCファイル、.Trashesに対応。

投稿者 AJ : 11:44トラックバック (0)

mixi widget 1.0b2

mixi_widget.jpg

mixiの各種データを表示するDashboard用ウィジェット。マイミク最新日記、日記コメント記入履歴、コミュニティ最新書き込み、あしあとをリスト表示します。

投稿者 AJ : 11:38トラックバック (0)

2005年7月23日

iphotoBuddy

iPhotoのライブラリーを複数作り切り替えながら起動できるソフト。

http://www.nofences.net/iphotoBuddy/

投稿者 AJ : 17:12トラックバック (0)

2005年7月22日

mixi Notifie

このソフトをいれていると日記、コミュニティ、アルバムの新着を自分の決めたサイクルでリアルタイムにお知らせしてくれます。ほかの作業をしていてもお知らせ窓が開きそこに新着の情報が表示されます。またDock内のmixi Notifierアイコンにも新着件数が表示されます。

これさえあれば、仕事中?でも効率的にmixiチェックができます。
詳しいことは下記を参照に・・・

http://8-p.info/mixiNotifier/

あと、このソフトは Growl と呼ばれるフリーソフトと組み合わせると便利です。 というか Growl なしだと不便です。

http://growl.info/

投稿者 AJ : 11:34トラックバック (0)

2005年7月21日

Safari Prairiefire 1.0.1 (E)

Safari_Prairiefire.gif

http://www.balooba.se/baloobasoftware/texts/safari_prairiefire.htm

Safariのブックマークに登録しているURLを順番にチェックして、エラーや接続不可 などのURLをピックアップしてくれるソフト。不要なURLはまとめて削除できる。レジ スト前はサイト数に制限あり。[シェアウエア/6ドル]

投稿者 AJ : 11:41トラックバック (0)

Cobalt-RaQ4のリストア

Sun Cobalt RaQ 4の標準のバックアップ機能を用いたディザスタリカバリについて

1. 概要

Sun Cobalt RaQ 4のシステムは/home/sites配下の仮想サイト,ユーザデータや/etc配下のシステムの設定のほかに,管理画面の制御に使用するSun Cobalt専用のデータベースからなり,使いやすいユーザインタフェースの提供を実現しています.
ところがSun Cobaltが標準で提供しているバックアップ機能ではSun Cobaltデータベースのバックアップをとっておらず,バックアップしたデータを単純にリストアしただけでは管理画面の情報が復旧しません.
とはいえ,管理画面の情報(すなわちSun Cobaltデータベース)を復旧させる方法がないわけではありません.RaQ 4には,/etc配下のシステム情報とSun Cobaltデータベースとの矛盾をチェック・解決するmeta-verifyというユーティリティが標準で用意されており,バックアップ(.raqファイル)とこのmeta-verifyを組み合わせることにより,Sun Cobaltデータベースを復旧させ,ディザスタリカバリを行うことが可能です.

以下ではその使用法を説明し,データおよびユーザ・仮想サイト情報の復旧方法を解説します.この手順はかなり複雑ですので,以下の手順を熟読し,よく理解した上で行ってください.またLinuxのシステム管理の知識が必要となりますので,経験のない方は行わないでください.

(注意)
ここで解説している方法はRaQ 4についてのみ有効な方法です.RaQ 2または3では使うことができませんのでご注意ください.

2. 標準バックアップ機能でバックアップされるファイル

RaQ 4の標準バックアップ機能によりバックアップされるファイルは,以下のディレクトリ配下のあるファイルです

/etc Linux OSの設定情報
/home 仮想サイト・ユーザのデータ(Web,FTP,IMAP,logなど)
/usr/admserv/html/.cobalt 管理画面情報
/usr/local/majordomo メーリングリスト情報
/var/spool/mail メールスプール
/var/vacation 自動応答メッセージ


3. 復旧手順

(1) システムの初期化

OS Restore CDよりシステムの初期化を行い,そのホストに対しバックアップデータを元に復旧します.この新規のホストのことをターゲットホスト,バックアップデータをとったオリジナルのホストをオリジナルホストと呼ぶことにします.

・RaQ 4に添付されているOS Restore CDを用いて工場出荷時の状態に戻します.
・ターゲットホスト上でセットアップウィザードを起動し,ホスト名,IPアドレスなどできるだけオリジナルホストと同じ設定にします.
・ターゲットホストに対し,オリジナルホストと同一のパッチを適用します.(必要な場合)


(2) PostgreSQLパスワードの退避

Sun CobaltデータベースはPostgreSQLのデータベースに格納されますが,それにアクセスするにはPostgreSQLで定義したアカウントを使用します.そのアカウントのパスワードは,システムの初期化時に,ホストごとにユニークに生成されます.したがってターゲットホストのパスワードはオリジナルホストのものとは当然異なるわけですが,ターゲットホスト上で運用を開始するには,ターゲットホストのパスワードを使用しなければなりません.バックアップデータをリストアしてしまうと,ターゲットホストのパスワードファイル(/etc/cobalt/.meta.id)が上書きされてPostgreSQLにアクセスできなくなってしまいますので,パスワードファイルを退避しておきます.

・rootでログインする
・/etc/cobalt/.meta.idファイルを/homeなどに退避しておく

# cp -p /etc/cobalt/.meta.id /home


(3) バックアップファイルのリストア

バックアップファイルをいったんターゲットホストにコピーしておき,そのファイルからリストアします.その際に起動中のhttp,postmasterなどのデーモンの設定ファイルが上書きされてしまうので,起動中のデーモンはすべて停止します
またバックアップファイル(.raqファイル)は,tar.gzファイルにリストア用のヘッダーを加えた形式になっており,そのままではtarコマンドで解凍できないのでツールを用いてヘッダーを取り除きます.

・ftpなどでバックアップファイルをターゲットホストの/homeなどにコピーする
・以下のftpサイトよりstripheader-raq3-raq4.plファイルをダウンロードする
 ftp://ftp.cobaltnet.com/pub/experimental/stripheader-raq3-raq4.pl
・stripheaderユーティリティにより.raqファイルからヘッダーを取り除く(カレントディレクトリにout.tar.gzというファイルが作られます)

# cd /home
# chmod +x stripheader-raq3-raq4.pl
# ./stripheader-raq3-raq4.pl <.raqファイル名>

---------------------
$ PERL_BADLANG=0
$ export PERL_BADLANG

とかすれば、とりあえずワーニングは消えるのではないでしょうか?
(毎回入力しなくてもよいように/etc/profileに書くとよいかも)
あとは/etc/sysconfig/i18nを編集してLC_ALL=Cにしてリブートするとか。

でも、根本的な解決ではなさそうなので(多分、このワーニングを消すにはコンパイルしないといけないはず。)なんともいえませんが。

> perl: warning: Setting locale failed.
> perl: warning: Please check that your locale settings:
> LANGUAGE = "ja_JP.SJIS",
> LC_ALL = "ja_JP",
> LANG = "ja_JP"
> are supported and installed on your system.
> perl: warning: Falling back to the standard locale ("C").
----------------------------------

・デーモンを停止する

# cd /etc/rc.d/init.d
# ./httpd stop
ウェブサービス ヲ シャットダウン シテイマス: httpd
# ./postgresql stop
PostgreSQL ヲ シャットダウン シテイマス: ok
# ./sendmail stop
メールサービス ヲ シャットダウン シテイマス: sendmail ok
# ./admserv stop
Stopping admin web server: ahttpd

・データをリストアする

# cd /
# tar --same-owner -xvzf /home/out.tar.gz


(4) root, adminアカウントのパスワードの変更

リストアしたことにより/etc/passwdファイルが上書きされてしまって,rootとadminアカウントのパスワードが変わってしまったので,わからなくなってログインできなくなってしまう前にパスワードを変更しておきます.

# passwd
New login password:
Retype new login password:
passwd: all authentication tokens updated successfully
# passwd admin
Changing password for user admin
New login password:
Retype new login password:
passwd: all authentication tokens updated successfully


(5) 退避していた/etc/cobalt/.meta.idを元に戻す

# cp -p /home/.meta.id /etc/cobalt


(6) Postmasterなどのデーモンの再開

# cd /etc/rc.d/init.d
# ./postgresql start
PostgreSQL ヲ シャットダウン シテイマス: ok [3485]
# ./sendmail start
メールサービス ヲ シャットダウン シテイマス: sendmail
# ./httpd start
ウェブサービス ヲ シャットダウン シテイマス: /usr/sbin/httpd

# ./admserv start
Starting admin web server:
/usr/sbin/httpd.admsrv


(7) meta-verifyユーティリティによる仮想サイト・ユーザ情報の復旧

meta-verifyコマンドを用いて仮想サイト・ユーザ情報を復旧させます.
meta-verifyコマンドは/etc配下のシステム情報を用いてSun Cobaltデータベースに仮想サイト・ユーザデータをインポートします.

・/etc/passwdファイルのコードを変換する

meta-verifyコマンドによって,ユーザ名は/etc/passwdファイルを参照しSun Cobaltデータベースにインポートされますが,その際に漢字コードは変換されません.
Sun CobaltデータベースにはSJISで格納しなければなりませんが,元となるpasswdファイルにはEUCで格納されています.
したがってnkfコマンドを使用して,いったん/etc/passwdファイルをSJISに変換し,meta-verifyによってインポートを行ったのち元に戻します..

# cp -p /etc/passwd /tmp
# nkf -s /tmp/passwd > /tmp/passwd.sjis
# cp /tmp/passwd.sjis /etc/passwd

(注意)
(/usr/sbin/cobalt/adduserコマンドを用いて自動登録するなど)ユーザ登録の法によっては,ユーザ名がSJISとEUCのコードが混在した状態で,/etc/passwdファイルに格納されている場合があります.その場合は上記のようにnkf -sコマンドで簡単にSJISに変換することができません.
以下のようにsplitコマンドなどでpasswdファイルを分割し,行ごとに変換したのちcatコマンドでマージしたものを使用してください.

# mkdir /tmp/split
# cd /tmp/split
# split --lines=1 /tmp/passwd
# for i in *
> do
> nkf -s $i
> done | cat > /tmp/passwd.sjis


・ユーザ・仮想サイト情報をインポートする

meta-verifyコマンドを使用し,Sun Cobaltデータベースにインポートします.

# meta-verify -if

meta-verify (version 3.0)
(c) 2000 Cobalt Networks, Inc

checking VIRTUAL SITES
repairing xx INVALID VIRTUAL SITES

site1 | saved
site2 | saved
...

checking USERS
repairing xxx INVALID USERS

saito | saved
nishida | saved
...
OK

注意)エラーが出た場合,再度同じコマンドを実行すると正常終了することがあります.

・passwdファイルをもとにもどす

# cp -p /tmp/passwd /etc


(8) meta-verifyコマンドで復旧できない情報の再設定

仮想サイトおよびユーザのデフォルト設定,ユーザの最大許容ディスク容量などの一部の情報はmeta-verifyコマンドを用いても復旧されません.これらの情報は管理画面より「手動で」再設定を行わなければなりません.
再設定が必要な情報は以下の通りです

 仮想サイトのデフォルト
 ユーザのデフォルト
 仮想サイトの最大許容ディスク容量
 仮想サイトの最大ユーザ数
 仮想サイトのFrontPageエクステンション設定
 仮想サイトのFrontPageエクステンションパスワード
 仮想サイトのシェルアカウント設定
 仮想サイトのAPOP設定
 仮想サイトのサスペンド設定
 Anonymous FTPの着信ファイルサイズ
 ユーザの最大許容ディスク容量


(9) ファイルの削除

復旧に使用した一時ファイルを削除します.これらのファイルは「必ず」削除しておかなければなりません.なぜならこれらのファイルを残したままにしておくと,再度バックアップを行ったの際にバックアップデータとして保存されてしまい,再びディザスタリカバリを行わなければならなくなった際には,(2)などでいったん退避したファイルの上に上書きされてしまう危険性があるからです.

# rm /home/.meta.id
# rm /home/<.raqファイル>
# rm /home/out.tar.gz
# rm /tmp/passwd.sjis
# rm /tmp/passwd


4. 復旧できない情報

3. (8)で述べたとおり,meta-verifyコマンドを用いても復旧できない情報があります.これらの情報は管理画面より再設定を行わなければなりません.
復旧できない情報は以下の通りです.

 仮想サイトのデフォルト
 ユーザのデフォルト
 仮想サイトの最大許容ディスク容量
 仮想サイトの最大ユーザ数
 仮想サイトのFrontPageエクステンション設定
 仮想サイトのFrontPageエクステンションパスワード
 仮想サイトのシェルアカウント設定
 仮想サイトのAPOP設定
 仮想サイトのサスペンド設定
 Anonymous FTPの着信ファイルサイズ
 ユーザの最大許容ディスク容量

またユーザが独自にインストールしたプログラムやカスタマイズした設定は復旧できない場合があります.どのディレクトリ配下のファイルがバックアップされるかについては,2.を参照ください.バックアップされるディレクトリ配下のファイルは復旧可能です。

投稿者 AJ : 11:13トラックバック (0)

2005年7月20日

Cobalt-.htaccessによるパスワード制限

Cobalt(RaQ3,RaQ4,RaQ550)でパスワード認証の付いたページを作りたいと思った場合、手っ取り早く行うときには保護したい Web ディレクトリ以下に、.htaccess という名前で(ファイル名先頭の . (ドット) を忘れずに)下記のような内容のファイルを作ればOK。このサーバに登録されたユーザのうち、require で指定されたユーザ名だけが、このページを見ることが出来るようになる。この時のパスワードは、このサーバのパスワードと同じものになる。

AuthName "Limited page for member."
AuthType Basic

require user sample

(上記の例なら「sample」というユーザーがログインできる)

ただ上記例であれば、サーバーに登録されていないユーザーはログインできない。
登録ユーザ以外の人に、ユーザ名とパスワードで限定されたページを提供したい場合は、.htaccess の名前を下記のよう変更。
(※1 AuthPAM_Enabled offに注意。RaQ550 ではこの行は不要。)
(※2 AuthUserFileのパスは/home/sites/homeとか/home/sites/site1とかより/home/sites/www.hogehoge.comというようにサイト名で書く方がよい)

AuthUserFile /home/sites/home/users/foo/password1.dat
AuthGroupFile /dev/null
AuthName "Limited page for member."
AuthType Basic
AuthPAM_Enabled off

require user sample

AuthUserFile に指定されたファイルには、限定するユーザ名とパスワードの列を登録する。
ここに登録されたユーザ名とパスワードの組み合わせを知っている人だけが、アクセス出来るようになる。
例えば上の例だと、passwrod1.dat ファイルの中身は、

sample:PfyJ0.mjA.LQI
Yasu:bSm6OpAYUIIao

というようになっている。(試しにユーザが二つ登録されている。そのうち上の例の .htaccess では sample ユーザだけがアクセス可能になる。)

もし、上記例で passwrod1.dat ファイルに登録しているユーザーすべてをログインさせたい場合は


require user sample


require valid-user

という具合にrequireの記述を変更すればOK。

このファイルを作るツールはいろいろあり、Googleなどで「htpasswd」と検索してやれば何件かヒットするはず。
たとえば

http://www1.neweb.ne.jp/user_manual/htaccess/htpasswd.html

http://www.futomi.com/lecture/htaccess/htpasswd.html

http://www.rescue.ne.jp/cgi/htpasswd/

が有名どころである。

あと少し高度だが、とりあえず Cobalt に telnet login できる人なら、htpasswd コマンドがある。

最初に password1.dat という名前のパスワードファイルを、sample という名前のユーザだけで作成する場合は、

% htpasswd -c password1.dat sample

などとする。既にパスワードファイルに登録されているユーザのパスワードを変える場合、または既存のファイルにユーザを追加する場合は、-c オプションを抜いて、

% htpasswd password1.dat sample

のようにする。

※1 RaQ550 ではデフォルトでは PAM 認証モジュールが入っていないため、 AuthPAM_Enabled on/off の記述があるとエラーが出る。(httpd.confでコメントアウトされている)

※2 サーバーが壊れリストアしたときに必ず同じsite番号で登録されるとは限らないため・・・

投稿者 AJ : 15:19トラックバック (0)

2005年7月19日

Cobalt-Logのrotateについて

Cobaltのログは一定容量になれば整理対象となるのだが、これが非常に見にくい。サイトの容量を仮に100MBと設定したのであれば[mail],[ftp],[http]のログは10MBになれば*.1.gzという具合に1世代だけ圧縮され整理される。

これでは障害時の追跡や管理を考えると、非常に不便である。
で、rotateを日単位で圧縮していけば、後々の追跡も非常に楽ということで設定を変更してみる。

このrotate設定は/etc/logrotate.d/の中にある各サイトのファイルによって行われる。例えばsite1であればsite1というファイルhomeに関するものであればhomeというファイルといった具合である。

で、このファイルを下記のように変更してやれば、過去30日まで、daily にて分割/圧縮される。(ただしWeb管理画面での ダウンロード対象にはならず、 FTPにて転送する事となる。)

--------/ /etc/logrotate.d/home 改造例 /----
/home/sites/home/logs/mail.log {
daily
missingok
compress
rotate 30
}

/home/sites/home/logs/ftp.log {
daily
missingok
compress
rotate 30
}

/home/sites/home/logs/web.log {
daily
missingok
compress
rotate 30
}

又、下記ファイルを直接 同様の方法にて Backup しておいた方が、障害を過去に遡って追跡する際に何かと便利である。

(アクセスログが 1日にて更新されてしまう程のアクセス量ならば、それなりの負荷となっているはず・・・
過去に遡って追跡する場合、時系列にて追跡できた方が良い事もある)

/var/log/messages
/var/log/maillog
/var/log/httpd/access
/var/log/httpd/error

上記ファイル 整理設定を調整する場合には
/etc/logrotate.d/syslog
/etc/logrotate.d/apache
等を修正する事となる

投稿者 AJ : 22:17トラックバック (0)

Cobalt-メーリングリストの返信先変

Cobaltサーバーのメーリングリストはmajordomoが使用されているのだがデフォルトだと送信者にしか返信されない設定になっている。

これを、メーリングリストに返信できるようにconfigを変更してみる。

/usr/local/majordomo/(mlnamedomain)/lists/(mlname).config の2か所を変更すると、一応?使えるようになるかと思う。

<237行目付近・変更前>
message_headers << END
Resent-From: $LIST
Resent-Cc: recipient list not shown: ;

END

<変更後>
message_headers << END
END
#Resent-From: $LIST
#Resent-Cc: recipient list not shown: ;

END


<284行目付近・変更前>
reply_to =

<変更後>
reply_to = mlname@domain(メーリングリストのアドレス)


こんな感じでどうだろう・・・

投稿者 AJ : 22:05

2005年7月15日

Cobalt-Raq550の時刻同期(NTP)

SunCobalt RaQ550にてntpdが起動してない事発覚。
Sausalitoの中をちらちら眺めていると、

/usr/sausalito/handlers/base/time/ntp.pl が癌である模様。

Sauce::Service::service_toggle_init($ntpd, $ntpAddress);

# this is used by other objects
my @oids = $cce->find('System');
if ($#oids > -1) {
my $new = $ntpAddress ? 1 : 0;
my $old = $time_obj->{ntpEnabled} ? 1 : 0;
if ($old != $new) {
$cce->set($oids[0], 'Time', { 'ntpEnabled' => $new });
}
}

$cce->bye('SUCCESS');
exit 0;

ここで/usr/sausalito/perl/Sauce/Service.pmのservice_toggle_init()に 渡されているのか。

フムフム。

で次に$ntpAddressを$newにいれるのね...。
しかしこのままだとntpサーバのアドレスが入っているだけでわ?
意味無しでわ?

■ 即席patch
diff -Naur ntp.pl ntp.pl.fix
--- ntp.pl Thu Dec 5 17:32:40 2002
+++ ntp.pl.fix Thu Dec 5 17:37:31 2002
@@ -40,7 +40,6 @@
`echo '$ntpAddress' > $tickers`;
}
}
-Sauce::Service::service_toggle_init($ntpd, $ntpAddress);

# this is used by other objects
my @oids = $cce->find('System');
@@ -51,7 +50,7 @@
$cce->set($oids[0], 'Time', { 'ntpEnabled' => $new });
}
}
-
+Sauce::Service::service_toggle_init($ntpd, $ntpAddress);
$cce->bye('SUCCESS');
exit 0;


/usr/sausalito/handlers/base/time にコピーして、
patch -p0 < ntp-fix.patch

としておくか。

でもよく考えると、パッチなど作成しなくても 変更箇所が2行だけなので、直接viとかで編集してみることに・・・・
オリジナルファイルのバックアップをまず取って^^

/usr/sausalito/handlers/base/time/ntp.pl
43|Sauce::Service::service_toggle_init($ntpd, $ntpAddress);
44|
45|# this is used by other objects
46|my @oids = $cce->find('System');
47|if ($#oids > -1) {
48| my $new = $ntpAddress ? 1 : 0;
49| my $old = $time_obj->{ntpEnabled} ? 1 : 0;
50| if ($old != $new) {
51| $cce->set($oids[0], 'Time', { 'ntpEnabled' => $new });
52| }
53|}
54|$cce->bye('SUCCESS');
55|exit 0;

この43行目を切り取って53と54行の間にペーストするだけでOK。
43|
44|# this is used by other objects
45|my @oids = $cce->find('System');
46|if ($#oids > -1) {
47| my $new = $ntpAddress ? 1 : 0;
48| my $old = $time_obj->{ntpEnabled} ? 1 : 0;
49| if ($old != $new) {
50| $cce->set($oids[0], 'Time', { 'ntpEnabled' => $new });
51| }
52|}
53|Sauce::Service::service_toggle_init($ntpd, $ntpAddress);
54|$cce->bye('SUCCESS');
55|exit 0;

次に /etc/ntp.conf を編集して

14|#server 127.127.1.0 # local clock
15|server clock.nc.fukuoka-u.ac.jp
16|server clock.tl.fukuoka-u.ac.jp
17|#fudge 127.127.1.0 stratum 13

15と16行を追加。

どこのNTPサーバが良いかは
http://yotaro.bird.to/feedback/misc/NTP_list.html
などで探してみればOK。^^

投稿者 AJ : 12:55トラックバック (0)

2005年7月14日

Cobalt-Logキャッシュのクリア

> #cat /var/log/kernel
> kernel: Unable to load interpreter /lib/ld-linux.so.2
> Jan 11 06:51:13 hostname last message repeated 4 times

cronが走る時間帯から確認していると、parseReport.plがメモリを大量消費していることが判明。
(過去ログ検索で同様の内容があった...)
これが動いている間に、メモリがつきるとLCDパネル表示がなくなり、commandもsegmentation faultでうけつけないということになる。

動き出す前のtop
[root root]#top
3:53am up 74 days, 23:37, 1 user, load average: 0.09, 0.05, 0.01
60 processes: 59 sleeping, 1 running, 0 zombie, 0 stopped
CPU states: 0.5% user, 0.7% system, 0.0% nice, 98.6% idle
Mem: 517188K av, 336736K used, 180452K free, 163772K shrd, 77508K buff
Swap: 131532K av, 12312K used, 119220K free 183916K cached

これから徐々にメモリを食っていき、残り2Mあたりをさまよいつつ、回復
[root root]#top
6:22am up 75 days, 2:05, 1 user, load average: 1.41, 1.33, 1.28
62 processes: 59 sleeping, 3 running, 0 zombie, 0 stopped
CPU states: 91.3% user, 8.4% system, 0.1% nice, 0.0% idle
Mem: 517188K av, 461248K used, 55940K free, 163336K shrd, 119908K buff
Swap: 131532K av, 6220K used, 125312K free 260900K cached

PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
13353 root 5 0 9288 9288 1376 S 0 88.7 1.7 0:34 split_logs
13565 root 15 0 2940 2940 1156 R 0 5.9 0.5 0:00 parseReport.pl

その後analogが動き出し一気にメモリ消費。そのparseReport.plも動き出しswapまでもが窒息寸前に...
[root root]#top
6:48am up 75 days, 2:31, 1 user, load average: 2.21, 2.41, 1.97
64 processes: 61 sleeping, 3 running, 0 zombie, 0 stopped
CPU states: 98.6% user, 1.3% system, 0.0% nice, 0.0% idle
Mem: 517188K av, 513660K used, 3528K free, 21468K shrd, 10648K buff
Swap: 131532K av, 126580K used, 4952K free 13848K cached

PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
15505 root 11 0 538M 433M 488 R 0 98.2 85.8 5:33 parseReport.pl

この時間帯のプロセスは
[root root]#ps ax (関係ありそうなもののみ)
14076 ? SW 0:00 [sh]
14077 ? S 3:43 perl -w /usr/local/sbin/split_logs web
15504 ? SW 0:00 [sh]
15505 ? R 10:57 perl /usr/admserv/cgi-bin/.cobalt/webUsage/parseRepor
t.pl -t web -s main -o /usr/admserv/html/.cobalt/report/web/

このプロセスの段階でどうやらサービスが不安定になる模様。
ML-過去ログよりparseReport.plを検索し、次のように行う。
[root root]#cd /home/.cobalt/report
[root root]du -sm *
13 ftp.cache
13 ftp.cache.new
12 ftp.stats
5 mail.cache
5 mail.cache.new
3 mail.stats
0 stats.tab
213 web.cache
213 web.cache.new
84 web.stats
となっている。(あとは各siteのdatファイルが存在)

あとは、上記ファイル(〜.cache)を削除し、空のファイルを作成。

すると、kernelからのerrorもなくなり、logrotateも3時間から40分くらいで終了するようになる。
logrotate終了後の結果
[root report]# du -sm *
0 ftp.cache
0 ftp.cache.new
0 ftp.stats
0 mail.cache
0 mail.cache.new
0 mail.stats
0 web.cache
3 web.cache.new
2 web.stats

投稿者 AJ : 19:44トラックバック (0)

2005年7月12日

in.ftpd: デフォルト設定における anonymous login メッセージの抑止方法

質問:

Solaris 9 のデフォルトの設定でクライアントから ftp を実行した時、
ユーザ名に anonymous を入力すると

331 Guest login ok, send your complete e-mail address as password.

と表示されます。このメッセージが表示されてもログインは出来ませんが、
ログイン出来そうな表示なので、このメッセージを出さなくすることは可能
でしょうか。
------------------------------------

回答:

ご要望の設定は、/etc/ftpd/ftpaccess ファイルに以下のエントリを
追加することで可能となります。

# vi /etc/ftpd/ftpaccess
:
:
guestserver ""

:wq <= 保存して終了

guestserver エントリは anonymous による接続を許可するホストを定義するエント
リとなりますので、この部分を空白にすることによって一切の anonymous による接
続を拒否する動作となります(詳細は、ftpaccess(4) のマニュアルをご参照下さい)。

尚、この変更は、ファイル編集後に接続されたものより有効になります。


最後に、弊社にて検証を行ったログを添付致しますのでご参照下さい。

 ※ localhost ( Solaris 9 ) に上記設定を施しています。

$ ftp localhost
Connected to localhost.
220 sun1 FTP server ready.
Name (localhost:user1): anonymous
530 Guest login not user1allowed on this machine.
Login failed.
421 Service not available, remote server has closed connection
ftp>

$ ftp localhost
Connected to localhost.
220 sun1 FTP server ready.
Name (localhost:user1): ftp
530 Guest login not allowed on this machine.
Login failed.
421 Service not available, remote server has closed connection
ftp>

投稿者 AJ : 17:43トラックバック (0)

2005年7月 6日

ftp client の passive mode 機能について

質問:

Solaris の ftp クライアントはパッシブモード機能をサポートしていますか?
Solaris 8 のシステムから LAN 内の ftpサーバへアクセスする際に、パッシブ
モードでアクセスしたいのですが。
-------------------------------------

回答:

Solaris 9 以降の ftp クライアントには ftp の passive コマンドが追加さ
れており、passive mode の ON/OFF を切り替えられるようになっていますが、
Solaris 8 以前の環境では、passive コマンドが存在しません。

ただし、proxy コマンドを使用することにより、一次制御接続ホストと二次
制御接続ホスト間のデータ転送を passive モードで行うことができます。


          ┏━━━━━━┓
     ┌(1)──┃ myhost ┃──(2)┐
     |    ┗━━━━━━┛    |
     |               |
   ┏━━━━━━┓ ┏━━━━━━┓
   ┃ host-A ┃<---(3)--->┃ host-B ┃
   ┗━━━━━━┛ データ転送┗━━━━━━┛
    一次制御接続 二次制御接続


(1) myhost から hosta に接続します。(一次接続)

   myhost# ftp hosta
   Connected to hosta.
   220 hosta FTP server (SunOS 5.7) ready.
   Name (hosta:root):
   331 Password required for root.
   Password:
   230 User root logged in.

  hosta 上のカレントディレクトリを /tmp に移動します。

   ftp> cd /tmp
   250 CWD command successful.


(2) hostb への接続を行います。(二次接続)

   ftp> proxy open hostb
   Connected to hostb.
   220 hostb FTP server (SunOS 5.7) ready.
   Name (hostb:root): root
   331 Password required for root.
   Password:
   230 User root logged in.

  hostb 上のカレントディレクトリを /tmp に移動します。

   ftp> proxy cd /tmp
   hostb:250 CWD command successful.


(3) hosta 上の /tmp/testfile を hostb 上の /tmp へ転送します。

   ftp> proxy get testfile
   hostb:227 Entering Passive Mode (xx,aaa,bb,ccc,128,40)
        ~~~~~~~~~~~~~~~~~~~~~
   hosta:200 PORT command successful.
   hosta:150 ASCII data connection for testfile (xx.aaa.bb.ccc,32808) (0 bytes).
   hostb:150 ASCII data connection for testfile (xx.aaa.dd.eee,20).
   hostb:226 Transfer complete.
   hosta:226 ASCII Transfer complete.
   local: testfile remote: testfile


Solaris にバンドルしている ftp client は ftp コマンドのみですので、
バンドルのクライアントで passive mode の転送を行おうとする場合は、
上記の方法を行っていただくしかないようです。ご了承下さい。

投稿者 AJ : 13:45トラックバック (0)

2005年7月 5日

TCP Wrapper を有効にする方法(Solaris9)

下記の手順で設定する。

■ 設定ファイル

 /etc/default/inetd : TCP Wrapper の機能を有効にする
 /etc/hosts.allow : 許可するサービスとホスト(ネットワーク)を記述する
 /etc/hosts.deny : 拒否するサービスとホスト(ネットワーク)を記述する

■ 設定例

 例) 192.168.1.10 のホストと 192.168.2 のネットワークからの rlogin だけを
   許可する

  1. /etc/default/inetd ファイルの "ENABLE_TCPWRAPPERS" を YES にして
   コメントアウトを外し、有効にする。

# vi /etc/default/inetd
:
:
ENABLE_TCPWRAPPERS=YES

  2. /etc/hosts.allow、/etc/hosts.deny ファイルを作成。

    # vi /etc/hosts.allow
    in.rlogind: 192.168.1.10, 192.168.2.
    ^^^^^^^^^^^ ========================
    サービス名 許可するホスト名 (IP address や network address でも結構です)

# vi /etc/hosts.deny
    ALL : ALL


  3. 設定を有効にする。

    # pkill -HUP inetd


  4. 動作確認を行う。

   許可していないサービス(例えば ftp)や、ホストからアクセスすると
   /var/adm/messages ファイルにログが記録される。

■ 確認コマンド

 /usr/sfw/sbin/tcpdchk : アクセス制御ファイルをチェックする
(オプション -av を使用すると総合的なレポートが
              表示される)
 /usr/sfw/sbin/tcpdmatch : アクセス制御ファイルをチェックして、指定ホスト
              が指定サービスを許可されているかどうかを確認で
              きる

投稿者 AJ : 15:32トラックバック (0)

 
Powered by Movable Type 4.27-ja | RSS1.0 | RSS2.0 | ATOM