Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...

Sécurité - Bloquer la faille DB


Messages recommandés

  • 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 !

 

  • Metin2 Dev 1
  • Love 3
Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres 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.

  • Love 1
Lien vers le commentaire
Partager sur d’autres 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.

  • Love 1

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

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...
  • 3 ans après...


  • brilliantdiscord_widget
  • Flux d'Activité

    1. 21

      Metin2 en 2020 peut-on en parler?

    2. 0

      METIN2Project

    3. 3

      Ressources - UnPack - Metin2 Client - Officiel

    4. 0

      Barre des tâches d'argent étendue

    5. 16

      Redémarrage automatique des channels

    6. 16

      Multi Logo GM / SGM / GA

  • En ligne récemment

    • Aucun utilisateur enregistré regarde cette page.

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.