Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

19.2. Phương thức kèo bóng đá cúp c2

Sau đây mô tả các phương thức kèo bóng đá cúp c2 trong nhiều hơn chi tiết.

19.2.1. kèo bóng đá cúp c2 tin cậy

khiTrustkèo bóng đá cúp c2 là được chỉ định,PostgreSQLGiả sử rằng bất kỳ ai có thể kết nối với máy chủ đều được ủy quyền Truy cập cơ sở dữ liệu như bất kỳ người dùng cơ sở dữ liệu nào mà anh ta chỉ định (bao gồm cả Superuser cơ sở dữ liệu). kèo bóng đá cúp c2 này chỉ nên được sử dụng khi có bảo vệ cấp hệ điều hành đầy đủ trên kết nối với máy chủ.

Trustkèo bóng đá cúp c2 là phù hợp và rất thuận tiện cho các kết nối cục bộ trên một người dùng duy nhất máy trạm. Nó thường làkhôngThích hợp trên một Máy nhiều người. Tuy nhiên, bạn có thể sử dụngTrustNgay cả trên máy nhiều người, nếu bạn Hạn chế quyền truy cập vào tệp ổ cắm miền đơn vị của máy chủ bằng cách sử dụng Quyền hệ thống tập tin. Để làm điều này, đặtunix_socket_permissions(và có thểunix_socket_group) Tham số cấu hình AS được mô tả trongPhần 16.4.1. Hoặc bạn có thể đặtunix_socket_directoryTham số cấu hình đến Đặt tệp ổ cắm vào thư mục bị hạn chế phù hợp.

Thiết lập quyền hệ thống tệp chỉ giúp cho ổ cắm unix kết nối. Các kết nối TCP/IP cục bộ không bị hạn chế bởi nó; Do đó, nếu bạn muốn sử dụng quyền hệ thống tệp cho địa kèo bóng đá cúp c2 Bảo mật, XóaMáy chủ ... 127.0.0.1 ...dòng từpg_hba.conf, hoặc Thay đổi nó thành khôngTrustPhương pháp kèo bóng đá cúp c2.

Trustkèo bóng đá cúp c2 chỉ là Thích hợp cho các kết nối TCP/IP nếu bạn tin tưởng mọi người dùng Mọi máy được phép kết nối với máy chủ bởipg_hba.confCác dòng chỉ địnhTrust. Thật hiếm khi hợp lý khi sử dụngTrustĐối với bất kỳ kết nối TCP/IP nào khác hơn những người từLocalhost(127.0.0.1).

19.2.2. Mật khẩu kèo bóng đá cúp c2

Các phương thức kèo bóng đá cúp c2 dựa trên mật khẩu làMD5, CryptMật khẩu. Các kèo bóng đá cúp c2 này hoạt động Tương tự ngoại trừ cách mà mật khẩu được gửi qua kết nối. Nếu bạn hoàn toàn quan tâm đến mật khẩu"Sniffing"tấn công sau đóMD5được ưu tiên, vớiCryptLựa chọn thứ hai nếu bạn phải hỗ trợ khách hàng trước 7.2. Đơn giảnMật khẩunên đặc biệt là tránh cho các kết nối qua Internet mở (Trừ khi bạn sử dụng SSL, SSH hoặc bảo mật truyền thông khác trình bao bọc xung quanh kết nối).

PostgreSQLCơ sở dữ liệu Mật khẩu tách biệt với mật khẩu người dùng hệ điều hành. Mật khẩu cho mỗi người dùng cơ sở dữ liệu được lưu trữ trongpg_shadowBảng danh mục hệ thống. Mật khẩu có thể được được quản lý với các lệnh SQLTạo Người dùngngười dùng thay đổi, ví dụ:Tạo người dùng Foo với mật khẩu 'bí mật';. Theo mặc định, nghĩa là nếu không có mật khẩu Được thiết lập, mật khẩu được lưu trữ là NULL và Mật khẩu kèo bóng đá cúp c2 sẽ luôn thất bại cho người dùng đó.

