テーマをCocoonに変更しました!
wordpress

ConoHa VPS(KUSANAGI)でSSHのポート番号を変更する方法|締め出されない安全な手順

FavoriteLoadingお気に入り登録
wordpress
  1. はじめに
  2. なぜポート番号の変更を選んだのか
  3. ポート番号の変更とは?
  4. 作業した環境
  5. いちばん大事な注意点:締め出されないために
    1. ルール1:いきなり22番を閉じない
    2. ルール2:作業中はPowerShellの窓を閉じない
    3. ルール3:最後の手段を知っておく
  6. 作業の全体の流れ
  7. 手順1:サーバーの状態を確認する
    1. SELinuxについて
    2. firewall-cmd –list-all は使わないほうが見やすい
  8. 手順2:新しいポート番号を決める
    1. その番号が空いているか確認する
  9. 手順3:ConoHaのセキュリティグループで新しい番号を開ける
    1. 3-1:新しいセキュリティグループを作る
    2. 3-2:グループにルールを追加する
    3. ポート範囲の入力欄が見当たらない場合
    4. IP/CIDRについて
    5. 最初からある「Out」のルールについて
    6. 3-3:グループをサーバーに紐づける
    7. サーバー名が見つからない場合
  10. 手順4:サーバーの壁(firewalld)で新しい番号を開ける
    1. なぜ firewall-cmd –reload を使わないのか
  11. 手順5:SSHを22番と新しい番号の両方で待ち受ける
    1. 5-1:今の設定を確認する
    2. 5-2:ポート番号だけを書いたファイルを作る
    3. 5-3:設定に間違いがないかチェックする
    4. 5-4:SSHを再起動する
    5. 5-5:待ち受けている番号を確認する
  12. 手順6:新しい番号でログインできるか確認する
    1. 6-1:PowerShellで新しい番号から入る
    2. つまずいたポイント:先にいつものログインをしてしまった
    3. 「Are you sure you want to continue connecting」と聞かれたら
    4. 6-2:WinSCPの接続先を切り替える
    5. 6-3:本当に新しい番号でつながっているか確認する
  13. 手順7:22番を閉じる
    1. 7-1:SSH本体を新しい番号だけにする
    2. 7-2:新しい窓からもう一度ログインする
    3. 7-3:サーバーの壁(firewalld)から22番を消す
    4. 7-4:ConoHaのセキュリティグループから22番を外す
  14. 手順8:fail2banに新しい番号を見張ってもらう
    1. 8-1:設定ファイルの場所を調べる
    2. 8-2:今の中身を確認する
    3. 8-3:バックアップを取ってから書き換える
    4. 8-4:設定をチェックして再起動する
    5. つまずいたポイント:再起動に時間がかかる
    6. 8-5:見張りが始まったか確認する
  15. 作業のまとめ
  16. これから気をつけること
    1. PowerShellで接続するときは -p を忘れない
    2. ポート番号は必ずメモしておく
    3. 困ったときはConoHaのコンソール
  17. よくあるトラブルと解決法
  18. おわりに

はじめに

ConoHa VPS(KUSANAGI)でWordPressサイトを運用していたところ、SSHへのログイン失敗が数百回も記録されていました。世界中の攻撃者が、パスワードを総当たりで試してきているのです。

fail2ban(攻撃者を自動でブロックする仕組み)が動いていたので侵入はされていませんでしたが、毎日ドアをガチャガチャされている状態は気持ちのいいものではありません。

そこで今回は、SSHのポート番号を標準の22番から別の番号に変更しました。この記事では、その手順を初心者の方でもわかるように、実際につまずいた点も含めてていねいに解説します。

なぜポート番号の変更を選んだのか

SSHの守りを固める方法は、主に次の3つがあります。

方法内容難しさ
IPアドレス制限自宅のIPアドレスからしか接続できないようにするかんたん
ポート番号の変更SSHの入り口の番号を22番から別の番号に変えるふつう
鍵認証パスワードの代わりに、PCに保存した鍵ファイルでログインするちょっと手間

