VPN се свързва, клиентът отваря сесия и всички приемат, че връзката към базата данни е защитена. Току-що бяха смесени три различни неща. Дали слушателят е достъпен изобщо, дали сървърът е приел потребителя и дали Firebird е договорил шифроване на връзката са отделни механизми с отделни доказателства. Тунелът отговаря само на първия, и то само за източниците, които сте разрешили.

Две граници, които не се припокриват

Границата на VPN защитава пакетите между клиента и шлюза. Шифроването на връзката в Firebird защитава протокола на базата данни между клиентската библиотека и процеса на сървъра. Двете могат да съществуват едновременно и нито едно не замества другото.

Ако тунелът завършва преди хоста на базата данни, трафикът след него е защитен само от това, което е договорила сесията на базата данни. Именно в тази празнина прегледът обикновено открива изненадата. Диаграмата на тунела завършва при шлюз, а връзката, която носи заявката ви, продължава отвъд него. Всеки, който прочете тази диаграма по-късно, наследява допускането.

Граница първа: кой може да отвори слушателя

Определете истинския адрес на сървъра и конфигурирания порт, който е 3050, освен ако не е променен, след което разрешете само одобрените VPN източници на защитната стена на хоста и на мрежата. Отчетете всяко преобразуване на адреси на VPN шлюза и дайте на хоста на базата данни обратен маршрут към клиентския пул, ако шлюзът е отделен.

След това докажете отрицателното. Външен път, който трябва да бъде отказан, трябва да остане отказан, защото отварянето на тунела само по себе си не ограничава слушателя на Firebird.

Граница втора: какво договаря Firebird

Firebird 3 въведе рамка за шифроване на връзката със сървърна политика, която може да бъде изключена, включена или задължителна. Политиката задава минимума. Действителната сесия все още зависи от клиентската библиотека, заредена от приложението, и от плъгините, които двете страни поддържат.

В бележките към изданието на Firebird 3 Arc4 е посочен като плъгин за шифроване на връзката по подразбиране за това издание. Arc4 е историческа стойност по подразбиране, а не препоръка за съвременна шифра, и не е същото като външната VPN защита.

Удостоверяването е трета променлива в същото договаряне. Сървърът приема набор от плъгини за удостоверяване, клиентската библиотека предлага някое подмножество и двете трябва да се припокрият.

Капанът Legacy_Auth

Поддръжката на Legacy_Auth изисква разхлабване на политиката за задължително шифроване по подразбиране на сървъра. Това е документираната цена за съвместимост и затова намаляването на политиката, за да се заглуши грешка при свързване, е промяна в сигурността, а не поправка.

Ако клиент внезапно се провали след надграждане на сървъра, сравнете списъците с плъгини, преди да отслабите каквото и да е. Провалът обикновено е несъответствие при договарянето, а отговорът е поддържан плъгин от двете страни.

Проверете връзка, който има значение

При сборка, която предоставя контекстната променлива, тази заявка съобщава състоянието на шифроване на текущия връзка:

SELECT RDB$GET_CONTEXT('SYSTEM', 'WIRE_ENCRYPTED')
FROM RDB$DATABASE;

Изпълнете я през собствената връзка на приложението, а не през администраторска сесия на същия сървър. Шифрован администраторски връзка не казва нищо за сесия на друга клиентска библиотека, а по-стара сборка, която не поддържа променливата, не е доказателство, че шифроването е изключено.

Запишете версията на клиентската библиотека, сборката на сървъра и резултата заедно, защото всяко едно от тях само по себе си е нечетимо.

Права и пътят за надграждане

Ограничаването на източниците и шифроването на транспорта не заместват удостоверяването или правата с най-малък привилегий. Проверете разрешенията на обикновения потребител на базата данни върху обектите, които той действително докосва.

Накрая, третирайте дългосрочното внедряване като въпрос на поддръжка. Тунелът не прави остаряла клиентска библиотека безопасна за неопределено време и поддържан път за надграждане е по-евтин от откриването, че нужният ѝ плъгин е бил премахнат.

Подобни статии