서버가 실행되는 동안 악성 사용자가 일반 데이터베이스 서버를 대신 할 수는 없습니다. 그러나 서버가 다운되면 로컬 사용자가 자체 서버를 시작하여 일반 서버를 스푸핑 할 수 있습니다. 스푸핑 서버는 클라이언트가 보낸 비밀번호와 쿼리를 읽을 수 있지만이므로 데이터를 반환 할 수 없습니다.pgdata
디렉토리는 디렉토리 권한으로 인해 여전히 안전합니다. 모든 사용자가 데이터베이스 서버를 시작할 수 있으므로 스푸핑이 가능합니다. 클라이언트는 특별히 구성되지 않으면 잘못된 서버를 식별 할 수 없습니다.
스푸핑을 방지하는 한 가지 방법Local
연결은 Unix 도메인 소켓 디렉토리를 사용하는 것입니다 (unix_socket_directories) 신뢰할 수있는 로컬 사용자에 대해서만 쓰기 권한이 있습니다. 이렇게하면 악의적 인 사용자가 해당 디렉토리에서 자신의 소켓 파일을 생성하지 못하게됩니다. 일부 응용 프로그램이 여전히 참조 할 수 있다고 우려하는 경우/tmp
소켓 파일의 경우 스푸핑에 취약한 경우 운영 체제 시작 중에 상징적 링크를 만듭니다/tmp/.S.pgsql.5432
재배치 된 소켓 파일을 가리 킵니다. 또한 수정해야 할 수도 있습니다/tmp
기호 링크 제거를 방지하기위한 스크립트 정리.
다른 옵션로컬
연결은 고객이 사용하기위한 것입니다요구 사항
소켓에 연결된 서버 프로세스의 필요한 소유자를 지정합니다.
TCP 연결의 스푸핑을 방지하려면 가장 좋은 솔루션은 SSL 인증서를 사용하고 클라이언트가 서버의 인증서를 확인하는지 확인하는 것입니다. 그렇게하려면 서버는 수락하도록 구성되어야합니다hostssl
Connections (스포츠 토토 PostgreSQL : 문서 : 11 : 20.1. pg_hba.conf 파일) SSL 키 및 인증서 파일이 있습니다 (메이저 토토 사이트 PostgreSQL : 문서 : 11 : 18.9. SSL로 TCP/IP 연결 보안). TCP 클라이언트는 사용을 사용해야합니다sslmode = verify-ca
또는verify-full
그리고 적절한 루트 인증서 파일이 설치되어 있습니다 (섹션 34.18.1).