一番かんたんなのはIPアドレス制限ですが、わが家の回線はIPアドレスがちょこちょこ自動で変わるタイプでした。IPが変わるたびに設定を直す必要があるので、今回は見送りました。

鍵認証は一番安全ですが手順が多いので、まずはポート番号の変更から取り組むことにしました。

ポート番号の変更とは?

サーバーには、用途ごとに番号のついた「入り口」があります。

番号用途
22番SSH(サーバーの操作)
80番http(ホームページの表示)
443番https(ホームページの表示・暗号化あり)

SSHの入り口は22番が標準と決まっているので、攻撃者はまず22番を狙ってきます。そこで入り口を別の番号に移してしまえば、攻撃のほとんどは「入り口が見つからない」状態になります。

家に例えると、玄関の場所を誰も知らない場所に移すようなイメージです。

ただし、ポート変更だけで完全に安全になるわけではありません。番号を調べ上げてくる攻撃者もいるので、fail2banやパスワードの強化と組み合わせて使うのが基本です。

作業した環境

項目内容
サーバーConoHa VPS
OSKUSANAGI(AlmaLinux 9)
接続に使うソフトWindows PowerShell(SSH)、WinSCP(ファイル転送)
ログインユーザーroot

いちばん大事な注意点:締め出されないために

SSHの設定を間違えると、自分もサーバーに入れなくなることがあります。これを「締め出し」と呼びます。今回は次の3つのルールで、締め出しを防ぎながら進めました。

ルール1:いきなり22番を閉じない

最初は22番と新しい番号の両方で入れるようにして、新しい番号で入れることを確認してから22番を閉じます。

ルール2:作業中はPowerShellの窓を閉じない

SSHの設定を変えて再起動しても、すでにつながっている窓は切れません。影響を受けるのは「これから新しく入る接続」だけです。

つまり、窓を開いたままにしておけば、設定を間違えても中から直せます。家の鍵を交換するとき、新しい鍵で開くのを確かめるまで家族を1人中に残しておくのと同じです。

今回は最終的に3つの窓を開いていました。

役割
1つ目(22番で入った窓)最初からの予備。何があっても残しておく保険
2つ目(新しい番号で入った窓)新しい番号で入れることの確認と、実際の作業用
3つ目(22番を閉じた後に開いた窓)新しい設定でも本当に入れるかの最終確認

ルール3:最後の手段を知っておく

万一締め出されても、ConoHaの管理画面にある「コンソール」からブラウザ経由でサーバーを操作できます。これがあるので、落ち着いて作業できます。

作業の全体の流れ

ポート番号の変更は、3か所の壁SSH本体の設定を変える作業です。

手順内容
手順1サーバーの状態を確認する
手順2新しいポート番号を決める
手順3ConoHaのセキュリティグループで新しい番号を開ける
手順4サーバーの壁(firewalld)で新しい番号を開ける
手順5SSHを22番と新しい番号の両方で待ち受けるようにする
手順6新しい番号でログインできるか確認し、WinSCPも切り替える
手順722番を3か所すべてで閉じる
手順8fail2banに新しい番号を見張ってもらう

この記事では、新しいポート番号を「XXXXX」と書いています。コマンドを実行するときは、XXXXXの部分を自分で決めた番号に置き換えてください。同じく「サーバーのIPアドレス」の部分も、自分のサーバーのIPアドレスに置き換えてください。

手順1:サーバーの状態を確認する

まずはPowerShellからいつも通りサーバーにログインして、今の状態を確認します。見るだけのコマンドなので、何も変わりません。

getenforce
firewall-cmd --state
firewall-cmd --list-services
firewall-cmd --list-ports
ss -tlnp | grep sshd

それぞれ、次のことを確認しています。

コマンド確認していることわが家の結果
getenforceSELinux(サーバーの見張り番)の状態Permissive
firewall-cmd –stateサーバーの壁(firewalld)が動いているかrunning
firewall-cmd –list-services壁で許可しているサービスcockpit dhcpv6-client http https ssh
firewall-cmd –list-ports壁で許可しているポート番号443/udp
ss -tlnp | grep sshdSSHが今どの番号で待ち受けているか22番

