注意: # や % の意味が分からない人は 用語 を参照。
変更を加えた (OS をインストール直後、 新しいサーバを動かした、 新しいソフトウエアを追加したなど) 時は、必ず、
今現在、ネットワークごしに利用可能なプログラムは何か? (業界用語「いま、ひらいているポートは何か?」)を確認して下さい。
例: ネットワークの設定がされているかを確認?
以下の「コマンドを実行」ないしは「ファイルの中身を確認」し、 仕様どおりになっているかを確認して下さい。
インターフェイスの確認。
% ifconfig -a
DNS の設定確認。
/etc/resolv.conf の確認(DNS の設定がそれらしいか?;-)
% cat /etc/resolv.conf
DNS が引けるかを確認。 例:
% nslookup www.iij.ad.jpを実行すると www.iij.ad.jp の IP アドレスの答えがかえるか? (2011/09 現在 210.130.137.80)
ルーティングの確認: デフォルトルートは正しいか?
% netstat -f inet -rn
default 行に期待通りの IP アドレスが表示されるか?
nestat は 4.2 BSD からある由緒あるコマンドです。
# netstat -f inet -na | grep LISTEN # netstat -f inet -na | grep udp他の PC から(つまりリモートから)見えているか?が問題なので 127.0.0.1 は除きます。
# netstat -f inet -na | grep LISTEN | grep -v 127.0.0.1 # netstat -f inet -na | grep udp | grep -v 127.0.0.1
実行例:
# netstat -f inet -na | grep LISTEN | grep -v 127.0.0.1 tcp 0 0 10.0.0.251.25 *.* LISTEN tcp 0 0 10.0.0.251.22 *.* LISTEN tcp 0 0 10.0.0.251.53 *.* LISTEN # netstat -f inet -na | grep udp | grep -v 127.0.0.1 udp 0 0 210.128.51.251.123 *.* udp 0 0 210.128.51.251.53 *.* udp 0 0 *.123 *.*
表記は「IPアドレス.ポート」です。 IPアドレスが * の場合、 「そのサーバの全ネットワークインターフェイス」という意味になります。
アドレスおよびポート番号をよく見て、 予想外のものが動いていないことを確信してください。
上の例では Postfix (25/tcp)、 sshd (22/tcp)、 named(53/tcp と 53/udp)、 ntpd (123/udp) の 4 つが動いています。 すべて明示的に設定した覚えのあるものだけです。
この場合 /etc/rc.conf は次のようになっています。
sshd=yes named9=yes ntpd=yes注意: デフォルトで postfix=yes です。 rc.conf に書いてなくとも Postfix は動いています。
fstat は 4.3 BSD Tahoe からある、これまた由緒正しい?プログラムです。 実際には、後述する lsof (list of files) の方が古く、 fstat は lsof の BSD 版のようなものです。
本来、fstat は「開いているファイルの一覧」を見るプログラムで、 ネットワークで開いているポート(ソケット == ファイル)が見えるのは、 一種の副産物です。
# fstat |grep :
実行例
# fstat | grep : postfix smtpd 15612 6* internet stream tcp c24e6380 10.0.0.251:25 postfix smtpd 4663 6* internet stream tcp c24e6380 10.0.0.251:25 postfix smtpd 18811 6* internet stream tcp c24e6380 10.0.0.251:25 postfix smtpd 12734 6* internet stream tcp c24e6380 10.0.0.251:25 root master 29129 12* internet stream tcp c24e6380 10.0.0.251:25 root sshd 5096 3* internet stream tcp c2634524 10.0.0.251:22 root named 4071 20* internet stream tcp c24e6818 10.0.0.251:53 root named 4071 512* internet dgram udp c269a364 10.0.0.251:53 root ntpd 14700 20* internet dgram udp c1e97870 *:123 root ntpd 14700 21* internet6 dgram udp c24ed754 *:123 root ntpd 14700 22* internet dgram udp c1e97510 10.0.0.251:123
実際にポートを開いているプログラムとプロセスIDまで分かりますね?
デフォルトの NetBSD には入っていません。
[コラム] 通常、lsof は無視してかまいません。 lsof 好きは /usr/pkgsrc/sysutils/lsof をインストールして使ってください。 ただし、Linux などでは fstat がなく、かわりに lsof だったりするので、 lsof の使い方にも慣れておくとよいでしょう。
# lsof -n |grep :
127.0.0.1 とは何か?普通の通信とは何か違うのか?
127.0.0.1 宛の通信はカーネル内でどのように制御されるか?
pkgsrc で lsof をインストールし、確認作業をしてみよ。
たまに 「身に覚えのない番号 65000 台などのポート番号が開いている」 と表示されるが、 直後に fstat や lsof で調べても、そのような番号がないことがある。
なぜか?
また、犯人の候補としては、どのようなソフトウエアが考えられるか?
以下の実行例を分析せよ。
実行例:
# fstat -n | grep : |grep -v 127.0.0.1 root ntpd 10292 20* internet dgram udp c194b43c *:123 root ntpd 10292 21* internet6 dgram udp c1638750 *:123 root ntpd 10292 22* internet dgram udp c194b2f8 10.0.1.1:123 root ntpd 10292 24* internet dgram udp c194ba90 10.0.2.1:123 root syslogd 28744 6* internet6 dgram udp c1638f30 *:514 root syslogd 28744 14* internet dgram udp c194bc40 *:514 root named 19538 20* internet stream tcp c18ee9c4 10.0.1.1:53 root named 19538 512* internet dgram udp c194bcac 10.0.1.1:53 root dhcpd 4671 7* internet dgram udp c194b0dc *:67 nobody thttpd 7157 1* internet stream tcp c1cc5234 10.0.1.1:80 root master 2156 12* internet stream tcp c18f61f8 *:25 root master 2156 13* internet6 stream tcp c18f6004 *:25 wnn jserver 12962 3* internet stream tcp c1946db4 *:22273 root sshd 23734 3* internet6 stream tcp c18f67d4 *:22 root sshd 23734 4* internet stream tcp c18f69c8 *:22 root smbd 4620 19* internet6 stream tcp c195e7dc *:445 root smbd 4620 20* internet6 stream tcp c195e00c *:139 root smbd 4620 21* internet stream tcp c195edb8 *:445 root smbd 4620 22* internet stream tcp c195e3f4 *:139 root nmbd 21844 7* internet dgram udp c1635288 *:137 root nmbd 21844 8* internet dgram udp c16352f4 *:138 root nmbd 21844 9* internet dgram udp c194b808 10.0.1.1:137 root nmbd 21844 10* internet dgram udp c194b3d0 10.0.1.1:138 root Xorg 6624 1* internet6 stream tcp c19467d8 *:6000 root Xorg 6624 3* internet stream tcp c19465e4 *:6000 root inetd 572 6* internet stream tcp c19469cc *:23 root inetd 572 7* internet dgram udp c194bec8 *:69 root nfsd 230 3* internet stream tcp c18ee000 *:2049 root nfsd 230 4* internet6 stream tcp c18f6db0 *:2049 root mountd 171 3* internet dgram udp c1635b64 *:1020 root mountd 171 4* internet stream tcp c18ee3e8 *:1022 root mountd 171 5* internet6 dgram udp c1638bd0 *:1019 root mountd 171 6* internet6 stream tcp c18ee1f4 *:1021 root rpcbind 170 3* internet6 dgram udp c1638c60 *:0 root rpcbind 170 5* internet6 dgram udp c1638e10 *:111 root rpcbind 170 6* internet6 dgram udp c1638d80 *:1022 root rpcbind 170 7* internet6 stream tcp c18ee7d0 *:111 root rpcbind 170 8* internet dgram udp c1635ca8 *:111 root rpcbind 170 9* internet dgram udp c1635c3c *:1021 root rpcbind 170 10* internet stream tcp c18ee5dc *:111
Copyright (C) 1993-2025 Ken'ichi Fukamachi mail:< fukachan at fml.org >