Ubuntu 18.04TLSのSSHポートを変更する
2018-12-07
こんにちは。今回のテーマは「Ubuntu18.04のSSHポートを変更する」です。サーバーを運用しているとSSHポートを変更したくなる時もあるかと思います。今回はUbuntuで変更する方法です。Deb系のDebianも同様の方法で対応可能です。Red Hat系のCentOSとはファイアーウォールのコマンドが異なる以外は同様の考え方です。 [adsense02] 【目次】 SSHのポートは変えたほうが良いのか? 大まかな変更の流れ sshdの新ポートを設定 ファイアーウォールで新ポートを公開 新ポートでログイン出来ることのテスト ファイアーウォールで旧ポートを閉鎖
SSHのポートは変えたほうが良いのか?
ときどきネット上でSSHポート変更に関する議論を見かけます。変更無意味派はポートスキャンで分かるからセキュリティが向上したとは言えないという意見ですし、変更有意義派はポートを変更する知識も持たないと攻撃者に思われることが狙われる原因を生み出すと主張・・・簡単にまとめるとこんな感じの議論が交わされているようです。(雑でスミマセン) 筆者はポート変更派なのですが、それはポートが特定されても支障ないセキュリティ対策を行った上でというのが大前提です。デフォルトの22で運用しているとログインを試みる(そして失敗する)ログが大量に残り気持ち悪いです。ポートを変えるだけでこれが減少する(ほぼ皆無になる)のであれば大した手間ではないと考えます。
大まかな変更の流れ
大まかには以下の手順で作業を進めていきます。
- sshの設定で新ポートを割り当てる
- ファイアーウォールで新ポートを公開する
- 新ポートでのログインテスト
- sshの設定で旧ポートを割当から外す。
- ファイアーウォールで新ポートを公開する
まどろっこしい手順を踏んでいますが、これは設定に失敗したままログアウトして二度とログインできなくなることを防ぐ目的です。では、早速設定を見ていきましょう。今回は現行のポート(旧ポート)を22、移行後のポート(新ポート)を2022として話を進めます。
sshdの新ポートを設定
まずはSSHの設定を変更していきます。以下コマンドではvimで編集していますが、お好みのエディタで作業して下さい。
$ sudo vim /etc/ssh/sshd_config
以下のように編集します。マイナス記号が削除、プラス記号が追記です。
- #Port 22
+ Port 22
+ Port 2022
sshd_config設定終了後に以下コマンドでsshdを再起動します。
$ sudo systemctl restart sshd
ファイアーウォールで新ポートを公開
ファイアーウォールが導入されている場合はファイアーウォールでポートを開いて上げる必要があります。以下コマンドを実行してポートを開放します。
$ sudo ufw allow 2022/tcp $ sudo ufw reload
新ポートでログイン出来ることのテスト
新ポートが使えるようになったら必ずログインテストをしましょう。新ポートでログイン出来ない場合はsshの設定か、ファイアーフォールの設定を見直しましょう。今回はSE Linuxの有効化は考慮していませんが、SE Linuxが有効な場合は設定を見直します。
旧ポートの公開を停止
SSHの設定
まずはSSHの設定ファイルを編集します。vimで編集しましたが、お好みのエディタで編集して下さい。
$ sudo vim /etc/ssh/sshd_config
以下のように編集します。マイナス記号が削除、プラス記号が追記です。
- Port 22
- #Port 22
sshd_config設定終了後に以下コマンドでsshdを再起動します。
$ sudo systemctl restart sshd
ファイアーウォールで旧ポートを閉鎖
まずはファイアーフォールの状態を確認
$ sudo ufw status
出力例 [bash] To Action From — ------ ---- 20/tcp ALLOW Anywhere 80/tcp ALLOW Anywhere 20/tcp (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) [/bash] 確認で表示された旧ポートのruleを削除しましょう
$ sudo ufw delete allow 22/tcp $ sudo ufw reload
これで新ポートへの以降は完了しました。
最後に
必ず新ポートでログインできることを確認してから旧ポートを閉じましょう。物理サーバーにアクセス出来きない場合、ログインする術がなくなってしまい困ることになります。 本記事がお役に立てれば幸いです。 ※sshd_config設定編集後にsshdを再起動する処理が抜けておりましたので追加修正しました。ご指摘頂いた方誠にありがとうございました。 【関連記事】 Ubuntu 16.10をネットインストールで導入する [adsense]