68user's page 掲示板

Prev< No. 1868〜1890> Next  [最新発言に戻る] [過去ログ一覧]
No. 1868 # 68user 2001/03/30 (金) 00:25:20
/~68user/unix/pickup に早稲田大学からの連続アクセスがあり、OS の
リソースを食い潰して open・fork などに失敗してサーバエラーが頻発
していました。load average が 20 近くまで上がってました。

とりあえず pickup は使用不可としましたので、あしからず。
同時に実行するプロセス数を制限する機能を追加したら使用可能に
します。

>>1867 すな
> host www.yahoo.co.jp:80
ではなく、host: www.yahoo.co.jp:80 です。`:' が足りません。

> クライアントがURL欄に「http://www.intel.com/http://www.intel.com/
> と誤って記入すると、そのようなログが記録されます。
> との返答。「えっ?」と思いながらやってみると、
apache-1.3.12 では、ログに
    "GET /http://www.yahoo.co.jp HTTP/1.0" 404
と吐かれていました。その管理者の返答はほんとかなぁ? もし本当
ならば、apache にバグがあって、apache-1.3.12 では修正されて
いるということですね。

> WinNTの場合は、C:\WinNT\system32\drivers\etc\SERVICES です。
なるほど。この文章をそのまま該当部分に追加してよいですか?

>>1865 はてな
> リモートで、クライアントのWin98にX for Windowsをインストール
> しましたが、文字化けを起こしました。FON形式に変換されています。
文字化けの件はわかりませんが、これは X for Windows という商品名の
Windows 用 X サーバですか? Windows 側で X サーバが起動しているなら、
Solaris 側で openwin や X を実行する必要はありません。なぜなら、
openwin や X は X サーバだからです。Solaris 側で実行すべきなのは
kterm などの X クライアントです。

でなくて、なにかしらの仕組みがあって Solaris 側で X サーバを
実行すれば Windows 側で表示されるようなアプリケーションで
あるなら失礼。そのようなアプリは さらに輪をかけてわかりません。

No. 1869 # すな 2001/03/30 (金) 13:46:47
>>1868 68user
>ではなく、host: www.yahoo.co.jp:80 です。`:' が足りません。
ステータス 400 はこれが原因でした。嘘書いてごめんなさい。m(_ _)m

で、該当サーバーに
GET http://www.yahoo.co.jp:80 HTTP/1.1
host: www.yahoo.co.jp:80
とした所、
"GET http://www.yahoo.co.jp:80 HTTP/1.1" 200 1934 "-" "-"
のログが記録された事を確認しました。
この結果は、68userさんと同じくドキュメントルートが出力されました。
Apache1.3.3の方も同じ結果でした。

>>1862 68user
>PATH は必ず / から始まるはずですが、先頭が / でない PATH を
>要求すると 200 が返るんですね。これって仕様かしら?
動作からするとその様ですね。

>>1868 68user
>その管理者の返答はほんとかなぁ?
Apacheの出力結果を見ると管理者の言っている事は間違っているようです。
管理者といってもテクニカルサポートの「誰か」だし、適当にあしらわれ
たのかも?

>なるほど。この文章をそのまま該当部分に追加してよいですか?
もし、サービスパックなどにより変更される場合は判りませんが、
少なくとも自分の環境では上記のフォルダに存在します。
WinNT 4.00.1381 SP5

ちなみに、このフォルダには以下のファイル群が含まれます。
HOSTS
LMHOSTS
NETWORKS
PROTOCOL
SERVICE

drivers\etc
というフォルダに格納するあたり、UNIXを意識しつつドライバーでは
無い内容を格納するのは、M$の苦しい所でしょうか…読みすぎ?;-p

No. 1870 # hsj 2001/03/30 (金) 20:49:22
>>1869 すな
> Apacheの出力結果を見ると管理者の言っている事は間違っているようです。
おそらくそのユーザは、外部利用可能なプロキシを探して
そのサーバにアクセスしたんじゃないでしょうか。
例えばIEにプロキシとしてそのサーバのIPアドレスと
ポート80をセットして、適当なサーバにアクセスしてみると
リクエストラインはこういう感じ↓になるので、
GET http://www.yahoo.co.jp/ HTTP/1.0
そう言うログが残ることになると思います。

