18.7. 토토 스푸핑 방지#

서버가 실행되는 동안에는 악의적인 사용자가 일반 데이터베이스 서버를 대신할 수 없습니다. 그러나 서버가 다운되면 로컬 사용자가 자신의 서버를 시작하여 일반 서버를 스푸핑할 수 있습니다. 스푸핑 서버는 클라이언트가 보낸 비밀번호와 쿼리를 읽을 수 있지만 다음과 같은 이유로 데이터를 반환할 수 없습니다.PGDATA디렉토리 권한으로 인해 디렉토리는 여전히 안전합니다. 스푸핑은 모든 사용자가 데이터베이스 토토를 시작할 수 있기 때문에 가능합니다. 클라이언트는 특별히 구성하지 않는 한 잘못된 토토를 식별할 수 없습니다.

스푸핑을 방지하는 한 가지 방법현지연결은 Unix 도메인 소켓 디렉토리를 사용하는 것입니다(unix_socket_directories)는 신뢰할 수 있는 로컬 사용자에게만 쓰기 권한이 있습니다. 이렇게 하면 악의적인 사용자가 해당 디렉터리에 자신의 소켓 파일을 만드는 것을 방지할 수 있습니다. 일부 응용 프로그램이 여전히 참조할 수 있다고 우려되는 경우/tmp소켓 파일의 경우 스푸핑에 취약하며 운영 체제 시작 중에 심볼릭 링크를 생성합니다./tmp/.s.PGSQL.5432이는 재배치된 소켓 파일을 가리킵니다. 또한 수정해야 할 수도 있습니다./tmp심볼릭 링크 제거를 방지하기 위한 정리 스크립트.

다음에 대한 또 다른 옵션현지연결은 클라이언트가 사용하기 위한 것입니다.requirepeer소켓에 연결된 토토 프로세스의 필수 소유자를 지정합니다.

TCP 연결 스푸핑을 방지하려면 SSL 인증서를 사용하고 클라이언트가 토토 인증서를 확인하는지 확인하거나 GSSAPI 암호화를 사용하거나(또는 별도 연결에 있는 경우 둘 다) 사용하십시오.

SSL을 사용한 스푸핑을 방지하려면 토토가 허용만 구성되어야 합니다.hostssl연결 (젠 토토 PostgreSQL : 문서 : 17 : 20.1. pg_hba.conf 파일) SSL 키와 인증서 파일이 있습니다(배트맨 토토 PostgreSQL : 문서 : 17 : 18.9. SSL로 TCP/IP 연결 보안). TCP 클라이언트는 다음을 사용하여 연결해야 합니다.sslmode=verify-ca또는확인-전체적절한 루트 인증서 파일이 설치되어 있어야 합니다(섹션 32.19.1). 또는시스템 CA 풀는 SSL 구현에 정의된 대로 다음을 사용하여 사용할 수 있습니다.sslrootcert=시스템; 이 경우에는,sslmode=verify-full공용 CA에서 서명한 인증서를 얻는 것은 일반적으로 쉽지 않기 때문에 안전을 위해 강제됩니다.

사용시 토토 스푸핑이 발생하는 것을 방지하기 위해PostgreSQL : 문서 : 17 : 20.5. 암호 토토 핫네트워크를 통한 비밀번호 인증을 위해서는 SSL과 이전 단락에서 설명한 스푸핑 방지 방법 중 하나를 사용하여 서버에 연결해야 합니다. 또한, 다음의 SCRAM 구현은libpq전체 인증 교환을 보호할 수는 없지만채널_바인딩=요구연결 매개변수는 토토 스푸핑에 대한 완화 기능을 제공합니다. 불량 토토를 사용하여 SCRAM 교환을 가로채는 공격자는 오프라인 분석을 사용하여 잠재적으로 클라이언트에서 해시된 비밀번호를 확인할 수 있습니다.

GSSAPI로 스푸핑을 방지하려면 토토가 오직 허용하도록 구성되어야 합니다.hostgssenc연결 (젠 토토 PostgreSQL : 문서 : 17 : 20.1. pg_hba.conf 파일) 및 사용gss그들과 함께 인증하세요. TCP 클라이언트는 다음을 사용하여 연결해야 합니다.gssencmode=require.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.