Back

Topic

[KB1020]Configurer un routeur MOXA pour autoriser une communication Modbus TCP

Tags: Moxa

5 years ago
By marketing
Options
Print
S’applique à :

Gammes EDR-810, EDR-G902 (V3.0 ou supérieur), EDR-G903 (V3.0 ou supérieur)


Introduction :

Cet article décrit la marche à suivre afin de configurer le pare-feu des routeurs/pare-feux de la gamme MOXA EDR afin de n’autoriser que le trafic Modbus TCP entre un Maître/Client et un Esclave/Serveur.


Rappels :

  • Une communication Modbus TCP s’établie entre un Maître/Client qui interroge un Esclave/Serveur. Par défaut la requête est émise depuis un port TCP aléatoire du Maître vers le port TCP 502 de l’Esclave.
  • Les pare-feux de la gamme MOXA EDR sont de type Stateful (filtrage avec état de connexion). Ainsi le pare-feu conserve la trace des différentes sessions de communication qui le traverse et permet ainsi d’autoriser implicitement les réponses aux requêtes autorisées.
  • La création des règles dans un pare-feu peut être réalisée en fonction de 2 principes :
    • Liste blanche” : tout le trafic est bloqué sauf celui défini dans les règles du pare-feu, Il s’agit du principe que nous utiliserons dans l’étude de cas à suivre.
    • Liste noir” : tout le trafic est aurorisé à l’exception de celui défini dans les règles du pare-feu

 Pour de plus amples informations sur les spécification des protocoles Modbus et Modbus TCP, le site de référence est http://www.modbus.org/

 1. Filtrage de base du trafic réseau (niveaux IP et TCP) entre les Maître et Esclave Modbus TCP

 

Dans cette première partie, l’architecture considérée est la suivante. La communication (routage) entre les deux réseaux est fonctionnelle à travers un routeur MOXA EDR Series.

  01 Archi routage

 

Les pare-feux MOXA assurent un filtrage des paquets avec état de connexion (Stateful). Ainsi, il est seulement nécessaire de créer la règle afin d’autoriser la requête Modbus TCP depuis le Maître/Client vers l’Esclave/Serveur. La réponse de l’Esclave au Maître sera implicitement autorisée par le pare-feu.

En cas de doute sur les ports utilisé par l’application à filtrer, une confirmation en s’appuyant sur les traces d’une capture de trafic, faite à l’aide de Wireshark par exemple, est une bonne façon pour confirmer son fonctionnement sur le réseau :

Remarque : le filtre à appliquer dans Wireshark pour afficher uniquement les trames transportant du Modbus TCP est mbtcp (modbus tcp)

  02_Wireshark_MBTCP.png

 

La trace ci-dessus confirme que la requête Modbus TCP envoyée depuis le Maître (192.168.10.100) est envoyée depuis un port TCP inconnu et aléatoire (ici le port 1952) vers le l’Esclave (192.168.20.200) sur le port standard de Modbus TCP (port 502).

Ainsi, dans le cas où seul le protocole Modbus TCP est autorisé entre les Maïtre (192.168.10.100) qui interroge l’Esclave (192.168.20.200), deux régles pare-feu seront à configurer :

  • Règle 1 : AUTORISER (ACCEPT) le trafic depuis tous les ports TCP de l’adresse IP 192.168.10.100 (Maître Modbus TCP) vers le port TCP 502 de l’adresse IP 192.168.20.200 (Esclave Modbus TCP)
  • Règle 2 : BLOQUER (DROP) tout le trafic

 

Le résultat de la configuration du pare-feu de l’EDR en image :

  03 Firewall L3 rules

 

 

 2. Filtrage avancé du trafic Modbus TCP grâce au Deep Packet Inspection (DPI)

 

Les routeurs/pare-feux de la gamme MOXA EDR diposent d’une fonction de Deep Packet Inspection (DPI) Modbus TCP permettant de mettre en place un filtrage avancé du trafic Modbus TCP.

Dans cette seconde partie, en se basant sur ce qui a été fait dans l’étape ci-dessus, le filtrage du trafic va être affiné grâce à cette fonction DPI Modbus TCP. Les caractéritiques de l’en-tête Modbus TCP du trafic correspondant vont être utilisées afin de mettre en place le filtrage au niveau Modbus TCP depuis le Maître vers l’Esclave mais aussi vice-versa. En effet, le moteur du filtre DPI Modbus TCP n’est pas Stateful. Ainsi, il est indispensable de spécifier l’ensemble des trafics autorisés, requêtes et réponses.

En considérant la requête ci-dessous, les règles idoines vont être définies puis configurées dans le routeur/pare-feu MOXA EDR.

  04 Wireshark MBTCP DPI

 

Les caractèristiques Modbus TCP suivantes sont identifiées :

  • A : Numéro de l’identifiant (ID) de l’Esclave Modbus = 1
  • B : Code fonction = 4 (Read Input Register)
  • C : Emplacement mémoire de début = 85 (base décimale)
  • D : Nombre de registres à lire = 3 (soit, lecture des registres 85, 86 et 87)
  05 Firewall DPI rules

 

 


Created on: 05 Jun 2019 Last update: 30 May 2024