ワイ、そして IT ときどき何か。

日々のとりとめのない記録

サーバのソケットがしょっちゅう broken になる場合

CentOS などの Linux サーバへの接続がよく切断されることに気づいたら、次のことを確認してみると良いかも。

無線LAN 接続の場合、IEEE 802.11ac(5GHz帯) で繋いでいるか

2.4GHz 帯は電子レンジだけじゃなく、Bluetooth でも使われているので、スマートフォンなどが犯人の可能性がある。すぐに 802.11ac 以上の 5GHz 帯の接続か、有線LAN での接続を試みること。

マイニングされていないか

サーバがマイナー(仮想通貨発掘者)の餌食になっている場合、CPU の負荷が半端なくかかっているので切断(Broken pipe)されやすくなる。

確認方法は

$ top

を実行し、次のような箇所があるかどうか確認する。

|PID|USER|PR| NI|  VIRT|  RES| SHR| S| %CPU| %MEM|    TIME+ |COMMAND    |
|---|----|--|---|------|-----|----|--|-----|-----|----------|-----------|                                                                                           
| 12|nanJ|20| 0 |    0 |   0 |   0| S|124.3|  8.0|  74:00.72|xmr        |                                                                                            
|  1|nanJ|20| 0 |19352 | 556 | 364| S|117.9| 21.1| 148:28.71|named      |                                                                                            
|  2|nanJ|20| 0 |    0 |   0 |   0| S|  0.0|  0.0|   0:00.00|kthreadd   |                                                                                            
|  3|nanJ|RT| 0 |    0 |   0 |   0| S|  0.0|  0.0|   9:07.49|migration/0|                                                                                            
|  4|nanJ|20| 0 |    0 |   0 |   0| S|  0.0|  0.0|   1079:39|ksoftirqd/0|                                                                                            
|  5|nanJ|RT| 0 |    0 |   0 |   0| S|  0.0|  0.0|   0:00.00|stopper/0  |                                                                                            
|  6|nanJ|RT| 0 |    0 |   0 |   0| S|  0.0|  0.0|   3:27.92|watchdog/0 |                                                                                            
|  7|nanJ|RT| 0 |    0 |   0 |   0| S|  0.0|  0.0|   0:43.28|migration/1|                                                                                            
|  8|nanJ|RT| 0 |    0 |   0 |   0| S|  0.0|  0.0|   0:00.00|stopper/1  |                                                                                            
|  9|nanJ|20| 0 |    0 |   0 |   0| S|  0.0|  0.0|   1020:14|ksoftirqd/1|                                                                                            
| 10|nanJ|RT| 0 |    0 |   0 |   0| S|  0.0|  0.0|   2:28.52|watchdog/1 |                                                                                            
| 11|nanJ|20| 0 |    0 |   0 |   0| S|  0.0|  0.0| 285:23.57|events/0   |        

この場合、xmr というプロセスが動いていることがわかり、さらに言えば CPU 使用率がとてつもない数字を叩き出している。 また、分かりにくいが、実は named という DNS と思われるものも挙動はマイニングだったりすることもある(named を利用しているサーバなら慎重に調査する必要がある)。

もし、DNS 使っていないのに named プロセスが存在していると判断するならばこれらのプロセスを殺せばいい。

$ pkill -f xmr
$ pkill -f named

また、いつ何時マイナーが同じようなプロセスを利用するかどうか不明な場合は、crontab -e などで定期的に終了させればよい。

*/15 * * * * pkill -f xmr
*/15 * * * * pkill -f named

上の cron は 15分ごとに終了させているが、間隔を短くしてみてもよいならば、*/15 の箇所を */5 というように 5分ごとにするのも良いかも。

ルーターの脆弱性アタックを受けている

アタックを受けている最中ならば、パケットロスが発生しやすいので疑ってみるのも良いかも。

定期的にルータに入ってアップデートがないか確認してみるのも良い。

余談だが、僕も定期的にルーターに入っているのだが、Sumitomo Electric Industries Lt なる不明な有線LAN 接続を発見した時は驚いた。

f:id:himenaotaro:20180805084232p:plain

しかしよく考えてみればなんてことはない、NASNE だった。紛らわしい名前付けるなよ(笑)