Jump to content
×
×
  • Create New...

Sécurité - Bloquer la faille DB


Recommended Posts

  • Retraité

Niveau requis  Intermédiaire

Temps estimé :  20 minutes

Bonjour à tous,

 

Ce tutoriel va vous expliquer comment bloquer la faille DB sur votre serveur Metin2.

Cette faille permet à n'importe qui d'accéder à la base de données de votre serveur grâce au port DB. Ne la négligez pas, il est très important de la bloquer.

 

Pré-requis:

  • Ce tutoriel nécessitera d'ajouter / modifier un firewall à FreeBSD (PF, IPFW, etc ..)

 

I. Explication de la faille

Révélation

Les attaquants utilisent le port DB (15 000) par défaut pour s'attaquer au serveur.

 

Prenons un exemple :

 

Je souhaite me connecter au serveur de X.

Pour cela, je met en place mon serveur Metin2 à moi.

Dans le fichier conf.txt de DB, dans le champ DB_PORT et DB_ADDR, je met le port DB et l'adresse IP de l'autre serveur.

 

Ensuite, je me connecte à l'adresse IP de mon serveur avec mon client.

 

Attention ! Je me connecte bien à mon serveur mais mon serveur lui, est connecté à la DB de l'autre serveur.

 

Une fois connecté, il me suffit juste de créer des quêtes que j'exécuterai pour que celles-ci soient exécutées sur l'autre serveur.

Par exemple, je peux faire une quête qui lance la commande /n. Seul les joueurs de l'autre serveur pourront la voir.

Je peux aussi utiliser le module MySQL pour communiquer avec la base de données.

 

L''explication de cette faille vous permet de mieux comprendre comment ça fonctionne et vous incite à la bloquer.

 

II. Bloquer la faille

Révélation

Bloquer la faille est relativement simple.

Il suffit de bloquer le port 15 000 dans le firewall FreeBSD de sorte à ce que celui-ci soit utilisable seulement en localhost. (plus accessible depuis l'extérieur.

 

Attention ! La règle à ajouter dépend de votre firewall. Pensez aussi à bien adapter les lignes données ci-dessous car elles ne correspondent pas forcément à l'architecture de votre firewall. L'important est de comprendre le principe de bloquer un port grâce à un pare feux.

 

A. Avec le firewall IPFW

Révélation

Voici un exemple de ligne de comment on pourrait bloquer le port avec IPFW (rc.firewall) :


${fwcmd} add 63994 deny all from any to me 15000

 

Avec

  • fwcmd: L'ip de ma machine (ici c'est une variable)
  • add: Ajouter
  • 63994: L'ID de la règle
  • deny all from any to me: bloquer tout le monde sauf localhost
  • 15000: Le port en question

 

Je bloque l'accès au port TCP 15000 sur l'ip de ma machine SAUF localhost

 

 

B. Avec le firewall PF

Révélation

Voici un exemple de ligne de comment on pourrait bloquer le port avec PF (pf.conf) :


ext_adr="198.28.54.158" #L'ip de ma machine
db="15000" #Le port de DB
pass in inet proto tcp from any to $ext_adr port $db keep state

Je bloque l'accès au port TCP 15 000 sur l'ip de ma machine SAUF localhost

 

 

 

Pour continuer :

  • Vous trouverez de nombreux partages et de tutoriels sur Funky-Emu dans la section Metin2.
  • Cette FAQ pourra répondre à la plupart de vos questions.
  • Une catégorie support est disponible. Si vous avez un problème ou une question, n'hésitez pas à poster une demande !

 

  • J'adore 3
Link to comment
Share on other sites

  • Funkiest

Merci beaucoup !

Comme je t'ai dis, je ne sais pas si justement si j'ai cette faille, si elle est bloquable côté source etc...

En tout cas je te remercie, j'aurais focalisé mes priorités sur cette faille dont je pense avoir été la victime il y a de ça à peu près un ans, mettant ça sur le dos d'un module mysql défectueux.

