Utiliser un tunnel SSH

Pour renforcer le chiffrement entre Looker et votre base de données, vous pouvez créer un tunnel SSH vers un serveur de tunnels ou le serveur de base de données lui-même.

Les tunnels SSH ne sont pas disponibles pour les bases de données n'ayant pas d'adresse hôte unique, telles que les bases de données Google BigQuery et Amazon Athena. Les utilisateurs BigQuery et Athéna doivent passer directement à la configuration de la base de données.

Étape 1 : Choisir l'hôte sur lequel mettre fin au tunnel

La première étape pour configurer l'accès au tunnel SSH pour votre base de données consiste à choisir l'hôte qui sera utilisé pour arrêter le tunnel. Le tunnel peut être arrêté sur l'hôte de la base de données ou sur un hôte distinct (le serveur de tunnels).

Utiliser le serveur de base de données

L'arrêt sur base de données présente l'avantage de la simplicité. Comme il y a moins d'hôte impliqué, il n'y a pas de machines supplémentaires ni de coûts associés. L'inconvénient est que votre serveur de base de données peut se trouver sur un réseau protégé qui ne dispose pas d'un accès direct depuis Internet.

Utiliser un serveur de tunnels

L'arrêt du tunnel sur un serveur distinct a l'avantage de maintenir votre serveur de base de données inaccessible depuis Internet. Si l'intégrité du serveur du tunnel est compromise, cette étape est supprimée du serveur de base de données. Nous vous recommandons de supprimer tous les logiciels et utilisateurs non essentiels du serveur du tunnel et de le surveiller étroitement à l'aide d'outils tels qu'un IDS.

Le serveur du tunnel peut être un hôte Unix/Linux qui :

  1. Accessible par Internet via SSH
  2. Peut accéder à la base de données

Étape 2: Créez une liste d'autorisation d'adresses IP

La deuxième étape consiste à autoriser le trafic réseau à atteindre le serveur du tunnel ou l'hôte de la base de données via SSH, qui se trouve généralement sur le port TCP 22.

Autorisez le trafic réseau provenant de chacune des adresses IP répertoriées ici pour la région où votre instance Looker est hébergée. Par défaut, il s'agit des États-Unis.

Instances hébergées sur Google Cloud

Les instances hébergées par Looker sont hébergées par défaut sur Google Cloud. Pour les instances hébergées sur Google Cloud, ajoutez à la liste d'autorisation les adresses IP correspondant à votre région.

Cliquez ici pour obtenir la liste complète des adresses IP des instances hébergées sur Google Cloud

Moncks Corner, Caroline du Sud, États-Unis (us-east1)

  • 34.75.58.123
  • 35.196.30.110
  • 35.243.254.166
  • 34.111.239.102
  • 35.237.174.17
  • 34.73.200.235
  • 35.237.168.216

Ashburn, Virginie du Nord, États-Unis (us-east4)

  • 35.221.30.177
  • 35.245.82.73
  • 35.194.74.185
  • 35.245.177.112
  • 34.86.118.239
  • 34.86.52.188
  • 35.221.3.163
  • 35.245.211.109
  • 34.86.136.190
  • 34.86.214.226
  • 35.221.62.218
  • 34.86.34.135
  • 35.236.240.168
  • 34.150.212.9
  • 34.150.174.54
  • 34.85.200.217

Council Bluffs, Iowa, États-Unis (us-central1)

  • 34.69.207.176
  • 34.70.128.74
  • 35.239.118.197
  • 104.154.21.231
  • 35.192.130.126
  • 35.184.100.51

The Dalles, Oregon, États-Unis (us-west1)

  • 34.82.120.25
  • 35.247.5.99
  • 35.197.64.57
  • 35.233.172.23
  • 35.233.249.160
  • 35.247.55.33
  • 35.247.117.0
  • 35.247.61.151
  • 34.82.193.215
  • 35.233.222.226
  • 34.83.94.151
  • 35.203.184.48
  • 34.83.138.105
  • 35.197.35.188
  • 34.127.116.85
  • 34.145.90.83
  • 34.127.41.199
  • 34.82.57.225
  • 35.197.66.244

Montréal, Québec, Canada (northamerica-northeast1)

  • 35.234.253.103
  • 35.203.46.255
  • 34.152.60.210

