SSHは22番ポートで通信しちゃダメ!入り口を隠してVPSサーバーの安全を守ろう!

ConoHa VPS - SSHポート変更アイキャッチ

SSHといえば22番ポート、これ常識です。

だからダメです、今すぐ22番ポートから他のポートへ変えましょう!

  • 何故22番ポートがダメなのかわかる!
  • 実際に22番ポートから他のポートに変える手順が分かる!

22番ポートってダメなの?SSH=22番でしょ?

もう一度言います、だからダメなんです。

そう、あなたがSSH=22番ポートと認識しているようにこれは常識、デフォルトでそうなっています。

という事は設定を変えない限り、新規に立ち上げたサーバーは基本的に22番ポートが開放されています。

どのドアが開かれているかわかっている状態、どう考えても危険ですよね?笑。

不正アクセス試行は秒単位

不正アクセスログ

不正アクセスログ

この画像、僕が契約しているあるVPSサーバーのログインに失敗した履歴です。

一番左にユーザー名、真ん中辺りにログイン試行したクライアントのIPアドレス。そして日付と時間。

なんと同じ日の19時00分から19時08分のわずか8分間に同じクライアントがユーザー名を変え合計26回もログインしようとしています。

IPアドレスからアクセス元を調べてみるとヨーロッパの方から試したようです。

もうわかりますよね、これは機械的に行われていてほとんどの場合人間の手によるものじゃありません。

我々人間より遥かに計算が早いコンピューターが休むこと無く常に侵入できる先を探しているんです、どう考えても危険ですよね。

ユーザー名は片っ端から試す

先程の画像のユーザー名をよく見てみると、

  • admin
  • user
  • guest
  • ftpuser

adminやuserなんかはルーターの初期設定ユーザー名で皆さんも目にした事があるかも知れません。

これらは僕のサーバー上には登録されていないユーザー名ですが、とにかくありそうなユーザー名は片っ端から試されます。

悪いやつに失うものなんてありませんから、ログインできればラッキーでとにかく何回も何回も試します。

そしていつの日か破られる日が来ます・・・。

だから早く22番の扉を閉めて、自分しか分からない番号の扉に変更する必要があります。

手っ取り早いのは何万とある扉のうち、どれが正解か分からなくする事ですからね!

では早速取り組んで行きましょう!

SSHのポート番号を22番から変更する

まずはローカルからサーバーへSSH接続して下さい。

ポート番号の変更は/etc/ssh/sshd_configという設定ファイルの編集で行えます。

sshd_configはrootユーザーのログイン制限をする時にも編集したファイルですね!

VPSのrootユーザーログインを禁止しよう!超強力な権限を持たせたまま放置は絶対NG
サーバーにおけるrootルートユーザーは最も絶大な権限を持ち、言い換えればサーバーをどうにでもできる存在です。 通常rootユーザーはログインできないように設定するものなので、今回はちゃちゃっとrootユーザーのログインを禁止すると共...

ポート番号を何番にするか決めておく

その前に、設定するポート番号を何番にするか決めておきましょう。

ポート番号というのは0番~65535番まで存在し、うち0番~1023番はよく使われるポート番号として様々なサービスに使われています(これをWell-known Portsウェルノウン ポートと言います)。

代表的なポートをいくつかあげると、

  • 21番(FTP)
  • 22番(SSH)
  • 25番(SMTP)
  • 80番(HTTP)
  • 110番(POP3)
  • 123番(NTP)

等々があげられます。

なんとなく聞いたことあるようなのばっかりですよね?

FTPやHTTPはWebサイト制作でお馴染みですし、SMTPやPOP3はiPhoneなんかでメール設定する時にも目にします。

このように1023番以下はこのように既に使われている物が多く、そこにバッティングしてしまったら困りものなので1023番以上、65535番以下にするのがベターです。

一応1024番~49151番もRegistered Portという名前で指定されています。
中には49152番~65535番を一般的に使うべきという意見もありますが、僕はあまり気にせず現在空いている状態で将来的に使う予定の無いポートなら良いと思います。

適当に思い当たる数字でも、例えば昭和60年1月30日生まれの方が60130番を選ぶとか、なんでも良いんで1個決めます。

