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

記事内に広告が含まれていることがあります。
ConoHa VPS - SSHポート変更アイキャッチ

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

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

  • 何故22番ポートがダメなのかわかる!
  • 実際に22番ポートから他のポートに変える手順が分かる!
WordPressカテゴリーCTA
\ココナラでWordPressエラー修正サービス始めました!/

ココナラでWordPressのエラー解決サービスを始めました!

追加オプション無しで3,000円から受け付けておりますが、新規会員登録で300円、僕の紹介コードを入力すると1,000円分のポイントが貰えるので実質1,700円から利用することができます!

  • 突然画面が真っ白になった
  • 英語のエラーが表示されてどうしたらいいかわからない
  • とにかく困っている

どんなことでもぜひお気軽にご相談ください!

紹介コード:K0GR23
スポンサーリンク
スポンサーリンク

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ユーザーのログイン制限をする時にも編集したファイルですね!

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

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

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

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

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

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

このように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

コマンド[sudo]
一時的にスーパーユーザー(root)の権限を借りられるコマンド
コマンド実行後は一般ユーザーに戻る

コマンド[vi]
viというテキストエディタ、またはそれに関連するコマンド
操作[i]
現在のカーソル位置に文字を挿入する入力モード
操作[ESCキー]
入力モードからコマンドモードに戻る
操作[:wq]
ファイルを保存してviを終了するコマンド

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

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

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

sshd_configのPort行
sshd_configのPort行
/etc/ssh/sshd_config
#Port 22

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

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

/etc/ssh/sshd_config
Port 51826

これだけでOK!

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

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

コマンド - systemctl
コマンド – systemctl
/etc/ssh/sshd_config
$ 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番ポートは塞いでおく事が望ましいですね。

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

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

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

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

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の使い方からコマンドまで全部解説
WordPress高速化エンジンKUSANAGIは、ConoHa VPSと組み合わせて使う事で初心者の方でも比較的簡単に導入が可能です。KUSANAGI managerを使った登録方法から設定やWordPressの設定まで全て解説!日本一分かりやすいKUSANAGIの始め方です!
スポンサーリンク
WordPress
スポンサーリンク
\この記事いいね!と思ったらシェアしてね/
スポンサーリンク
L'7 Records

コメント

  1. row より:

    ポートを変えるよりもパスワード認証を許可しないで鍵認証にすればいいのではないでしょうか?

    • けんちゃん けんちゃん より:

      おっしゃる通りです!
      今回は1からVPSを触るユーザー向けにTipsという形で複数に分けて記事を書いているうちの1記事なのでとりあえずSSHポートをデフォルトで使う危険性を知って貰いたく執筆しています。
      基本的にセキュリティにやりすぎは無いと思っているので、僕はポート塞いで変更の上秘密鍵認証オンリーにするのが最適だと思っています!

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