2017-05-16 1 views
1

Je configure un serveur, avec postgresql exécuté en tant que service. Je peux utiliser nmap pour obtenir la version actuelle de postgresqlMasquer la version postgres à partir de l'analyse nmap

nmap -p 5432 -sV [IP] 

Il retourne:

PORT  STATE SERVICE VERSION 
5432/tcp open postgresql PostgreSQL DB 9.3.1 

Y at-il un moyen de cacher la version postgresql de l'analyse nmap? J'ai cherché mais il s'agit de cacher la détection du système d'exploitation.

Merci.

+0

Je pense qu'il n'y a pas moyen, car 'nmap' est un puissant utilitaire de scan et quand on détecte un service (port ouvert) on obtient tous les détails. –

Répondre

2

Il n'y a qu'une seule réponse ici: Pare-feu.

Si votre port Postgres est ouvert, vous serez sondé. Si vous pouvez être sondé, votre service peut être perturbé. La plupart des bases de données ne sont pas destinées à être ouvertes comme ça au public, elles ne sont pas durcies contre les attaques par déni de service. Maintenez une liste blanche très étroite des adresses IP autorisées à s'y connecter et, si possible, utilisez un VPN ou un tunnel SSH pour vous connecter à Postgres au lieu de le faire directement. Cela a l'avantage supplémentaire de crypter tout votre trafic qui serait autrement en texte brut.

+0

vous êtes si bon homme ... Je l'ai testé et je me suis trompé: -] – OkieOth

+1

@OkieOth Espérons un exercice éducatif. Comme tout outil 'nmap' est très utile dans les bonnes mains et très dangereux dans les mauvaises. – tadman

2

Vous avez quelques options, mais comprenez d'abord comment Nmap le fait: Le serveur de base de données PostgreSQL répond à une négociation mal formée avec un message d'erreur contenant le numéro de ligne dans le code source où l'erreur s'est produite. Nmap a une liste de versions possibles de PostgreSQL et le numéro de ligne où l'erreur se produit dans cette version particulière. Le fichier source en question change assez fréquemment pour que Nmap puisse généralement indiquer la version exacte utilisée, ou au moins une gamme de 2 ou 3 numéros de version.

Alors, quelles options avez-vous?

  1. Ne faites rien. Pourquoi est-ce important que quelqu'un sache quelle version de PostgreSQL fonctionne? Gardez-le à jour et mettez en place des contrôles de sécurité appropriés ailleurs et vous n'avez rien à craindre.

  2. Restreindre l'accès. Utilisez un pare-feu pour limiter l'accès au système de base de données aux seuls hôtes approuvés. Configurez PostgreSQL pour écouter uniquement sur localhost si la communication réseau n'est pas requise. Isolez le système afin que les utilisateurs non autorisés ne puissent même pas lui parler.

  3. Corrigez la source et reconstruisez-la. Modifiez PostgreSQL afin qu'il ne renvoie pas la ligne source où l'erreur s'est produite. Ou ajoutez simplement quelques centaines de lignes vides en haut de postmaster.c afin que les empreintes digitales standard de Nmap ne puissent pas correspondre. Mais sachez que vous devrez le faire chaque fois qu'il y aura une nouvelle version ou un correctif de sécurité.

+0

Merci. C'est très détaillé et utile. – Daniel

+0

Si c'est le cas, upvote la réponse et la marque comme résolue. Peut-être pourrait être utile pour les autres. – OscarAkaElvis