質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

firewalld

firewalldは、CentOS7からデフォルトになったパケットフィルタリングです。一時的なルールと永続的なルールが設定でき、通信の許可・拒否をコントロール。バージョン6まで利用されてきた「iptables」における課題をカバーしています。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Q&A

解決済

1回答

2110閲覧

SSHのポートを変更したいが、firewalldでポートを開けない

mono_ern

総合スコア14

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

firewalld

firewalldは、CentOS7からデフォルトになったパケットフィルタリングです。一時的なルールと永続的なルールが設定でき、通信の許可・拒否をコントロール。バージョン6まで利用されてきた「iptables」における課題をカバーしています。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

0グッド

0クリップ

投稿2021/08/12 08:22

編集2021/08/12 10:14

前提・実現したいこと

SSHのポートを変更したいのですが、firewallを開いているつもりが開けておらず、SSH接続ができない

firewallを停止させると接続できるため、firewallの設定と考えていますが、何が問題なのかわかりません。

発生している問題・エラーメッセージ

Oracle Cloudでインスタンスを生成しました。
インスタンス生成直後、22番ポートでSSH接続いたしました。
その後、SSHのポート番号を22->60022へ変更するため、次を実施いたしました。

  1. /etc/ssh/sshd_configでポート番号を変更 22-> 60022
  2. sshdサービスをrestart
  3. firewall-cmdにて、60022ポート用のssh設定(ssh-60022)を作成し、追加
  4. firewall-cmd --reload
# SSHD設定 ポートを 22-> 60022に変更 sudo vim /etc/ssh/sshd_config sudo systemctl restart sshd # firewalld設定のコピー sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-60022.xml # 60022ポートに設定したファイル(下画像)の作成 sudo vim /etc/firewalld/services/ssh-60022.xml # publicに設定 sudo firewall-cmd --add-service=ssh-60022 --zone=public --permanent # firewalld設定のリロード sudo firewall-cmd --reload # 設定確認(下画像) sudo firewall-cmd --list-all

その後、60022ポートにてSSH接続を試みますが、接続がタイムアウトし接続できませんでした。
イメージ説明

試したこと

firewallの停止

次のコマンドでfirewalldサービスを停止させると正常にSSH接続(60022ポート)ができました

sudo systemctl stop firewalld

ポート番号指定でのポート開放

ポート番号指定でのポート開放を行いましたが、SSH接続(60022ポート)できませんでした

sudo firewall-cmd --add-port=60022/tcp

補足情報(FW/ツールのバージョンなど)

Oracle cloudを使用しています

イメージ:CentOS-8-2021.07.20-0
シェイプ: VM.Standard.E2.1.Micro
OCPU数: 1
ネットワーク帯域幅(Gbps): 0.48
メモリー(GB): 1
イメージ説明

イメージ説明

/etc/firewalld/services/ssh-60022.xml
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaichiYanagiya

2021/08/12 12:19

ネットワークインターフェースは ens3, lo のみですか? 他のネットワークインターフェースが存在し、public 以外の zone に紐付いていませんか?
guest

回答1

0

ベストアンサー

https://teratail.com/questions/328999#reply-455134と同じ理由ではないかと
全てのコマンド実行手順が質問に書かれている訳ではないので断定はできませんが

投稿2021/08/12 08:26

hentaiman

総合スコア6426

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mono_ern

2021/08/12 09:01

--permanentを付けた以下のコマンドを実行しましたが、結果変わりませんでした。 ``` sudo firewall-cmd --add-port=60022/tcp --permanent sudo firewall-cmd --add-service=ssh-60022 --zone=public --permanent sudo firewall-cmd --reload ``` 他の実行コマンドについても、後ほど記載いたします。
hentaiman

2021/08/12 10:35

ダブった設定をした事が無いけど、 「--add-service=ssh-60022 」の方はやめてadd-portで設定して試して、それで駄目ならfirewalldのログ取るようにしてみてください そこで分かればいいし、分からなければfirewalldのログのうち弾いてるログのみを質問に追記してください
mono_ern

2021/08/13 07:41

原因判明しました。 hentaimanさんのご指摘のように firewalldログを確認したところ、次のログが出力されていました。 ``` Aug 12 15:43:18 instance-20210813-0027 firewalld[1253]: WARNING: Passthrough '-A',BareMetalInstanceServices',-d',169.254.0.0/16',-p',tcp',-m',tcp',-m',comment',--comment',See the Oracle-Provided Images section in the Oracle Bare Metal documentation for security impact of modifying or removing this rule',-j',REJECT',--reject-with',tcp-reset' for ipv 'ipv4'already in list, ignoring Aug 12 15:43:18 instance-20210813-0027 firewalld[1253]: WARNING: Passthrough '-A',BareMetalInstanceServices',-d',169.254.0.0/16',-p',udp',-m',udp',-m',comment',--comment',See the Oracle-Provided Images section in the Oracle Bare Metal documentation for security impact of modifying or removing this rule',-j',REJECT',--reject-with',icmp-port-unreachable' for ipv 'ipv4'already in list, ignoring ``` iptablesを確認したところ、デフォルトで次の内容が記述されており、それによりRejectされていたようです。 ``` REJECT tcp -- 0.0.0.0/0 169.254.0.0/16 tcp /* See the Oracle-Provided Images section in the Oracle Bare Metal documentation for security impact of modifying or removing this rule */ reject-with tcp-reset REJECT udp -- 0.0.0.0/0 169.254.0.0/16 udp /* See the Oracle-Provided Images section in the Oracle Bare Metal documentation for security impact of modifying or removing this rule */ reject-with icmp-port-unreachable ``` OracleのCentOS8のイメージにこれが設定されていたためfirewalldの設定のみでポートを開けることができなかったようです。 IPtablesの許可を追加すると通信できるようになりました。 詳細はOracleのドキュメントを確認予定ですが、原因が判明したため本質問はクローズさせていただきます。 アドバイスを頂いた皆様ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問