No. 1871 # すな 2001/03/30 (金) 21:59:39
>>1869 すな
はじめまして>hsjさん
>おそらくそのユーザは、外部利用可能なプロキシを探して
おぉ!なるほど。
IE5でプロキシ設定を施してアクセスした所、最初に疑問になったログ
結果と、ブラウザバージョン以外同じ結果となりました。
はぁ、なんかすっきりしました(笑)

片っ端からアクセスして調べているんでしょうか?
ご苦労様なことです(^^;

自分はフレッツISDN接続なんですが、ここ3〜4ヶ月ルーターのログに
明らかにアタックと思われる攻撃が増えたので、過敏になっていました。
情報ありがとうございました。>hsjさん

No. 1872 # ケンMK2 2001/03/30 (金) 22:39:59
どうもレスが遅くなり申し訳御座いません
>>1860 68user
>jp.FreeBSD.org の sendmail 君が付けた received も localhost に
>なっていました。少なくともあそこは変な設定になってはいない
>だろうということで、問題ないんじゃないでしょうか。
へ〜そうなんですか・・・。
私もあれから試行錯誤しましたが、どうにもならず、結局気にしないこと
にしました(笑)
と言っても諦めるわけでなく、sendmail.cfを直接弄って何とかできるの
では・・・と思いたちましたので、そちらの方法をしばらく模索していこ
うと思います
それではご迷惑をお掛けいたしました

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 1873 # dio [E-mail] 2001/03/31 (土) 02:34:14
こんにちは、初めまして。
排他処理のことを読ませていただきまして、
フリーのCGIスクリプトに自分でシグナルに関する部分を追加しようと思いました。
ここでは
$SIG{PIPE} = \&lock_off;
というようにしておられますが、他のところでは、
$SIG{'PIPE'} = 'lock_off';
といった感じに書いていました。
これらは同じ意味なのでしょうか?(\&というのがよくわかりません)
それから、こういったハンドラの定義は、ソース中のどの位置に書いても
同じなのでしょうか。最初の方に書いた方がいいのでしょうか?
そして、ハンドラの中で変数の値を参照する場合、
その変数の初期化前にそのハンドラを書いて問題ないでしょうか?
sub lock_off {
      if ($lockkey) { &unlock; }
      exit;
}
・・・
$lockkey = 1;
といった感じで。
Perlはまだよくわかっていないので、常識なことなのかもしれないですが、
よろしくご教授お願いします。

No. 1874 # なるっち 2001/04/01 (日) 01:01:27
はじめまして。
CGIで環境変数を取得していると、「(compatible; MSIE 5.5; 〜〜」等で表示されるはずが、「好きな名前〜〜〜」でアクセスす人がまれにいるのです。これはどううことなのでしょうか?

No. 1875 # dio [E-mail] 2001/04/01 (日) 15:10:12
>CGIで環境変数を取得していると、「(compatible; MSIE 5.5; 〜〜」
>等で表示されるはずが、「好きな名前〜〜〜」でアクセスす人がまれにい
>るのです。これはどううことなのでしょうか?
クライアント(ブラウザ)がサーバに送るUser Agent 文字列を自由に設定できるソフトを使っているからではないでしょうか。
私の使っているフリーのタブブラウザ、「DonutR」でも、UserAgentを
自由に設定できます。

No. 1876 # 68user 2001/04/01 (日) 16:24:11
>>1873 dio
> $SIG{PIPE} = \&lock_off;
\& は関数へのリファレンスです。ちなみに
    $SIG{PIPE} = sub { unlink($lock_file); exit; }
と等価です。

> $SIG{'PIPE'} = 'lock_off';
これだと、シグナルハンドラ lock_off の関数定義が同一ファイル
内にないといけません。別ファイルに sub lock_off を書いて、
それを require している場合は動かないということです。

関数へのリファレンスを使えば、どこで関数が定義されて
いようと動きます。

これらの事柄はラクダ本に書いてありますので、もちお持ちで
ないなら、購入されることをお薦めします。

> ハンドラの中で変数の値を参照する場合、その変数の初期化前に
> そのハンドラを書いて問題ないでしょうか?
これは、ハンドラ特有の問題ではなく、関数一般の話になります。
    #!/usr/bin/perl
    &lock_off;
    sub lock_off { print $lockkey }
    $lockkey = 1;
    exit;

    #!/usr/bin/perl
    $lockkey = 1;
    &lock_off;
    sub lock_off { print $lockkey }
    exit;
では、前者はよろしくないことはわかりますね。

シグナルハンドラの場合も、%SIG にセットしてしまうとその後いつ
シグナルハンドラが呼ばれるかわからないので、%SIG にセットする
前に必要な変数を全て設定しておきましょう。

No. 1877 # dio [E-mail] 2001/04/01 (日) 17:12:52
>\& は関数へのリファレンスです。ちなみに
>・・・・・・
>関数へのリファレンスを使えば、どこで関数が定義されて
>いようと動きます。
なるほど
そういう違いなのですか。

>シグナルハンドラの場合も、%SIG にセットしてしまうとその後いつ
>シグナルハンドラが呼ばれるかわからないので、%SIG にセットする
>前に必要な変数を全て設定しておきましょう。
わかりました。
どうもありがとうございます。

No. 1878 # 68user 2001/04/03 (火) 17:40:08
http://messages.yahoo.co.jp/bbs?.mm=CP&action=m&board=1835092&tid=echoa4ka4da4a4a4f&sid=1835092&mid=4
> ↓には、「ping への応答」と書いてます。
> http://www.nspl.co.jp/Solaris/Security/inetd.html

誤りです。ping に応答するのは ICMP reply です。TCP/UDP の echo は、
    http://ring.ocn.ad.jp/pub/doc/RFC/rfc862.txt
を参照のこと。
    A very useful debugging and measurement tool is an echo service.
ってことですね。人様が直接使うものです。

…と yahoo BBS に書こうと思ったけどできなかったので、どなたか
伝えて下さい。

No. 1879 # 68user 2001/04/06 (金) 00:15:45
>>1868 68user
> とりあえず pickup は使用不可としましたので、あしからず。
> 同時に実行するプロセス数を制限する機能を追加したら使用可能にします。
使用可能になりました。ちゃんと制限が効いてるかどうかは
試してませんが。

>>1878 68user
> …と yahoo BBS に書こうと思ったけどできなかったので、
> どなたか伝えて下さい。
どもです>dio さん (ですよね?)

No. 1880 # dio [E-mail] 2001/04/06 (金) 00:54:56
>どもです>dio さん (ですよね?)
あ、はい
このページ参考にさせてもらったり、
お世話になったので。

No. 1881 # akihiro 2001/04/06 (金) 11:50:53
ご存知であれば 教えてください
psコマンド(ps -l)を実行したときの C 項目の数値の意味
なんですけどマイナス値のプロセスがあったのですが
どのような状態を意味するのでしょうか?

No. 1882 # クワ [E-mail] 2001/04/08 (日) 17:27:09
教えていただきたいことがあります。
UNIXについてはほとんど初心者なのですが、あるとき急に管理をしろ!
と言われてしまいました。はじめはなんのトラブルもなかったのですが、
何日か前に急に他のマシンから自マシンへtelnet接続ができなくなって
しまいました。
    原因はなんなのでしょう?
機種は
  SUN ULTRA60 Solaris2.6が入ってます。もちろん自マシンにログイン後
自マシンの他のユーザへのtelnetでのログインもできないのです。
お願いします。

No. 1883 # YOUKO 2001/04/08 (日) 17:51:12
はじめまして、YOUKOと申します。
C-ISAMを使ってAPLを作成したいのですが
初めてで右も左もわかりません。
どこか初心者用のHPありませんか?
OS:Solaris7です。

No. 1884 # 68user 2001/04/08 (日) 23:29:37
>>1881 akihiro
> psコマンド(ps -l)を実行したときの C 項目の数値の意味
> なんですけどマイナス値のプロセスがあったのですが
OS は何ですか? FreeBSD には C という項目はないように
思えます。Solaris2.6 では「スケジューリングのための
プロセッサ利用率、ただし obsolete」と man に書いて
あったような気がしますが、それ以上の事はわかりません。

>>1882 クワ
> 何日か前に急に他のマシンから自マシンへtelnet接続が
> できなくなってしまいました。もちろん自マシンにログイン後
> 自マシンの他のユーザへのtelnetでのログインもできないのです。
それは、問題のマシンで
    % telnet localhost
でログインできないということですね?

全体的に情報が不足しています。「できない」とはどういう意味ですか?
何かエラーメッセージが出ますか? 何秒か待たされたりしますか?
login: プロンプトは出ますか?

一般的には inetd が telnet ポートを見張り、接続があると inetd が
telnetd を実行し、telnetd が認証を行います。もし
    % netstat -a | grep telnet
    tcp4 0 0 *.telnet *.* LISTEN
という出力が出ないならば、telnet ポートを監視するサーバがいない
ということなので、inetd の問題です。/etc/inetd.conf をチェック
しましょう。

他にも tcpwrapper が接続を弾いている、などの可能性もありますが、
そこらへんは /var/log/ の下のログを見ましょう。telnet した後、
ls -lt /var/log すれば、最終更新時刻順にファイル一覧が表示
されますので、最も最近に更新されたログファイルの中を見れば
何かメッセージが書いてあるかもしれません。

>>1883 YOUKO
> C-ISAMを使ってAPLを作成したいのですが
C-ISAM という物を知らないのですが、Informix の DB 関係の
ライブラリか何かでしょうか。そういうものは Informix の出して
いるマニュアルを読むのが早道かと思います。

# 同様に、個人が提供している Oracle の情報も少ないですね。

No. 1885 # akihiro 2001/04/09 (月) 09:14:41
>> psコマンド(ps -l)を実行したときの C 項目の数値の意味
>> なんですけどマイナス値のプロセスがあったのですが
>OS は何ですか? ..(略)..、それ以上の事はわかりません。
HP-UNIXです。私なりに調査していますので解りましたら
載せさせていただきます。

No. 1886 # chie 2001/04/09 (月) 15:02:13
排他処理のページを見て質問なのですが、シグナル処理でCGIを終了
させたくない場合はどうすればよいのでしょうか?
シグナルを無視みたいなことはできないんでしょうかね??

よろしくお願いします。

No. 1887 # 68user 2001/04/09 (月) 18:59:22
>>1886 chie
> シグナルを無視みたいなことはできないんでしょうかね??
perl なら
    $SIG{QUIT} = 'IGNORE';
などとすれば無視できます。ただし、SIGKILL と SIGSTOP
だけは無視できません (ハンドラの設定も不可)。

No. 1888 # dio [E-mail] 2001/04/10 (火) 17:15:22
>ただし、SIGKILL と SIGSTOP
>だけは無視できません (ハンドラの設定も不可)。
横からすみませんが、無視できずハンドラの設定不可な
シグナルは、どのような意味があるのでしょうか?
(なぜ送られてくるのでしょうか?)

No. 1889 # 68user 2001/04/10 (火) 22:28:55
>>1888 dio
> 無視できずハンドラの設定不可なシグナルは、
> どのような意味があるのでしょうか?
シグナルをブロックしたプログラムが誤って無限ループしてしまったら
止める術がなくなります。

なので、プロセス側から制御できない SIGKILL や SIGSTOP という
シグナルを飛ばすことで、OS に強制的にプロセスを殺したり、動作を
止めたりするわけです。例をあげると、
    #!/usr/bin/perl
    $SIG{TERM} = sub { print "TERM!\n" }; # kill コマンド対策
    $SIG{INT} = sub { print "INT!\n" }; # Ctrl-C 対策
    while (1){
            printf("%d\n", $i++);
            sleep 1;
    }
というプログラムを実行すると、Ctrl-C や kill プロセス番号 で
終了させることはできません。しかし Ctrl-Z で動作を止めたり、
kill -9 (=kill -KILL) でプロセスを殺すことはできます。

# 実際は他にもシグナルはありますので、kill -HUP などで
# 殺すことが可能ですが、全てプログラム側でブロック可能です。

なお、SIGINT や SIGTERM を受けると、ファイルなどの後始末を
行ってから終了するプログラムは多いです。なので、いきなり
SIGKILL で強制終了させるのはおすすめできません。まず SIGTERM や
SIGINT を試して、それでも死ななければ SIGKILL を使うように
して下さい。

No. 1890 # dio [E-mail] 2001/04/11 (水) 14:45:02
えーと、私は何か勘違いをしていたかもしれません;

>なので、プロセス側から制御できない SIGKILL や SIGSTOP という
>シグナルを飛ばすことで、OS に強制的にプロセスを殺したり、動作を
>止めたりするわけです。
これはわかります。SIGKILL、SIGSTOPの必要性はわかるのですが、
プロセスから制御できない物をなぜシグナルとして送る
必要があるのだろうかと思ったのです。
私はOSがプロセスにSIGKILL や SIGSTOPをとりあえず送って、
強制終了させる物と思っていたのですが、この考えが方が間違いでしょうか?

Prev< No. 1868〜1890> Next  [最新発言に戻る] [過去ログ一覧]