Londres, Angleterre, Royaume-Uni (europe-west2)

  • 35.189.94.105
  • 35.246.36.67
  • 35.234.140.77
  • 34.142.77.18
  • 34.105.131.133
  • 34.89.54.84
  • 34.89.124.139
  • 34.89.25.5
  • 34.105.209.44
  • 34.105.181.133
  • 35.242.138.133
  • 34.105.219.154
  • 34.89.127.51
  • 35.246.10.206
  • 35.189.111.173
  • 35.197.222.220
  • 34.105.198.151
  • 35.246.117.58
  • 34.142.123.96

Francfort, Allemagne (europe-west3)

  • 34.159.224.187
  • 34.159.10.59
  • 34.159.72.77
  • 35.242.243.255
  • 34.159.247.211
  • 35.198.128.126

Mumbai, Inde (asia-south1)

  • 34.93.221.137
  • 35.244.24.198
  • 35.244.52.179

Eemshaven, Pays-Bas (europe-west4)

  • 35.204.118.28
  • 35.204.216.7
  • 34.90.52.191

Comté de Changhua, Taïwan (asia-east1)

  • 104.199.206.209
  • 34.80.173.212
  • 35.185.137.114

Tokyo, Japon (asia-northeast1)

  • 35.221.107.211
  • 34.85.3.198
  • 34.146.68.203
  • 34.84.4.218

Jurong West, Singapour (asia-southeast1)

  • 34.143.210.116
  • 34.143.132.206
  • 34.87.134.202

Jakarta, Indonésie (asia-southeast2)

  • 34.101.158.88
  • 34.101.157.238
  • 34.101.184.52

Sydney, Australie (australia-southeast1)

  • 34.87.195.36
  • 34.116.85.140
  • 34.151.78.48

Osasco (São Paulo), Brésil (southamerica-east1)

  • 34.151.199.201
  • 35.199.122.19
  • 34.95.180.122

Instances hébergées sur Amazon Elastic Kubernetes Service (Amazon EKS)

En ce qui concerne les instances hébergées sur Amazon EKS, ajoutez les adresses IP qui correspondent à votre région à la liste blanche.

Cliquez ici pour obtenir la liste complète des adresses IP des instances hébergées sur Amazon EKS

Est des États-Unis Virginie) (us-east-1)

  • 52.44.90.201
  • 54.87.86.113
  • 54.162.193.165
  • 34.235.77.117
  • 3.233.169.63
  • 54.159.42.144
  • 3.229.81.101
  • 34.225.255.220
  • 34.200.121.56
  • 3.83.72.41
  • 54.197.142.238
  • 34.239.90.169
  • 34.236.92.87
  • 3.220.81.241
  • 52.44.187.22
  • 23.22.133.206
  • 18.213.96.40
  • 35.168.173.238
  • 54.162.175.244
  • 54.80.5.17
  • 34.200.64.243
  • 54.157.231.76
  • 18.206.32.254
  • 52.7.255.54
  • 54.196.92.5
  • 52.204.125.244
  • 52.203.92.114
  • 52.3.47.189
  • 184.73.10.85
  • 52.55.10.236
  • 3.230.52.220
  • 54.211.95.150
  • 52.86.109.68
  • 54.159.176.199
  • 52.55.239.166
  • 75.101.147.97
  • 54.92.246.223
  • 18.235.225.163
  • 54.204.171.253
  • 18.210.137.130
  • 50.17.192.87
  • 18.208.86.29

Est des États-Unis (Ohio) (us-east-2)

  • 3.135.171.29
  • 18.188.208.231
  • 3.143.85.223

US West (Oregon) (us-west-2)

  • 44.237.129.32
  • 54.184.191.250
  • 35.81.99.30

Canada (Centre) (ca-central-1)

  • 52.60.157.61
  • 35.182.169.25
  • 52.60.59.128
  • 35.182.207.128
  • 15.222.172.64
  • 3.97.27.51
  • 35.183.191.133
  • 15.222.86.123
  • 52.60.52.14

Europe (Irlande) (eu-west-1)

  • 54.74.243.246
  • 54.195.216.95
  • 54.170.208.67
  • 52.49.220.103
  • 52.31.69.117
  • 34.243.112.76
  • 52.210.85.110
  • 52.30.198.163
  • 34.249.159.112
  • 52.19.248.176
  • 54.220.245.171
  • 54.247.22.227
  • 176.34.116.197
  • 54.155.205.159
  • 52.16.81.139

