sshのセキュリティ設定で、なぜポートを22から変えるとよいのか〜サーバとポートと/etc/ssh/sshd_configと〜
サーバのsshdプロセスに対して、1日900回以上の不正アクセスがあった
詳しくはこの記事。
対応方法の一つ
sshdがlistenしているポートを22→10022に変える。
そもそもポートとは
サーバでは、いろんなアプリケーションが動いている
nginx、sshd、mysqld、telnetdなど、
いろんなアプリケーションが動いている。
サーバを利用するときは、このアプリケーションと通信することになる。
nginxアプリケーションと通信したい時
webサイトを見る場合は、この場合nginxと通信することになる。
ipアドレスによって、サーバにはたどり着くが、
これだけではnginxと通信することが出来ない。
「nginxというアプリケーションと通信したいです、とお願いすればよいのでは?」
と思うかもしれないが、ユーザ側からはサーバの中が見れないので、
webサーバがnginxなのかapacheなのか、
はたまたIISなのかはわからない。
実際は
実際、アプリケーションは「ポート」という部屋のようなものの中にいる。
(正確にはポートをlistenしている、というがわかりやすさのため部屋にいる、とした)
サーバにはポートという部屋がある
サーバには、
1〜65535の番号が振られた、ポートという部屋を持っている。
それぞれの部屋にはアプリケーションが住んでいる
上記のように、22番にはsshd、80番にはnginx、、、というように、
部屋の中にはアプリケーションが住んでいる。
通信するときは部屋番号を指定して通信している
httpアクセスが送られる時、
サーバのipアドレス: ポート番号
という形で送られている。
これで、通信したいアプリケーションと通信ができる。
これは、マンションのある部屋に郵便物をおくるイメージと似ている。
通信は、コンピュータからコンピュータではなく、
ポートからポート、と覚えておくと良い。
アプリケーションには定められた部屋番号がある
22番にはsshd、80番にはnginxというように、
色んな人が使う可能性が高いアプリケーションは、予め決められた部屋番号がある。
これにより、
「サーバの中でどんなアプリケーションが動いているかは分かんないけど、
80番ポートにアクセスしたらwebサイトみれるんじゃね?」
くらいの知識でwebサービスが使える。
使う側は、ipとポートさえわかっていればよい。
「アプリケーションには定められた部屋番号がある」が逆手に取られることがある
ハッカー「22番ポートにはsshdがすんでるハズだから、鬼ノックしてやろ!!!!」
と思った人がいたからである。
対策としては、sshdのお引っ越し
こんな感じでsshdを10022番に引越ししてもらう。
そうすると、
ハッカーは空部屋を鬼ノックし続けるという悲しいことになる。
まとめ
みんなが使うアプリケーションは、予め定められたポート番号に住まわせる
他の人に使ってほしくないアプリケーションは、自分だけが知っていればよいポート番号に住まわせる
とすればよいはず。
今回ポート周りの知識が整理されたので良かった。