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

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

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

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

KVM

KVM【Kernel-based Cirtual Machine】は、 Linux上で仮想化環境を利用するためのソフトウェアです。 1台のPC上で複数のOSを同時に動作させるために必要な制御を行う 仮想化環境の仕組みを提供します。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

1回答

1608閲覧

[VPS(KVM)] ポート開放ができない。お名前.com / Centos8 Stream

stakezo

総合スコア43

CentOS

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

KVM

KVM【Kernel-based Cirtual Machine】は、 Linux上で仮想化環境を利用するためのソフトウェアです。 1台のPC上で複数のOSを同時に動作させるために必要な制御を行う 仮想化環境の仕組みを提供します。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

0グッド

0クリップ

投稿2022/01/26 15:06

編集2022/01/26 15:18

よろしくお願いします。どんな些細なことでもかまいません。助かります。

私は、お名前.com の VPS(KVM) を契約して、 Centos8 Stream を利用しています。
前提として、お名前.com の 「VPS(KVM)サーバーコントロールパネル」より
IPセキュリティ > セキュリティグループ
に「DB(postgreSQL : port5432)」を追加、反映させました。結果、サーバ詳細ページの
IPセキュリティ には、 DB があります。

現在、ポート開放をするため以下のコマンドを実行したのですが開放ができません。
コマンドの実行環境: Windows10 + Tera Term Version 4.103

(OSをインストールした直後に実行しています)
[root@abc ~]# firewall-cmd --permanent --add-port=5432/tcp
success
[root@abc ~]# firewall-cmd --reload
success
[root@abc ~]# firewall-cmd --list-all
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: cockpit dhcpv6-client ssh
ports: 80/tcp 10022/tcp 5432/tcp
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

ポートが開いたとおもったのですが、ポート開放確認(https://www.cman.jp/network/support/port.html
)から、このサーバのIP、ポート番号で確認をしても
> ホスト:123.45.67.89
> ポート:5432
> に到達できませんでした
開放ができていませんでした。

.oO「なにか外部からファイアウォール的なブロックがあるかな」と思い、
お名前.com のユーザページから、IPセキュリティのページを見てみましたが
https://www.onamae-server.com/guide/vps/p/42
不備を見つけることができず、
「・コントロールパネルよりIPセキュリティを追加された場合、
追加されたインバウンドの接続を、サーバー内でご設定いただくまでは
接続が拒否された状態となっているため、ご注意ください。」

と書いてあり、どうもこれが上手く行かない原因なのではないかと思いました。
お名前.comで CentOS8 Stream で、CentOS6 にある iptableも使えず、filewallでやっているのですが。

https://omohikane.com/centos7_port_firewalld/
(>Centos7ではそんなことしてもぱっぱらぱーです。)

もし、解決方法、確認すべきことをご存知の方がいらっしゃいましたら、ご教授をお願いします。
よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

5432というのはPostgreSQLでしょうか?Postgresの起動に失敗しているとか?
netstat -an | grep 5432はどうでしょう?

ところで、Postgresをインターネット上にオープンにする必要は本当にあるんでしょうか?危険な気がしますが。

投稿2022/01/26 15:30

otn

総合スコア84555

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

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

stakezo

2022/01/26 15:41

ご回答ありがとうございます!はい、PostgreSQLです。 いま回答してくださった文章を読み解いています。 [root@abc ~]# netstat -an | grep 5432 [root@abc ~]# なにも返ってこないようでした。 >Postgresをインターネット上にオープンにする必要は本当にあるんでしょうか?危険な気がしますが。 え、そうなのですか・・・。私は、このpostgresを利用して、ユーザーに情報を送ろうと考えていました。 どのように危険なのでしょうか?もしよければご教授いただけますか?参考になるURLでも嬉しいです。
stakezo

2022/01/26 15:43

netstat -an | grep 80 だと、以下のようになりました。 [root@abc ~]# netstat -an | grep 80 tcp6 0 0 :::80 :::* LISTEN unix 2 [ ACC ] STREAM LISTENING 25580 /var/run/fail2ban/fail2ban.sock unix 3 [ ] STREAM CONNECTED 24680 /var/lib/sss/pipes/private/sbus-dp_implicit_files.845
stakezo

2022/01/26 15:57