Europe (Francfort) (eu-central-1)

  • 18.157.231.108
  • 18.157.207.33
  • 18.157.64.198
  • 18.198.116.133
  • 3.121.148.178
  • 3.126.54.154
  • 18.193.187.100
  • 18.196.108.86
  • 18.198.157.149

Asie-Pacifique (Tokyo) (ap-northeast-1)

  • 54.250.91.57
  • 13.112.30.110
  • 54.92.76.241

Asie-Pacifique (Sydney) (ap-southeast-2)

  • 13.238.132.174
  • 3.105.238.71
  • 3.105.113.36

Amérique du Sud (São Paulo) (sa-east-1)

  • 54.232.58.181
  • 54.232.58.98
  • 177.71.134.208

Instances hébergées sur Microsoft Azure

En ce qui concerne les instances hébergées sur Azure, ajoutez les adresses IP qui correspondent à votre région à la liste blanche.

Virginie, États-Unis (us-east2)

  • 52.147.190.201

Hébergement hérité

Utilisez ces adresses IP pour toutes les instances hébergées sur AWS et créées avant le 07/07/2020.

Cliquez ici pour obtenir la liste complète des adresses IP pour l'ancien hébergement.

États-Unis (AWS par défaut)

  • 54.208.10.167
  • 54.209.116.191
  • 52.1.5.228
  • 52.1.157.156
  • 54.83.113.5

Canada

  • 99.79.117.127
  • 35.182.216.56

Asie

  • 52.68.85.40
  • 52.68.108.109

Irlande

  • 52.16.163.151
  • 52.16.174.170

Allemagne

  • 18.196.243.94
  • 18.184.246.171

Australie

  • 52.65.128.170
  • 52.65.124.87

Amérique du Sud

  • 52.67.8.103
  • 54.233.74.59

Étape 3: tunnelisation SSH

Si l'onglet Serveurs SSH est activé, suivez les instructions de cette page pour ajouter les informations de configuration de votre serveur SSH dans Looker.

L'option Serveur SSH est disponible si l'instance est déployée sur l'infrastructure Kubernetes et uniquement si la possibilité d'ajouter des informations de configuration du serveur SSH à votre instance Looker a été activée. Si cette option n'est pas activée sur votre instance Looker et que vous souhaitez l'activer, contactez votre gestionnaire de compte Looker ou ouvrez une demande d'assistance dans le Centre d'aide Looker.

Sur la page Connexions de la section Administration de Looker, cliquez sur l'onglet Serveur SSH:

Cliquez ensuite sur Ajouter un serveur. Looker affiche la page Ajouter un serveur SSH:

  1. Saisissez un nom pour la configuration du serveur SSH.
  2. Cliquez sur Download Key (Télécharger la clé) pour télécharger la clé publique dans un fichier texte. Veillez à enregistrer ce fichier, car vous devrez ajouter la clé publique à votre fichier de clé autorisée ultérieurement.
  3. Saisissez le nom d'utilisateur que Looker utilisera pour se connecter au serveur SSH.
  4. Saisissez l'adresse IP ou le nom d'hôte du serveur SSH.
  5. Saisissez le numéro de port utilisé pour la connexion au serveur SSH.

Étape 4: Préparez l'hôte du tunnel

Ajoutez la clé publique à votre fichier authorized_keys

Pour authentifier la session de tunnel SSH, Looker requiert une clé publique unique (Looker ne prend pas en charge les connexions via un mot de passe). Si l'onglet Serveurs SSH est activé sur votre instance, vous pouvez télécharger la clé publique dans un fichier texte en cliquant sur le bouton Télécharger la clé lorsque vous saisissez vos informations de configuration SSH. Si vous configurez votre tunnel SSH avec l'aide d'un analyste Looker, celui-ci vous fournira une clé publique unique.

Vous devez préparer votre hôte (le serveur de base de données ou le serveur de tunnels) en créant un utilisateur looker et en ajoutant la clé publique Looker au fichier .ssh/authorized_keys Looker. Voici comment procéder :

  1. Dans votre ligne de commande, créez un groupe appelé looker :

    sudo groupadd looker
    
  2. Créez l'utilisateur looker et son répertoire d'accueil:

    sudo useradd -m  -g looker  looker
    
  3. Passez à l'utilisateur looker :

    sudo su - looker
    
  4. Créez le répertoire .ssh:

    mkdir ~/.ssh
    
  5. Définissez les autorisations:

    chmod 700 ~/.ssh
    
  6. Accédez au répertoire .ssh :

    cd ~/.ssh
    
  7. Créez le fichier authorized_keys :

    touch authorized_keys
    
  8. Définissez les autorisations:

    chmod 600 authorized_keys
    

