Безопасно ли подключаться к базе данных с IP-адресом и портом Publi c? - PullRequest
0 голосов
/ 05 августа 2020

Имеются следующие параметры: Я использую библиотеку Firebird Sql .Data.FirebirdClient в asp. net Теперь на тестовом уровне подключаюсь к удаленной базе данных по строке:

string workbase = "Server="public ip";Port="port";User=sysdba;Password=masterkey;Database=C:/path/db.FDB";

Далее приведены методы подключения, запросы, транзакции, фиксации и т. Д. c.

 string sqlcardpin = $"SELECT.....";
    var connection = new FbConnection(workbase);

Вопрос: безопасно ли это? Зашифрован ли трафик c? где я могу прочитать об этом? Как мне подключиться?

Исходя из моих скромных умственных усилий, следующее: мне нужно иметь службу в локальной сети с базой данных, к которой идет безопасное соединение, и эта служба имеет учетные данные для подключения к база данных и выполняет с ней операции, может я ошибаюсь, поправьте меня пожалуйста.

Ответы [ 2 ]

2 голосов
/ 05 августа 2020

Вы не сказали, находятся ли веб-сервер и сервер базы данных на одном или разных сайтах, но, в любом случае,

не открывают сервер базы данных для публикации c Inte rnet.

Если веб-сервер и сервер базы данных находятся на разных сайтах, рассмотрите возможность использования брандмауэра (в базе данных), чтобы разрешить соединение только с адреса веб-сервера или VPN между двумя сайтами.

Если они находятся на одном сайте, предоставьте Inte rnet только веб-сервер (поместите его в DMZ) и сохраните трафик c к серверу базы данных и от него в частной локальной сети.

Кстати, иметь Firebird на Inte rnet с использованием sysdba / masterkey - все равно что ходить с надписью «пни меня» на спине. Не удивляйся, если будет больно. :)

1 голос
/ 05 августа 2020

Если publi c ip - это публично маршрутизируемый IP-адрес, а порт 3050 открыт для всего мира, это небезопасно. Не открывайте свой сервер базы данных миру, это создаст очень широкую поверхность атаки для доступа к вашим данным.

Например, Firebird 2.5 и более ранние версии имеют очень слабую систему аутентификации (макс. Пароли из 8 символов) , и хотя Firebird 3 представляет новый, более безопасный механизм аутентификации, который позволяет использовать гораздо более длинные пароли, по разным причинам многие серверы по-прежнему настроены с включенной слабой аутентификацией (также). Также рассмотрите ошибки, которые могут позволить людям обходить аутентификацию или которые могут позволить людям удаленно взломать sh ваш сервер базы данных, и т.д. c.

Что касается шифрования, Firebird 2.5 и более ранние версии не имеют шифрования подключение. Это было введено в Firebird 3, и только для соединений, аутентифицируемых с помощью нового механизма аутентификации SRP (Secure Remote Password), и только если параметр WireCrypt сервера равен Required или Enabled и клиент действительно запрашивает аутентификацию. Для C# для этого требуется Firebird ADO. net провайдер версии 7.0.0.0 или выше. Однако шифрование проводного протокола, предлагаемое в Firebird 3, является относительно небезопасным шифрованием RC4; Firebird 4 представит ChaCha-20 в качестве альтернативного шифрования по проводному протоколу.

Итак, ваша база данных должна находиться в той же сети, что и ваше приложение, предпочтительно на IP-адресе, который не маршрутизируется через inte rnet ( ie в одном из частных диапазонов) или, по крайней мере, защищен от rnet межсетевым экраном. Если по какой-то причине вам необходимо подключиться к удаленной базе данных через inte rnet, не открывайте базу данных напрямую для inte rnet, а используйте решение VPN или, возможно, что-то вроде туннеля на основе S SH. .

И поскольку corradolab указывает в свой ответ , не используйте masterkey в качестве пароля для SYSDBA. Фактически, не используйте SYSDBA для подключения вашего приложения, а создайте определенного c пользователя и назначьте ему необходимые, но минимальные права для выполнения своей работы.

...