SELinuxについて

SELinuxがPermissiveの場合は「警告だけで止めない」モードなので、ポート変更で邪魔をしてきません。

Enforcingと表示された場合は、SELinuxにも新しい番号を教える追加の設定が必要です。この記事の手順だけではSSHが起動しないことがあるので注意してください。

firewall-cmd –list-all は使わないほうが見やすい

最初は firewall-cmd --list-all で一覧を見ようとしたのですが、fail2banがブロックした攻撃者のIPアドレスがずらっと並んで、画面が流れて何も読めませんでした。上のように項目ごとに分けて確認するのがおすすめです。

ちなみに443/udpは、ホームページの表示を速くする仕組み(HTTP/3)用なので、そのままで問題ありません。

手順2:新しいポート番号を決める

ポート番号は基本的に好きな数字で大丈夫ですが、次のルールを守ってください。

ルール理由
1024以上にする1023以下はシステムで使う番号として予約されているため
ほかのソフトが使っていない番号にする同じ番号を2つのソフトで使うことはできないため
2222や22222のような番号は避ける「22の代わり」としてよく使われるので、攻撃者も狙ってくるため
ゾロ目や連番は避ける推測されやすいため

攻撃者のスキャンは小さい番号から順に調べることが多いので、49152〜65535の5桁の中から選ぶと、より見つかりにくくなります。

その番号が空いているか確認する

ss -tlnp | grep XXXXX

何も表示されなければ空いています。何か表示された場合は、別の番号にしましょう。

手順3:ConoHaのセキュリティグループで新しい番号を開ける

ConoHa VPSには、サーバーの外側に「セキュリティグループ」というもう一枚の壁があります。ここで新しい番号を開けないと、サーバー側で設定しても外から届きません。

3-1:新しいセキュリティグループを作る

既存の「IPv4v6-SSH」(22番用)は、この時点では触らずにそのままにしておきます。新しい番号専用のグループを別に作ります。

  1. ConoHaの管理画面にログインする
  2. 左メニューの「セキュリティ」から「セキュリティグループ」を開く
  3. 新しいグループを追加し、名前を「SSH-newport」などわかりやすい名前にする

作成すると、名前の後ろに日付が自動で付くことがありますが、そのままで問題ありません。

3-2:グループにルールを追加する

作ったグループを開き、ルール一覧の下にある「+」ボタンからルールを追加します。

項目1つ目のルール2つ目のルール
通信方向ININ
イーサタイプIPv4IPv6
プロトコルTCPTCP
ポート範囲XXXXXXXXXX
IP/CIDR0.0.0.0/0::/0

プロトコルは必ず「全て」から「TCP」に変更してください。「全て」のまま送信元を全開にすると、サーバーのすべてのポートが世界中に開いてしまいます。

ポート範囲の入力欄が見当たらない場合

プロトコルが「全て」のままだと、ポート範囲の入力欄は表示されません。TCPを選ぶと入力欄が出てきます。

「範囲」という名前ですが、1つだけ開けるときは番号を1つ入れるだけでOKです(開始と終了の2つの欄がある場合は、両方に同じ番号を入れます)。

IP/CIDRについて

入力欄に薄く表示されている「203.0.113.0/24」は記入例なので、消してから入力します。0.0.0.0/0は「IPv4のすべての相手」、::/0は「IPv6のすべての相手」という意味です。

画面右上に表示される「My IP」は今の自宅のIPアドレスですが、わが家はIPが変わるので今回は使いませんでした。

最初からある「Out」のルールについて

グループを作ると、通信方向「Out」のルールが2つ最初から入っています。これはサーバーから外への通信を許可するものなので、そのままにしておきます。

3-3:グループをサーバーに紐づける