Dans votre éditeur de texte préféré, ajoutez la clé SSH fournie par votre analyste Looker au fichier authorized_keys. La clé doit être indiquée sur une seule ligne. Dans certains cas, lorsque vous récupérez la clé de votre messagerie, votre client de messagerie insère des sauts de ligne. Si vous ne les supprimez pas, vous ne pourrez pas établir de tunnel SSH.

Ajouter ssh-rsa à votre fichier sshd_config

OpenSSH a désactivé ssh-rsa par défaut, ce qui peut entraîner des erreurs lors de la configuration d'un tunnel SSH. Pour résoudre ce problème, ajoutez ssh-rsa à la liste des algorithmes acceptés. Voici comment procéder :

  1. Modifiez votre fichier sshd_config. Vous le trouverez généralement à l'adresse ~/etc/ssh/sshd_config.
  2. Ajoutez le code ci-dessous à votre fichier sshd_config :

       HostKeyAlgorithms +ssh-rsa
       PubKeyAcceptedAlgorithms +ssh-rsa
    

Remarques sur la sécurité des tunnels

Lorsqu'un tunnel SSH est arrêté sur le serveur de base de données, la connexion à partir de Looker semble être une connexion locale sur le serveur de base de données. Par conséquent, il contourne les mécanismes de sécurité basés sur la connexion intégrés aux plates-formes de base de données telles que MySQL. Par exemple, il est très courant que l'accès local soit accordé à l'utilisateur root sans mot de passe.

Par défaut, ouvrir l'accès SSH permet le transfert de tout port, en contournant les pare-feu entre Looker et l'hôte de la base de données qui met fin au tunnel SSH. Ce risque de sécurité peut être considéré comme inacceptable. Vous pouvez contrôler ce transfert de port, ainsi que la possibilité de vous connecter à votre serveur de tunnels, en configurant correctement l'entrée .ssh/authorized_keys pour la clé publique Looker.

Par exemple, le texte suivant peut être ajouté à la clé SSH Looker dans votre fichier authorized_keys. Notez que ce texte DOIT être personnalisé pour votre environnement.

no-pty,no-X11-forwarding,permitopen="localhost:3306",permitopen="localhost:3307",
command="/bin/echo Login Not Permitted"

Pour obtenir des exemples et en savoir plus, consultez la documentation Linux pour man ssh et man authorized_keys.

Étapes suivantes

Si l'onglet Serveurs SSH est activé sur votre instance, revenez à la page Ajouter un serveur SSH, puis cliquez sur Tester &demander une empreinte pour vérifier votre connexion au serveur SSH. Looker affiche un écran présentant la nouvelle configuration SSH et les options permettant de télécharger ou d'afficher la clé publique, et d'afficher l'empreinte unique de la configuration du serveur SSH.

Ensuite, sur la page Paramètres de connexion de votre base de données:

  1. Activez l'option Serveur SSH, puis sélectionnez la configuration de votre serveur SSH dans la liste déroulante.
  2. Dans le champ Remote Host:Port, saisissez l'adresse IP ou le nom d'hôte et le numéro de port de votre base de données.

Les connexions à la base de données utilisant un tunnel SSH ne peuvent pas appliquer d'attribut utilisateur au champ Remote Host:Port.

Si vous configurez votre tunnel SSH avec l'aide d'un analyste Looker, informez-le que vous êtes prêt à tester le tunnel SSH. Une fois que le tunnel a été établi, il vous fournit le numéro de port du côté Looker du tunnel SSH.

Ensuite, sur la page Paramètres de connexion de votre base de données:

  1. Saisissez localhost dans le champ Remote Host (Hôte distant).
  2. Dans le champ Port, saisissez le numéro de port du côté Looker du tunnel SSH fourni par votre analyste Looker.
  3. Désactivez Vérifier la certification SSL sur la page Connexions de votre base de données.

    Les certificats SSL ne sont pas acceptés lors de la configuration d'un tunnel SSH vers votre base de données depuis Looker. À la place, la clé SSH que vous avez ajoutée à l'étape 4 assure la sécurité des handshakes entre Looker et votre base de données.