Bonjour,
Je vous expose mon problème.
J'ai une base de données qui doit être accessible par Internet (d'une manière ou d'une autre). J'ai donc deux interrogations que je vais détailler ensuite :
1) Comment sécuriser le serveur pour être le moins exposé aux tentatives d'attaques ?
2) Comment chiffrer correctement les connexions entre l'application cliente et la base ?
Question n°1
Quelle est a priori la meilleure configuration pour sécuriser la BDD ? Actuellement j'ai une machine qui tourne sur Windows Server et dont tous les ports sont fermés sauf 2 : un pour les accès SQL et l'autre pour l'accès "Bureau à distance". Ces deux ports ne sont pas les ports par défaut. Le serveur est exclusivement utilisé pour cette base de données. Le serveur est directement connecté à Internet, via un routeur mais qui ne filtre pas les accès. Ma question est donc : sachant que les données dans la base doivent à tout prix être protégées, dois-je modifier cette configuration ? J'ai entendu parler de mettre une machine Linux entre Internet et le serveur mais je n'ai pas creusé le sujet. Peut-être mieux vaut-il acquérir un routeur avec un firewall "puissant" ? Par ailleurs, selon vous, est-ce qu'un antivirus sur un serveur est indispensable ?
Question n°2
Je développe une application en .Net (VB) qui sera l'application "cliente" de la base de donnée. Pour me connecter à la base j'utilise le code suivant :
Dim Connexion As New SqlConnection("Data Source=SERVEUR,PORT; Network Library = dbmssocn; Initial Catalog=BASE; User Id=UTILISATEUR; Password=PASSWORD;")
Bien évidemment cette connexion n'est pas sécurisée. Comment puis-je correctement chiffrer celle-ci et les requêtes qui la suivront ? J'ai lu qu'avec ce type de code, on pouvait chiffrer mais je ne sais pas installer de certificat SSL sur Windows Server (et où l'obtenir ?).
Dim Connexion As New SqlConnection("Data Source=SERVEUR,PORT; Network Library = dbmssocn; Initial Catalog=BASE; User Id=UTILISATEUR; Password=PASSWORD; Encrypt=true;")
La parade consiste à ajouter "TrustServerCertificate=true;" à la chaine de connexion mais c'est vivement déconseillé ...
Donc ma question est : Comment puis-je chiffrer la connexion et les requêtes qui suivront ?
Je vous remercie.
Pko
Partager