Link to comment
Share on other sites

  • Retraité

Après plusieurs recherches dans le game et le db, je suis arrivé à savoir comment il fallait procéder  pour effectuer toutes les modifications ci-dessus.

En fait, il faut savoir que le DB accepte toutes les connexions, il n'y a pas vraiment de limite.

 

Je me suis dis: Et si je connectais mon DB au port 15 000 d'un autre serveur.

Résultat: Ça à fonctionné. J'avais un accès total sur le serveur (game & bdd) avec le DB grâce au port 15 000.

Je suis connecté à la base de donnée du serveur visé mais ce sont mes quêtes qui sont chargées. Je peux donc grâce à une quête, effectuer des requêtes SQL sur la base de donnée du serveur visé. C'est d'ailleurs comme ça que les autres se débrouillaient pour en arriver là.

 

Vous allez me dire: Oue mais comment on fait pour se connecter IG vu que c'est le game qui gère ça et pas la db ... Bah en fait, quand vous allez vous connecter à votre compte, ça va vous rediriger sur un compte de l'autre serveur (vous pouvez utiliser le personnage d'un joueur du joueur sans connaitre ses identifiants).

 

Un autre exemple, si vous voulez afficher un message en /n à tous les joueurs sur l'autre serveur, il suffit de faire une quête puis de la compiler. On peut tout faire avec les quêtes ! Pour me connecter à la DB d'un autre serveur, je dois juste modifier ces lignes:

 

DB_PORT: 15000   #Le port DB du serveur visé
DB_ADDR: localhost    #L'adresse IP du serveur visé

 

Vous pouvez maintenant faire le lien avec mon tutoriel: bloquer le port 15000 permet de refuser les connexions des hôtes sauf localhost.

 

Je ne me tiens pas responsable de l'utilisation de cette faille sur votre serveur étant donné que j'ai fait en sorte que la solution soit publiée sur les forums d'émulation. Sans oublié qu'il me semble nécessaire de savoir le pourquoi et le comment de cette faille.

  • J'adore 1
Link to comment
Share on other sites

Super idée de donner la méthode ! on va avoir des dizaines de kikoulol qui vont "attaquer" des serveurs qui ne sont pas encore au courant de cette faille et donc pas encore sécurisés !

Link to comment
Share on other sites

De plus, avec le temps on devrait commencer à tous nous aider au lieu de nous faire chier entre tous... Si tout le monde se met à travailler ensemble, etc. Nos projets évolueront et nous serons fière de notre travaille tous ensemble. Je ne sais si vous êtes d'accord avec moi? Mais, j'ai compris que se faire chier tous ensemble à tout les jours, on avance pas l'émulation Metin2 Française. J'espère que quelques personnes comprendront et changerons leurs façons d'agir envers les autres. J'ai changé et je suis fière de ne plus avoir cette façon de penser qui ne fera avancer rien ici... Si seulement on se met tous ensemble...

 

Sinon t'as raison Caly, je suis du même avis que toi, que ce tutoriel n'a aucune intérêt personnel.

  • J'adore 1

L’ordinateur a de la mémoire mais aucun souvenir...

Link to comment
Share on other sites

  • Funkiest

C'est vrai que donner la faille est pour moi un peu osé, cependant ça put permettre aux admins de faire des test pour le bloquer différemment, par contre, pour les gens non scrupuleux...

Link to comment
Share on other sites

  • 1 month later...
  • 3 years later...
 Share



  • Flux d'Activité

    1. 0

      Projet Genesis

    2. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    3. 0

      Metin2 Champions - Accès anticipé

    4. 0

      Barbok

    5. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    6. 2

      Partage Émulateur 2.63

    7. 2

      Partage Émulateur 2.63

  • Recently Browsing

    • No registered users viewing this page.

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.