Để hạn chế tập hợp người dùng được phép kết nối với Một số cơ sở dữ liệu nhất định, liệt kê người dùng trongngười dùngCột củapg_hba.conf, như được giải thích trong trước đó phần.

19.2.3. Kerberos kèo bóng đá cúp c2

Kerberoslà một Hệ thống kèo bóng đá cúp c2 an toàn tiêu chuẩn công nghiệp phù hợp cho Phân phối điện toán qua một mạng công cộng. Một mô tả của TheKerberosHệ thống là xa Ngoài phạm vi của tài liệu này; Trong tất cả các tính tổng quát, nó có thể là Khá phức tạp (nhưng mạnh mẽ). TheKerberosFAQhoặcDự án MIT Athenacó thể là điểm khởi đầu tốt để thăm dò. Một số nguồn choKerberosPhân phối tồn tại.

trong khiPostgreSQLHỗ trợ Cả Kerberos 4 và Kerberos 5, chỉ nên sử dụng Kerberos 5. Kerberos 4 được coi là không an toàn và không còn được đề xuất cho Sử dụng chung.

Để sử dụngKerberos,, Hỗ trợ cho nó phải được kích hoạt tại thời điểm xây dựng. Nhìn thấyChương 14Để biết thêm thông tin. Cả hai Kerberos 4 và 5 được hỗ trợ, nhưng chỉ có một phiên bản có thể được hỗ trợ trong bất kỳ bản dựng nào.

POSTGRESQLhoạt động như a Dịch vụ Kerberos bình thường. Tên của hiệu trưởng dịch vụ làServiceName/tên máy chủ@Realm, trong đóServiceNamePostgres(Trừ khi có tên dịch vụ khác Đã chọn tại định cấu hình thời gian với./configure --with-krb-srvnam = bất cứ điều gì).tên máy chủlà tên máy chủ đủ điều kiện của máy chủ. Vương quốc của hiệu trưởng dịch vụ là Realm ưa thích của máy chủ.

Hiệu trưởng khách hàng phải có của họPostgreSQLTên người dùng là lần đầu tiên của họ Ví dụ, thành phầnpgusername/otherstuff@realm. Hiện tại vương quốc của máy khách không được kiểm tra bởiPostgreSQL; Vì vậy, nếu bạn có thực tế chéo kèo bóng đá cúp c2 được bật, sau đó bất kỳ hiệu trưởng nào trong bất kỳ vương quốc nào có thể giao tiếp với bạn sẽ được chấp nhận.

Đảm bảo rằng tệp khóa máy chủ của bạn có thể đọc được (và tốt nhất là chỉ có thể đọc được) bởiPostgreSQLTài khoản máy chủ. (Xem thêmPhần 16.1). Các Vị trí của tệp khóa được chỉ định vớiKRB_SERVER_KEYFILECấu hình thời gian chạy tham số. (Xem thêmPhần 16.4.) Mặc định là/etc/srvtabNếu bạn đang sử dụng Kerberos 4 vàTệp: /usr/local/pgsql/etc/krb5.keytab(hoặc bất kỳ thư mục nào được chỉ định làsysconfdirTại thời điểm xây dựng) với Kerberos 5.

Để tạo tệp keytab, ví dụ sử dụng (với phiên bản 5)

Kadmin%Ank -RandKey Postgres/Server.my.domain.org
Kadmin%KTADD -K KRB5.KEYTAB POSTGRES/server.my.domain.org

ĐọcKerberosTài liệu để biết chi tiết.

Khi kết nối với cơ sở dữ liệu, hãy đảm bảo bạn có vé Đối với một lượng chính khớp với tên người dùng cơ sở dữ liệu được yêu cầu. MỘT Ví dụ: Đối với tên người dùng cơ sở dữ liệuFred,, Cả hai hiệu trưởngfred@example.comfred/users.example.com@example.comCó thể được sử dụng để kèo bóng đá cúp c2 vào máy chủ cơ sở dữ liệu.

