programing

호스트에 대한 nopg_syslog.conf 항목

i4 2023. 5. 26. 20:44
반응형

호스트에 대한 nopg_syslog.conf 항목

DBI를 사용하여 연결하려고 하면 다음 오류가 발생합니다.

DBI 연결(예: =)LRdb;host=192.168.0.1;port=5433','postgres',...)실패: FATAL: 호스트 "192.168.0.1", 사용자 "postgres", 데이터베이스 "caos"에 대한 nopg_hba.conf 항목LRdb", SSL 꺼짐

다음은 내 pg_hba.conf 파일입니다.

# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

host    all         postgres    127.0.0.1/32          trust

host    all        postgres     192.168.0.1/32        trust

host    all        all         192.168.0.1/32        trust

host    all        all         192.168.0.1/128        trust

host    all        all         192.168.0.1/32        md5

host    chaosLRdb    postgres         192.168.0.1/32      md5
local    all        all         192.168.0.1/32        trust

내 펄 코드는

#!/usr/bin/perl-w
use DBI;
use FileHandle;

print "Start connecting to the DB...\n";

@ary = DBI->available_drivers(true);
%drivers = DBI->installed_drivers();
my $dbh = DBI->connect("DBI:PgPP:database=chaosLRdb;host=192.168.0.1;port=5433", "postgres", "chaos123");

제가 여기서 무엇을 놓쳤는지 알 수 있을까요?

이 줄을 변경할 수 있는 경우:

host    all        all         192.168.0.1/32        md5

사용:

host    all        all         all                   md5

이것으로 문제가 해결되는지 확인할 수 있습니다.

그러나 또 다른 고려 사항은 postgresql 포트(5432)가 해커에 의한 암호 공격에 매우 개방적이라는 것입니다(암호를 무차별하게 강제할 수 있음).postgresql 포트 5432를 '33333' 또는 다른 값으로 변경하여 사용자가 이 구성을 알 수 없도록 할 수 있습니다.

pg_hba.conf 파일에 다음과 같은 부정확하고 혼란스러운 행이 있습니다.

# fine, this allows all dbs, all users, to be trusted from 192.168.0.1/32
# not recommend because of the lax permissions
host    all        all         192.168.0.1/32        trust

# wrong, /128 is an invalid netmask for ipv4, this line should be removed
host    all        all         192.168.0.1/128       trust

# this conflicts with the first line
# it says that that the password should be md5 and not plaintext
# I think the first line should be removed
host    all        all         192.168.0.1/32        md5

# this is fine except is it unnecessary because of the previous line
# which allows any user and any database to connect with md5 password
host    chaosLRdb  postgres    192.168.0.1/32        md5

# wrong, on local lines, an IP cannot be specified
# remove the 4th column
local   all        all         192.168.0.1/32        trust

비밀번호를 md5로 변경했다면, 줄을 다듬으면 이것이 작동할 수도 있을 것입니다.md5를 얻으려면 perl 또는 다음 셸 스크립트를 사용합니다.

 echo -n 'chaos123' | md5sum
 > d6766c33ba6cf0bb249b37151b068f10  -

그러면 다음과 같은 연결 라인이 필요합니다.

my $dbh = DBI->connect("DBI:PgPP:database=chaosLRdb;host=192.168.0.1;port=5433",
    "chaosuser", "d6766c33ba6cf0bb249b37151b068f10");

자세한 내용은 포스트그레스 8의 문서입니다.X의 pg_hba.conf 파일입니다.

서버 이 올바른 것 . postgres 서버 구성입니다.


host    all         all         127.0.0.1/32          md5
host    all         all         192.168.0.1/32        trust
That should grant access from the client to the postgres server. So that leads me to believe the username / password is whats failing.

데이터베이스에 합니다.


createuser -a -d -W -U postgres chaosuser

다음 된 사용자 " " " " " " " " " " " " " " " " " " 을 합니다.


my $dbh = DBI->connect("DBI:PgPP:database=chaosLRdb;host=192.168.0.1;port=5433", "chaosuser", "chaos123");

이 문제를 해결하려면 이 방법을 사용해 보십시오.

먼저, 다음을 통해 pg_pg.conf를 알게 되었습니다.

루트 디렉토리에서 cd /etc/postgresql/9.5/main

다음을 사용하여 파일을 엽니다.

sudo nano pg_hba.conf

다음 행을 추가합니다.

local   all         all                               md5

pg_syslog.conf로 이동한 다음 다음 명령을 사용하여 다시 시작합니다.

sudo service postgresql restart

pg_hba.conf에 다음을 줄에 추가합니다.

hostnossl 모든 0.0.0.0/0 신뢰

그런 다음 서비스를 다시 시작합니다.

저도 같은 문제에 직면했습니다.내 DB는 클라우드에 있었습니다.

오류:

오류: 호스트 "........", 사용자 "........", 데이터베이스 "........", SSL 끄기에 대한 no pg_hba.conf 항목

이 문제를 해결하기 위해 이 구성을 추가합니다.

    "dialect": "postgres",
    "dialectOptions": {
        "ssl": {
            "require": true,
            "rejectUnauthorized": false
        }
    }

SSL 매개 변수는 DB에 연결을 위해 항상 SSL을 사용하도록 지시하는 키입니다.

