remote-cert-tls server: OpenVPN профилинде эмнени текшерет
Директива каршы тараптын сертификатында коддолгон ролду текшерет, анын атын эмес. Бир нерсени өчүрүүдөн мурун ролду, ишеним таянычын жана хост атын текшерүүнү салыштырыңыз.
OpenVPN профилинин үч башка бөлүгү үч башка суроого жооп берет, жана аларды аралаштыруу адамдардын иштеп жаткан текшерүүнү өчүрүп салышына алып келет. Каршы тараптын сертификатына мен ишенген орган кол койгонбу? Бул сертификат TLS сервер ролун жарыялайбы? Бул мен жетүүнү көздөгөн так ошол серверби? remote-cert-tls server ортодогу суроого гана жооп берет жана муну сертификаттын ичиндеги кеңейтүүлөрдү окуу менен жасайт.
Башыңызда аралаштырууга оңой үч текшерүү
Ишеним таянычы ca директивасында жашайт. Ролду текшерүү remote-cert-tls директивасына таандык. Идентификацияны текшерүү verify-x509-name директивасына таандык, профиль аны колдонгондо, же жайылтуу кошкон каалаган ат текшерүүсүнө.
Алар ар кандай бузулууларды камтыйт:
| Question | Directive | Failure it catches |
|---|---|---|
| Who signed this? | ca | Certificate from an unrelated authority |
| Is this a server? | remote-cert-tls | Client certificate presented by a peer |
| Is this my server? | verify-x509-name | Another valid server from the same CA |
Профилде үчөө тең болушу мүмкүн жана CA өтө кеңири бөлүштүрүлсө, алсыз бойдон калат, бул директива эмес, ачкычтарды башкаруу маселеси.
Ролду текшерүү эмнени окуйт
Директива — макрос. Ал ачкычты колдонуу талабына жана TLS веб-сервер ролун атаган кеңейтилген ачкычты колдонуу талабына кеңейет, ошондуктан каршы тараптын сертификаты ошол максатты чындап жарыялоого тийиш. Клиентти аутентификациялоо үчүн берилген сертификат ага жооп бербейт, эгерде ошол эле орган экөөнө тең кол койгон болсо да.
Бул маанилүү, анткени жалпы CA чакан жайылтууларда кеңири таралган. Бир орган ар бир клиентке жана серверге кол коёт, жана ролду текшерүүсүз ошол сертификаттардын кайсынысы болбосун кол кармашуунун сервер тарабын бүтүрө алмак. Текшерүү бул сценарийди мүмкүн эмес кылбайт, бирок анын тривиалдуу версиясын алып салат.
Директива долбоору боюнча асимметриялуу: клиенттер remote-cert-tls server алып жүрөт, ал эми серверлер remote-cert-tls client алып жүрөт. Аларды алмаштырыңыз, ошондо ар бир байланыш сынган сертификатка окшош рол катасы менен ишке ашпайт.
Эски профилдер кээде ушундай эле максатта ns-cert-type колдонушат. Учурдагы колдонмо барактары бул опцияны алмаштырылган деп эсептешет, ошондуктан дагы эле ага таянган профилди жөндөөнүн ордуна көчүрүү керек.
Эмне үчүн аны өчүрүү оңдоо сыяктуу сезилет
Ролду текшерүү ишке ашпаганда, байланыш текшерүү катасы менен токтойт жана ачык кадам — сапты өчүрүү. Андан кийин байланыш көтөрүлөт, бул прогресс сыяктуу сезилет жана чындыгында директива алдын алуу үчүн жашаган бузулуу режими. Эми сиз сертификаты эч качан ошол ролго арналбаган каршы тарапты кабыл аласыз.
Анын ордуна катаны окуңуз. Ал ишке ашпаган текшерүүнү атайт, ал эми каршы жактагы сертификатты изилдеп, чындыгында кандай кеңейтүүлөрдү алып жүргөнүн көрүүгө болот. Эки мүнөттүк окуу кемчиликтин берилүүдө же конфигурацияда экенин чечет. Божомолдоо жарым күнүнүздү алат жана адатта начарлаган профиль менен бүтөт. Кеңейтилген ачкыч колдонуусун жоготкон жаңыртылган сервер сертификаты — жаңыртуудагы чыныгы кемчилик, клиентти бошотууга себеп эмес.
Атты текшерүү — өзүнчө директива
Ролду текшерүүнү канааттандыруу каршы тарап сиздин органыңыз кол койгон кандайдыр бир сервер экенин билдирет. Ал кайсы экени жөнүндө эч нерсе айтпайт, бул бирдей CA бир нече шлюзга сертификат бергенде жана алардын бири бузулган же кайра багытталган учурда маанилүү.
verify-x509-name сертификаттын субъектисин сиз конфигурациялаган маани менен салыштырат, так субъект, префикс же бир талаа үчүн дал келүү режимдери менен. Шлюзду чындап аныктаган талааны колдонуңуз жана ат өзгөргөндө аны атайылап жаңыртарыңызды күтүңүз.
Эки директиванын экөө тең ачкычтарды жакшы мамилени алмаштырбайт. Эгер клиент ачкыч файлы профиль менен кошо көчүрүлсө, каршы тараптын идентификациясы таратуу тизмеси сыяктуу гана күчтүү.
Профилди түзөтүүдөн мурун сертификатты изилдеңиз
Каршы тараптын сертификатын жана клиент журналын ушул тартипте окуңуз. Сертификат кандай ролдорду жарыялаганын айтат; журнал кайсы текшерүү аны четке какканын айтат.
Бул буйруктар кенен байланыштан колдонуу кеңейтүүлөрүн жана текшерүү саптарын басып чыгарат:
openssl x509 -in server.crt -noout -text | grep -A1 -E "Key Usage|Extended Key Usage"
sudo openvpn --config client.ovpn --verb 4 2>&1 | grep -i verifyЭгер кеңейтүүлөр сервер ролун көрсөтсө жана журнал дагы эле рол бузулушун билдирсе, профиль жаман сертификатка эмес, туура эмес сертификат файлына шилтеме кылып жатат. Эгер кеңейтүүлөр клиент аутентификациясын гана көрсөтсө, клиентти кароону токтотуп, берилүүнү оңдоңуз. Кандай болбосун, байланышты соо деп атаганга чейин текшерүүнү калыбына келтириңиз, анткени текшерүүнү алып салгандан кийинки ийгиликтүү кол кармашуу ал алмаштырган катадан азыраак нерсени далилдейт.