作ったグループは、サーバーに付けて初めて効きます。ここを忘れやすいので注意してください。

  1. 左メニューの「サーバー」を開く
  2. 一覧から対象のサーバーのネームタグ(青い文字)をクリックする
  3. 詳細画面を下にスクロールして「ネットワーク情報」を探す
  4. 「セキュリティグループ」の横にある鉛筆マークを押す
  5. 一番下の「+」を押し、増えた欄で作ったグループを選ぶ
  6. 「保存」を押す

すでに付いているグループは絶対に外さないでください。特に「IPv4v6-Web」を外すと、ホームページが表示されなくなります。

サーバー名が見つからない場合

PowerShellの画面に表示されるサーバー名(vm-から始まる名前)と、ConoHaの管理画面に表示される名前(ネームタグ)は別物です。管理画面では「vps-作成日時」のような名前になっていることが多いので、IPアドレスの列で見分けると確実です。

なお、サーバー画面を開いたときに「25番ポートの制限」や「セキュリティグループについて」というお知らせが出ることがありますが、今回の作業には関係ないので閉じて大丈夫です。

手順4:サーバーの壁(firewalld)で新しい番号を開ける

サーバーの内側にも壁があるので、こちらでも新しい番号を開けます。

firewall-cmd --add-port=XXXXX/tcp
firewall-cmd --permanent --add-port=XXXXX/tcp
コマンド意味
–add-port今すぐ開ける(再起動すると元に戻る)
–permanent –add-port再起動しても開いたままにする

どちらも「success」と表示されれば成功です。確認は次のコマンドで行います。

firewall-cmd --list-ports

「XXXXX/tcp」が表示されていればOKです。

なぜ firewall-cmd –reload を使わないのか

ネットでよく見かける手順では、–permanentで設定した後に firewall-cmd --reload を実行します。

しかし、reloadを実行するとfail2banがブロックした攻撃者のリストが消えてしまうことがあります。そこで今回は「今すぐ開ける」と「ずっと開ける」の2つのコマンドに分けて実行し、reloadを使わずに済ませました。

手順5:SSHを22番と新しい番号の両方で待ち受ける

5-1:今の設定を確認する

まず、今の設定ファイルにポート番号が書かれているかを調べます。