Nếu bạn sử dụngmod_auth_kerbtừhttp: //modauthkerb.sf.netmod_perltrên của bạnApacheMáy chủ web, bạn có thể sử dụngvới Amod_perltập lệnh. Điều này cho Truy cập cơ sở dữ liệu an toàn trên web, không có thêm mật khẩu yêu cầu.

19.2.4. kèo bóng đá cúp c2 dựa trên nhận dạng

Phương pháp kèo bóng đá cúp c2 nhận dạng hoạt động bằng cách kiểm tra Tên người dùng hệ điều hành của khách hàng và xác định được phép Tên người dùng cơ sở dữ liệu bằng cách sử dụng tệp bản đồ liệt kê cho phép các cặp tên người dùng tương ứng. Sự quyết định của Tên người dùng của khách hàng là điểm quan trọng về bảo mật và nó hoạt động khác nhau tùy thuộc vào loại kết nối.

19.2.4.1. Xác định kèo bóng đá cúp c2 qua TCP/IP

The"Giao thức nhận dạng"được mô tả trongRFC 1413. Hầu như Mọi hệ điều hành giống như UNIX đều có một máy chủ nhận dạng theo mặc định lắng nghe trên cổng TCP 113. Cơ bản Chức năng của máy chủ nhận dạng là trả lời các câu hỏi như"Người dùng nào đã bắt đầu kết nối mà đi ra khỏi cổng của bạnxvà kết nối với cổng của tôiy? ". TừPostgreSQLbiết cả haixyKhi kết nối vật lý được thiết lập, nó có thể thẩm vấn máy chủ nhận dạng trên máy chủ của máy khách kết nối và về mặt lý thuyết có thể kèo bóng đá cúp c2 định người dùng hệ điều hành cho mọi kết nối đã cho theo cách này.

Hạn chế của thủ tục này là nó phụ thuộc vào Tính toàn vẹn của máy khách: Nếu máy khách không tin tưởng hoặc làm tổn hại kẻ tấn công có thể chạy về bất kỳ chương trình nào Trên cổng 113 và trả về bất kỳ tên người dùng nào anh ta chọn. Cái này Do đó, phương thức kèo bóng đá cúp c2 chỉ phù hợp với Các mạng đóng nơi mỗi máy khách bị chặt Kiểm soát và nơi quản trị viên cơ sở dữ liệu và hệ thống hoạt động trong liên hệ chặt chẽ. Nói cách khác, bạn phải tin tưởng Máy chạy máy chủ nhận dạng. Chú ý cảnh báo:

Giao thức nhận dạng không được dự định là một Giao thức điều khiển ủy quyền hoặc truy cập.

--RFC 1413

19.2.4.2. Xác định kèo bóng đá cúp c2 trên ổ cắm cục bộ

Trên các hệ thống hỗ trợSO_PEERCREDYêu cầu cho các ổ cắm miền Unix (hiệnLinux, FreeBSD, NetBSD, OpenBSDBSD/OS), kèo bóng đá cúp c2 cũng có thể là áp dụng cho các kết nối cục bộ. Trong trường hợp này, không có rủi ro bảo mật được thêm vào bằng cách sử dụng kèo bóng đá cúp c2 nhận dạng; Quả thực nó là một Lựa chọn tốt hơn cho các kết nối cục bộ trên các hệ thống như vậy.

Trên các hệ thống không cóSO_PEERCREDYêu cầu, kèo bóng đá cúp c2 chỉ có sẵn cho TCP/IP kết nối. Như một công việc xung quanh, có thể chỉ địnhlocalhostĐịa chỉ127.0.0.1và kèo bóng đá cúp c2 hiện kết nối đến địa chỉ này.

19.2.4.3. Nhận dạng bản đồ

