連載第20回
2014年2月20日
ServersMan@VPS > ポート番号を変更する(その2)

 先日ブログ記事にも書いたシルベーヌなのですが、早速近所のスーパーで特売セールが行われているのを頭部に付いている敏感なアンテナが察知して6箱まとめ買いしてきました。本当は「ほろにがショコラ」の方が断然好みなのだけれど今回は並んでおらず、まあ最近はノーマルタイプでもなかなか入手困難だし妥協するとします。

 閑話休題。前回、ポート番号とは何ぞやという疑問から始め、何となく分かったつもりになっているところ(最もスキが出来る時)でSSHのポート番号を変更してみようと思います。一般にSSHはデフォルトでポート番号「22」に指定されているのを、ServersMan@VPSでは「xxxx番」に変更した状態でユーザーにレンタルしているのだけれど、xxxxは別に秘匿されているワケでなく、DTIのサイトでおおっぴらにされています。あくまで自動スキャンされることへの対処のようです。
 そこで任意の番号を選ぶワケですが、さて、現時点で空いているポートって何番なんでしょうか?まずそれが分かりません。前回で紹介したポート番号使用状況リストである程度は調べられるけれど、なにせ数が多過ぎてマウスを操作している手首が疲れてきます。

netstatコマンド

 そこで適当なキーワード(使用中のポート番号、空いているポート、確認…etc)で色々ググってみると、どうやら「netstat」というコマンドが便利らしい(こちらも参照)。そこで「su -」でrootに昇格して打ち込んでみました。

netstatコマンド

netstat -nl

たくさんオプションがあるのですが、とりあえず-nl。

 ピンク色の枠線で囲っているところにある数値が、現時点で使用されているポート番号なのだそうな。State = LISTENというのは外部からのリクエスト待機中という意味…らしい。と言う事は、現在使用中なのはたったの7ポート…ということでOKなのでしょうか?前回、ポート番号って6万5千以上あるんだ!と驚いたばかりなので、7個という数字には少し拍子抜けです。

lsofコマンド

 ではそれら使用中のポート番号は、一体どのようなサービスに割り当てられているのか。それを調べるコマンドが「lsof」なのだそうな。詳しい使い方についてはコチラの記事などを参考に、とりあえず上で確認出来たポート番号のいくつかを調べてみました。「lsof -i:80」「lsof -i:3306」とかいう感じで。

 なるほど、443と80はhttpdというデーモンで使用されていて、9510はsmadmd、3306はMySQLで使われている(たぶん)ということが分かりました。
 ちなみにここまで書いて、「netstat -anp」で使用中のポート番号とそのサービスを表示させることが出来る事を知りました…。

「netstat」「lsof」とこちらのリストを照らし合わせて、使ってないポート番号を絞り込んでみます。長くなってしまったので、次回につづく。