そしてそのポートが今使われているかどうか調べ、使われていなければOKという事になります。

ポート番号が空いているかどうか調べるにはlsofコマンドを使います。

試しに80番ポートを調べてみましょう!

コマンド - lsof

コマンド – lsof

$ sudo lsof -i:80
コマンド[lsof]
ポートの状態を調べる時に使うコマンド
オプション[-i]
ポート番号を指定し、そのポートの状態を調べる時に使うオプション
-i:80のようにオプションの後を「:」で区切り、調べたいポート番号を入力する
コマンド - lsof 80番ポートの結果

コマンド – lsof 80番ポートの結果

結果はこんな感じで、どうやらnginxというWebサーバーソフトウェアが使用しているようです。

僕は今回適当に51826番を選んだので、51826番がどうなっているか調べて行きます。

$ sudo lsof -i:51826
コマンド - lsof 51826番ポートの結果

コマンド – lsof 51826番ポートの結果

結果、何も表示されませんでした。

何も表示されないという事は使用されていないという事です、無事変更できますね!

それでは僕は51826番にしていきますが、皆さんは自分で決めて確かめたポート番号を使用して下さい。

念の為、そのポート番号が将来的に使う事が無いか確認しておいた方が良いと思います。
今使っていなくても将来的に使う可能性がありますからね。
例えば「ポート番号 ○○番」のようにGoogleで検索して見ると色々情報が出てくるので、該当の番号が何かに使われていそうであれば避けた方が無難です。

sshd_configの編集

それでは実際に空いている事が確認できたポート番号を設定ファイルに書き込んで行きましょう!

sshd_configファイルの編集を行っていきます。

コマンド - vi

コマンド – vi

$ sudo vi /etc/ssh/sshd_config

/etc配下のファイルなので管理者権限が必要、という事でsudo管理者権限でviを使って編集して行きます。

パスワードを聞かれるので、ログインユーザー(今ログインしている一般ユーザー)のパスワードを入力して権限を貰います。

コマンド[sudo]
一時的にスーパーユーザー(root)の権限を借りられるコマンド
コマンド実行後は一般ユーザーに戻る
コマンド[vi]
viというテキストエディタ、またはそれに関連するコマンド
操作[i]
現在のカーソル位置に文字を挿入する入力モード
操作[ESCキー]
入力モードからコマンドモードに戻る
操作[:wq]
ファイルを保存してviを終了するコマンド

次の行を探して行きましょう!

sshd_configのPort行

sshd_configのPort行

#Port 22

バージョンによって多少変わりますが結構最初の方にあると思います。

先頭の#を削除し、22という数字を他の数字に変えていきます。

Port 51826

これだけでOK!

後は入力モードからコマンドモードに戻し、:wqで上書き保存して終了です。

最後にSSHサーバーの再起動をして、今編集した設定ファイルを読み込ませれば反映完了です。

コマンド - systemctl

コマンド – systemctl

$ systemctl restart sshd.service

これだけでOK!

変更後のポートでログインできるか試す

これで全ての設定が終わりました、それでは実際にこのポートでSSH接続できるか試して行きましょう。

22番ポートでログインできないか確認

その前に、きちんと22番ポートでログインができなくなっているか確認する必要があります。

一度サーバーからexitコマンドでログアウト後、いつものようにログインを試してみて下さい。

Tera Term - 接続拒否

Tera Term – 接続拒否

いつもと全く一緒なのにこんな感じで接続拒否されれば無事ポート番号の変更ができています!

コマンド - ssh

コマンド – ssh

Macユーザーの方はこんな感じでConnection refusedと出ればOK!

これは接続先のサーバーのSSHサーバーが見つけられなかった事を示しているので、=ログインできなかった事を意味しています。

新しいポート番号でログインできるか確認

では今度は指定した新しいポート番号でログインできるかの確認です。

やり方はいつもと同じで、SSH接続時のポート番号を22番から変更後のポート番号に変更するだけ。

Tera Term - ポート番号

Tera Term – ポート番号

Windows/Tera Termユーザーの方はログイン時のこのTCPポート欄を該当のポート番号に変更するだけでOK。

Macユーザーの方はコマンドの -p 22 を該当のポート番号に変更すればOKです。