이 문제를 해결하려면 다음과 같이 시도할 수 있습니다.

먼저 당신은 당신의 pg_dlls.conf를 발견하고 다음과 같이 씁니다.

local all all md5

페이지 서버를 다시 시작한 후:

postgresql restart

또는

sudo /etc/init.d/postgresql restart

노드 및 페이지 모듈을 사용하여 이 오류가 발생하는 경우 이와 같이 무단 액세스를 거부하지 않도록 ssl을 설정할 수 있습니다.

const pool = new Pool({
    connectionString: "your connection string",
    ssl: {
        rejectUnauthorized: false
    }
})

아래와 같은 오류가 발생하는 경우:

OperationalError: FATAL:  no pg_hba.conf entry for host "your ipv6",
                  user "username", database "postgres", SSL off

그런 다음 MAC 주소와 함께 다음과 같은 항목을 추가합니다.

host   all    all       [your ipv6]/128         md5

예를 들어 시도하는 것.
con = psycopg2.connect(database="my_db", user="my_name", password="admin")추가 매개 변수를 전달하려고 시도하여 다음을 통해 하루를 절약할 수 있습니다.
con = psycopg2.connect(database="my_db", user="my_name", password="admin", host="localhost")

DBeaver에서 이 오류가 발생하는 경우 솔루션은 다음 라인에서 확인할 수 있습니다.

@lcustodio SSL 페이지에서 SSL 모드: require를 설정하고 SSL Factory를 비워두거나 org.postgresql.ssl을 사용합니다.공장 유효성 검사 안 함

Network -> SSL 탭에서 Use SLL 확인란을 선택하고 Advanced -> SSL Mode = require를 설정하면 작동합니다.

PGHOST 변수도 확인합니다.

ECHO $PGHOST

로컬 컴퓨터 이름과 일치하는지 확인합니다.

그나저나, 제 경우에는 독립적인 속성이 아닌 URL에 사용자/pwd를 지정해야 했습니다. 이들은 무시되었고 OS 사용자는 연결에 사용되었습니다.

구성이 WebSphere 8.5.5 server.xml 파일에 있습니다.

<dataSource 
    jndiName="jdbc/tableauPostgreSQL" 
    type="javax.sql.ConnectionPoolDataSource">
    <jdbcDriver 
        javax.sql.ConnectionPoolDataSource="org.postgresql.ds.PGConnectionPoolDataSource" 
        javax.sql.DataSource="org.postgresql.ds.PGPoolingDataSource" 
        libraryRef="PostgreSqlJdbcLib"/>
    <properties 
        url="jdbc:postgresql://server:port/mydb?user=fred&amp;password=secret"/>
</dataSource>

이 작업은 작동하지 않고 다음 오류가 발생했습니다.

<properties 
    user="fred"
    password="secret"
    url="jdbc:postgresql://server:port/mydb"/>

/etc/postgresql/14/main/pg_hba.conf 파일에 다음 행을 추가하십시오.

#IPv4 로컬 연결:

모두 127.0.0.1/32 scram-sha-256 호스트

모든 md5 호스트

다음과 같은 구성에 sslprop을 연결에 포함시킵니다.

  ssl: {
    rejectUnauthorized: false
  }

Postgre를 위해 Azure Database에 연결하는 동안 Azure Data Factory에서 동일한 문제가 발생했습니다.SQL.

28000: 호스트 ", 사용자", 데이터베이스 "postgres"에 대한 no pg_hba.conf 항목, SSL 끄기

여기서 문제는 Postgre 때문이었습니다.SQL 데이터베이스의 ssl_min_protocol_version이 TLSV1.2로 설정되어 암호화된 연결이 필요하며 클라이언트 연결이 암호화를 사용하지 않았습니다.

속성 "암호화 방법"을 SSL로 설정하여 문제를 해결했습니다.

여기에 이미지 설명 입력

도커 컨테이너를 사용하여 포스트그레스를 실행했습니다.저는 이 문제에 직면했고 이 문제를 해결하기 위해 사용했습니다.POSTGRES_HOST_AUTH_METHOD=trust컨테이너를 시작할 때의 env 변수입니다.

은 명령의 입니다.docker run --name postgres --net appnet -e POSTGRES_PASSWORD=password -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust -d postgres

postgres 컨테이너를 도커 컨테이너 내에서 실행 중인 다른 응용 프로그램에 연결하려면 두 컨테이너를 모두 동일한 네트워크에서 실행하는 것이 가장 좋습니다.이 경우에는 다음을 사용하여 네트워크 앱넷을 만들었습니다.docker network create명령을 사용하여 내 응용 프로그램 컨테이너와 postgres 컨테이너를 만듭니다.

pg_hba.conf에 다음을 줄에 추가합니다.

hostnossl 모든 0.0.0.0/0 신뢰

서버를 다시 시작

연결에 SSL을 사용합니다.이것은 그것을 즉시 해결합니다.

pgadmin에서 postgres 연결 호스트 이름/주소를 확인하고 연결 매개 변수에 동일하게 사용합니다.

DBI 연결(예: =)LRdb;host="해당 항목 유지";port=5433','postgres',...)

언급URL : https://stackoverflow.com/questions/1406025/no-pg-hba-conf-entry-for-host

반응형