grep -i "^port" /etc/ssh/sshd_config /etc/ssh/sshd_config.d/*.conf

何も表示されなければ、設定ファイルには書かれておらず、標準の22番で動いている状態です。わが家もこの状態でした。

5-2:ポート番号だけを書いたファイルを作る

元の設定ファイル(sshd_config)は触らずに、ポート番号だけを書いた小さなファイルを別に作ります。こうしておくと、失敗してもそのファイルを消すだけで元に戻せます。

printf "Port 22\nPort XXXXX\n" > /etc/ssh/sshd_config.d/10-port.conf

「22番と新しい番号の両方で待ち受けて」という内容です。22番を残しているので、この段階では締め出される心配はありません。

中身を確認します。

cat /etc/ssh/sshd_config.d/10-port.conf

「Port 22」と「Port XXXXX」の2行が表示されればOKです。

5-3:設定に間違いがないかチェックする

sshd -t

何も表示されなければ合格です。

エラーが出た場合は、次の再起動に進まないでください。間違った設定のまま再起動すると、SSHが起動しなくなることがあります。

5-4:SSHを再起動する

systemctl restart sshd

再起動しても、今つながっている窓は切れません。

5-5:待ち受けている番号を確認する

ss -tlnp | grep sshd

22番と新しい番号が、それぞれ2行ずつ(合計4行)表示されれば成功です。2行ずつなのは、IPv4(0.0.0.0)とIPv6([::])の両方で待ち受けているためです。

手順6:新しい番号でログインできるか確認する

6-1:PowerShellで新しい番号から入る

今の窓は開いたまま、PowerShellをもう1つ新しく開いて次のコマンドを実行します。

ssh -p XXXXX root@サーバーのIPアドレス

「-p XXXXX」が「XXXXX番の入り口から入る」という指定です。

つまずいたポイント:先にいつものログインをしてしまった

実はここで3回ほど失敗しました。新しい窓を開いたあと、いつものクセで先に次のコマンドでサーバーにログインしてしまったのです。

ssh root@サーバーのIPアドレス

そして、ログインした後の画面で新しい番号のコマンドを実行していました。

sshは「サーバーの中に移動する」コマンドです。ログインした後に打ったコマンドは、すべてサーバーの中で実行されます。

順番打ったコマンドどこで動くか
1ssh root@サーバーのIPアドレスPCから22番でサーバーに入る
2ssh -p XXXXX root@サーバーのIPアドレスサーバーの中から、サーバー自身に接続しようとする

これだと「サーバーから自分自身へ」の接続になり、自宅のPCから新しい番号で入れるかの確認になりません。

正しくは、新しい窓を開いたら、いつものログインはせずに「ssh -p XXXXX …」だけを最初に打ちます。

今どこにいるかは、行の先頭で見分けられます。

行の先頭今いる場所
[root@vm-xxxxxxxx ~]#サーバーの中
PS C:\Users\ユーザー名>自分のPC

サーバーの中にいる場合は、exit と入力してサーバーから抜け、「PS C:\Users\…>」の状態でコマンドを実行してください。

なお、途中で「Are you sure you want to continue connecting」と聞かれた場合は、サーバーの中にいるときは no と答えて止めます。「Host key verification failed.」と表示されますが、接続を止めただけなのでエラーではありません。

「Are you sure you want to continue connecting」と聞かれたら

接続するときに、次のような質問が出ることがあります。

Are you sure you want to continue connecting (yes/no/[fingerprint])?

PCにとって「新しい番号のこのサーバー」が初めてなので、念のため確認しているだけです。自分のPCから接続している場合は yes と入力して進めます。

なお、すでに22番で何度も接続しているPCでは、この質問が出ずにいきなりパスワードを聞かれることもあります。どちらでも問題ありません。

パスワードを入力して、KUSANAGIのロゴと「[root@… ~]#」が表示されれば、新しい番号でのログイン成功です。

パスワード入力の画面まで進んだ時点で、ConoHaの壁もサーバーの壁も通れていることがわかります。

6-2:WinSCPの接続先を切り替える

WinSCPもSSHの仕組みを使って接続しているので、ポート番号を変える必要があります。

  1. WinSCPを起動する
  2. いつも使っているサーバーを選んで「編集」を押す
  3. 「ポート番号」を22から新しい番号に変える
  4. 「保存」を押してから「ログイン」を押す

「サーバーのホスト鍵が不明です」のような警告が出たら、「はい」または「承認」を押して進めます。

6-3:本当に新しい番号でつながっているか確認する

WinSCPは、保存を押し忘れて22番のままつながっているということがよくあります。画面を見ただけでは区別できないので、サーバー側で確認します。

ss -tnp | grep ":XXXXX"

「ESTAB」で始まる行が表示されます。これは「新しい番号から入ってきている接続」の一覧です。

PowerShellとWinSCPの両方を新しい番号でつないでいれば、2行以上表示されます。行の中に自宅のIPアドレスが表示されていることも確認しておきましょう。1行しか出ない場合は、WinSCPのポート番号設定をもう一度確認してください。

手順7:22番を閉じる

新しい番号で入れることを確認できたので、いよいよ22番を閉じます。閉じる場所は3か所です。

7-1:SSH本体を新しい番号だけにする

作業は、新しい番号で入った窓で行うのがおすすめです。「新しい入り口で入って作業できる」ことの確認にもなります。22番で入った窓は、予備として残しておきます。

設定ファイルを新しい番号だけに書き換えます。

printf "Port XXXXX\n" > /etc/ssh/sshd_config.d/10-port.conf
cat /etc/ssh/sshd_config.d/10-port.conf

「Port XXXXX」の1行だけになっていればOKです。設定をチェックして、再起動します。

sshd -t
systemctl restart sshd
ss -tlnp | grep sshd

新しい番号の2行だけになり、22番の行が消えていれば成功です。

7-2:新しい窓からもう一度ログインする

ここがとても大事です。先ほど新しい番号で入った窓は、22番を閉じる前につながった接続です。閉じた後の設定で本当に入れるかは、新しく接続してみないとわかりません。

普通のPowerShellをもう1つ開いて、もう一度ログインします。

ssh -p XXXXX root@サーバーのIPアドレス

ログインできれば、締め出しの心配はなくなります。

7-3:サーバーの壁(firewalld)から22番を消す

firewall-cmd --remove-service=ssh
firewall-cmd --permanent --remove-service=ssh

開けたときと同じく、reloadは使いません。確認します。

firewall-cmd --list-services

「ssh」が消えていれば成功です。

httpとhttpsが残っていることも必ず確認してください。この2つが消えると、ホームページが表示されなくなります。

7-4:ConoHaのセキュリティグループから22番を外す

  1. ConoHaの管理画面で対象のサーバーを開く
  2. 「ネットワーク情報」の「セキュリティグループ」の鉛筆マークを押す
  3. 「IPv4v6-SSH」の行の右にあるゴミ箱マークを押す
  4. 残りのグループを確認して「保存」を押す

わが家では、保存後に次の4つが残りました。

グループ名役割
IPv4v6-KUSANAGI_managerKUSANAGIの管理用
default基本設定
IPv4v6-Webホームページの表示用(http・https)
SSH-newport新しいSSHの番号用

ゴミ箱を押す行を間違えないように注意してください。また、左メニューのセキュリティグループ一覧から「IPv4v6-SSH」そのものを削除するのではなく、このサーバーから外すだけです。

作業が終わったら、ブラウザでホームページが普通に表示されるかも確認しておきましょう。

手順8:fail2banに新しい番号を見張ってもらう

見落としがちですが、とても大事な手順です。

fail2banは、何も設定しなければ「ssh(22番)」への攻撃者をブロックする設定になっています。このままだと、新しい番号を見つけた攻撃者が来てもブロックが効きません。

8-1:設定ファイルの場所を調べる

ls /etc/fail2ban/jail.d/
grep -rn "sshd\|port" /etc/fail2ban/jail.local /etc/fail2ban/jail.d/ 2>/dev/null

わが家では、jail.local の1行目に「[sshd]」があり、「port =」の行はどこにもありませんでした。つまり、標準の22番を見張っている状態です。

8-2:今の中身を確認する

cat /etc/fail2ban/jail.local

わが家の中身は次の通りでした。

[sshd]
enabled = true
bantime  = 86400
findtime  = 600
maxretry = 5
項目意味
enabled = trueSSHの見張りを有効にする
bantime = 86400ブロックする時間(86400秒=1日)
findtime = 600失敗を数える期間(600秒=10分)
maxretry = 5この回数失敗したらブロックする

つまり「10分以内に5回失敗したら1日ブロック」という設定です。

8-3:バックアップを取ってから書き換える

cp /etc/fail2ban/jail.local /etc/fail2ban/jail.local.bak

次の内容をまとめてコピーして貼り付け、Enterを押します。port = XXXXX の1行を足しただけで、ほかは元のままです。

cat > /etc/fail2ban/jail.local << 'EOF'
[sshd]
enabled = true
port = XXXXX
bantime  = 86400
findtime  = 600
maxretry = 5
EOF

元の設定が違う場合は、自分の設定に「port = XXXXX」の1行を足した内容にしてください。

8-4:設定をチェックして再起動する

fail2ban-client -t

「OK: configuration test is successful」と表示されれば合格です。

systemctl restart fail2ban

つまずいたポイント:再起動に時間がかかる

fail2banは再起動のときに、ブロック中の攻撃者を1件ずつ壁に登録し直すため、件数が多いと少し時間がかかります。慌ててCtrl+Cを押さずに、しばらく待ちましょう。

また、再起動した直後に状態を確認しようとしたところ、次のエラーが出ました。

ERROR   Failed to access socket path: /var/run/fail2ban/fail2ban.sock. Is fail2ban running?

これは「fail2banとまだ話ができない」という意味で、起動の準備が終わる前に話しかけてしまったのが原因でした。SSHの接続やホームページには影響ありません。

本当に動いているかは、次のコマンドで確認できます。

systemctl status fail2ban --no-pager

「Active: active (running)」と「Server ready」が表示されていれば、正常に動いています。

8-5:見張りが始まったか確認する

fail2ban-client status sshd

「Currently failed」「Currently banned」「Banned IP list」などが表示されれば、新しい番号の見張りが始まっています。わが家では、以前にブロックした攻撃者29件もちゃんと引き継がれていました。

再起動の途中でブロック期間が切れたIPアドレスは一覧から外れることがありますが、22番はもう閉じているので心配いりません。

作業のまとめ

場所変更した内容
ConoHaのセキュリティグループ新しい番号のグループを追加し、IPv4v6-SSH(22番)を外した
サーバーの壁(firewalld)新しい番号を開けて、ssh(22番)を閉じた
SSH本体新しい番号だけで待ち受けるように変更した
fail2ban見張る番号を新しい番号に変更した
WinSCP接続するポート番号を新しい番号に変更した

これから気をつけること

PowerShellで接続するときは -p を忘れない

ssh -p XXXXX root@サーバーのIPアドレス

-p を付け忘れると、閉じた22番に接続しようとして「Connection timed out」になります。入れなくなったと焦る前に、まず -p が付いているか確認しましょう。

ポート番号は必ずメモしておく

新しい番号を忘れると、自分も入れなくなります。パスワードと一緒に安全な場所に控えておきましょう。

困ったときはConoHaのコンソール

万一入れなくなっても、ConoHaの管理画面の「コンソール」からサーバーを操作できます。設定を元に戻したいときは、/etc/ssh/sshd_config.d/10-port.conf を削除してSSHを再起動すれば、標準の22番に戻ります(その場合は壁の22番も開け直す必要があります)。

よくあるトラブルと解決法

症状考えられる原因解決法
ConoHaでポート範囲を入力する欄がないプロトコルが「全て」になっているプロトコルをTCPに変更する
新しい番号で接続するとタイムアウトするセキュリティグループをサーバーに紐づけていないサーバーのネットワーク情報からグループを追加する
新しい番号で接続するとタイムアウトするfirewalldで番号を開けていないfirewall-cmd –list-ports で確認する
接続時にyes/noを聞かれるPCにとって新しい番号のサーバーが初めて自分のPCから接続していればyesでOK
新しい番号での接続確認がうまくいかない先にいつものsshでログインして、サーバーの中からコマンドを実行しているexitで抜けて、行の先頭が「PS C:\」の状態で実行する
WinSCPが本当に新しい番号でつながっているかわからない設定の保存忘れss -tnp | grep で接続を確認する
fail2banの確認でsocketエラーが出る再起動の準備が終わっていないsystemctl status で状態を見て、少し待ってから再確認する
ポート変更後にPowerShellで入れない-p の付け忘れssh -p XXXXX の形で接続する

おわりに

SSHのポート変更は、ConoHaの管理画面・サーバーの壁・SSH本体・fail2banと、触る場所が多くて最初は難しく感じました。ですが、「22番を残したまま新しい番号を追加する」「窓を閉じずに確認してから閉じる」という順番を守れば、締め出しの心配なく安全に進められます。

作業中にも、22番に対して新しい攻撃が次々と来ていたので、改めて対策の大切さを実感しました。

次のステップとしては、パスワードの代わりに鍵ファイルでログインする「鍵認証」に挑戦すると、さらに安全になります。

最後にすべて自己責任でお願いします!

気になる中古パソコン

パソコン

Supported by Rakuten Web Service

コメント

※当サイトは、Amazon、楽天アソシエイト・他プログラムの参加者です。リンクを通じて商品を購入すると、紹介料を得る場合があります。
タイトルとURLをコピーしました