もちろんユーザー名やパスワード、秘密鍵のパスは今までと代わりありません。

Tera Term - known hosts警告

Tera Term – known hosts警告

Windows/Tera Termユーザーの方はポート番号が変わった事でこんな警告が出ますが、続行をクリックしちゃってOKです。

どうでしょう、ログインできましたか?

ログインできれば大成功です!

どうしてもログインできない場合

どうしてもログイン出来ない場合は何らかの設定を間違えている可能性があります。

ConoHa VPS の場合、ConoHaにログインしサーバーリストから該当のサーバーのネームタグをクリックするとそのサーバーの詳細に入れます。

メニューの中にコンソールボタンがあり、ここからroot権限でログインできます。

再度viコマンドで/etc/ssh/sshd_configの編集をし一度22番に戻してからsystemctlでsshd.serviceの再読込を行って下さい。

改めてSSH接続を試してみてログインできるようであればポート番号記載や入力を間違えているだけの可能性があります。

ConoHa VPS - ポート設定

ConoHa VPS – ポート設定

また、ConoHa VPSの場合サーバー詳細のネットワーク情報欄にあるポート設定を確認してみて下さい。

ここが全て許可以外の状態だと、チェックが入っているポート以外はそもそも通信できません。

ファイアウォールを利用している場合

ファイアウォールを適切に設定している場合、ポート変更後のSSHポートをファイアウォールに適用させる必要があります。

詳しくは下記で確認して設定をし、デフォルトの22番ポートは塞いでおく事が望ましいですね。

VPSサーバーにファイアウォールを導入しよう!ポート開放を最低限にしてセキュリティアップ!
VPSブイピーエスサーバーは常にインターネット上に広く公開され、その分クラッキング(不正ログイン)を狙う人間やプログラムは日々攻撃対象を探っています。 余計なポート開放は攻撃者に対して攻撃のすきを与えるだけであり、基本的には不要なポー...

ログイン出来たらログインを自動化しておこう!

無事ログインができたら、SSH接続を自動化しておくことをオススメします。

WindowsでTera Termユーザーの場合はTera Termのマクロ機能を使って便利にログイン出来るようになるので、合わせて以下の記事も確認してみて下さい!

Tera Termからワンクリック接続!VPSサーバーへのマクロを作成して簡単に接続しよう
Tera TermテラタームはWindows環境下でVPSブイピーエスサーバーに接続する時の定番ソフトウェアです。 しかし毎回接続時にホスト名(IPアドレス)やポート番号、ユーザー名、鍵ファイルの場所を指定するのは正直面倒。 そこで...

ポート番号を変更して不正ログインの可能性を下げよう

SSHのポート番号を変更する事は、それそのものが大きなセキュリティ向上に繋がります。

もちろんどのポートが空いているか調べる方法はあるんですが、少なくともそういう挙動をしない不正プログラム(22番しか攻撃対象としないもの)のアクセスは一切を遮断する事ができます。

世の中には「どうせポートスキャンすれば関係ないんだから意味がない」という主張もありますが、可能性が1%でも下がるのであればサーバー管理者は積極的に採用すべきと思っています。

特にConoHa VPSでWordpressを運用するような方だと、サーバーそのものが記事をストックする資産です。

自分が書いた大切な記事やデータを守るために必ず実施しましょう!

ConoHa VPS+KUSANAGIで始めるWordPress超高速環境

ConoHa VPS まとめ記事用アイキャッチ

当記事はWordPressを超高速化できるWordPress専用仮想マシンKUSANAGIをConoHa VPSで初心者でも簡単に導入できるというコンセプトの1記事です。

手順通りに行えば誰でもKUSANAGI環境が実現できる!を目指して作成しました。

是非合わせてお読み下さい!

ConoHa VPS+KUSANAGIで始めるWordpress講座!初心者でもステップ形式で導入が可能です!KUSANAGI managerの使い方からコマンドまで全部解説
ConoHa VPSコノハ ブイピーエスにおけるWordpressワードプレス仮想マシン、KUSANAGIクサナギを1から導入するのは非常に大変な作業です。 しかしKUSANAGIクサナギ managerマネージャーというKUSANA...

コメント

タイトルとURLをコピーしました