[[public:securite_vps]]

Securité des VPS sur le cloud Geco-iT

Tous les VPS fournis par Geco-iT sont déployés avec le système d'exploitation Debian. Cette distribution linux est reconnue et maintenue, mais surtout elle a fait de la stabilité son fer de lance. Chaque logiciel nécessaire au fonctionnement des VPS sont disponibles dans les dépôts de debian, apache2, mysql, postgres, etc… Nous configurons aussi sur tout nos VPS les installations automatiques des patchs de sécurité proposé par Debian de manière à toujours conserver un OS étanche aux bugs les plus critiques !

Chaque VPS est une machine virtuelle hébergée par un hyperviseur physique chez OVH. Geco-iT possède son propre bloc RIPE acheté lui aussi chez OVH. Les VPS possèdent donc tous une IP publique dans ce bloc. Les VPS sont ainsi directement accessibles depuis le net. Par contre, pour garantir une certaine sécurité, c'est l'hyperviseur qui joue le rôle de firewall global pour chacun des VPS hébergé. De cette manière, seule les ouvertures de ports strictement nécessaires sont faites. Nous pouvons aussi, sur demande du client, ouvrir des ports supplémentaires depuis la gestion centralisée sur l'hyperviseur.

Voici les règles par défaut pour les VPS, auxquelles nous pouvons ajouter des spécificités liées au client :

L'accès NRPE est limité aux seules IPs de Geco-iT pour notre système de supervision

Portsentry est configuré sur chaque VPS pour permettre de bannir les IPs depuis lesquelles le VPS détecte un scan de ports :

root@vps135:~# geco-portsentry list
*** Portsentry IP banned list - timeout=24h - max ban=512 ****
54.38.222.63 timeout 73898
101.100.146.146 timeout 84694

Chaque IP est bloquée pendant 24H

Fail2ban est configuré sur chaque VPS et surveille les logs d'authentification pour bannir les IPs qui tentent une attaque par dictionnaire de mot de passe. Le nombre de tentative avant l'exclusion d'une IP est défini par nos soins et adapté en fonction des services. Voici un exemple de statut fail2ban sur l'un de nos vps. Une “jail” est un type d'attaque pour un service en particulier. Ci dessous on peut voir toutes les jails en place par défaut. Encore une fois, nous pouvons faire du spécifique en fonction du client.

root@vps144:~# geco-fail2ban list
Status for the jail: apache-auth
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:	
Status for the jail: apache-badbots
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:	
Status for the jail: apache-botsearch
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:	
Status for the jail: apache-get-dos
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:	
Status for the jail: apache-nohome
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:	
Status for the jail: apache-noscript
`- Actions
   |- Currently banned:	0
   |- Total banned:	11
   `- Banned IP list:	
Status for the jail: apache-overflows
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:	
Status for the jail: apache-vhost-auth
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:	
Status for the jail: apache-w00tw00t
`- Actions
   |- Currently banned:	0
   |- Total banned:	18
   `- Banned IP list:	
Status for the jail: php-url-fopen
`- Actions
   |- Currently banned:	0
   |- Total banned:	2
   `- Banned IP list:	
Status for the jail: phpmyadmin-auth
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:	
Status for the jail: pureftpd-auth
`- Actions
   |- Currently banned:	0
   |- Total banned:	20
   `- Banned IP list:	
Status for the jail: ssh-auth
`- Actions
   |- Currently banned:	28
   |- Total banned:	16452
   `- Banned IP list:	61.177.173.54 92.255.85.69 61.177.172.160 1.15.70.191 178.128.238.19 120.48.3.166 61.177.173.42 89.179.126.155 210.245.92.136 95.85.27.201 134.122.123.117 67.164.27.145 198.245.51.139 159.65.220.18 61.177.172.76 144.126.222.239 137.184.225.34 200.42.148.168 167.172.152.18 92.255.85.70 61.177.172.184 2.139.64.109 123.157.77.200 148.72.245.28 103.233.0.58 193.106.191.157 206.189.145.158 61.177.172.87
Status for the jail: ssh-ddos
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:	

Nous avons la possibilité de définir des IPs qui ne sont pas prises en compte par les deux systèmes ci-dessus. Cela peut éviter à nos clients de se retrouver avec leur propre IPs bloquées en cas d'oublie d'un mot de passe.

Les status des deux systèmes sont remontés dans la supervision de façon à nous alerter sur un flux anormal d'attaques.

Une IP bannie depuis fail2ban ou portsentry est injectée dans un IPSET. Une règle firewall iptables rejette tout trafic depuis cet IPSET. Cette technique nous permet de faire une seule et même règle pour un très grand nombre d'IP sans sacrifier la performance de nos instances. Les IPSETS permettent aussi l'injection et le retrait “à chaud” des IPs sans avoir à recharger la config du firewall !

root@vps135:~# ipset list
Name: portsentry
Type: hash:ip
Revision: 3
Header: family inet hashsize 64 maxelem 512 timeout 86400
Size in memory: 5384
References: 1
Members:
54.38.222.63 timeout 70850
101.100.146.146 timeout 81646

Chaque VPS est surveillé par notre système de supervision, lui même sous les yeux de notre équipe au quotidien. Ce dernier nous alerte immédiatement de manière sonore et visuelle pour nous permettre d'intervenir au plus vite en cas d'incident, voir avant, de manière pro-active !

Toute la configuration des VPS est géré de manière centralisée par un manager web dont l'accès est aussi fourni au client. Ce dernier permet à nos client d’être encadrés pour la création des users SSH, des base de données et des vhosts apache pour réduire le risque d'erreur humaine dans la configuration. Il surveille aussi l'état des services apache et mysql pour les redémarrer en cas d’arrêt. Et enfin il nous permet à nous, prestataire, de pouvoir intervenir sur n'importe lequel de nos VPS de manière rapide et efficace depuis un unique point d'entrée.

Chaque hyperviseur effectue des snapshots sur les VPS qu'il héberge, à minima à 10H et 16H quotidiennement. Le nombre et les horaires peuvent être ajustés par Geco-iT mais le minimum tout juste évoqué sera toujours respecté !

Ces snapshots sont ensuite envoyés sur un autre hyperviseur ( situé dans un autre datacenter ) au minima une fois par jour dans la nuit. Ce système nous permet de dupliquer les données à un autre endroit pour en conserver une sauvegarde. Nous avons aussi la possibilité de redémarrer les VPS sur un autre hyperviseur en cas de sinistre. Le statut des ces synchronisations nous est envoyé par mail quotidiennement. Il est donc intégré à notre procédure journalière de vérification des sauvegardes client.

  • public/securite_vps.txt
  • Dernière modification: 30/08/2022/ 16:55
  • par h.campion