Trouble Shooting Record (ネットワーク関連)


1. irc2.10.3+jp6 を inetd 経由で起動できない [解決]

環境

Kernel 2.2.10 (Plamo 1.4.4)
irc2.10.3+jp6

現象

irc2.10.3+jp6 のインストール後、/etc/inetd.conf に以下のエントリを追加 (参考: man ircd) 。
その後、kill -HUP `inetd の PID` を実行しても、IRC クライアントから接続 できない。
ircd stream tcp wait irc /usr/local/sbin/ircd ircd -i

解決方法

よく考えたら irc ユーザなんて作ってない。(^^; 以下のような感じで IRC ユーザ を作成。
# groupadd -g 30 irc
# adduser
(省略)
# grep irc /etc/passwd
irc:x:30:30:,,,:/dev/null:/dev/null

が、これでもダメ。この時、/var/log/syslog を見ると、以下のログが残っている。
Dec 21 17:06:41 host inetd[65]: ircd/tcp: unknown service

むむ。おお、そうか。/etc/service に登録されてないのか。 /etc/service に次の一行を追加すると OK 。
# for IRC
ircd            6667/tcp   <--この行を追加
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

2. apache が起動しない [解決]

環境

Kernel 2.2.12 (Plamo 1.4.4)
apache-1.3.6

現象

ふと、httpd が起動していない事に気づいた。/etc/rc.d/rc.httpd を実行するが 以下のエラー。
$ su
# ./rc.httpd
/usr/local/apache/bin/apachectl start: httpd (pid 79) already running

うーむ。ps で確認すると pid 79 のプロセスなんてない... じゃなくって、何故か sendmail が使っている。(^^; うーむ。どっかでこけて、pid ファイルが残ったままになっているな、きっと。

解決方法

pid を記録したファイルを削除した後で apache を起動すれば、おっけー。
# su
$ rm /usr/local/apache/logs/httpd.pid
$ ./rc.httpd
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

3. ntop を会話 (interactive) モードで起動できない

環境

Kernel 2.2.12 (Plamo 1.4.4)
ntop-1.2all

現象

ntop を何もオプションを付けないで起動しても会話 (Interactive) モードで 起動せず、Web モードで起動している (HTTP でアクセス可能) 。 この時の様子は以下の通り。うーむ、デフォルトは Interactive モードじゃないのか?
$ /usr/local/sbin/ntop
ntop v.1.2a11 ST [i686-pc-linux-gnulibc1] listening on [eth0].
Copyright 1998-2000 by Luca Deri 
ntop home is http://ntop.unipi.it/
Initializing...
Loading plugins (if any)...
Welcome to arpWatchPlugin. (C) 1999 by Luca Deri.
Welcome to nfsWatchPlugin. (C) 1999 by Luca Deri.
Welcome to icmpWatchPlugin. (C) 1999 by Luca Deri.
Welcome to LastSeenWatchPlugin. (C) 1999 by Andrea Marangoni.
Waiting for HTTP connections on port 3000...
Sniffying...

しかも、この場合 Web ブラウザで見ていると、たまにプロセスは生きているのにも 関わらず応答がなくなったり、更新周期が変だったり (デフォルトの 3 sec. とは 思えない) 、segmentation fault で死んだり...。 Web モードで起動した場合には、よく応答がなくなるのは相変わらずだが、更新周期は 正しそう。

解決方法

Help me!
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

4. Squid 経由で goo (もしくは infoseek) で検索を実行するとエラー [解決]

環境

Kernel 2.2.12 (Plamo 1.4.4)
squid-2.2.STABLE5

現象

Squid 経由で goo (もしくは infoseek) にアクセスし、検索パターンを入力し「検索」 ボタンを押すと、以下のエラーが発生する。
The requested URL could not be retrieved
    _________________________________________________________________

  While trying to retrieve the URL: http://www.infoseek.co.jp/Titles?

  The following error was encountered:

    Unable to determine IP address from host name for
    www.infoseek.co.jp

  The dnsserver returned:

    Name Server for domain 'www.infoseek.co.jp' is unavailable.

  This means that:
The cache was not able to resolve the hostname presented in the URL.
Check if the address is correct.
    _________________________________________________________________

  Generated Wed, 29 Mar 2000 00:44:31 GMT by http-proxy.hoge.co.jp
  (Squid/2.2.STABLE5) 

なお、ネットワーク構成は以下の通り。
  • http-proxy では IP 転送はしていない。
  • http-proxy は Squid-a を parent な cache_peer として指定している。
  • http-proxy は DNS-b, DNS-a の順で参照している。
  • DNS-a は Internet アドレスを引ける。
  • DNS-b は LAN-b のアドレスしか引けない。
             Internet
                 |
  DNS-a       Squid-a
    |            |
----+---+--------+----- LAN-a
        |
  http-proxy (Squid)
        |
----+---+--------+----- LAN-b
    |            |
  DNS-b        Client

解決方法

なんで検索の時だけなのか、よく分からないのだけれど、常に Internet アドレスが 引けないとダメらしい。とゆー訳で、 /usr/local/squid/etc/squid.conf に以下のエントリを追加すれば、おっけー。 もしくは DNS の検索順を DNS-a を先にするか。この例では DNS-b を先に見ないと 都合が悪いので、このようにして解決。
dns_nameservers xxx.xxx.xxx.xxx   <--- DNS-a のアドレス

[ 先頭 | 末尾 | 戻る | トップページに戻る ]

5. Squid 経由で SSL ポートにアクセスできない?

環境

Kernel 2.2.12 (Plamo 1.4.4)
squid-2.2.STABLE5

現象

Squid 経由で HTTP アクセスしている時に、 WindRiver のサイト で WindCare のリンクをクリックすると以下のエラーが 発生して、正常にアクセスできない。443 は SSL のポートなのだが...。
                                     ERROR

The requested URL could not be retrieved
     _________________________________________________________________

   While trying to retrieve the URL: www.windriver.co.jp:443

   The following error was encountered:
     * Connection Failed

   The system returned:
    (113) No route to host

   The remote host or network may be down. Please try the request again.
     _________________________________________________________________

   Generated Fri, 07 Apr 2000 06:21:50 GMT by http-proxy.hoge.co.jp
   (Squid/2.2.STABLE5)

この時、ログファイルには以下のログが記録されている。
955088601.901   2170 xxx.xxx.xxx.xxx TCP_MISS/304 265 GET http://www.windriver.co.jp/index3.html
                - FIRST_PARENT_MISS/xxx.xxx.xxx.xxx -
955088607.958   6013 xxx.xxx.xxx.xxx TCP_MISS/000 0 CONNECT www.windriver.co.jp:443
               - DIRECT/www.windriver.co.jp -
955088620.146  18191 xxx.xxx.xxx.xxx TCP_MISS/304 265 GET http://www.windriver.co.jp/dummy.html
               - TIMEOUT_FIRST_UP_PARENT/xxx.xxx.xxx.xxx -

解決方法

Help me!
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

6. squid.conf の http_access タグに複数ホストを指定できない? [回避]

環境

Kernel 2.2.12 (Plamo 1.4.4)
squid-2.2.STABLE5

現象

Squid の設定ファイルである squid.conf で http_access タグに以下のような指定 をしても host-1, host-2 のどちらからもアクセス拒否されてしまう。
acl host-1 src xxx.xxx.xxx.1/255.255.255.255
acl host-2 src xxx.xxx.xxx.2/255.255.255.255
(snip)
http_access allow host-1 host-2

解決方法

どうやら http_access タグには一度に複数のホストは指定できないらしい。 以下のようにホスト毎に http_access タグを指定すればいい...らしい。
http_access allow host-1
http_access allow host-2

もっとも squid.conf にはデフォルトで、以下のようなエントリもあるのだが...。 proto と src だからいいのかな? わからん。
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
(snip)
http_access allow manager localhost
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

7. Squid 経由でアクセスする際に Apache の認証がかからないことがある? [回避]

環境

Slackware 7.0 (Kernel 2.2.14 + glibc 2.1.2)
Windows NT 4.0 SP6
Apache 1.3.12
Squid 2.3 STABLE4

現象

Apache で運営され、認証 (AuthType Basic) のかかっている Web ページに Squid 経由でアクセスした場合の動作がクライアントによって異なる。
注) いずれの場合も Squid 経由となるよう、かつ件の Web ページには DIRECT アクセス となるよう設定済み。

  1. Netscape on Linux の場合
    正しく認証がかかる。この時の Squid のログは以下の通り。
    968896401.622   11 xxx.xxx.xxx.xxx TCP_CLIENT_REFRESH_MISS/401 781 GET http://www.hoge.co.jp/ - DIRECT/www.hoge.co.jp text/html
    

  2. lynx on Linux の場合
    認証がかからず、いきなりページが表示されてしまう。 この時の Squid のログは以下の通り。
    968898652.034   3 xxx.xxx.xxx.xxx TCP_MEM_HIT/200 748 GET http://www.hoge.co.jp/ - NONE/- text/html
    

  3. Netscape/IE on Windows NT の場合
    認証がかからず、いきなりページが表示されてしまう。 この時の Squid のログは以下の通り。
    968896453.344  26 xxx.xxx.xxx.xxx TCP_MEM_HIT/200 753 GET http://www.hoge.co.jp/ - NONE/- text/html
    

    Netscape のキャッシュを削除しても現象変わらず。 認証されないまま、ページが表示されてしまう。が、リロードすると認証がかかる。 この時の Squid のログは以下の通り。
    968897541.925   8 xxx.xxx.xxx.xxx TCP_CLIENT_REFRESH_MISS/401 781 GET http://www.hoge.co.jp/ - DIRECT/www.hoge.co.jp text/html
    

解決方法

ここまで、まだ一度も Linux で認証をパスさせていなかったので、 一度認証をパスさせてから、Windows でアクセスするとちゃんと認証がかかるように なった。この時のログは以下の通り。
968900328.351   6 xxx.xxx.xxx.xxx TCP_MISS/401 781 GET http://www.hoge.co.jp/ - DIRECT/www.hoge.co.jp text/html

なお、一度認証をパスさせた後の Netscape on Linux 側の動作に影響はないのだが、 Squid のログは以下のように変わっていた。むむむ...。どういうこと???
968900136.843  19 xxx.xxx.xxx.xxx TCP_MISS/401 781 GET http://www.hoge.co.jp/ - DIRECT/www.hoge.co.jp text/html
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

8. BIND のログに Err/TO getting serial# が記録されゾーン転送に失敗する [解決]

環境

Plamo Linux 1.4 (Kernel 2.2.10 + libc5)
bind 8.2.2-P5

現象

あるゾーンのセカンダリ (スレーブ) サーバである BIND のログに以下のエラーが 記録され、ゾーン転送に失敗する。
Sep  6 13:51:24 ns-slave named[29399]: Err/TO getting serial# for "hoge.co.jp"
Sep  6 13:51:24 ns-slave named-xfer[31052]: [xxx.xxx.xxx.xxx] not authoritative for hoge.co.jp, \
                SOA query got rcode 0, aa 0, ancount 1, aucount 0

この時、プライマリ (マスタ) サーバ側では以下のログが記録されている。
Sep  6 15:44:11 ns-master named[10787]: owner name ":.hoge.co.jp" IN (primary) is invalid - rejecting
Sep  6 15:44:11 ns-master named[10787]: db.hoge.zone:168: owner name error
Sep  6 15:44:11 ns-master named[10787]: db.hoge.zone:168: Database error near (A)
Sep  6 15:44:11 ns-master named[10787]: master zone "hoge.co.jp" (IN) rejected due to errors (serial 2000090605)

解決方法

問題のゾーン定義ファイル (ここでは db.hoge.zone) でコメント記号 ';' を ':' と間違えている箇所があるのが原因。これを修正し、named を再起動すれば OK 。
:       IN      A       xxx.xxx.xxx.xxx
~ ';' の間違い
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

9. BIND のログに No default TTL set using SOA minimum instead が記録される [回避]

環境

Digital UNIX 4.0E
bind 8.2.2-P5

現象

named の起動時、もしくは SOA エントリの Serial 値を変更して再起動 (HUP) 時に 以下のログが記録される。動作自体に特に問題はないようだが...。
なお、Linux では問題なし。
Sep  6 16:04:25 ns named[10787]: reloading nameserver
Sep  6 16:04:25 ns named[10787]: Zone "hoge.co.jp" (file db.hoge.zone) \
       : No default TTL set using SOA minimum instead
Sep  6 16:04:25 ns named[10787]: master zone "hoge.co.jp" (IN) loaded (serial 2000090607)

解決方法

原因はよく分からないのだが (^^; 、ゾーン定義ファイルの先頭に以下のエントリを 追加すれば OK 。
$TTL 86400      <--- この行を追加
@       IN      SOA     ns.hoge.co.jp. root.hoge.co.jp. (
(snip)
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

10. Ethereal のキャプチャフィルタが設定できない [回避]

環境

Slackware 7.0 (Kernel 2.2.14 + glibc 2.1.2)
ethereal 0.8.7

現象

ehtereal でキャプチャフィルタ (not ディスプレイフィルタ) を指定しても、 以下のようなダイアログが表示され設定できない。もちろんキャプチャも実行されない。 フィルタ設定には間違いないことを tcpdump で確認済。
Ethereal: Warning
Unable to parse filter string (parse error).

解決方法

ethereal 起動後、一度でも間違ったフィルタを設定すると、以後、いくら正しい フィルタを設定してもエラーとなってしまうらしい。フィルタ設定をセーブして おいて、ethereal 再起動後にフィルタを設定し直せば OK 。
なお、0.8.12 でも現象変わらず。(--;
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

11. dnetc 実行時に NetUpdate::Unable to assert handshake integrity. [解決]

環境

Slackware 7.0 (Kernel 2.2.17 + glibc 2.1.2)
Squid-2.3.STABLE4
dnetc-v2.8010.463

現象

RC5 Cracking コンテスト用の distributed.net 製クライアントである dnetc 実行 時に以下のようなメッセージが表示され、正常に Key server に接続できず ランダム鍵の解析だけを行ってしまう。 なお、このホストは HTTP プロキシ (Squid)経由の接続設定 (参照: Install Memo - dnetc) を行っており、 同様の設定を施した他のホストからは問題なくアクセスできているのに、何故か このホストだとこのような現象が発生する。
$ ./dnetc

distributed.net client for Linux Copyright 1997-2000, distributed.net
Please visit http://www.distributed.net/ for up-to-date contest information.


dnetc v2.8010-463-CTR-00071321 for Linux (Linux 2.2.10).
Please provide the *entire* version descriptor when submitting bug reports.
The distributed.net bug report pages are at http://www.distributed.net/bugs/
Using email address (distributed.net ID) 'foo@hoge.ne.jp'

[Nov 15 02:49:23 UTC] Automatic processor detection found 1 processor.
[Nov 15 02:49:23 UTC] Connected to distributed.net:80
                      via HTTP proxy http-proxy.hoge.ne.jp:3128
[Nov 15 02:49:23 UTC] NetUpdate::Unable to assert handshake integrity.
[Nov 15 02:49:23 UTC] NetUpdate::Unable to assert handshake integrity.
                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ これ
[Nov 15 02:49:23 UTC] Automatic processor type detection found
                      an Intel Pentium II processor.
[Nov 15 02:49:23 UTC] RC5: using core #2 (RG class 6).
[Nov 15 02:49:23 UTC] Loaded RC5 random 1*2^28 packet 65C2688B:C0000000
[Nov 15 02:49:23 UTC] 0 RC5 packets (0 work units) remain in buff-in.rc5
[Nov 15 02:49:23 UTC] 0 RC5 packets (0 work units) are in buff-out.rc5
[Nov 15 02:49:23 UTC] 1 cruncher has been started.

dnetc の Firewall hostoname を localhost や IP アドレス指定しても同じ。 親 Proxy (実はこのホスト自身が Proxy サーバ) を指定すると問題なし。

解決方法

このホスト自身がサービスする HTTP プロキシ (Squid) の設定で、自分自身からの 接続を許可していなかったのが原因。Squid の設定を変更することで解決。

...だと思ったのだが、うまく動いている途中でも突然以下のようなメッセージが 表示され、クライアントが終了してしまうという現象あり。 クライアントを再実行すれば問題ないのだが...。サーバの過負荷などが原因?
[Nov 15 04:19:07 UTC] Connected to distributed.net:80
                      via HTTP proxy http-proxy.hoge.ne.jp:3128
[Nov 15 04:19:07 UTC] The keyserver says: "Why is a cow ? Mu. (Ommmmmmmmmm)"
[Nov 15 04:41:59 UTC] Sent RC5 packet 79 of 135 (58.51% transferred)     ls

[Nov 15 04:44:01 UTC] FlushRC5::Unable to assert acknowledgment validity.
[Nov 15 04:44:01 UTC] Sent RC5 packet 79 of 134 (58.95% transferred)     
[Nov 15 04:46:03 UTC] FlushRC5::Unable to assert acknowledgment validity.
[Nov 15 04:46:03 UTC] Sent RC5 packet 79 of 134 (58.95% transferred)     
[Nov 15 04:48:32 UTC] FlushRC5::Unable to assert acknowledgment validity.
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

12. stone による SSL 中継時に PEM phrase を毎回要求される

環境

Slackware 7.0 (Kernel 2.2.17 + glibc 2.1.2)
apache-1.3.12 with mod_ssl-2.6.6-1.3.12
stone-2.1a
openssl-0.9.6 Netscape Communicator 4.73 (Windows NT 4.0 SP6a)

現象

stone のテストのために、mod_ssl により SSL 化した apache を非 SSL モードで起動 (apachectl start で起動) し、stone を以下のように実行。
$ su
# stone -z key=<秘密鍵ファイルへのパス> \
        -z cert=<公開鍵証明書ファイルへのパス> \
        localhost:http server.hoge.co.jp:443/ssl
Feb  6 10:45:44 start (2.1a) [3480]
Feb  6 10:45:44 stone 3: localhost:www <- 443/ssl

この状態で Netscape Navigator から HTTPS でアクセスすると、以下のダイアログ が表示されてしまう。
ネットワーク接続をサーバから切断されました。
サーバは、接続を受け付けていないか、大変混雑しているようです。
あとで、もう一度接続してみてください。
かわりにキャッシュしておいたコピーを使用します。

このダイアログの OK ボタンをクリックすると、 stone が PEM phrase の入力を要求してくる。 ここで、公開鍵証明書のパスフレーズを入力すると無事 SSL で接続できるのだが、 HTTPS 接続のたびに%Q%9%U%l!<%:$NF~NO$rMW5a$5$l$F$7$^$&!# 入力を省略/自動化する方法ってないの〜。それとも証明書の作り方が何かおかしい の〜。途中、表示される error も謎。 ちなみに、証明書等の作成方法は
apache の Install Memo に記述した通り。
(snip)
Feb  6 10:45:44 start (2.1a) [3480]
Feb  6 10:45:44 stone 3: localhost:www <- 443/ssl
Enter PEM pass phrase:
Feb  6 10:45:48 SSL_use_RSAPrivateKey_file(/home/xportjp/fukafuka-CA/server.key) error
Enter PEM pass phrase:         <--- ここでパスフレーズを入力すると無事 SSL で接続できるのだが...。

解決方法

Help me!
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

13. pcmcia-cs の scheme 変更時に Unknown option 'q' [回避]

環境

Slackware 7.0 (Kernel 2.2.17 + glibc 2.1.2)
pcmcia-cs-3.1.13

現象

PCMCIA NIC の設定変更のために以下のコマンドを実行すると、 何故か jgrep の Unknown option 'q' エラーが表示されてしまう。 scheme の変更そのものは正常に行われているのだが...。
$ su
# cardctl scheme foo
checking: eth0 ttyS1
Unknown option 'q'
Jgrep/JVim 2.0r by ann@mrit.mei.co.jp
Usage: jgrep [ -cilsvwCNJESX., ] pattern [filename ...]
        -c     Print only a count of the lines.
        -i     Ignore case.
        -l     Print only file name.
        -s     Suppress error message.
        -v     Print lines not match with the pattern.
        -w     Search \<pattern\>.
        -C     Print kanji code.
        -N -J -E -S -X
               kanji code for output.
        -. -,  kanji code for input.

Environment JMASK specifies default Kanji code.
Changing scheme from 'bar' to 'foo'...

解決方法

su 直後の $PATH は以下の通り。
/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin

jgrep は /usr/local/jvim2.0/bin/jgrep にあるがパスは通していない。 なのに何故 jgrep ??
/usr/local/bin/jvim (../jvim2.0/bin/jvim にリンク) は存在するのだが...。 試しに以下のように $PATH を変更してみると問題なく動く。
# export PATH=/usr/bin:$PATH

ソースをみないと分からないが、どうやら cardctl では jvim が存在すると、 その処理の途中で jgrep -q を呼び出そうとするらしい。 で、/usr/bin/grep には -q オプションはあるが、jgrep にはない、と。

とゆー訳で、解決方法としては root の $PATH から /usr/local/bin を外す、 もしくは /usr/local/bin を /usr/bin の後に持ってくれば OK 。 具体的には以下の通り (/usr/local/bin を削除する場合)

1) /etc/profile を以下のように変更 (su - した時への対応)
# Set the default system $PATH:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$OPENWINHOME/bin:/usr/games"
      ~~~~~~~~~~~~~~~ 削除

# For root users, ensure that /usr/local/sbin, /usr/sbin, and /sbin are in
# the $PATH.  Some means of connection don't add these by default (sshd comes
# to mind).
if [ "`id -u`" = "0" ]; then
  echo $PATH | grep /usr/local/sbin 1> /dev/null 2> /dev/null
  if [ ! $? = 0 ]; then
    PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH
         ~~~~~~~~~~~~~~~~ 削除
  fi
fi

2) /etc/login.defs を以下のように変更 (su した時への対応)
#
# *REQUIRED*  The default PATH settings, for superuser and normal users.
#
# (they are minimal, add the rest in the shell startup files)
ENV_SUPATH      PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 削除
ENV_PATH        PATH=/usr/local/bin:/bin:/usr/bin
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

14. hostname -f の実行に失敗する [解決]

環境

Slackware 7.0 (Kernel 2.2.17 + glibc 2.1.2)

現象

hostname -f を実行すると以下のエラーが表示される。 hostname の実行には問題なし。
$ hostname -f
hostname: ホスト名の検索に失敗しました

解決方法

何故かは省略するが (本質的には無関係だし、説明も面倒なので... (^^;) DNS (このホストは DNS サーバでもある) が正常に動作していなかったのが原因。 DNS が正しく動作するよう設定を修正すれば OK 。 もしくは /etc/hosts に自ホストを登録する。
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

15. apache 起動時に httpd (pid xxx) already running [解決]

環境

Plamo Linux 2.0 (Kernel 2.2.17 + glibc 2.1.2)
apache-1.3.12

現象

ある日、ふと気付くと (^^; 何故か apache が起動していない。 起動しようとすると以下のメッセージが表示され起動できない。
# /usr/local/apache/bin/apachectl start
/usr/local/apache/bin/apachectl start: httpd (pid xxx) already running

解決方法

apache は自分の PID をファイルに記録している。この中身を調べてみると...。
# cat /usr/local/apache/logs/httpd.pid
xxx   <--- 実際は PID の数値

この PID に該当するプロセスを調べてみると...。
# ps ax | grep xxx
  xxx  ?  S    0:00 /usr/sbin/rpc.mountd
 xxxx  p5 S    0:00 grep xxx

むう。なぜこんなことに...。PID ファイルを削除してから apachectl start すれば解決。
# rm /usr/local/apache/logs/httpd.pid
# /usr/local/apache/bin/apachectl start
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

16. OpenSSH の agent 転送って? [解決]

環境

Slackware 7.0 (Kernel 2.2.17 + glibc 2.1.2)
OpenSSH-2.9p1

現象

SSH に agent 転送機能というものがあるらしい。 ローカルの ssh-agent に覚えさせた認証情報を、SSH ログイン先の SSH でも使用でき るらしい。
おー。これこれ。この機能が欲しかったのよ〜。
ホストA --> ホストB --> ホストC というようにホストB を中継してホストC に SSH ログインしたい場合、ホストB に秘密鍵を置く必要があるけれど、 ホストB の root が自分以外にいるという場合には、 いくらパスフレーズで保護されているとは言え、自分の秘密鍵をホストB には置きたく ないなーと思っていたのよ〜。 この機能があれば解決〜。...ところでどうやって使うのだ??(^^;

解決方法

デフォルトでは無効になっているため、~/.ssh/config に以下のエントリを追加する。 あとは ssh-agenet/ssh-add しておけば、 SSH ログイン先のホストに秘密鍵がなくても、そこからさらに SSH できる。 もちろんパスフレーズの入力の必要なし。便利〜。
(もちろんサーバ側で禁止 no-agent-forwarding されていたらダメ)
ForwardAgent yes
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

17. sshd 起動時に Disabling protocol version 2. Could not load host key [解決]

環境

Slackware 7.0 (Kernel 2.2.17 + glibc 2.1.2)
OpenSSH-2.5.2p2

現象

OpenSSH を 2.3.0p1 から 2.5.2p2 以降にバージョンアップした後、 sshd を起動すると以下のメッセージ。 以前 (2.3.0.p1 の頃) はこんなメッセージは表示されなかったのだが...。
# /usr/local/sbin/sshd
Disabling protocol version 2. Could not load host key

プロトコルバージョン 2 が disable ? ホストキーがない。そんなばかな。 試しにプロトコルバージョン 2 で SSH ログインしてみると...。
$ slogin -2 localhost
Protocol major versions differ: 2 vs. 1

と表示されログインできない。slogin localhost には問題なし。 なお、2.3.0p1 のままのホストでやってみると...。
$ slogin -2 localhost
Unable to find an authentication method

むむむ。こっちは現象が違う。 なお、こちらも slogin locahost には問題なし。

解決方法

2.3.0p1 --> 2.5.2p2 とアップデートしたホストと、 また素から 2.5.2.p2 をインストールしたホストとも比較してみると、 sshd_config にも違いがあるのが解った。 そうか。アップデートの場合には sshd_config が上書きされずに 2.3.0p1 のまま になっていたから、バージョンアップによる変更に対応できていなかったのね。

とゆーことで、sshd_config に以下のエントリを追加することで、 sshd 起動時のメッセージは出なくなった。
HostKey /usr/local/etc/ssh_host_rsa_key
HostKey /usr/local/etc/ssh_host_dsa_key

しかしプロトコルバージョン 2 を用いて SSH ログインできない。
$ slogin -2 localhost
Permission denied (publickey,keyboard-interactive).

$ slogin localhost
Permission denied (publickey,keyboard-interactive).

slogin -1 localhost には問題ないことからすると、 どうやらデフォルトが 1 から 2 に変更になっているらしい。 という事は、原因は ユーザ鍵に RSA 鍵を作っていないため、か。

ssh-keygen -t rsa で Protocol 2 の RSA 鍵 (~/.ssh/id_rsa, id_rsa.pub) を生成。
ssh-keygen -t dsa で Protocol 2 の DSA 鍵 (~/.ssh/id_dsa, id_dsa.pub) を生成。

これでどうだっ!
$ slogin vizzer
Permission denied (publickey,keyboard-interactive).

むー。そうだ! ログイン先のホストに秘密鍵を置いてないじゃん。
id_rsa.pub および id_dsa.pub をログイン先のホストの ~/.ssh/authorized_keys2 に 追加しておく。
(参考までに authorized_key2 の内容はこんな感じ)
ssh-rsa TAEAB3NzaC1yc2E....

ssh-dss TAEAB3NzaC1kc3M....

これで問題解決!
なお ssh-agent には ssh-add ~/.ssh/id_rsa 等として認証情報を登録する。

ひとつ未解決の問題。
~/.ssh/config に Protocol 2,1 を追加。これで 2 がダメだったら 1 で認証という 動作をするはずだが、思うような動作をしない。 む〜。Protocol 2 や Protocol 1 では、それぞれ -2 -1 と同様の動作をするだが...。
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

18. proxy.pac を設定すると IE5 からアクセスできない [解決]

環境

Slackware 7.0 (Kernel 2.2.17 + glibc 2.1.2)
Apache 1.3.20
Internet Explorer 5.0 (5.00.2614.3500)
Netscape Navigator 4.75

現象

以下のような Proxy Automatic Configuration file (proxy.pac) を設定し、 IE5 からアクセスすると、正常にブラウズできない。 Navigator からだと問題なくアクセスできる。
function FindProxyForURL(url, host) {
        // 以下の条件にマッチするホストは Proxy を利用せず DIRECT に接続させる
        if (isPlainHostName(host) ||
            dnsDomainIs(host, ".hoge.co.jp") ||
            isInNet(host, "127.0.0.1", "255.255.0.0")) {
                return "DIRECT";

        // それ以外は以下の Proxy を利用させる
        } else {
                return "PROXY proxy.hoge.co.jp:8080; DIRECT";
        }
}

この時、proxy.pac を置いている Web サーバのアクセスログは以下の通り。
xxx.xxx.xxx.xxx - - [28/May/2001:09:56:03 +0900] "GET /proxy.pac HTTP/1.0" 200 812
xxx.xxx.xxx.xxx - - [28/May/2001:09:56:03 +0900] "GET /proxy.pac HTTP/1.0" 304 -

もちろん proxy.pac を置く Web サーバ (apache) に MIME-type の設定は追加し、 httpd の再起動も行っているし、ブラウザ側の設定にも間違いはない。 なのにな〜ぜ〜 IE からはダメなの〜。

解決方法

いろいろ試行錯誤した結果、proxy.pac を JIS にすると OK。 SJIS, EUC ではダメという事が分かった。
...とゆーことはコメントに 2 byte コードを使ったのが原因かぁ〜。 proxy.pac から 2 byte コードを削除したら問題解決。
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

19. apache インストール時に chgrp 実行エラー [解決]

環境

Plamo Linux 2.2.1 (Kernel 2.2.19 + glibc 2.2)
Apache 1.3.20

現象

apache のインストール時に以下のエラー。
$ su
# make install
(snip)
chown nobody /usr/local/apache/proxy
chgrp nogroup /usr/local/apache/proxy
chgrp: /usr/local/apache/proxy: 無効な引数です

make[1]: [install-mktree] エラー 1 (無視されました)

解決方法

/etc/group で nogroup の GID が -2 (-1 だったか?) になっているのが原因。 65534 に変更してから、再度 make install を実行すれば OK 。
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

20. slapd (OpenLDAP) へのアクセス時に Can't contact LDAP server [解決]

環境

Plamo Linux 2.2.1 (Kernel 2.2.19 + glibc 2.2)
OpenLDAP 2.0.17

現象

OpenLDAP をインストールし、オフラインでルートエントリ等の初期データを投入。 その後、サーバである slapd を起動し、いざアクセスしようとすると、 以下のようなエラーが出てアクセスできない。
$ /usr/local/bin/ldapsearch -x -b 'o=sample,c=JP' '(objectClass=*)'
ldap_bind: Can't contact LDAP server

なお configure 時のオプションは以下の通り。
           
$ ./configure --enable-wrappers --enable-modules --enable-ldap --enable-sql

解決方法

configure オプションに --enable-wrappers を指定しているのが原因。 /etc/hosts.allow に以下のようなエントリを追加すれば OK 。
# xxx.xxx.xxx はアクセス元のネットワークアドレス
slapd :       xxx.xxx.xxx. 127.0.0.1
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

21. Apache 起動時に unable to gethostbyname のエラーが出て起動しない [解決]

環境

Plamo Linux 2.2.1 (Kernel 2.2.19 + glibc 2.2)
Apache 2.2.19

現象

ブート時に Apache が自動起動しない。起動スクリプトはちゃんと用意しているが、 Apache のエラーログ (/usr/local/apache/logs/error_log) に以下のエラーが、 記録され、起動しない。
[Sun Mar  3 03:32:06 2002] [alert] mod_unique_id: unable to gethostbyname("(none)")

解決方法

Apache 起動スクリプトを元々は /etc/rc.d/rc.httpd として書いていたのだが、 ふと Plamo では /etc/rc.d/init.d が用意されているのに気づいて、 /etc/rc.d/init.d/httpd に変更したのが原因。
よく見ると /etc/rc.d/rc.M での /etc/rc.d/init.d スクリプトの処理位置が hostname の設定より前に記述されているため、Apache の起動時に hostname が 設定されておらず、上記のエラーとなっていたらしい。
という訳で、/etc/rc.d/rc.M での /etc/rc.d/init.d スクリプトの処理位置 を以下のよう変更 (青字部分) すれば OK 。
# Ensure basic filesystem permissions sanity.
chmod 755 /
chmod 1777 /tmp /var/tmp

# run the startup scripts in /etc/rc.d/init.d
if [ -d /etc/rc.d/init.d ]; then
for i in /etc/rc.d/init.d/*; do
  $i start
done
fi

# Start the sendmail daemon:
if [ -x /usr/sbin/sendmail ]; then
  echo "Starting sendmail daemon (/usr/sbin/sendmail -bd -q15m)..."
  /usr/sbin/sendmail -bd -q15m
fi
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

22. slapd 起動時に attribute type "2.5.18.1" is operational. [解決]

環境

Plamo Linux 2.2.1 (Kernel 2.2.20 + glibc 2.2)
OpenLDAP 2.1.17

現象

OpenLDAP を 2.0.18 から 2.1.17 にアップデート後、slapd を再起動しようと すると次のエラー。
# ./rc.openldap start
Starting OpenLDAP server(slapd): /usr/local/etc/openldap/schema/core.schema: line 29: \
                                 attribute type "2.5.18.1" is operational

解決方法

ここ ( http://www.openldap.org/lists/openldap-software/200209/msg00610.html ) に記述がある。
make install では schema ファイル等がアップデートされないので、 手動でやれとのこと。手順は次の通り。
# cd <アーカイブを展開したディレクトリ>/servers/slapd/schema
# cp -p *.schema /usr/local/etc/openldap/schema
# /etc/rc.d/rc.openldap start
Starting OpenLDAP server(slapd): Unrecognized database type (ldbm)

/usr/local/etc/openldap/slapd.conf を以下のように修正。
なお、下記で指定したディレクトリが存在しないと、slapd は起動しないので注意。
#database       ldbm      <--- コメントアウト
database        bdb       <--- 追加

#directory      /usr/local/var/openldap-ldbm  <--- コメントアウト
directory      /usr/local/var/openldap-bdb    <--- 追加
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

23. iptables が使えない [解決]

環境

Red Hat Linux 7.3

現象

iptables を使用しようとすると次のエラー。
# iptables -L
/lib/modules/2.4.18-3/kernel/net/ipv4/netfilter/ip_tables.o: init_module: Device or resource busy
Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters
/lib/modules/2.4.18-3/kernel/net/ipv4/netfilter/ip_tables.o: insmod /lib/modules/2.4.18-3/kernel/net/ipv4/netfilter/ip_tables.o failed
/lib/modules/2.4.18-3/kernel/net/ipv4/netfilter/ip_tables.o: insmod ip_tables failed
iptables v1.2.5: can't initialize iptables table `filter': iptables who? (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

解決方法

同時には使えないので ipchains を削除する必要がある。
$ su
# rmmod ipchains
ipchains: Device or resource busy

chain にルールが存在すると消せないらしい。考えてみれば当り前。
# ipchains -F input
# ipchains -F output
# ipchains -F forward
# rmmod ipchains
# modprobe ip_tables

あとは適当に iptables のルールを書けば OK 。
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

24. SSH ログイン時に xauth: timeout in locking authority file [解決]

環境

Solaris 10
OpenSSH

現象

SSH ログイン時に次のメッセージが表示され、ログインまでに異常に時間がかかる。
$ slogin -l foo hostname.example.co.jp
Last login: Tue Oct 10 15:59:13 2006 from 192.168.1.1
/usr/openwin/bin/xauth:  timeout in locking authority file /home/foo/.Xauthority
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
$

解決方法

ホームディレクトリのオーナー/パーミッションがおかしくなっており、 ~/.Xauthority を作成できなかったのが原因。
解決方法は次の 3 つ。

  1. ホームディレクトリのオーナー/パーミッションを直す。
  2. sshd の X11Forwarding を無効にする。
  3. SSH ログイン時に '-x' オプションを付加する。
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

25. SSH ログイン時に Could not reverse map address [解決]

環境

Solaris 8
OpenSSH

現象

SSH ログイン時にサーバ側に次のログが表示される。
Jun  6 09:55:23 foo sshd[4301]: Could not reverse map address 192.168.1.1.

解決方法

クライアント IP アドレスを逆引き出来ないのが原因 (メッセージそのまんま) 。
サーバ側の /etc/hosts や DNS に当該 IP アドレスを登録すれば OK.
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

26. Samba をバージョンアップすると共有フォルダが文字化け [解決]

環境

Gentoo Linux
Samba 3.0.5

現象

Samba を 2.2.8a から 3.0.5 にバージョンアップすると、共有フォルダの ファイル名が文字化け。

解決方法

/etc/samba/smb.conf を次のように変更して、samba を再起動すれば OK.
;  client code page = 932     <--- 修正前
;  coding system = euc        <--- 修正前
   dos charset = CP932        <--- 修正後
   unix charset = eucJP-ms    <--- 修正後
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

27. TTSSH から OpenSSH へのログイン時に have to enable some more ciphers in the TTSSH

環境

Tera Term Pro 2.3 + TTSSH 1.5 on Windows 2000
OpenSSH 3.4p1 on Solaris 8

現象

何故か TTSSH からある特定の OpenSSH なサーバにログインできない。
その他のサーバでは問題なし。また、OpenSSH から OpenSSH にも問題なし。
この時、OpenSSH サーバ側に次のログ。
Jan 14 16:12:58 hostname sshd[11146]: Received disconnect from xxx.xxx.xxx.xxx: All the encryption \
                algorithms that this program and the server both understand have been disabled.
Jan 14 16:12:58 hostname To communicate with this server, you will have to enable some more ciphers
Jan 14 16:12:58 hostname in the TTSSH Setup dialog box when you run Teraterm again.
Jan 14 16:12:58 hostname This connection will now close.

解決方法

Help me!
[ 先頭 | 末尾 | 戻る | トップページに戻る ]

28. Mozilla 起動時に cannot use the profile [解決]

環境

Gentoo Linux
Mozilla

現象

Mozilla 起動時に Select User Profile ダイアログが表示されたので、 使っていたプロファイルを選択し Start Mozilla ボタンを押すが、 次のメッセージが表示され、起動できない。
Mozilla cannot use the profile "foo" because it is in use.
Please choose another profile or create a new one.

解決方法

次のファイルを削除すれば OK.
$ ls -l ~/.mozilla/foo/kjjth9bp.slt/lock 
lrwxr-xr-x    1 foo   users      16  4月 30 07:50 /home/foo/.mozilla/foo/kjjth9bp.slt/lock -> 192.168.1.1:1859
[ 先頭 | 末尾 | 戻る | トップページに戻る ]