このガイドに従って、postgresへのリモート接続を許可しようとしています http://www.cyberciti.biz/tips/postgres-allow-remote-access-tcp-connection.html
現在、ファイアウォールの問題が発生しています。
設定してあるので、/tmp/v4
ファイアウォールルールを変更して元に戻すことができます。
2つの設定を試しました。
ガイドが推奨するもの:
-A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 00.000.000.00 --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -s 00.000.000.00 --sport 5432 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
この設定を使用してnc ipofserver 5432
取得しますNcat: connection timed out
設定を試した場合
-I INPUT -p tcp -s 00.000.000.00 --dport 5432 -j ACCEPT
-I INPUT -p tcp -s 00.000.000.00 --dport 5432 -j ACCEPT
同じncatコマンドを実行すると、Ncat: Connection refused
Redisを提供するために、別のサーバーで同じベースファイアウォール(上記以外)を使用していますが、正しく動作します。
firewalldは、主に親しみやすい目的で、iptablesを優先してこのボックスで無効にされています。
どちらのマシンもCentOS 7です
00.000.000.00は、実際に使用しているコンピューターのIPを置き換えます
centos7は、無効にしない限り、標準でfirewall-cmdを使用します。私はあなたがそうしなかったと思います。
その前提が整っていれば、postgresqlホストでこれを実行するだけです。
firewall-cmd --add-service=postgresql
動作することを確認したら、永続的なスイッチを使用して再度実行し、再起動後に固定することができます。
firewall-cmd --add-service=postgresql --permanent
Bash-completionパッケージをインストールすると、再度ログインした後、firewall-cmdがオートコンプリートし、本当に使いやすくなります。
編集:OPは、firewall-cmdを使用しないことを示しています。したがって、彼が古いiptablesサービスを使用していると仮定すると、/ etc/sysconfig/iptablesを編集するのが標準的な方法です。
そのホストのポート5432/tcpへの着信接続を許可する場合は、この行を追加する必要があります
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
前
-A INPUT -j REJECT --reject-with icmp-Host-prohibited
-A FORWARD -j REJECT --reject-with icmp-Host-prohibited
COMMIT
そして、iptablesサービスをリロードします。もちろん、これにより、任意のホストからデータベースサーバーへのすべての接続が可能になります。
接続できるホストを制限したい場合は(111.222.111.222に制限しましょう)、次のようにします。
-A INPUT -p tcp -s 111.222.111.222 --sport 1024:65535 --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT
もちろん、これでうまくいき、もう1つは削除して、iptablesサービスをリロードします。