19.3. ÐеÑÐ¾Ð´Ñ Ð°ÑÑенÑиÑикаÑии
- 19.3.1. ÐÑÑенÑиÑикаÑÐ¸Ñ trust
- 19.3.2. ÐÑÑенÑиÑикаÑÐ¸Ñ password
- 19.3.3. ÐÑÑенÑиÑикаÑÐ¸Ñ GSSAPI
- 19.3.4. ÐÑÑенÑиÑикаÑÐ¸Ñ SSPI
- 19.3.5. ÐÑÑенÑиÑикаÑÐ¸Ñ ident
- 19.3.6. ÐÑÑенÑиÑикаÑÐ¸Ñ peer
- 19.3.7. ÐÑÑенÑиÑикаÑÐ¸Ñ LDAP
- 19.3.8. ÐÑÑенÑиÑикаÑÐ¸Ñ RADIUS
- 19.3.9. ÐÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ ÑеÑÑиÑикаÑÑ
- 19.3.10. ÐÑÑенÑиÑикаÑÐ¸Ñ PAM
- 19.3.11. ÐÑÑенÑиÑикаÑÐ¸Ñ BSD
- 19.3.2. ÐÑÑенÑиÑикаÑÐ¸Ñ password
СледÑÑÑие подÑÐ°Ð·Ð´ÐµÐ»Ñ ÑодеÑÐ¶Ð°Ñ Ð±Ð¾Ð»ÐµÐµ деÑалÑнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ меÑÐ¾Ð´Ð°Ñ Ð°ÑÑенÑиÑикаÑии.
19.3.1. ÐÑÑенÑиÑикаÑÐ¸Ñ trust
Ðогда Ñказан ÑпоÑоб аÑÑенÑиÑикаÑии trust, Postgres Pro пÑедполагаеÑ, ÑÑо лÑбой подклÑÑаÑÑийÑÑ Ðº ÑеÑвеÑÑ Ð°Ð²ÑоÑизован Ð´Ð»Ñ Ð´Ð¾ÑÑÑпа к базе даннÑÑ
вне завиÑимоÑÑи Ð¾Ñ Ñказанного имени полÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
(даже еÑли ÑÑо Ð¸Ð¼Ñ ÑÑпеÑполÑзоваÑелÑ). ÐонеÑно, огÑаниÑениÑ, пÑопиÑаннÑе в ÑÑолбÑаÑ
база и полÑзоваÑелÑ, пÑодолжаÑÑ ÑабоÑаÑÑ. ÐÑÐ¾Ñ Ð¼ÐµÑод должен пÑименÑÑÑÑÑ ÑолÑко в Ñом ÑлÑÑае, когда на ÑÑовне опеÑаÑионной ÑиÑÑÐµÐ¼Ñ Ð¾Ð±ÐµÑпеÑена адекваÑÐ½Ð°Ñ Ð·Ð°ÑиÑа Ð¾Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений к ÑеÑвеÑÑ.
ÐÑÑенÑиÑикаÑÐ¸Ñ trust оÑÐµÐ½Ñ Ñдобна Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑнÑÑ
подклÑÑений на однополÑзоваÑелÑÑкой ÑабоÑей ÑÑанÑии. Ðо Ñам по Ñебе ÑÑÐ¾Ñ Ð¼ÐµÑод обÑÑно не подÑ
Ð¾Ð´Ð¸Ñ Ð´Ð»Ñ Ð¼Ð°Ñин Ñ Ð½ÐµÑколÑкими полÑзоваÑелÑми. Ðднако Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ trust даже на многополÑзоваÑелÑÑкой маÑине, еÑли огÑаниÑиÑе доÑÑÑп к ÑÐ°Ð¹Ð»Ñ Unix-ÑокеÑа ÑеÑвеÑа на ÑÑовне Ñайловой ÑиÑÑемÑ. ÐÐ»Ñ ÑÑого ÑÑÑановиÑе конÑигÑÑаÑионнÑе паÑамеÑÑÑ unix_socket_permissions (и, возможно, unix_socket_group) как опиÑано в Разделе 18.3. Ðибо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑÑановиÑÑ ÐºÐ¾Ð½ÑигÑÑаÑионнÑй паÑамеÑÑ unix_socket_directories, ÑÑÐ¾Ð±Ñ ÑазмеÑÑиÑÑ Ñайл ÑокеÑа в должнÑм обÑазом заÑиÑÑнном каÑалоге.
УÑÑановка ÑазÑеÑений на ÑÑовне Ñайловой ÑиÑÑÐµÐ¼Ñ Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ ÑолÑко в ÑлÑÑае подклÑÑений ÑеÑез Unix-ÑокеÑÑ. Ðа локалÑнÑе подклÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ TCP/IP огÑаниÑÐµÐ½Ð¸Ñ Ñайловой ÑиÑÑÐµÐ¼Ñ Ð½Ðµ влиÑÑÑ. ÐоÑÑомÑ, еÑли Ð²Ñ Ñ
оÑиÑе иÑполÑзоваÑÑ ÑазÑеÑÐµÐ½Ð¸Ñ Ñайловой ÑиÑÑÐµÐ¼Ñ Ð´Ð»Ñ Ð¾Ð±ÐµÑпеÑÐµÐ½Ð¸Ñ Ð»Ð¾ÐºÐ°Ð»Ñной безопаÑноÑÑи, ÑбеÑиÑе ÑÑÑÐ¾ÐºÑ host ... 127.0.0.1 ... из pg_hba.conf или ÑмениÑе меÑод аÑÑенÑиÑикаÑии.
ÐеÑод аÑÑенÑиÑикаÑии trust Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений по TCP/IP допÑÑÑим ÑолÑко в ÑлÑÑае, еÑли Ð²Ñ Ð´Ð¾Ð²ÐµÑÑеÑе ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа, полÑÑивÑÐµÐ¼Ñ ÑазÑеÑение на подклÑÑение к ÑеÑвеÑÑ ÑÑÑоками Ñайла pg_hba.conf, ÑказÑваÑÑими меÑод trust. Ðе ÑÑÐ¾Ð¸Ñ Ð¸ÑполÑзоваÑÑ trust Ð´Ð»Ñ Ð»ÑбÑÑ
подклÑÑений по TCP/IP, оÑлиÑнÑÑ
Ð¾Ñ localhost (127.0.0.1).
19.3.2. ÐÑÑенÑиÑикаÑÐ¸Ñ password
СÑÑеÑÑвÑÐµÑ Ð½ÐµÑколÑко меÑодов аÑÑенÑиÑикаÑии по паÑолÑ. Ðни ÑабоÑаÑÑ Ð¿ÑимеÑно одинаково, но ÑазлиÑаÑÑÑÑ Ñем, как паÑоли полÑзоваÑелей Ñ ÑанÑÑÑÑ Ð½Ð° ÑеÑвеÑе и как паÑÐ¾Ð»Ñ Ð¿ÐµÑедаÑÑÑÑ Ð¾Ñ ÐºÐ»Ð¸ÐµÐ½Ñа по ÐºÐ°Ð½Ð°Ð»Ñ ÑвÑзи.
scram-sha-256С меÑодом
scram-sha-256вÑполнÑеÑÑÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ SCRAM-SHA-256, как опиÑано в RFC 7677. Ðна пÑоизводиÑÑÑ Ð¿Ð¾ ÑÑ ÐµÐ¼Ðµ вÑзов-оÑвеÑ, коÑоÑÐ°Ñ Ð¿ÑедоÑвÑаÑÐ°ÐµÑ Ð¿ÐµÑÐµÑ Ð²Ð°Ñ Ð¿Ð°Ñолей ÑеÑез недовеÑеннÑе ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ñ Ñанение паÑолей на ÑеÑвеÑе в виде кÑипÑогÑаÑиÑеÑкого Ñ ÐµÑа, ÑÑо ÑÑиÑаеÑÑÑ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑнÑм.ÐÑо наиболее безопаÑнÑй из ÑÑÑеÑÑвÑÑÑÐ¸Ñ Ð½Ð° даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¼ÐµÑодов, но он не поддеÑживаеÑÑÑ ÑÑаÑÑми клиенÑÑкими библиоÑеками.
md5ÐÐ»Ñ Ð¼ÐµÑода
md5Ñеализован менее безопаÑнÑй Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼ вÑзов-оÑвеÑ. Ðн пÑедоÑвÑаÑÐ°ÐµÑ Ð¿ÐµÑÐµÑ Ð²Ð°Ñ Ð¿Ð°Ñолей и пÑедÑÑмаÑÑÐ¸Ð²Ð°ÐµÑ Ñ Ñанение паÑолей на ÑеÑвеÑе в заÑиÑÑованном виде, но не заÑиÑÐ°ÐµÑ Ð² ÑлÑÑае Ð¿Ð¾Ñ Ð¸ÑÐµÐ½Ð¸Ñ Ñ ÐµÑей паÑолей Ñ ÑеÑвеÑа. ÐÑоме Ñого, алгоÑиÑм Ñ ÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ MD5 в наÑи дни Ñже Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ заÑиÑиÑÑ Ð¾Ñ ÑеленапÑавленнÑÑ Ð°Ñак.ÐеÑод
md5неÑовмеÑÑим Ñ ÑÑнкÑионалÑноÑÑÑÑ db_user_namespace.ÐÐ»Ñ Ð¾Ð±Ð»ÐµÐ³ÑÐµÐ½Ð¸Ñ Ð¿ÐµÑÐµÑ Ð¾Ð´Ð° Ð¾Ñ Ð¼ÐµÑода
md5к более Ð½Ð¾Ð²Ð¾Ð¼Ñ Ð¼ÐµÑÐ¾Ð´Ñ SCRAM, еÑли в каÑеÑÑве меÑода аÑÑенÑиÑикаÑии вpg_hba.confÑказанmd5, но паÑÐ¾Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð½Ð° ÑеÑвеÑе заÑиÑÑован Ð´Ð»Ñ SCRAM (Ñм. ниже), авÑомаÑиÑеÑки бÑÐ´ÐµÑ Ð¿ÑоизводиÑÑÑÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ Ð½Ð° базе SCRAM.passwordС меÑодом
passwordпаÑÐ¾Ð»Ñ Ð¿ÐµÑедаÑÑÑÑ Ð² оÑкÑÑÑом виде и поÑÑÐ¾Ð¼Ñ ÑвлÑеÑÑÑ ÑÑзвимÑм Ð´Ð»Ñ Ð°Ñак Ñ Ð¿ÐµÑÐµÑ Ð²Ð°Ñом ÑÑаÑика. Ðго ÑледÑÐµÑ Ð¸Ð·Ð±ÐµÐ³Ð°ÑÑ Ð²Ñегда, еÑли ÑÑо возможно. Ðднако еÑли подклÑÑение заÑиÑено SSL, меÑодpasswordÐ¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð±ÐµÐ·Ð¾Ð¿Ð°Ñен. (ХоÑÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ ÑеÑÑиÑикаÑÑ SSL Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»ÑÑÑим вÑбоÑом когда иÑполÑзÑеÑÑÑ SSL).
ÐаÑоли баз даннÑÑ
Postgres Pro оÑÐ´ÐµÐ»ÐµÐ½Ñ Ð¾Ñ Ð¿Ð°Ñолей полÑзоваÑелей опеÑаÑионной ÑиÑÑемÑ. ÐаÑоли вÑеÑ
полÑзоваÑелей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
Ñ
ÑанÑÑÑÑ Ð²Ð¾ внÑÑÑеннем каÑалоге pg_authid. УпÑавлÑÑÑ Ð¿Ð°ÑолÑми можно, либо иÑполÑзÑÑ SQL-ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ CREATE USER и ALTER ROLE, напÑимеÑ, CREATE USER foo WITH PASSWORD 'secret', либо Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ psql \password. ÐÑли паÑÐ¾Ð»Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð½Ðµ задан, вмеÑÑо него Ñ
ÑаниÑÑÑ NULL, и пÑойÑи аÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ паÑÐ¾Ð»Ñ ÑÑÐ¾Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð½Ðµ ÑможеÑ.
ÐоÑÑÑпноÑÑÑ ÑазлиÑнÑÑ
меÑодов аÑÑенÑиÑикаÑии по паÑÐ¾Ð»Ñ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ Ð¾Ñ Ñого, как паÑоли полÑзоваÑелей ÑиÑÑÑÑÑÑÑ Ð½Ð° ÑеÑвеÑе (или, говоÑÑ ÑоÑнее, Ñ
еÑиÑÑÑÑÑÑ). ÐÑо опÑеделÑеÑÑÑ Ð¿Ð°ÑамеÑÑом конÑигÑÑаÑии password_encryption в Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ð°Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑолÑ. ÐÑли паÑÐ¾Ð»Ñ ÑиÑÑÑеÑÑÑ Ð² Ñежиме scram-sha-256, его можно бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð´Ð»Ñ Ð¼ÐµÑодов аÑÑенÑиÑикаÑии scram-sha-256 и password (но в поÑледнем ÑлÑÑае он бÑÐ´ÐµÑ Ð¿ÐµÑедаваÑÑÑÑ Ð¾ÑкÑÑÑÑм ÑекÑÑом). Ð ÑлÑÑае ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¼ÐµÑода аÑÑенÑиÑикаÑии md5 пÑи ÑÑом пÑоизойдÑÑ Ð°Ð²ÑомаÑиÑеÑкий пеÑеÑ
од к иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ scram-sha-256, как Ñказано вÑÑе, Ñак ÑÑо ÑÑÐ¾Ñ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ñоже бÑÐ´ÐµÑ ÑабоÑаÑÑ. ÐÑли паÑÐ¾Ð»Ñ ÑиÑÑÑеÑÑÑ Ð² Ñежиме md5, его можно бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ ÑолÑко Ð´Ð»Ñ Ð¼ÐµÑодов аÑÑенÑиÑикаÑии md5 и password (и в поÑледнем ÑлÑÑае он Ñак же бÑÐ´ÐµÑ Ð¿ÐµÑедаваÑÑÑÑ Ð¾ÑкÑÑÑÑм ÑекÑÑом). (Ранние веÑÑии Postgres Pro поддеÑживали Ñ
Ñанение паÑолей на ÑеÑвеÑе в оÑкÑÑÑом виде, но ÑепеÑÑ ÑÑо невозможно.) ЧÑÐ¾Ð±Ñ Ð¿ÑоÑмоÑÑеÑÑ Ñ
ÑанÑÑиеÑÑ Ð² ÐÐ Ñ
еÑи паÑолей, обÑаÑиÑеÑÑ Ðº ÑиÑÑÐµÐ¼Ð½Ð¾Ð¼Ñ ÐºÐ°ÑÐ°Ð»Ð¾Ð³Ñ pg_authid.
ÐÐ»Ñ Ð¿ÐµÑевода ÑÑÑеÑÑвÑÑÑей инÑÑаллÑÑии Ñ md5 на scram-sha-256, поÑле Ñого как вÑе клиенÑÑкие библиоÑеки бÑдÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð´Ð¾ веÑÑий, поддеÑживаÑÑиÑ
SCRAM, задайÑе password_encryption = 'scram-sha-256' в postgresql.conf, добейÑеÑÑ, ÑÑÐ¾Ð±Ñ Ð²Ñе полÑзоваÑели Ñменили Ñвои паÑоли, а заÑем поменÑйÑе ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¼ÐµÑода аÑÑенÑиÑикаÑии в pg_hba.conf на scram-sha-256.
19.3.3. ÐÑÑенÑиÑикаÑÐ¸Ñ GSSAPI
GSSAPI ÑвлÑеÑÑÑ Ð¿ÑоÑоколом оÑÑаÑлевого ÑÑандаÑÑа Ð´Ð»Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°Ñной авÑоÑизаÑии, опÑеделÑннÑм в RFC 2743. Postgres Pro поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ GSSAPI Ñ Kerberos аÑÑенÑиÑикаÑией Ñ ÑооÑвеÑÑÑвии Ñ RFC 1964. GSSAPI обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð°Ð²ÑомаÑиÑеÑкÑÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ (single sign-on), Ð´Ð»Ñ ÑиÑÑем, коÑоÑÑе ÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ. Сама по Ñебе аÑÑенÑиÑикаÑÐ¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°Ñна, но даннÑе, оÑÑÑлаемÑе в Ñ Ð¾Ð´Ðµ подклÑÑÐµÐ½Ð¸Ñ Ðº базе даннÑÑ , не заÑиÑенÑ, еÑли не иÑполÑзÑеÑÑÑ SSL.
ÐоддеÑжка GSSAPI должна бÑÑÑ Ð²ÐºÐ»ÑÑена пÑи ÑбоÑке Postgres Pro Standard.
ÐÑи ÑабоÑе Ñ Kerberos GSSAPI иÑполÑзÑÐµÑ ÑÑандаÑÑнÑе ÑÑÑÑнÑе запиÑи в ÑоÑмаÑе . СеÑÐ²ÐµÑ Postgres Pro пÑÐ¸Ð¼ÐµÑ Ð»Ñбого пÑинÑипала, вклÑÑÑнного в иÑполÑзÑемÑй ÑеÑвеÑом Ñайл ÑаблиÑÑ ÐºÐ»ÑÑей, но необÑ
одимо пÑоÑвиÑÑ Ð¾ÑÑоÑожноÑÑÑ Ð² Ñказании коÑÑекÑнÑÑ
деÑалей пÑинÑипала в Ñ
оде ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ ÐºÐ»Ð¸ÐµÐ½Ñом, пÑименÑÑÑим паÑамеÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ servicename/hostname@realmkrbsrvname. (См. Ñакже ÐодÑаздел 31.1.2.) ÐнаÑение имени ÑеÑвиÑа по ÑмолÑÐ°Ð½Ð¸Ñ postgres Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾ во вÑÐµÐ¼Ñ ÑбоÑки Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ./configure --with-krb-srvnam=whatever. РболÑÑинÑÑве ÑÑед изменÑÑÑ Ð´Ð°Ð½Ð½Ñй паÑамеÑÑ Ð½Ðµ ÑÑебÑеÑÑÑ. Ðднако некоÑоÑÑе ÑеализаÑии Kerberos могÑÑ Ð¿Ð¾ÑÑебоваÑÑ Ð¸Ð½Ð¾Ð³Ð¾ имени ÑеÑвиÑа, напÑимеÑ, Microsoft Active Directory ÑÑебÑеÑ, ÑÑÐ¾Ð±Ñ Ð¸Ð¼Ñ ÑеÑвиÑа бÑло набÑано заглавнÑми бÑквами (POSTGRES).
hostname здеÑÑ â ÑÑо полное доменное Ð¸Ð¼Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа, где ÑабоÑÐ°ÐµÑ ÑеÑвеÑ. ÐблаÑÑÑÑ ÑÑбÑекÑа-ÑлÑÐ¶Ð±Ñ ÑвлÑеÑÑÑ Ð¿ÑедпоÑиÑÐ°ÐµÐ¼Ð°Ñ Ð¾Ð±Ð»Ð°ÑÑÑ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ компÑÑÑеÑа.
ÐÑинÑÐ¸Ð¿Ð°Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñов могÑÑ Ð±ÑÑÑ ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ñ ÑазлиÑнÑми именами полÑзоваÑелей баз даннÑÑ
Postgres Pro в pg_ident.conf. ÐапÑимеÑ, пÑинÑÐ¸Ð¿Ð°Ð»Ñ pgusername@realm Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑопоÑÑавлено пÑоÑÑо pgusername. Так же возможно иÑполÑзоваÑÑ Ð² каÑеÑÑве имени Ñоли в Postgres Pro полное Ð¸Ð¼Ñ Ð¿ÑинÑипала username@realm без какого-либо ÑопоÑÑавлениÑ.
Postgres Pro Ñакже поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÑбиÑаÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¸Ð· имени пÑинÑипала. ÐÑа возможноÑÑÑ Ð¾ÑÑавлена Ð´Ð»Ñ Ð¾Ð±ÑаÑной ÑовмеÑÑимоÑÑи и иÑполÑзоваÑÑ ÐµÑ ÐºÑайне нежелаÑелÑно, Ñак как пÑи ÑÑом оказÑваеÑÑÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ ÑазлиÑиÑÑ ÑазнÑÑ
полÑзоваÑелей, имеÑÑиÑ
одинаковÑе имена, но пÑиÑ
одÑÑиÑ
из ÑазнÑÑ
облаÑÑей. ЧÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ ÐµÑ, ÑÑÑановиÑе Ð´Ð»Ñ include_realm знаÑение 0. РпÑоÑÑÑÑ
конÑигÑÑаÑиÑÑ
Ñ Ð¾Ð´Ð½Ð¾Ð¹ облаÑÑÑÑ Ð¸ÑклÑÑение облаÑÑи в ÑоÑеÑании Ñ Ð¿Ð°ÑамеÑÑом krb_realm (коÑоÑÑй позволÑÐµÑ Ð¾Ð³ÑаниÑиÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¾Ð´Ð½Ð¸Ð¼ знаÑением, заданнÑм в krb_realm parameter) бÑÐ´ÐµÑ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑнÑм, но менее гибким ваÑианÑом по ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ ÑвнÑм опиÑанием ÑопоÑÑавлений в pg_ident.conf.
УбедиÑеÑÑ, ÑÑо Ñайл клÑÑей ваÑего ÑеÑвеÑа доÑÑÑпен Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ (и желаÑелÑно недоÑÑÑпен Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи) ÑÑÑÑной запиÑи ÑеÑвеÑа Postgres Pro. (См. Ñакже Раздел 17.1.) РаÑположение ÑÑого Ñайла клÑÑей ÑказÑваеÑÑÑ Ð¿Ð°ÑамеÑÑом krb_server_keyfile. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑо /usr/local/pgsql/etc/krb5.keytab (каÑалог Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´ÑÑгим, в завиÑимоÑÑи Ð¾Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ sysconfdir пÑи ÑбоÑке). Ðз ÑообÑажений безопаÑноÑÑи ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ Ð¾ÑделÑнÑй Ñайл keytab Ð´Ð»Ñ ÑеÑвеÑа Postgres Pro, а не оÑкÑÑваÑÑ Ð´Ð¾ÑÑÑп к обÑеÑиÑÑÐµÐ¼Ð½Ð¾Ð¼Ñ ÑайлÑ.
Файл ÑаблиÑÑ ÐºÐ»ÑÑей генеÑиÑÑеÑÑÑ Ð¿ÑогÑаммнÑм обеÑпеÑением Kerberos; подÑобнее ÑÑо опиÑано в докÑменÑаÑии Kerberos. СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð´Ð»Ñ MIT-ÑовмеÑÑимÑÑ ÑеализаÑий Kerberos 5:
kadmin%ank -randkey postgres/server.my.domain.orgkadmin%ktadd -k krb5.keytab postgres/server.my.domain.org
ÐÑи подклÑÑении к базе даннÑÑ
ÑбедиÑеÑÑ, ÑÑо Ñ Ð²Ð°Ñ ÐµÑÑÑ ÑазÑеÑение на ÑопоÑÑавление пÑинÑипала Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ полÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. ÐапÑимеÑ, Ð´Ð»Ñ Ð¸Ð¼ÐµÐ½Ð¸ полÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
fred, пÑинÑипал [email protected] ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ. ЧÑÐ¾Ð±Ñ Ð´Ð°ÑÑ ÑазÑеÑение на подклÑÑение пÑинÑÐ¸Ð¿Ð°Ð»Ñ fred/[email protected], иÑполÑзÑйÑе Ñайл ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð¼Ñн полÑзоваÑелей, как опиÑано в Разделе 19.2.
ÐÐ»Ñ Ð¼ÐµÑода GSSAPI доÑÑÑÐ¿Ð½Ñ ÑледÑÑÑие паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии:
include_realmÐогда ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ñавен 0, из пÑинÑипала аÑÑенÑиÑиÑиÑованного полÑзоваÑÐµÐ»Ñ ÑбиÑаеÑÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ, и оÑÑавÑееÑÑ Ð¸Ð¼Ñ Ð¿ÑÐ¾Ñ Ð¾Ð´Ð¸Ñ ÑопоÑÑавление имÑн (Ñм. Раздел 19.2). ÐÑÐ¾Ñ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ð½Ðµ ÑекомендÑеÑÑÑ Ð¸ поддеÑживаеÑÑÑ Ð² оÑновном Ð´Ð»Ñ Ð¾Ð±ÑаÑной ÑовмеÑÑимоÑÑи, Ñак как он небезопаÑен в окÑÑжениÑÑ Ñ Ð½ÐµÑколÑкими облаÑÑÑми, еÑли ÑолÑко дополниÑелÑно не задаÑÑÑÑ
krb_realm. Ðолее пÑедпоÑÑиÑелÑнÑй ваÑÐ¸Ð°Ð½Ñ â оÑÑавиÑÑ Ð·Ð½Ð°Ñениеinclude_realmпо ÑмолÑÐ°Ð½Ð¸Ñ (1) и задаÑÑ Ð²pg_ident.confÑвное ÑопоÑÑавление Ð´Ð»Ñ Ð¿ÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð¼Ñн пÑинÑипалов в имена полÑзоваÑелей Postgres Pro.mapРазÑеÑÐ°ÐµÑ ÑопоÑÑавление имÑн полÑзоваÑелей ÑиÑÑÐµÐ¼Ñ Ð¸ полÑзоваÑелей баз даннÑÑ . Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº РазделÑ 19.2. ÐÐ»Ñ Ð¿ÑинÑипала GSSAPI/Kerberos, Ñакого как
[email protected](или более Ñедкогоusername/[email protected]), именем полÑзоваÑÐµÐ»Ñ Ð² ÑопоÑÑавлении бÑдеÑ[email protected](илиusername/[email protected], ÑооÑвеÑÑÑвенно), еÑлиinclude_realmне Ñавно 0; в пÑоÑивном ÑлÑÑае именем ÑиÑÑемного полÑзоваÑÐµÐ»Ñ Ð² ÑопоÑÑавлении бÑдеÑusername(илиusername/hostbased).krb_realmУÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¾Ð±Ð»Ð°ÑÑÑ, Ñ ÐºÐ¾ÑоÑой бÑдÑÑ ÑвеÑÑÑÑÑÑ Ð¸Ð¼ÐµÐ½Ð° пÑинÑипалов полÑзоваÑелей. ÐÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð·Ð°Ð´Ð°Ð½, подклÑÑаÑÑÑÑ ÑмогÑÑ ÑолÑко полÑзоваÑели из ÑÑой облаÑÑи. ÐÑли не задан, подклÑÑаÑÑÑÑ ÑмогÑÑ Ð¿Ð¾Ð»ÑзоваÑели из лÑбой облаÑÑи, в завиÑимоÑÑи Ð¾Ñ ÑÑÑановленного ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð¼Ñн полÑзоваÑелей.
19.3.4. ÐÑÑенÑиÑикаÑÐ¸Ñ SSPI
SSPI â ÑеÑ
Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ Windows Ð´Ð»Ñ Ð·Ð°ÑиÑÑнной аÑÑенÑиÑикаÑии Ñ ÐµÐ´Ð¸Ð½ÑÑвеннÑм вÑ
одом. Postgres Pro иÑполÑзÑÐµÑ SSPI в Ñежиме negotiate, коÑоÑÑй пÑименÑÐµÑ Kerberos, когда ÑÑо возможно, и авÑомаÑиÑеÑки возвÑаÑаеÑÑÑ Ðº NTLM в дÑÑгиÑ
ÑлÑÑаÑÑ
. ÐÑÑенÑиÑикаÑÐ¸Ñ SSPI возможна ÑолÑко когда и ÑеÑвеÑ, и ÐºÐ»Ð¸ÐµÐ½Ñ ÑабоÑаÑÑ Ð½Ð° плаÑÑоÑме Windows или на дÑÑгиÑ
плаÑÑоÑмаÑ
, где доÑÑÑпен GSSAPI.
ÐÑли иÑполÑзÑеÑÑÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ Kerberos, SSPI ÑабоÑÐ°ÐµÑ Ñак же, как GSSAPI; подÑобнее об ÑÑом ÑаÑÑказÑваеÑÑÑ Ð² ÐодÑазделе 19.3.3.
ÐÐ»Ñ SSPI доÑÑÑÐ¿Ð½Ñ ÑледÑÑÑие паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии:
include_realmÐогда ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ñавен 0, из пÑинÑипала аÑÑенÑиÑиÑиÑованного полÑзоваÑÐµÐ»Ñ ÑбиÑаеÑÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ, и оÑÑавÑееÑÑ Ð¸Ð¼Ñ Ð¿ÑÐ¾Ñ Ð¾Ð´Ð¸Ñ ÑопоÑÑавление имÑн (Ñм. Раздел 19.2). ÐÑÐ¾Ñ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ð½Ðµ ÑекомендÑеÑÑÑ Ð¸ поддеÑживаеÑÑÑ Ð² оÑновном Ð´Ð»Ñ Ð¾Ð±ÑаÑной ÑовмеÑÑимоÑÑи, Ñак как он небезопаÑен в окÑÑжениÑÑ Ñ Ð½ÐµÑколÑкими облаÑÑÑми, еÑли ÑолÑко дополниÑелÑно не задаÑÑÑÑ
krb_realm. Ðолее пÑедпоÑÑиÑелÑнÑй ваÑÐ¸Ð°Ð½Ñ â оÑÑавиÑÑ Ð·Ð½Ð°Ñениеinclude_realmпо ÑмолÑÐ°Ð½Ð¸Ñ (1) и задаÑÑ Ð²pg_ident.confÑвное ÑопоÑÑавление Ð´Ð»Ñ Ð¿ÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð¼Ñн пÑинÑипалов в имена полÑзоваÑелей Postgres Pro.compat_realmÐÑли Ñавен 1, Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа
include_realmпÑименÑеÑÑÑ Ð¸Ð¼Ñ Ð´Ð¾Ð¼ÐµÐ½Ð°, ÑовмеÑÑимое Ñ SAM (Ñакже извеÑÑное как Ð¸Ð¼Ñ NetBIOS). ÐÑо ваÑÐ¸Ð°Ð½Ñ Ð¿Ð¾ ÑмолÑаниÑ. ÐÑли он Ñавен 0, Ð´Ð»Ñ Ð¸Ð¼ÐµÐ½Ð¸ пÑинÑипала Kerberos пÑименÑеÑÑÑ Ð´ÐµÐ¹ÑÑвиÑелÑное Ð¸Ð¼Ñ Ð¾Ð±Ð»Ð°ÑÑи.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ оÑклÑÑиÑÑ, ÑолÑко еÑли Ð²Ð°Ñ ÑеÑÐ²ÐµÑ ÑабоÑÐ°ÐµÑ Ð¿Ð¾Ð´ именем доменного полÑзоваÑÐµÐ»Ñ (в Ñом ÑиÑле, виÑÑÑалÑного полÑзоваÑÐµÐ»Ñ ÑлÑÐ¶Ð±Ñ Ð½Ð° компÑÑÑеÑе, вклÑÑÑнном в домен) и вÑе клиенÑÑ, пÑÐ¾Ñ Ð¾Ð´ÑÑие пÑовеÑÐºÑ Ð¿Ð¾Ð´Ð»Ð¸Ð½Ð½Ð¾ÑÑи ÑеÑез SSPI, Ñакже иÑполÑзÑÑÑ Ð´Ð¾Ð¼ÐµÐ½Ð½Ñе ÑÑÑÑнÑе запиÑи; в пÑоÑивном ÑлÑÑае аÑÑенÑиÑикаÑÐ¸Ñ Ð½Ðµ бÑÐ´ÐµÑ Ð²Ñполнена.
upn_usernameÐÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð²ÐºÐ»ÑÑÑн вмеÑÑе Ñ
compat_realm, Ð´Ð»Ñ Ð°ÑÑенÑиÑикаÑии пÑименÑеÑÑÑ Ð¸Ð¼Ñ Kerberos UPN. ÐÑли он оÑклÑÑÑн (по ÑмолÑаниÑ), пÑименÑеÑÑÑ SAM-ÑовмеÑÑимое Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ñ Ð½Ð¾Ð²ÑÑ ÑÑÑÑнÑÑ Ð·Ð°Ð¿Ð¸Ñей ÑÑи два имени ÑовпадаÑÑ.ÐамеÑÑÑе, ÑÑо libpq иÑполÑзÑÐµÑ Ð¸Ð¼Ñ, ÑовмеÑÑимое Ñ SAM, еÑли Ð¸Ð¼Ñ Ð½Ðµ задано Ñвно. ÐÑли Ð²Ñ Ð¿ÑименÑеÑе libpq или дÑÐ°Ð¹Ð²ÐµÑ Ð½Ð° его базе, ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ ÑледÑÐµÑ Ð¾ÑÑавиÑÑ Ð¾ÑклÑÑÑннÑм, либо Ñвно задаваÑÑ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð² ÑÑÑоке подклÑÑениÑ.
mapÐозволÑÐµÑ ÑопоÑÑавиÑÑ Ð¿Ð¾Ð»ÑзоваÑелей ÑиÑÑÐµÐ¼Ñ Ñ Ð¿Ð¾Ð»ÑзоваÑелÑми баз даннÑÑ . Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº РазделÑ 19.2. ÐÐ»Ñ Ð¿ÑинÑипала SSPI/Kerberos, Ñакого как
[email protected](или более Ñедкогоusername/[email protected]), именем полÑзоваÑÐµÐ»Ñ Ð² ÑопоÑÑавлении бÑдеÑ[email protected](илиusername/[email protected], ÑооÑвеÑÑÑвенно), еÑлиinclude_realmне Ñавно 0; в пÑоÑивном ÑлÑÑае именем ÑиÑÑемного полÑзоваÑÐµÐ»Ñ Ð² ÑопоÑÑавлении бÑдеÑusername(илиusername/hostbased).krb_realmУÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¾Ð±Ð»Ð°ÑÑÑ, Ñ ÐºÐ¾ÑоÑой бÑдÑÑ ÑвеÑÑÑÑÑÑ Ð¸Ð¼ÐµÐ½Ð° пÑинÑипалов полÑзоваÑелей. ÐÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð·Ð°Ð´Ð°Ð½, подклÑÑаÑÑÑÑ ÑмогÑÑ ÑолÑко полÑзоваÑели из ÑÑой облаÑÑи. ÐÑли не задан, подклÑÑаÑÑÑÑ ÑмогÑÑ Ð¿Ð¾Ð»ÑзоваÑели из лÑбой облаÑÑи, в завиÑимоÑÑи Ð¾Ñ ÑÑÑановленного ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð¼Ñн полÑзоваÑелей.
19.3.5. ÐÑÑенÑиÑикаÑÐ¸Ñ ident
ÐеÑод аÑÑенÑиÑикаÑии ident ÑабоÑаеÑ, полÑÑÐ°Ñ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¾Ð¿ÐµÑаÑионной ÑиÑÑÐµÐ¼Ñ ÐºÐ»Ð¸ÐµÐ½Ñа Ð¾Ñ ÑеÑвеÑа Ident и иÑполÑзÑÑ ÐµÐ³Ð¾ в каÑеÑÑве ÑазÑеÑÑнного имени полÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ (Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñм ÑопоÑÑавлением имÑн полÑзоваÑелÑ). СпоÑоб доÑÑÑпен ÑолÑко Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений по TCP/IP.
ÐÑимеÑание
Ðогда Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»Ñного подклÑÑÐµÐ½Ð¸Ñ (не TCP/IP) Ñказан ident, вмеÑÑо него иÑполÑзÑеÑÑÑ Ð¼ÐµÑод аÑÑенÑиÑикаÑии peer (Ñм. ÐодÑаздел 19.3.6).
ÐÐ»Ñ Ð¼ÐµÑода ident доÑÑÑÐ¿Ð½Ñ ÑледÑÑÑие паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии:
mapÐозволÑÐµÑ ÑопоÑÑавиÑÑ Ð¸Ð¼ÐµÐ½Ð° полÑзоваÑелей ÑиÑÑÐµÐ¼Ñ Ð¸ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº РазделÑ 19.2.
ÐÑоÑокол «Identification» (Ident) опиÑан в RFC 1413. ÐÑакÑиÑеÑки ÐºÐ°Ð¶Ð´Ð°Ñ Unix-Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð°Ñ Ð¾Ð¿ÐµÑаÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑиÑÑема поÑÑавлÑеÑÑÑ Ñ ÑеÑвеÑом Ident, по ÑмолÑÐ°Ð½Ð¸Ñ ÑлÑÑаÑÑим TCP-поÑÑ 113. ÐÐ°Ð·Ð¾Ð²Ð°Ñ ÑÑнкÑÐ¸Ñ ÑÑого ÑеÑвеÑа â оÑвеÑаÑÑ Ð½Ð° вопÑоÑÑ, вÑоде «Ðакой полÑзоваÑÐµÐ»Ñ Ð¸Ð½Ð¸ÑииÑовал подклÑÑение, коÑоÑое Ð¸Ð´ÐµÑ ÑеÑез Ñвой поÑÑ X и подклÑÑаеÑÑÑ Ðº Ð¼Ð¾ÐµÐ¼Ñ Ð¿Ð¾ÑÑÑ Y?». ÐоÑколÑÐºÑ Ð¿Ð¾Ñле ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑизиÑеÑкого подклÑÑÐµÐ½Ð¸Ñ Postgres Pro Ð·Ð½Ð°ÐµÑ Ð¸ X, и Y, он Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð¿ÑаÑиваÑÑ ÑеÑÐ²ÐµÑ Ident на компÑÑÑеÑе клиенÑа и ÑеоÑеÑиÑеÑки Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð¿ÑеделÑÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¾Ð¿ÐµÑаÑионной ÑиÑÑÐµÐ¼Ñ Ð¿Ñи каждом подклÑÑении.
ÐедоÑÑаÑком ÑÑой пÑоÑедÑÑÑ ÑвлÑеÑÑÑ Ñо, ÑÑо она завиÑÐ¸Ñ Ð¾Ñ Ð¸Ð½ÑегÑаÑии Ñ ÐºÐ»Ð¸ÐµÐ½Ñом: еÑли клиенÑÑÐºÐ°Ñ Ð¼Ð°Ñина не вÑзÑÐ²Ð°ÐµÑ Ð´Ð¾Ð²ÐµÑÐ¸Ñ Ð¸Ð»Ð¸ ÑкомпÑомеÑиÑована, злоÑмÑÑленник Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð¿ÑÑÑиÑÑ Ð»ÑбÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð½Ð° поÑÑÑ 113 и веÑнÑÑÑ Ð»Ñбое Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð½Ð° Ñвой вÑбоÑ. ÐоÑÑÐ¾Ð¼Ñ ÑÑÐ¾Ñ Ð¼ÐµÑод аÑÑенÑиÑикаÑии Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ ÑолÑко Ð´Ð»Ñ Ð·Ð°ÐºÑÑÑÑÑ ÑеÑей, где ÐºÐ°Ð¶Ð´Ð°Ñ ÐºÐ»Ð¸ÐµÐ½ÑÑÐºÐ°Ñ Ð¼Ð°Ñина Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð¿Ð¾Ð´ жÑÑÑким конÑÑолем и где админиÑÑÑаÑоÑÑ Ð¾Ð¿ÐµÑаÑионнÑÑ ÑиÑÑем и баз даннÑÑ ÑабоÑаÑÑ Ð² ÑеÑном конÑакÑе. ÐÑÑгими Ñловами, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð´Ð¾Ð²ÐµÑÑÑÑ Ð¼Ð°Ñине, на коÑоÑой ÑабоÑÐ°ÐµÑ ÑеÑÐ²ÐµÑ Ident. ÐомниÑе пÑедÑпÑеждение:
|  | ÐÑоÑокол Ident не пÑедназнаÑен Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² каÑеÑÑве пÑоÑокола авÑоÑизаÑии и конÑÑÐ¾Ð»Ñ Ð´Ð¾ÑÑÑпа. |  |
| Â | --RFC 1413 | |
У некоÑоÑÑÑ ÑеÑвеÑов Ident еÑÑÑ Ð½ÐµÑÑандаÑÑÐ½Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ, позволÑÑÑÐ°Ñ Ð·Ð°ÑиÑÑоваÑÑ Ð²Ð¾Ð·Ð²ÑаÑаемое Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, иÑполÑзÑÑ ÐºÐ»ÑÑ, коÑоÑÑй извеÑÑен ÑолÑко админиÑÑÑаÑоÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ компÑÑÑеÑа. ÐÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð½ÐµÐ»ÑÐ·Ñ Ð¸ÑполÑзоваÑÑ Ñ Postgres Pro, поÑколÑÐºÑ Postgres Pro не ÑÐ¼Ð¾Ð¶ÐµÑ ÑаÑÑиÑÑоваÑÑ Ð²Ð¾Ð·Ð²ÑаÑаемÑÑ ÑÑÑÐ¾ÐºÑ Ð¸ полÑÑиÑÑ ÑакÑиÑеÑкое Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ.
19.3.6. ÐÑÑенÑиÑикаÑÐ¸Ñ peer
ÐеÑод аÑÑенÑиÑикаÑии peer ÑабоÑаеÑ, полÑÑÐ°Ñ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¾Ð¿ÐµÑаÑионной ÑиÑÑÐµÐ¼Ñ ÐºÐ»Ð¸ÐµÐ½Ñа из ÑдÑа и иÑполÑзÑÑ ÐµÐ³Ð¾ в каÑеÑÑве ÑазÑеÑÑнного имени полÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ (Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑÑ ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð¼Ñн полÑзоваÑелÑ). ÐÑÐ¾Ñ Ð¼ÐµÑод поддеÑживаеÑÑÑ ÑолÑко Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений.
ÐÐ»Ñ Ð¼ÐµÑода peer доÑÑÑÐ¿Ð½Ñ ÑледÑÑÑие паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии:
mapÐозволÑÐµÑ ÑопоÑÑавиÑÑ Ð¸Ð¼ÐµÐ½Ð° полÑзоваÑелей ÑиÑÑÐµÐ¼Ñ Ð¸ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº РазделÑ 19.2.
ÐÑÑенÑиÑикаÑÐ¸Ñ peer доÑÑÑпна ÑолÑко в опеÑаÑионнÑÑ
ÑиÑÑемаÑ
, поддеÑживаÑÑиÑ
ÑÑнкÑÐ¸Ñ getpeereid(), паÑамеÑÑ ÑокеÑа SO_PEERCRED или подобнÑе меÑ
анизмÑ. РнаÑÑоÑÑее вÑÐµÐ¼Ñ ÑÑо Linux, болÑÑÐ°Ñ ÑаÑÑÑ ÑазновидноÑÑей BSD, вклÑÑÐ°Ñ macOS, и Solaris.
19.3.7. ÐÑÑенÑиÑикаÑÐ¸Ñ LDAP
ÐаннÑй меÑод аÑÑенÑиÑикаÑии ÑабоÑÐ°ÐµÑ ÑÑ
однÑм Ñ Ð¼ÐµÑодом password обÑазом, за иÑклÑÑением Ñого, ÑÑо он иÑполÑзÑÐµÑ LDAP как меÑод подÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð°ÑолÑ. LDAP иÑполÑзÑеÑÑÑ ÑолÑко Ð´Ð»Ñ Ð¿Ð¾Ð´ÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð°ÑÑ Â«Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ/паÑолÑ». ÐоÑÑÐ¾Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ Ñже ÑÑÑеÑÑвоваÑÑ Ð² базе даннÑÑ
до Ñого, как Ð´Ð»Ñ Ð°ÑÑенÑиÑикаÑии бÑÐ´ÐµÑ Ð¸ÑполÑзован LDAP.
ÐÑÑенÑиÑикаÑÐ¸Ñ LDAP Ð¼Ð¾Ð¶ÐµÑ ÑабоÑаÑÑ Ð² двÑÑ
ÑежимаÑ
. ÐеÑвÑй Ñежим назÑваеÑÑÑ Ð¿ÑоÑÑое ÑвÑзÑвание. Ð Ñ
оде аÑÑенÑиÑикаÑии ÑеÑÐ²ÐµÑ ÑвÑзÑваеÑÑÑ Ñ Ñ
аÑакÑеÑнÑм именем, ÑоÑÑавленнÑм ÑледÑÑÑим обÑазом: prefix username suffix. ÐбÑÑно, паÑамеÑÑ prefix иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ cn= или DOMAIN\ в ÑÑеде Active Directory. suffix иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¾ÑÑавÑейÑÑ ÑаÑÑи DN или в ÑÑеде, оÑлиÑной Ð¾Ñ Active Directory.
Ðо вÑоÑом Ñежиме, коÑоÑÑй Ð¼Ñ Ð½Ð°Ð·Ñваем поиÑк+ÑвÑзÑвание, ÑеÑÐ²ÐµÑ ÑнаÑала ÑвÑзÑваеÑÑÑ Ñ ÐºÐ°Ñалогом LDAP Ñ Ð¿ÑедопÑеделÑннÑм именем полÑзоваÑÐµÐ»Ñ Ð¸ паÑолем, ÑказаннÑм в ldapbinddn и ldapbindpasswd, и вÑполнÑÐµÑ Ð¿Ð¾Ð¸Ñк полÑзоваÑелÑ, пÑÑаÑÑегоÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ Ðº базе даннÑÑ
. ÐÑли Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¸ паÑÐ¾Ð»Ñ Ð½Ðµ опÑеделенÑ, ÑеÑÐ²ÐµÑ Ð¿ÑÑаеÑÑÑ ÑвÑзаÑÑÑÑ Ñ ÐºÐ°Ñалогом анонимно. ÐоиÑк вÑполнÑеÑÑÑ Ð² поддеÑеве ldapbasedn, пÑи ÑÑом пÑовеÑÑÑÑÑ ÑоÑное ÑооÑвеÑÑÑвие имени полÑзоваÑÐµÐ»Ñ Ð°ÑÑибÑÑÑ ldapsearchattribute. Ðак ÑолÑко пÑи поиÑке наÑ
одиÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑ, ÑеÑÐ²ÐµÑ Ð¾ÑклÑÑаеÑÑÑ Ð¸ заново ÑвÑзÑваеÑÑÑ Ñ ÐºÐ°Ñалогом Ñже как ÑÑÐ¾Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, Ñ Ð¿Ð°Ñолем, пеÑеданнÑм клиенÑом, ÑÑÐ¾Ð±Ñ ÑдоÑÑовеÑиÑÑÑÑ, ÑÑо ÑÑÑÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ ÐºÐ¾ÑÑекÑна. ÐÑÐ¾Ñ Ð¶Ðµ Ñежим иÑполÑзÑеÑÑÑ Ð² ÑÑ
емаÑ
LDAP-аÑÑенÑиÑикаÑии в дÑÑгом пÑогÑаммном обеÑпеÑении, напÑимеÑ, в pam_ldap и mod_authnz_ldap в Apache. ÐаннÑй ваÑÐ¸Ð°Ð½Ñ Ð´Ð°ÑÑ Ð±Ð¾Ð»ÑÑе гибкоÑÑи в вÑбоÑе ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑов полÑзоваÑелей, но пÑи ÑÑом ÑÑебÑÐµÑ Ð´Ð²Ð°Ð¶Ð´Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ Ðº ÑеÑвеÑÑ LDAP.
СледÑÑÑие паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии доÑÑÑÐ¿Ð½Ñ Ð¿Ñи аÑÑенÑиÑикаÑии в Ð¾Ð±Ð¾Ð¸Ñ ÑÐµÐ¶Ð¸Ð¼Ð°Ñ :
ldapserverÐмена и IP-адÑеÑа LDAP-ÑеÑвеÑов Ð´Ð»Ñ ÑвÑзи. Ðожно ÑказаÑÑ Ð½ÐµÑколÑко ÑеÑвеÑов, ÑазделÑÑ Ð¸Ñ Ð¿Ñобелами.
ldapportÐÐ¾Ð¼ÐµÑ Ð¿Ð¾ÑÑа Ð´Ð»Ñ ÑвÑзи Ñ LDAP-ÑеÑвеÑом. ÐÑли поÑÑ Ð½Ðµ Ñказан, иÑполÑзÑеÑÑÑ ÑÑÑановленнÑй по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÑÑ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñеки LDAP.
ldaptlsРавен 1 Ð´Ð»Ñ ÑÑÑановки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñ Postgres Pro и LDAP-ÑеÑвеÑом Ñ Ð¸ÑполÑзованием TLS-ÑиÑÑованиÑ. ÐмейÑе в видÑ, ÑÑо Ñак ÑиÑÑÑеÑÑÑ ÑолÑко обмен даннÑми Ñ LDAP-ÑеÑвеÑом, а клиенÑÑкое подклÑÑение оÑÑаÑÑÑÑ Ð½ÐµÐ·Ð°ÑиÑÑованнÑм, еÑли ÑолÑко не пÑименÑеÑÑÑ SSL.
СледÑÑÑие паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии доÑÑÑÐ¿Ð½Ñ ÑолÑко пÑи аÑÑенÑиÑикаÑии в Ñежиме пÑоÑÑого ÑвÑзÑваниÑ:
ldapprefixÐÑа ÑÑÑока подÑÑавлÑеÑÑÑ Ð¿ÐµÑед именем полÑзоваÑÐµÐ»Ñ Ð²Ð¾ вÑÐµÐ¼Ñ ÑоÑмиÑÐ¾Ð²Ð°Ð½Ð¸Ñ DN Ð´Ð»Ñ ÑвÑзÑÐ²Ð°Ð½Ð¸Ñ Ð¿Ñи аÑÑенÑиÑикаÑии в Ñежиме пÑоÑÑого ÑвÑзÑваниÑ.
ldapsuffixÐÑа ÑÑÑока ÑазмеÑаеÑÑÑ Ð¿Ð¾Ñле имени полÑзоваÑÐµÐ»Ñ Ð²Ð¾ вÑÐµÐ¼Ñ ÑоÑмиÑÐ¾Ð²Ð°Ð½Ð¸Ñ DN Ð´Ð»Ñ ÑвÑзÑваниÑ, пÑи аÑÑенÑиÑикаÑии в Ñежиме пÑоÑÑого ÑвÑзÑваниÑ.
СледÑÑÑие паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии доÑÑÑÐ¿Ð½Ñ ÑолÑко пÑи аÑÑенÑиÑикаÑии поиÑк+ÑвÑзÑвание:
ldapbasednÐоÑÐ½ÐµÐ²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° DN Ð´Ð»Ñ Ð½Ð°Ñала поиÑка полÑзоваÑÐµÐ»Ñ Ð¿Ñи аÑÑенÑиÑикаÑии в Ñежиме поиÑк+ÑвÑзÑвание.
ldapbinddnDN полÑзоваÑÐµÐ»Ñ Ð´Ð»Ñ ÑвÑзи Ñ ÐºÐ°Ñалогом пÑи вÑполнении поиÑка в Ñ Ð¾Ð´Ðµ аÑÑенÑиÑикаÑии в Ñежиме поиÑк+ÑвÑзÑвание.
ldapbindpasswdÐаÑÐ¾Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð»Ñ ÑвÑзÑÐ²Ð°Ð½Ð¸Ñ Ñ ÐºÐ°Ñалогом пÑи вÑполнении поиÑка в Ñ Ð¾Ð´Ðµ аÑÑенÑиÑикаÑии в Ñежиме поиÑк+ÑвÑзÑвание.
ldapsearchattributeÐÑÑибÑÑ Ð´Ð»Ñ ÑооÑнеÑÐµÐ½Ð¸Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ полÑзоваÑÐµÐ»Ñ Ð² Ñ Ð¾Ð´Ðµ аÑÑенÑиÑикаÑии поиÑк+ÑвÑзÑвание. ÐÑли аÑÑибÑÑ Ð½Ðµ Ñказан, бÑÐ´ÐµÑ Ð¸ÑполÑзован аÑÑибÑÑ
uid.ldapurlÐдÑÐµÑ RFC 4516 LDAP. ÐÑо алÑÑеÑнаÑивнÑй пÑÑÑ Ð´Ð»Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ ÑÑнкÑий LDAP в более компакÑной и ÑÑандаÑÑной ÑоÑме. ФоÑÐ¼Ð°Ñ Ð·Ð°Ð¿Ð¸Ñи Ñаков:
ldap://
host[:port]/basedn[?[attribute][?[scope]]]scopeдолжен бÑÑÑ Ð¿ÑедÑÑавлен илиbase, илиone, илиsub, обÑÑно поÑледним. ÐÑполÑзÑеÑÑÑ Ð¾Ð´Ð¸Ð½ аÑÑибÑÑ, некоÑоÑÑе компоненÑÑ ÑÑандаÑÑнÑÑ LDAP-адÑеÑов, Ñакие, как ÑилÑÑÑÑ Ð¸ ÑаÑÑиÑениÑ, не поддеÑживаÑÑÑÑ.ÐÐ»Ñ Ð½ÐµÐ°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð¾Ð³Ð¾ ÑвÑзÑваниÑ
ldapbinddnиldapbindpasswdÐ´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑÐºÐ°Ð·Ð°Ð½Ñ ÐºÐ°Ðº ÑазделÑнÑе паÑамеÑÑÑ.ÐÐ»Ñ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð°ÑиÑÑованнÑÑ LDAP-подклÑÑений, в дополнение к паÑамеÑÑÑ
ldapurlÐ½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ иÑполÑзоваÑÑ Ð¿Ð°ÑамеÑÑldaptls. URL-ÑÑ ÐµÐ¼Ð°ldaps(пÑÑмое SSL-подклÑÑение) не поддеÑживаеÑÑÑ.РнаÑÑоÑÑее вÑÐµÐ¼Ñ URL-адÑеÑа LDAP поддеÑживаÑÑÑÑ ÑолÑко Ñ OpenLDAP и не поддеÑживаÑÑÑÑ Ð² Windows.
ÐелÑÐ·Ñ Ð¿ÑÑаÑÑ Ð¿Ð°ÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии Ð´Ð»Ñ Ñежима пÑоÑÑого ÑвÑзÑÐ²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°ÑамеÑÑами Ð´Ð»Ñ Ñежима поиÑк+ÑвÑзÑвание, ÑÑо оÑибка.
ÐÑо пÑÐ¸Ð¼ÐµÑ ÐºÐ¾Ð½ÑигÑÑаÑии LDAP Ð´Ð»Ñ Ð¿ÑоÑÑого ÑвÑзÑваниÑ:
host ... ldap ldapserver=ldap.example.net ldapprefix="cn=" ldapsuffix=", dc=example, dc=net"
Ðогда запÑаÑиваеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение к ÑеÑвеÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
в каÑеÑÑве полÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
someuser, Postgres Pro пÑÑаеÑÑÑ ÑвÑзаÑÑÑÑ Ñ LDAP-ÑеÑвеÑом, иÑполÑзÑÑ DN cn=someuser, dc=example, dc=net и паÑолÑ, пÑедоÑÑавленнÑй клиенÑом. ÐÑли ÑÑо подклÑÑение ÑдалоÑÑ, Ñо доÑÑÑп к базе даннÑÑ
бÑÐ´ÐµÑ Ð¾ÑкÑÑÑ.
ÐÑÐ¸Ð¼ÐµÑ ÐºÐ¾Ð½ÑигÑÑаÑии Ð´Ð»Ñ Ñежима поиÑк+ÑвÑзÑвание:
host ... ldap ldapserver=ldap.example.net ldapbasedn="dc=example, dc=net" ldapsearchattribute=uid
Ðогда запÑаÑиваеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение к ÑеÑвеÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
в каÑеÑÑве полÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
someuser, Postgres Pro пÑÑаеÑÑÑ ÑвÑзаÑÑÑÑ Ñ ÑеÑвеÑом LDAP анонимно (поÑколÑÐºÑ ldapbinddn не бÑл Ñказан), вÑполнÑÐµÑ Ð¿Ð¾Ð¸Ñк Ð´Ð»Ñ (uid=someuser) под Ñказанной базой DN. ÐÑли запиÑÑ Ð½Ð°Ð¹Ð´ÐµÐ½Ð°, пÑоводиÑÑÑ Ð¿Ð¾Ð¿ÑÑка ÑвÑзÑвание Ñ Ð¸ÑполÑзованием найденной инÑоÑмаÑии и паÑолем, пÑедоÑÑавленнÑм клиенÑом. ÐÑли вÑоÑÐ°Ñ Ð¿Ð¾Ð¿ÑÑка подклÑÑÐµÐ½Ð¸Ñ Ð¿ÑоÑ
Ð¾Ð´Ð¸Ñ ÑÑпеÑно, пÑедоÑÑавлÑеÑÑÑ Ð´Ð¾ÑÑÑп к базе даннÑÑ
.
ÐÑÐ¸Ð¼ÐµÑ Ñой же конÑигÑÑаÑии Ð´Ð»Ñ Ñежима поиÑк+ÑвÑзÑвание, но запиÑанной в виде URL:
host ... ldap ldapurl="ldap://ldap.example.net/dc=example,dc=net?uid?sub"
Такой URL-ÑоÑÐ¼Ð°Ñ Ð¸ÑполÑзÑеÑÑÑ Ð¸ дÑÑгим пÑогÑаммнÑм обеÑпеÑением, поддеÑживаÑÑим аÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ пÑоÑÐ¾ÐºÐ¾Ð»Ñ LDAP, поÑÑÐ¾Ð¼Ñ ÑаÑпÑоÑÑÑанÑÑÑ ÑакÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð»ÐµÐ³Ñе.
ÐодÑказка
ÐоÑколÑÐºÑ LDAP ÑаÑÑо пÑименÑÐµÑ Ð·Ð°Ð¿ÑÑÑе и пÑÐ¾Ð±ÐµÐ»Ñ Ð´Ð»Ñ ÑÐ°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸Ñ ÑазлиÑнÑÑ ÑаÑÑей DN, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ иÑполÑзоваÑÑ ÐºÐ°Ð²ÑÑки пÑи опÑеделении знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов, как показано в наÑÐ¸Ñ Ð¿ÑимеÑÐ°Ñ .
19.3.8. ÐÑÑенÑиÑикаÑÐ¸Ñ RADIUS
ÐаннÑй меÑод аÑÑенÑиÑикаÑии ÑабоÑÐ°ÐµÑ ÑÑ
однÑм Ñ Ð¼ÐµÑодом password обÑазом, за иÑклÑÑением Ñого, ÑÑо он иÑполÑзÑÐµÑ RADIUS как меÑод пÑовеÑки паÑолÑ. RADIUS иÑполÑзÑеÑÑÑ ÑолÑко Ð´Ð»Ñ Ð¿Ð¾Ð´ÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð°ÑÑ Â«Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ/паÑолÑ». ÐоÑÑÐ¾Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ Ñже ÑÑÑеÑÑвоваÑÑ Ð² базе даннÑÑ
до Ñого, как Ð´Ð»Ñ Ð°ÑÑенÑиÑикаÑии бÑÐ´ÐµÑ Ð¸ÑполÑзован RADIUS.
Ð Ñ
оде аÑÑенÑиÑикаÑии RADIUS наÑÑÑÐ¾ÐµÐ½Ð½Ð¾Ð¼Ñ RADIUS-ÑеÑвеÑÑ Ð¿Ð¾ÑÑлаеÑÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð´Ð¾ÑÑÑпа. ÐÑо ÑообÑение Ñипа Authenticate Only (ТолÑко аÑÑенÑиÑикаÑиÑ), коÑоÑое вклÑÑÐ°ÐµÑ Ð² ÑÐµÐ±Ñ Ð¿Ð°ÑамеÑÑÑ user name (Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ), password (заÑиÑÑованнÑй паÑолÑ) и NAS Identifier (иденÑиÑикаÑÐ¾Ñ NAS). ÐапÑÐ¾Ñ Ð·Ð°ÑиÑÑовÑваеÑÑÑ Ñ Ð¸ÑполÑзованием обÑего Ñ ÑеÑвеÑом ÑекÑеÑа. RADIUS-ÑеÑÐ²ÐµÑ Ð¾ÑвеÑÐ°ÐµÑ Ð½Ð° ÑÑÐ¾Ñ Ð·Ð°Ð¿ÑÐ¾Ñ Ð»Ð¸Ð±Ð¾ Access Accept (ÐоÑÑÑп пÑинÑÑ), либо Access Reject (ÐоÑÑÑп оÑклонÑн). СиÑÑема Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ÑÑÑÑа RADIUS не поддеÑживаеÑÑÑ.
ÐÐ»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ меÑода можно ÑказаÑÑ Ð°Ð´ÑеÑа неÑколÑÐºÐ¸Ñ ÑеÑвеÑов RADIUS, Ñогда они бÑдÑÑ Ð¿ÐµÑебиÑаÑÑÑÑ Ð¿Ð¾ оÑеÑеди. Ð ÑлÑÑае полÑÑÐµÐ½Ð¸Ñ Ð¾Ñ Ð»Ñбого ÑеÑвеÑа оÑÑиÑаÑелÑного оÑвеÑа пÑоизойдÑÑ Ñбой аÑÑенÑиÑикаÑии. ÐÑли оÑÐ²ÐµÑ Ð½Ðµ бÑÐ´ÐµÑ Ð¿Ð¾Ð»ÑÑен, поÑледÑÐµÑ Ð¿Ð¾Ð¿ÑÑка подклÑÑÐµÐ½Ð¸Ñ Ðº ÑледÑÑÑÐµÐ¼Ñ ÑеÑвеÑÑ Ð² ÑпиÑке. ЧÑÐ¾Ð±Ñ Ð·Ð°Ð´Ð°ÑÑ Ð¸Ð¼ÐµÐ½Ð° неÑколÑÐºÐ¸Ñ ÑеÑвеÑов, ÑазделиÑе Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð° запÑÑÑми и заклÑÑиÑе ÑпиÑок в двойнÑе кавÑÑки. ÐÑи ÑÑом вÑе оÑÑалÑнÑе паÑамеÑÑÑ RADIUS Ð´Ð¾Ð»Ð¶Ð½Ñ ÑказÑваÑÑÑÑ Ñак же в ÑпиÑÐºÐ°Ñ ÑеÑез запÑÑÑÑ, ÑÑÐ¾Ð±Ñ ÐºÐ°Ð¶Ð´Ñй ÑеÑÐ²ÐµÑ Ð¿Ð¾Ð»ÑÑил ÑобÑÑвенное знаÑение. Ðозможно Ñакже задаваÑÑ Ð¸Ñ ÐµÐ´Ð¸Ð½ÑÑвеннÑм знаÑением, Ñогда ÑÑо знаÑение бÑÐ´ÐµÑ Ð¿ÑименÑÑÑÑÑ ÐºÐ¾ вÑем ÑеÑвеÑам.
ÐÐ»Ñ Ð¼ÐµÑода RADIUS доÑÑÑÐ¿Ð½Ñ ÑледÑÑÑие паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии:
radiusserversDNS-имена или IP-адÑеÑа ÑелевÑÑ ÑеÑвеÑов RADIUS. ÐÑо обÑзаÑелÑнÑй паÑамеÑÑ.
radiussecretsÐбÑие ÑекÑеÑÑ, иÑполÑзÑемÑе пÑи конÑакÑÐ°Ñ Ñ ÑеÑвеÑами RADIUS. ÐнаÑение ÑÑого паÑамеÑÑа должно бÑÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñм на ÑеÑвеÑÐ°Ñ Postgres Pro и RADIUS. РекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ ÑÑÑÐ¾ÐºÑ ÐºÐ°Ðº минимÑм из 16 Ñимволов. ÐÑо обÑзаÑелÑнÑй паÑамеÑÑ.
ÐÑимеÑание
ШиÑÑовалÑнÑй векÑÐ¾Ñ Ð±ÑÐ´ÐµÑ Ð´Ð¾ÑÑаÑоÑно ÑÑÑекÑивен ÑолÑко в Ñом ÑлÑÑае, еÑли Postgres Pro ÑобÑан Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой OpenSSL. РпÑоÑивном ÑлÑÑае пеÑедаÑа даннÑÑ ÑеÑвеÑÑ RADIUS бÑÐ´ÐµÑ Ð»Ð¸ÑÑ Ð·Ð°Ð¼Ð°ÑкиÑованной, но не заÑиÑÑнной, поÑÑÐ¾Ð¼Ñ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ пÑинÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе меÑÑ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑи.
radiusportsÐомеÑа поÑÑов Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº ÑеÑвеÑам RADIUS. ÐÑли поÑÑÑ Ð½Ðµ ÑказÑваÑÑÑÑ, иÑполÑзÑеÑÑÑ ÑÑандаÑÑнÑй поÑÑ RADIUS (
1812).radiusidentifiersСÑÑоки, иÑполÑзÑемÑе в запÑоÑÐ°Ñ RADIUS как
NAS Identifier(ÐденÑиÑикаÑÐ¾Ñ NAS). ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ, напÑимеÑ, Ð´Ð»Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÐºÐ»Ð°ÑÑеÑа ÐÐ, к коÑоÑÐ¾Ð¼Ñ Ð¿ÑÑаеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑ, ÑÑо позволÑÐµÑ Ð²ÑбÑаÑÑ ÑооÑвеÑÑÑвÑÑÑÑÑ Ð¿Ð¾Ð»Ð¸ÑÐ¸ÐºÑ Ð½Ð° ÑеÑвеÑе RADIUS. ÐÑли никакой иденÑиÑикаÑÐ¾Ñ Ð½Ðµ задан, по ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ÑполÑзÑеÑÑÑpostgresql.
ÐÑли в знаÑении паÑамеÑÑа RADIUS Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ пеÑедаÑÑ Ð·Ð°Ð¿ÑÑÑÑ Ð¸Ð»Ð¸ пÑобел, ÑÑо можно ÑделаÑÑ, заклÑÑив ÑÑо знаÑение в двойнÑе кавÑÑки, Ñ Ð¾ÑÑ ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ðµ оÑÐµÐ½Ñ Ñдобно, Ñак как поÑÑебÑÑÑÑÑ Ð´Ð²Ð° ÑÑÐ¾Ð²Ð½Ñ Ð´Ð²Ð¾Ð¹Ð½ÑÑ ÐºÐ°Ð²ÑÑек. ÐапÑимеÑ, Ñак добавлÑÑÑÑÑ Ð¿ÑÐ¾Ð±ÐµÐ»Ñ Ð² ÑÑÑоки ÑекÑеÑов RADIUS:
host ... radius radiusservers="server1,server2" radiussecrets="""secret one"",""secret two"""
19.3.9. ÐÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ ÑеÑÑиÑикаÑÑ
ÐÐ»Ñ Ð°ÑÑенÑиÑикаÑии в ÑамкаÑ
ÑÑого меÑода иÑполÑзÑеÑÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑкий ÑеÑÑиÑÐ¸ÐºÐ°Ñ SSL, поÑÑÐ¾Ð¼Ñ Ð´Ð°Ð½Ð½Ñй ÑпоÑоб пÑименим ÑолÑко Ð´Ð»Ñ SSL-подклÑÑений. Ðогда иÑполÑзÑеÑÑÑ ÑÑÐ¾Ñ Ð¼ÐµÑод, ÑеÑÐ²ÐµÑ Ð¿Ð¾ÑÑебÑÐµÑ Ð¾Ñ ÐºÐ»Ð¸ÐµÐ½Ñа пÑедÑÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð´ÐµÐ¹ÑÑвиÑелÑного и довеÑенного ÑеÑÑиÑикаÑа. ÐаÑÐ¾Ð»Ñ Ñ ÐºÐ»Ð¸ÐµÐ½Ñа не запÑаÑиваеÑÑÑ. ÐÑÑибÑÑ cn (ÐбÑÑное имÑ) ÑеÑÑиÑикаÑа ÑÑавниваеÑÑÑ Ñ Ð·Ð°Ð¿ÑаÑиваемÑм именем полÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, и еÑли они ÑооÑвеÑÑÑвÑÑÑ, вÑ
од ÑазÑеÑаеÑÑÑ. ÐÑли cn оÑлиÑаеÑÑÑ Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ полÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, Ñо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸ÑполÑзовано ÑопоÑÑавление имÑн полÑзоваÑелей.
ÐÐ»Ñ Ð°ÑÑенÑиÑикаÑии по SSL ÑеÑÑиÑикаÑÑ Ð´Ð¾ÑÑÑÐ¿Ð½Ñ ÑледÑÑÑие паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии:
mapÐозволÑÐµÑ ÑопоÑÑавиÑÑ Ð¸Ð¼ÐµÐ½Ð° полÑзоваÑелей ÑиÑÑÐµÐ¼Ñ Ð¸ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº РазделÑ 19.2.
РзапиÑи pg_hba.conf, опиÑÑваÑÑей аÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ ÑеÑÑиÑикаÑÑ, паÑамеÑÑ clientcert пÑедполагаеÑÑÑ ÑавнÑм 1, и его нелÑÐ·Ñ Ð¾ÑклÑÑиÑÑ, Ñак как Ð´Ð»Ñ ÑÑого меÑода клиенÑÑкий ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÑвлÑеÑÑÑ Ð¾Ð±ÑзаÑелÑнÑм. ÐеÑод cert оÑлиÑаеÑÑÑ Ð¾Ñ Ð¿ÑоÑÑой пÑовеÑки пÑигодноÑÑи ÑеÑÑиÑикаÑа clientcert ÑолÑко Ñем, ÑÑо Ñакже пÑовеÑÑеÑ, ÑооÑвеÑÑÑвÑÐµÑ Ð»Ð¸ аÑÑибÑÑ cn имени полÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
.
19.3.10. ÐÑÑенÑиÑикаÑÐ¸Ñ PAM
ÐаннÑй меÑод аÑÑенÑиÑикаÑии ÑабоÑÐ°ÐµÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾ меÑÐ¾Ð´Ñ password, но иÑполÑзÑÐµÑ Ð² каÑеÑÑве меÑ
анизма пÑовеÑки подлинноÑÑи PAM (Pluggable Authentication Modules, ÐодклÑÑаемÑе модÑли аÑÑенÑиÑикаÑии). Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸Ð¼Ñ ÑлÑÐ¶Ð±Ñ PAM â postgresql. PAM иÑполÑзÑеÑÑÑ ÑолÑко Ð´Ð»Ñ Ð¿ÑовеÑки Ð¿Ð°Ñ Â«Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ/паÑолÑ» и Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑно пÑовеÑÑÑÑ Ð¸Ð¼Ñ Ð¸Ð»Ð¸ IP-адÑÐµÑ ÑдалÑнного компÑÑÑеÑа. ÐоÑÑÐ¾Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ Ñже ÑÑÑеÑÑвоваÑÑ Ð² базе даннÑÑ
, ÑÑÐ¾Ð±Ñ PAM можно бÑло иÑполÑзоваÑÑ Ð´Ð»Ñ Ð°ÑÑенÑиÑикаÑии. Ðа дополниÑелÑной инÑоÑмаÑией о PAM обÑаÑиÑеÑÑ Ðº СÑÑаниÑе опиÑÐ°Ð½Ð¸Ñ Linux-PAM.
ÐÐ»Ñ Ð°ÑÑенÑиÑикаÑии PAM доÑÑÑÐ¿Ð½Ñ ÑледÑÑÑие паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии:
pamserviceÐÐ¼Ñ ÑлÑÐ¶Ð±Ñ PAM
pam_use_hostnameУказÑваеÑ, пÑедоÑÑавлÑеÑÑÑ Ð»Ð¸ модÑлÑм PAM ÑеÑез поле
PAM_RHOSTIP-адÑÐµÑ Ð»Ð¸Ð±Ð¾ Ð¸Ð¼Ñ ÑдалÑнного компÑÑÑеÑа. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑдаÑÑÑÑ IP-адÑеÑ. УÑÑановиÑе в ÑÑом паÑамеÑÑе 1, ÑÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ Ð¸Ð¼Ñ Ñзла. РазÑеÑение имени Ñзла Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑиводиÑÑ Ðº задеÑжкам пÑи подклÑÑении. (ÐбÑÑно конÑигÑÑаÑии PAM не задейÑÑвÑÑÑ ÑÑÑ Ð¸Ð½ÑоÑмаÑиÑ, Ñак ÑÑо ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ ÑледÑÐµÑ ÑÑиÑÑваÑÑ, ÑолÑко еÑли Ñоздана ÑпеÑиалÑÐ½Ð°Ñ ÐºÐ¾Ð½ÑигÑÑаÑиÑ, в коÑоÑой он иÑполÑзÑеÑÑÑ.)
ÐÑимеÑание
ÐÑли PAM наÑÑÑоен Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ /etc/shadow, пÑоизойдÑÑ Ñбой аÑÑенÑиÑикаÑии, поÑÐ¾Ð¼Ñ ÑÑо ÑеÑÐ²ÐµÑ Postgres Pro запÑÑен не полÑзоваÑелем root. Ðднако ÑÑо не Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°ÑениÑ, когда PAM наÑÑÑоен Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ LDAP или дÑÑгиÑ
меÑодов аÑÑенÑиÑикаÑии.
19.3.11. ÐÑÑенÑиÑикаÑÐ¸Ñ BSD
ÐаннÑй меÑод аÑÑенÑиÑикаÑии ÑабоÑÐ°ÐµÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾ меÑÐ¾Ð´Ñ password, но иÑполÑзÑÐµÑ Ð´Ð»Ñ Ð¿ÑовеÑки паÑÐ¾Ð»Ñ Ð¼ÐµÑ
анизм аÑÑенÑиÑикаÑии BSD. ÐÑÑенÑиÑикаÑÐ¸Ñ BSD иÑполÑзÑеÑÑÑ ÑолÑко Ð´Ð»Ñ Ð¿ÑовеÑки Ð¿Ð°Ñ Â«Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ/паÑолÑ». ÐоÑÑÐ¾Ð¼Ñ ÑÐ¾Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° Ñже ÑÑÑеÑÑвоваÑÑ Ð² базе даннÑÑ
, ÑÑÐ¾Ð±Ñ ÑÑа аÑÑенÑиÑикаÑÐ¸Ñ Ð±Ñла ÑÑпеÑной. ÐеÑ
анизм аÑÑенÑиÑикаÑии BSD в наÑÑоÑÑее вÑÐµÐ¼Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑименÑÑÑÑÑ ÑолÑко в OpenBSD.
ÐÐ»Ñ Ð°ÑÑенÑиÑикаÑии BSD в Postgres Pro пÑименÑеÑÑÑ Ñип вÑ
ода auth-postgresql и клаÑÑ postgresql, еÑли он опÑеделÑн в login.conf. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÐ¾Ñ ÐºÐ»Ð°ÑÑ Ð²Ñ
ода не ÑÑÑеÑÑвÑÐµÑ Ð¸ Postgres Pro иÑполÑзÑÐµÑ ÐºÐ»Ð°ÑÑ Ð²Ñ
ода по ÑмолÑаниÑ.
ÐÑимеÑание
ÐÐ»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°ÑÑенÑиÑикаÑии BSD необÑ
одимо ÑнаÑала добавиÑÑ ÑÑÑÑнÑÑ Ð·Ð°Ð¿Ð¸ÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Postgres Pro (Ñо еÑÑÑ, полÑзоваÑÐµÐ»Ñ ÐС, запÑÑкаÑÑего ÑеÑвеÑ) в гÑÑÐ¿Ð¿Ñ auth. ÐÑÑппа auth ÑÑÑеÑÑвÑÐµÑ Ð² ÑиÑÑемаÑ
OpenBSD по ÑмолÑаниÑ.