Khi sử dụng kèo bóng đá cúp c2 dựa trên nhận dạng, sau khi có xác định tên của người dùng hệ điều hành bắt đầu kết nối,PostgreSQLKiểm tra xem người dùng đó có phải không được phép kết nối với tư cách là người dùng cơ sở dữ liệu mà anh ấy đang yêu cầu kết nối như. Điều này được kiểm soát bởi đối số bản đồ nhận dạng rằng theo sauNhận dạngTừ khóa trongpg_hba.confTệp. Có a Bản đồ nhận dạng được kèo bóng đá cúp c2 định trướcSakeUser, mà Cho phép bất kỳ người dùng hệ điều hành nào kết nối như cơ sở dữ liệu người dùng cùng tên (nếu cái sau tồn tại). Bản đồ khác phải được tạo thủ công.

Nhận dạng bản đồ khácSoriluSerđược kèo bóng đá cúp c2 định trong tệppg_ident.confTrong thư mục dữ liệu, chứa các dòng của hình thức chung:

tên bản đồ Ident-username Cơ sở dữ liệu-username

Nhận xét và khoảng trắng được xử lý theo cách thông thường. Thetên bản đồlà một tên tùy ý sẽ được sử dụng để tham khảo ánh xạ này trongpg_hba.conf. Hai lĩnh vực khác chỉ định Người dùng hệ điều hành nào được phép kết nối Người dùng cơ sở dữ liệu. Giống nhautên bản đồcó thể được sử dụng nhiều lần để Chỉ định nhiều bản đồ người dùng hơn trong một bản đồ. Không có hạn chế về số lượng người dùng cơ sở dữ liệu đã cho Người dùng hệ điều hành có thể tương ứng và ngược lại.

Thepg_ident.confTệp được đọc Khi khởi động và khi quá trình máy chủ chính (Postmaster) NhậnSIGHUPTín hiệu. Nếu bạn chỉnh sửa tệp trên một hoạt động hệ thống, bạn sẽ cần phải báo hiệuPostmaster(sử dụngpg_ctl Tải lạihoặcKill -hup) để làm cho nó đọc lại tệp.

Apg_ident.conftệp có thể được sử dụng cùng vớipg_hba.confTệp trongVí dụ 19-1được hiển thị trongVí dụ 19-2. Trong thiết lập ví dụ này, bất kỳ ai cũng đăng nhập vào một máy Mạng 192.168 không có tên người dùng UnixBryanh, AnnhoặcRobertSẽ không được cấp quyền truy cập. Unix userRobertsẽ chỉ được phép truy cập khi anh ấy cố gắng kết nối nhưPostgreSQLuserBob, không phảiRoberthoặc bất kỳ ai khác.Annsẽ chỉ được phép kết nối dưới dạngAnn. Người dùngBryanhsẽ được phép kết nối Như một trong haiBryanhBản thân anh ta hoặcGuest1.

Ví dụ 19-2. Một ví dụpg_ident.confFILE

# mapname nhận dạng-username pg-username

Omicron Bryanh Bryanh
Omicron Ann Ann
# Bob có tên người dùng Robert trên các máy này
Omicron Robert Bob
# Bryanh cũng có thể kết nối với tư cách là Guest1
Omicron Bryanh khách1

19.2.5. Pam kèo bóng đá cúp c2

Phương thức kèo bóng đá cúp c2 này hoạt động tương tự nhưMật khẩuNgoại trừ việc nó sử dụng pam (có thể cắm được Mô -đun kèo bóng đá cúp c2) là cơ chế kèo bóng đá cúp c2. Các Tên dịch vụ PAM mặc định làPostgreSQL. Bạn có thể tùy chọn cung cấp cho bạn riêng Tên dịch vụ sauPAMTừ khóa trong Tệppg_hba.conf. Để biết thêm thông tin về pam, vui lòng đọcLinux-Pamtrangvà TheSolarisPam Trang.