| 無料ホームページスペース無料メールアドレスをご提供します。 KANSAI WEBサービス会員規約 |
| コンピュータ/通信総合サイト・広島の関西商事 管理人:大内 雅司 |
サーバー運用のトラブルがおきたときの対処
| このセクションのポイント |
| @セキュリティの設置によっては、必要なアクセスまで遮断してしまっていることがある。 AIPレベルで接続できているか確認するには、pingが使える。 BIPアドレスその他の設定が正しいかどうか確認するには、ifconfigが使える。 Cゲートウェイの設定が正しいか確認するには、routeが使える。 Dその他、iptablesやhostでパケットフィルタやDNSサーバーの設定を確認できる。 Eサーバプログラムはログファイルに情報を書き出す。ログ情報を有効に活用しよう。 |
セキュリティ設定は大丈夫か?
”iptables”やTCP Wrapperのように、複数のサービスのアクセス制御が可能なツールが存在します。
もしかすると、これらのプログラムがクライアントからのあくせすを拒否しているのかもしれません。
■TCP Wrapperの確認
| [root@linux ~]# cat /etc/hosts.allow /etc/hosts.deny [enter] |
対象のデーモンに対して、あるいは”ALL”に対して”deny”する設定があれば、「vi」エディタで編集しましょう。
■パケットフィルタの確認
設定を確認して、間違いがないか確認して下さい。ログファイルを確認するのも1つの手です。
| [root@linux ~]# iptables -L -n [enter] |
ただし、iptablesの設定は初心者の方には分かりにくいため、原因を切り分けづらいかもしれません。
手っ取り早く確認する方法として、iptablesを無効にして通信できるかどうか確認します。
| [root@linux ~]# /etc/rc.d/init.d/iptables stop [enter] |
★ネットワーク診断ツール「ping」
”ping”は、ICMPを使用したネットワーク診断ツールです。
サーバーとの通信ができない場合、まずは「ping」で通信ができるか確認しましょう。
「ネットワーク」自身に問題があるのかどうかを切り分けられます。
■pingの仕組み
”ping”は、ICMPプロトコルを使っています。”ping”を実行すると、「echo要求」というタイプのICMPパケットが送信されます。
▼pingの仕組み(1)
コンピュータA「返事を返してください。」-------------「echo要求」-------------------->コンピュータB
ICMPというプロトコルでは、「echo要求」を受信したコンピュータは、「echo応答」と呼ばれるICMPパケットを返信するという決まりがあります。
▼pingの仕組み(2)
コンピュータA<-------------------------------「echo応答」---------------------コンピュータB「はーい!」
”ping”が正常におこなわれば、・・・・・・・・・
@コンピュータAから送ったパケットばコンピュータBに届く。
AコンピュータBから送ったパケットばコンピュータAに届く。
という、2点間で「IPにデータを乗せて運ぶ」という最低限必要なことを確認できます。
■pingの実行
”ping”を実行する場合、以下のようにIPアドレス、あるいはホスト名を引数にして実行します。
▼IPアドレス指定の場合
| [root@linux ~]# ping 192.168.0.1 [enter] |
▼ホスト名指定の場合
| [root@linux ~]# ping host.localdomain [enter] |
Windowsのコマンドプロンプトから”ping”を実行すると、4回”echo”要求を出し終了しますが、Linuxの”ping”は停めるまで”echo”を要求し続けます。
※停止するには、「Ctrl-C」を入力してください。
■pingの出力結果
まずは、”ping”が通る場合の出力です。
| [root@linux ~]# ping 192.168.0.1 [enter] PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=0 ttl=64 time=1.026 ms 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=831 ms ---192.168.0.1 ping statistics --- 2 packets transmitted, 2 packets received 0% packet loss, time 1004ms rtt min/avg/max/mdev = 0,831/0.928/1,026/0.102 ms, pipe 2 |
最後の3行が結果の統計です。ここに注目しましょう。”echo”応答が返ってこなかった場合(%)が表示されています。
正常に通信できる状態であれば0%になるはすです。
次に”ping”が通らない場合の出力です。3パターンの出力と考えられる主な原因を挙げています。
ただし、他にも考えられる原因はありますので、参考程度にみて下さい。
| [root@linux ~]# ping 192.168.0.1 [enter] PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. From 192.168.0.2 icmp_seq=0 Destination Host Unreachable From 192.168.0.2 icmp_seq=1 Destination Host Unreachable From 192.168.0.2 icmp_seq=2 Destination Host Unreachable ---192.168.0.1 ping statistics --- 3 packets transmitted, 0 packets received、 +2 errors、100% packet loss, time 3024ms、pipe 4 |
上記の場合はデフォルトゲートウェイの設定など「ルーティング」周りに問題がありそうです。
| [root@linux ~]# ping uso.kansai.homelinux.com
[enter] ping: unknown host uso.kansai.homelinux.com |
上記の場合は、ネットワークに上に存在しないコンピュータに向けて”echo要求”を出しています。
| [root@linux ~]# ping school.kansai.homelinux.co [enter] |
引数にホスト名を指定し、”ping”を実行すると何も出力されないことがあります。DNSサーバーの指定が間違っている、あるいはDNSサーバーが正常でないことが考えられます。
回答1.”ping”が通るのにサーバーと通信ができないのであれば、次は「サーバーデーモン」自体を疑いましょう。
回答2、”ping”が通らないのであれば、ネットワークに関する設定を疑いましょう。
★IPアドレスを疑う
■確認
まずは、サーバーに設定したアドレスが正しいのかどうか確認します。”ifconfig”コマンドで確認しましょう。自分が属するべきネットワークのアドレスですか?
| [root@ linux ~]# ifcofig [enter] eth0 Link encap:Ethernet HWaddr AA:BB:CC:DD:EE:FF inet addr:192.168.0.12 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: ffff:ffff:ffff:ffff:ffff:ffff/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 METRIC:1 RX packets:16675 errors:0 dropped:0 overruns:0 frame:0 TX packets:6891 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1915928 (1.8 Mb) TX bytes:916393 (894.9 kb) Interruput:10 Base address:0x1080 10 Link encap:Local Lookback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metruc:1 RX packets:87 errors:0 dropped:0 overruns:0 frame:0 TX packets:87 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5601 (5.4 Mb) TX bytes:5601 (5.4 kb) |
■修復
ネットワークの設定を変更するためには、”/etc/sysconfig/network-scripts/ifcfg-eth0”ファイルを編集します。
| [root@linux ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 [enter] |
▼設定例
| DEVICE=eth0 BOOTPROTP=static BROADCAST=192.168.0.255 IPADDR=192.168.0.12 NETMASK=255,255.255.0 NETWORK=192.168.0.0 TYPE=Ethernet |
変更後、保存終了して下さい。システム再起動後、IPアドレスが変更されます。
また、すぐに設定を変更したい場合は、以下のように実行します。
| [root@linux ~]# ifconfig eth0 192.168.0.12 netmask 255.255.255.0 [enter] |
★デフォルトゲートウェイ設定を疑う
Linuxをルーターとして使用する場合はもちろん、単なるサーバーとして使用する場合もルーティングに関する設定を間違えていると、同じネットワーク内でしか通信できなくなります。
■確認
”route”コマンドで、デフォルトゲートウェイが表示されます。
| [root@linux ~]# route -n [enter] Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 |
<-------デフォルトゲートウェイのIPアドレス
■修復
デフォルトゲートウェイの変更は、”/etc/sysconfig/network”ファイルで行います。「vi」エディタで設定ファイルを編集し、保存して下さい。
| [root@linux ~]# vi /etc/sysconfig/network [enter] |
▼設定例
| NETWORKING=yes HOSTNAME=kansai.homelinux.com GATEWAY=192.168.0.1 |
また、設定を反映させるためにはネットワークのサービス制御スクリプトを実行します。
| [root@linux ~]# /etc/rc.d//init.d/network restart [enter] |
★IPマスカレードを疑う
Linuxをルーターとして使用していて、かつIPマスカレードを使用する必要がある場合、適切に設定されていないとLAN内のコンピュータがインターネットに接続できなくなります。
■確認
| [root@linux ~]# iptables -t nat -L [enter] Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain PREROUTING (policy ACCEPT) target prot opt source destination MASQUERADE (policy ACCEPT) target prot opt source destination |
<-----MASQUERADE行はありますか?
正しく設定されていますか?
★ルーティング機能を疑う
Linuxをルーターとして使用したい場合、ルーティング機能を有効にしておく必要があります。
■確認
ルーティング機能が有効かどうか、”/proc/sys/net/ipv4/ip_forward”ファイルを確認しましょう。
| [root@linux ~]# cat /proc/sys/net/ipv4/ip_forward
[enter] 1 |
<-------パケット転送機能は、1なら有効、0なら無効
★DNSを疑う
DNS関連で問題があると、IPアドレスを指定してアクセスはできても、ホスト名を指定してアクセスはできません。
■確認
”nslookup”コマンドや”host”コマンドで確認します。正常に名前解決できているのか、出力を確認して下さい。
▼正常な場合
| [root@linux ~]# host kansai.homelinux [enter] kansai.homelinux.com has address 192.168.0.12 |
▼異常な場合
| [root@linux ~]# host kansai.homelinux [enter] ;;connection time out; no servers could be reached |
■修復
名前解決がうまくいかない原因としては、ネームサーバー指定がおかしいか、指定したネームサーバーに不具合があるかです。
ネームサーバ指定がおかしい場合は、”/etc/resolv.conf”ファイルを修正します。
| [root@linux ~]# vi /etc/resolv.conf [enter] |
"namesever"の行を編集します。利用するDNSサーバーのIPアドレスを記述して下さい。
| search homelinux.com nameserver 192.168.0.12 |
★各サーバーサービスを疑う
上記までのチェックを行い、特に問題がなければ、あとはアプリケーション固有の問題の可能性がたかくなってきます。
「サーバーが起動しているのか??」あるいは「意図しない設定をしていないか」を確認しましょう。
■デーモンが起動されているのか?
サーバデーモンが起動中かどうかは、「ps」コマンドで確認します。起動中であれば、デーモン名を含む行が表示されます。
起動していない場合は起動させましょう。
例えば、DNSサーバの場合は”named”というデーモンが起動しているはずなので、以下のように実行します。
| [root@linux ~]#ps ax | grep named [enter] 15970 ? Ss1 0:00 named -u named -t /var/named/chroot 9232 pts/3 R+ 0:00 grep named |
<--------デーモン名を指定。DNSサーバではnamedになります。
<--------最後の行は、コマンドラインで実行したgrepが自分自身を表示しているもので無関係。
(メモ)”xinetd”経由のサービスは表示されません。”xinetd”が起動中かどうか確認して下さい。
■その他の確認
各サーバは、ログファイルに動作記録を残します。各サービスがどのファイルにログを出力するのかを把握し、そのログファイルを確認します。
サーバが起動しないなどの場合、ログファイルを確認することで原因を掴むことができます。
各種プログラムのログファイルをまとめておきますので、確認して下さい。
| サーバー | 出力ファイル |
| Apache | /var/log/httpd/error_log /var/log/httpd/access_log |
| bind | /var/log/messages |
| Postfix | /var/log/maillog |
| dovecot | /var/log/maillog |
| fsftpd | /var/log/messages /var/log/xferlog |
| samba | /var/log/samba/smbd.log |
| xinetd | /var/log/secure |
| sshd | /var/log/messages |
| iptables | /var/log/messages |
| copy right kansai-syoji,.co all right reserved Web-Master masashi ouchi http://kansai.homelinux.com/~Linux |