私が PostgreSQL のポート5432 を開こうとしている理由ですが、リモートで接続しているWindows10から、pgAdmin 4 の利用を考え、繋いでみようとしたときに、ポート5432が開いていないのが原因だ、と行き着きました。
stakezo

2022/01/26 16:11

まだ解決ではありませんが、進展がありました! [root@abc ~]# netstat -an | grep 5432 tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN tcp6 0 0 ::1:5432 :::* LISTEN unix 2 [ ACC ] STREAM LISTENING 34921 /tmp/.s.PGSQL.5432 unix 2 [ ACC ] STREAM LISTENING 34919 /var/run/postgresql/.s.PGSQL.5432 postgresqlが起動しておらず、起動し、もう一度教えてもらったコマンドで確認をしました。 しかし、ポート確認のサイトで調べても、開放されていませんでした。
CHERRY

2022/01/26 22:32

Postgresql の設定はどうなっていますか? netstat の結果をみる感じでは、127.0.0.1:5432の待受けなので、localhost しかポートが空いていないように見えます。
stakezo

2022/01/26 22:44

できました! vi /var/lib/pgsql/data/postgresql.conf ============================================ listen_addresses = '*' ============================================ ※ :wq で上書き。これで、localhost以外もlistenにできた vi /var/lib/pgsql/data/pg_hba.conf ============================================ host all all 127.0.0.1/32 md5 host all all 23.45.67.89/0 md5 # IPv6 local connections: host all all ::1/128 md5 ============================================ ※ :wq で上書き。これで、私のリモートパソコンのIPアドレス(23.45.67.89)からに対応 ============================================ pg_ctl -D /var/lib/pgsql/data reload ============================================ ※ pgsqlを再起動して、ph_hbaを反映 これで、ポートが開きました!
otn

2022/01/27 02:19

解決して良かったです。「ポートが開いた」というか、「待ち受けが出来た」ですね。 いくらファイアーウォール設定でポートを開けても、待ち受けているプログラムがないと通信出来ませんし、 ポートが開いているかどうかのチェックも出来ません。
otn

2022/01/27 12:05 編集

> え、そうなのですか・・・。私は、このpostgresを利用して、ユーザーに情報を送ろうと考えていました。 どのように危険なのでしょうか? postgrresの設定でも、ログイン元のIPアドレスを制限できるようなので、そういうのできちんと設定してあれば良いかと思いますが、ファイアーウォールでも接続元IPを制限しておけば、余計なアタックを受けることも、万一postgrresに脆弱性があっても安心かと思います。
stakezo

2022/01/27 11:54

返信ありがとうございます。とても勉強になりました。 ポートが開いてるか、というのは、今回のPostgreSQLの設定のように、反応する相手がいて初めて分かることだったのですね! わかりました、ちゃんと設定した上でIPの制限を掛けるならポート開放もいいのですね。CentOSのファイアウォールで1つ制限、PostgreSQLの設定で1つ制限、これでやってみようと思います。ありがとうございました!
stakezo

2022/01/27 13:25

自分用メモ(まだ、正確な理解ができていないかもしれません) この問題は、OSインストール直後、以下で解決できた。 1.お名前.com の「IPセキュリティ」に「DB(PostgreSQL」を追加 2.PostgreSQLの存在確認(今回はあった) 3.PostgreSQLの設定を2ヶ所変更  vi /var/lib/pgsql/data/postgresql.conf  → listen_addresses = '*'  vi /var/lib/pgsql/data/pg_hba.conf  → host all all 127.0.0.1/32 md5  → host all all 23.45.67.89/0 md5  → # IPv6 local connections:  → host all all ::1/128 md5 4.postgreSQLを再起動(非rootユーザで実行する、今回は su postgres)  → pg_ctl -D /var/lib/pgsql/data reload 5.firewall の設定をする  → firewall-cmd --permanent --add-port=5432/tcp  → firewall-cmd --reload 大まかにこれでいいと思う。 確認手段 1.firewall-cmd --list-all   ファイアウォールのポートが開いているか確認 2.netstat -an | grep 5432   内部(サーバ目線)から、このポートが現在どういう利用状況か確認   例:tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN     この場合、localhost しか待ち受けが出来ていない   例:tcp 0 440 98.76.54.32:5432 23.45.67.89:14659 ESTABLISHED     この場合、サーバ(IP : 98.76.54.32) と、 端末(IP : 23.45.67.89) で接続が確立してるよ otnさん、CHERRYさん、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問