Télétravail au bureau. RDP, Port Knocking, Mikrotik : simple et sécurisé.

En raison de la pandémie de virus covid-19 et du confinement généralisé dans de nombreux pays, la seule option pour de nombreuses entreprises afin de continuer à fonctionner est l'accÚs à distance aux postes de travail via Internet. Il existe de nombreuses méthodes relativement sûres pour le travail à distance, mais compte tenu de l'ampleur du problÚme, un moyen simple pour tous les utilisateurs d'accéder à leur bureau à distance est nécessaire, sans nécessiter de configurations supplémentaires, d'explications, de consultations pénibles ou d'instructions longues. Cette méthode, appréciée par de nombreux administrateurs, est le RDP (Remote Desktop Protocol). La connexion directe à un poste de travail via RDP répond parfaitement à notre besoin, à l'exception d'un grand inconvénient : laisser le port RDP ouvert sur Internet est trÚs dangereux. Voici donc une méthode simple mais fiable de protection.Télétravail au bureau. RDP, Port Knocking, Mikrotik : simple et sécurisé.

Comme je suis souvent confrontĂ© Ă  de petites organisations utilisant des dispositifs Mikrotik pour leur connexion Internet, je vais montrer ci-dessous comment cela peut ĂȘtre rĂ©alisĂ© sur Mikrotik, mais la mĂ©thode de protection Port Knocking est facilement implĂ©mentable sur d'autres dispositifs de gamme supĂ©rieure avec des configurations de routeur et de pare-feu similaires.

En bref sur le Port Knocking. La protection extérieure idéale d'un réseau connecté à Internet est de garder toutes les ressources et ports fermés de l'extérieur par un pare-feu. Bien que le routeur avec un pare-feu configuré de cette maniÚre ne réagisse pas aux paquets entrants, il les écoute. Ainsi, on peut configurer le routeur pour qu'il ouvre l'accÚs à certaines ressources (ports, protocoles, etc.) pour une adresse IP spécifique dÚs qu'il reçoit une certaine séquence (code) de paquets réseau sur différents ports.

Passons aux choses sĂ©rieuses. Je ne vais pas entrer dans les dĂ©tails de la configuration du pare-feu sur Mikrotik — il existe de nombreuses sources de qualitĂ© sur Internet pour cela. IdĂ©alement, le pare-feu bloque tous les paquets entrants, mais

/ip firewall filter
add action=accept chain=input comment="established and related accept" connection-state=established,related

Il autorise le trafic entrant des connexions déjà établies (established, related).
Nous allons maintenant configurer le Port Knocking sur Mikrotik :

/ip firewall filter
add action=drop chain=input dst-port=19000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=drop chain=input dst-port=16000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=add-src-to-address-list address-list="remote_port_1" address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="allow_remote_users" address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
move [/ip firewall filter find comment=RemoteRules] 1
/ip firewall nat
add action=dst-nat chain=dstnat comment="remote_rdp" src-address-list="allow_remote_users" dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389

Maintenant, plus en détail :

les deux premiĂšres rĂšgles

/ip firewall filter
add action=drop chain=input dst-port=19000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=drop chain=input dst-port=16000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules

interdisent les paquets entrants des adresses IP qui se trouvent sur la liste noire lors de l'analyse des ports ;

La troisiĂšme rĂšgle :

add action=add-src-to-address-list address-list="remote_port_1" address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules

ajoute l'IP Ă  la liste des hĂŽtes qui ont fait correctement le premier coup sur le port requis (19000);
Les quatre rĂšgles suivantes :

add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules

crĂ©ent des ports piĂ©gĂ©s pour ceux qui souhaiteraient scanner vos ports, et lorsqu'une telle tentative est dĂ©tectĂ©e, leur IP est mise sur liste noire pendant 60 minutes, durant lesquelles les deux premiĂšres rĂšgles empĂȘcheront ces hĂŽtes de toucher les bons ports ;

RĂšgle suivante :

add action=add-src-to-address-list address-list="allow_remote_users" address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules

met l'IP sur la liste autorisée pendant 1 minute (suffisant pour établir la connexion), car un second bon accÚs a été effectué sur le bon port (16000) ;

Commande suivante :

move [\/ip firewall filter find comment=RemoteRules] 1

dĂ©place nos rĂšgles vers le haut de la chaĂźne de traitement du pare-feu, car il est probable que nous ayons dĂ©jĂ  diffĂ©rentes rĂšgles de blocage Ă©tablies qui empĂȘcheront nos nouvelles d'ĂȘtre appliquĂ©es. La premiĂšre rĂšgle dans MikroTik commence Ă  zĂ©ro, mais sur mon appareil, le zĂ©ro Ă©tait occupĂ© par une rĂšgle intĂ©grĂ©e et il Ă©tait impossible de le dĂ©placer — je l'ai dĂ©placĂ© Ă  1. Donc regardons nos paramĂštres — oĂč nous pouvons dĂ©placer et indiquons le numĂ©ro souhaitĂ©.

Réglage suivant :

/ip firewall nat
add action=dst-nat chain=dstnat comment="remote_rdp_to_33" src-address-list="allow_remote_users" dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389

redirige un port choisi alĂ©atoirement, 33890, vers le port RDP standard 3389 et l'IP de l'ordinateur ou du serveur terminal souhaitĂ©. De telles rĂšgles sont créées pour toutes les ressources internes nĂ©cessaires, de prĂ©fĂ©rence avec des ports externes non standards (et diffĂ©rents). Bien sĂ»r, les IP des ressources internes doivent ĂȘtre soit statiques, soit rĂ©servĂ©es par DHCP. le serveur.

