Oracle Cloud 上の仮想マシンへSSH接続するポート番号を変更する手順
はじめに
Oracle Cloudで作成した仮想マシンへのSSH接続に使用するポート番号をデフォルトのポート番号22から任意のポート番号に変更したのでその手順をまとめます。
前提と環境
以下の通りとします。OSはデフォルトのOracle Linuxではなく、Ubuntuとなります。
- OS : Ubuntu 18.04
手順概要
必要な作業は、以下の2つになります。
- 仮想ネットワークの設定を変更する
- 仮想マシンのSSH設定を変更する
- 仮想マシンのファイアウォール設定を変更する
仮想ネットワークの設定を変更する
はじめに、Oracle Cloudの仮想マシンが属する仮想ネットワークの設定を変更する必要があります。具体的には、仮想ネットワークのルールリストを編集し、SSH接続に使用したいポート番号(ここでは、10022とする)を許可するよう変更します。この変更を実施するには、まず以下のように作成済のインスタンス(仮想マシン)の詳細画面に移動し、「サブネット」のリンク部分をクリックします。
インスタンスの「サブネット」をクリックすると、以下のようにインスタンスが属する仮想ネットワークが表示されます。ここで仮想ネットワーク内のサブネットが以下画像内の赤線枠内に表示されているのでこれをクリックします。
以下のようにサブネットの詳細が表示され、その中に「セキュリティ・リスト」があるのでこれをクリックします。
以下のように「イングレス・ルール」(入ってくるトラフィックに対するルール)という項目があり、そこにポート番号22について許可しているルールがあります。そのルールに以下のようにチェックを入れて、「編集」をクリックします。
「編集」をクリックすると、以下のようにルールの編集ウィンドウが開くので、ここでポート番号を以下のように10022(各自使用したいポート番号を入力)を入力して「変更の保存」をクリックします。
以上で仮想ネットワークの設定の変更が完了です。
仮想マシンのSSH設定を変更する
後は作成した仮想マシンにログインし、SSHの設定ファイルを編集します。
$ sudo vi /etc/ssh/sshd_config
sshd_config
の以下の行を変更します。
#(変更前)
# Port 22
# (変更後)
Port 10022
sshd_config
変更後は以下でsshを再起動して反映させます。なお、以下を実行しても現在ログイン中SSH接続は急に切断はされません。
$ sudo systemctl restart ssh
仮想マシンのファイアウォール設定を変更する
Oracle CloudでUbuntuの仮想マシンを作成すると、以下のようにiptablesのルールが自動で設定されています。
$ sudo iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
25193 11M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
2790 286K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:123
2 120 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
3 180 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
(... 以下省略 ...)
上記のiptablesのルール内容は、/etc/iptables/rules.v4
に記述されていますので、これを編集してSSH接続で許可するポート番号を指定します。
$ sudo vi /etc/iptables/rules.v4
/etc/iptables/rules.v4
を開き、ポート番号が22番になっている箇所を10022に変更します。
(...省略...)
-A INPUT -p udp --sport 123 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10022 -j ACCEPT # ここの22→10022 に変更する
-A INPUT -j REJECT --reject-with icmp-host-prohibited
(...省略...)
上書き保存後、以下でiptablesを再読込して完了です。
$ sudo /etc/init.d/netfilter-persistent reload
以上で各自のPCから設定したポート番号でSSH接続できると思います。
なお、Ubuntuではなく、CentOSやOracle Linuxを使用している場合は、firewall-cmd
を使用するようです。英語版となりますが、こちらの公式ドキュメントに記載されています。
まとめ
この記事では、SSH接続用のポート番号を変更する手順をまとめましたが、例えばWebサーバ用に80番を開けたい場合などにもほとんど同様の手順で進められると思います。
関連記事
- 公開日:2020/02/16 更新日:2020/02/16
圧縮、暗号化、リモート対応の差分バックアップを作成できる「Borg Backup」の使い方
圧縮、暗号化に対応し差分バックアップを作成できるソフトウェアである「Borg Backup」をUbuntuにインストールして使ってみたのでその手順をまとめます。「Borg Backup」はLinux、macOSに対応しています。
- 公開日:2020/02/14 更新日:2020/02/14
自分専用の後で読むサービスを構築できる「Wallabag」をUbuntu + Nginxで構築する手順
後で読むサービスのPocketにかなり近く、機能豊富なオープンソースのWallabagをUbuntuにインストールしたのでその手順をまとめます。
- 公開日:2020/02/12 更新日:2020/02/12
ファイル単位で暗号化して保存できるCryptomatorをインストールして使う手順
Cryptomatorは、ファイル単位での暗号化が可能なソフトウェアです。この記事では、UbuntuにCryptomatorをインストールする手順と使い方をまとめます。
- 公開日:2020/01/22 更新日:2020/01/22
WireGuardでVPNサーバーを構築してスマホやPCから接続する手順
WireGuardはOpenVPNよりもシンプルで高速、より安全なVPNとして開発が進められており、OpenVPNに代わるVPNとして期待されています。この記事ではWireGuardを使ってVPNサーバーを構築し、そのVPNサーバーにUbuntuやiPhoneから実際に接続してみるまでの手順をまとめます。
- 公開日:2020/01/17 更新日:2020/01/17
ディレクトリ表示や移動をインタラクティブに実行できるコマンドツール「Broot」
Linuxで端末を使っている時にディレクトリ構造をざっくり確認したり各ディレクトリにどのようなファイルが入っているかを確認したりしたい場合があると思います。Brootはディレクトリ構造を表示しつつさらにそこから各ディレクトリに移動したりファイルを検索したりできるコマンドラインツールです。