Maintenant notre MikroTik est configuré et nous avons besoin d'une procédure simple pour que l'utilisateur se connecte à notre RDP interne. Comme ce sont principalement des utilisateurs Windows, nous allons créer un simple fichier bat et l'appeler StartRDP.bat :

1.htm
1.rdp

respectivement, 1.htm contient le code suivant :

<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
Cliquez sur Actualiser la page pour vous reconnecter via RDP
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">

ici se trouvent deux liens vers de fausses images qui se trouvent Ă  l'adresse my_router.sn.mynetname.net — cette adresse provient du systĂšme DDNS de Mikrotik que nous basculons d'abord dans notre Mikrotik : nous allons dans le menu IP->Cloud — nous activons la case DDNS Enabled, cliquons sur Appliquer et copions le nom DNS de notre routeur. Cela est obligatoire seulement quand l'IP externe du routeur est dynamique ou qu'une configuration avec plusieurs fournisseurs d'accĂšs Internet est utilisĂ©e.

Le port dans le premier lien :19000 correspond au premier port auquel il faut se connecter, dans le second au second. Entre les liens, il y a une courte instruction qui montre quoi faire si notre connexion est interrompue Ă  cause de petites pannes rĂ©seau — nous actualisons la page, le port RDP se rĂ©ouvre pour nous pendant 1 minute et notre session est rĂ©tablie. De plus, le texte entre les balises img forme pour le navigateur un micro-dĂ©lai, ce qui rĂ©duit la probabilitĂ© de livraison du premier paquet au second port (16000) — jusqu'Ă  prĂ©sent, en deux semaines d'utilisation (30 personnes), aucun cas pareil n'a Ă©tĂ© signalĂ©.

Ensuite, il y a le fichier 1.rdp, que nous pouvons configurer soit pour tous, soit sĂ©parĂ©ment pour chaque utilisateur (c'est ce que j'ai fait — il est plus facile de passer 15 minutes supplĂ©mentaires que plusieurs heures Ă  conseiller ceux qui n'ont pas pu comprendre).

screen mode id:i:2
use multimon:i:1
.....
connection type:i:6
networkautodetect:i:0
.....
disable wallpaper:i:1
.....
full address:s:my_router.sn.mynetname.net:33890
.....
username:s:myuserlogin
domain:s:mydomain

parmi les paramĂštres intĂ©ressants, ici use multimon:i:1 — cela active l'utilisation de plusieurs moniteurs — certains en ont besoin, mais ils ne penseront pas Ă  l'activer eux-mĂȘmes.

connection type:i:6 et networkautodetect:i:0 — puisque la plupart des connexions Internet dĂ©passent 10 Mbit, nous activons le type de connexion 6 (rĂ©seau local 10 Mbit et plus) et dĂ©sactivons networkautodetect, car si par dĂ©faut (auto), mĂȘme un lĂ©ger retard dans le rĂ©seau Ă©tablit automatiquement une vitesse rĂ©duite pour notre session, ce qui peut provoquer des dĂ©lais notables dans le travail, surtout dans les programmes graphiques.

disable wallpaper:i:1 — dĂ©sactivons l'image du bureau
username:s:myuserlogin — nous spĂ©cifions le nom d'utilisateur, car une partie importante de nos utilisateurs ne connaĂźt pas son identifiant
domain:s:mydomain — nous spĂ©cifions le domaine ou le nom de l'ordinateur

Mais si nous voulons nous simplifier la tĂąche de crĂ©ation de la procĂ©dure de connexion, nous pouvons Ă©galement utiliser PowerShell — StartRDP.ps1

Test-NetConnection -ComputerName my_router.sn.mynetname.net -Port 19000
Test-NetConnection -ComputerName my_router.sn.mynetname.net -Port 16000
mstsc /v:my_router.sn.mynetname.net:33890

Parlons aussi un peu du client RDP sur Windows : Microsoft a parcouru un long chemin pour optimiser le protocole ainsi que sa partie serveur et client, en mettant en Ɠuvre de nombreuses fonctionnalitĂ©s utiles — telles que la prise en charge de la 3D matĂ©rielle, l'optimisation de la rĂ©solution d'Ă©cran en fonction de votre moniteur, le multi-Ă©cran et d'autres. Naturellement, tout cela est rĂ©alisĂ© en mode de compatibilitĂ© descendante et si le client est Windows 7 tandis que le PC distant est sous Windows 10, RDP fonctionnera en utilisant la version 7.0 du protocole. Heureusement, il est possible de mettre Ă  jour les versions RDP vers des versions plus rĂ©centes — par exemple, on peut Ă©lever la version du protocole de 7.0 (Windows 7) Ă  8.1. Ainsi, pour le confort des clients, il est important de mettre Ă  jour au maximum les versions de la partie serveur, ainsi que de fournir des liens pour les mises Ă  jour vers de nouvelles versions des clients du protocole RDP.

En fin de compte, nous avons une technologie simple et relativement sĂ»re pour se connecter Ă  distance Ă  un PC de travail ou un serveur terminal. Cependant, pour une connexion plus sĂ©curisĂ©e, notre mĂ©thode de Port Knocking peut ĂȘtre compliquĂ©e pour rendre l'attaque plusieurs ordres de grandeur plus difficiles, en ajoutant des ports Ă  vĂ©rifier — on pourrait ajouter, selon la mĂȘme logique, 3, 4, 5, 6
 ports et dans ce cas, une intrusion directe dans votre rĂ©seau deviendrait presque irrĂ©alisable.

ModÚles de fichiers pour établir une connexion RDP à distance.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster