GNU/Linux >> Tutoriels Linux >  >> Linux

Configuration des redirections de port sous Linux avec ncat

Comme vous le savez grâce à mes deux articles précédents, Dépannage Linux : Configuration d'un écouteur TCP avec ncat et La commande ncat est un outil de sécurité problématique pour les administrateurs système Linux, netcat est une commande qui est à la fois votre meilleur ami et votre pire ennemi. Et cet article perpétue davantage ce fait en examinant comment ncat fournit une option utile, mais potentiellement dangereuse, pour créer un lien de redirection de port. Je vous montre comment configurer un port ou un lien de redirection de site afin que vous puissiez effectuer la maintenance d'un site tout en continuant à servir les clients.

Le scénario

Vous devez effectuer la maintenance d'une installation Apache sur server1 , mais vous ne voulez pas que le service apparaisse hors ligne pour vos clients, qui dans ce scénario sont des utilisateurs professionnels internes du portail du travail qui enregistre les heures travaillées pour vos utilisateurs distants. Plutôt que de les avertir que le portail sera hors ligne pendant six à huit heures, vous avez décidé de créer un service de transfert vers un autre système, server2 , pendant que vous vous occupez de server1 aux besoins de.

Cette méthode est un moyen simple de maintenir un service spécifique actif sans modifier les paramètres DNS ou NAT du pare-feu d'entreprise.

Serveur1 :Port 8088

Serveur2 :Port 80

Les étapes

Pour mettre en place ce site/service à terme, vous devez satisfaire aux prérequis suivants :

  1. ncat-nmap package (doit être installé par défaut)
  2. Une copie fonctionnelle du server1 portail sur serveur2
  3. Racine ou sudo accès aux serveurs 1 et 2 pour les changements de pare-feu

Si vous avez franchi ces obstacles, il est temps de faire ce changement.

La mise en œuvre

Configuration de ncat utilise de cette manière des tubes nommés, ce qui est un moyen efficace de créer ce lien de communication bidirectionnel en écrivant et en lisant un fichier dans votre répertoire personnel. Il existe plusieurs façons de procéder, mais je vais utiliser celle qui convient le mieux à ce type de redirection de port.

Créer le canal nommé

La création du tube nommé est facile en utilisant le mkfifo commande.

$ mkfifo svr1_to_svr2

$ file svr1_to_svr2
svr1_to_svr2: fifo (named pipe)

J'ai utilisé le file commande pour démontrer que le fichier est là et qu'il s'agit d'un canal nommé. Cette commande n'est pas requise pour que le service fonctionne. J'ai nommé le fichier svr1_to_svr2 , mais vous pouvez utiliser le nom de votre choix. J'ai choisi ce nom car je fais un transfert depuis server1 au serveur2 .

Créer le service de transfert

Formellement, cela s'appelait mettre en place un relais auditeur à client , mais cela a un peu plus de sens si vous pensez à cela en termes de pare-feu, d'où mon nom et ma description "en avant".

$ ncat -k -l 8088 < svr1_to_svr2 | ncat 192.168.1.60 80 > svr1_to_svr2 &

L'émission de cette commande vous ramène à votre invite car vous mettez le service en arrière-plan avec le & . Comme vous pouvez le voir, le canal nommé et le service sont tous deux créés en tant qu'utilisateur standard. J'ai discuté des raisons de cette restriction dans mon article précédent, La commande ncat est un outil de sécurité problématique pour les administrateurs système Linux.

Répartition des commandes

La première partie de la commande, ncat -k -l 8088 , configure l'écouteur pour les connexions auxquelles répondrait normalement le service Apache sur serveur1 . Ce service est hors ligne, vous créez donc un écouteur pour répondre à ces demandes. Le -k L'option est la fonction keep-alive, ce qui signifie qu'elle peut répondre à plusieurs demandes. Le -l est l'option d'écoute. Port 8088 est le port que vous souhaitez imiter, qui est celui du portail client.

La deuxième partie, à droite de l'opérateur pipe (| ), accepte et relaie les requêtes vers 192.168.1.60 sur le port 80. Le canal nommé (svr1_to_svr2 ) gère les données entrantes et sortantes.

L'utilisation

Maintenant que vous avez configuré votre relais, il est facile à utiliser. Faites pointer votre navigateur vers l'hébergeur et le portail client d'origine, qui est http://server1:8088 . Cela redirige automatiquement votre navigateur vers server2 sur le port 80. Votre navigateur affiche toujours l'URL et le port d'origine.

J'ai constaté que trop de requêtes répétitives peuvent entraîner l'échec de ce service avec un message de canal cassé sur server1 . Cela ne tue pas toujours le service, mais c'est possible. Ma suggestion est de configurer un script pour vérifier le forward commande, et si elle n'existe pas, redémarrez-la. Vous ne pouvez pas vérifier l'existence du svr1_to_svr2 fichier car il existe toujours. Rappelez-vous, vous l'avez créé avec le mkfifo commande.

La mise en garde

L'inconvénient de ce ncat est qu'un utilisateur peut rediriger le trafic vers son propre site en double et recueillir des noms d'utilisateur et des mots de passe. L'acteur malveillant devrait tuer l'écouteur de port/le service Web actuel pour que cela fonctionne, mais il est possible de le faire même sans accès root. Les administrateurs système doivent rester vigilants en surveillant et en alertant pour éviter ce type de faille de sécurité.

La conclusion

Le ncat La commande a tellement d'utilisations qu'elle nécessite un article par fonctionnalité pour décrire chacune d'entre elles. Cet article vous a présenté le concept de relais auditeur à client, ou transfert de service, comme je l'appelle. Il est utile pour les courtes périodes de maintenance mais ne doit pas être utilisé pour les redirections permanentes. Pour ceux-ci, vous devez modifier les règles DNS et NAT du pare-feu d'entreprise pour envoyer des demandes à leurs nouvelles destinations. Vous devez vous rappeler de désactiver tout ncat auditeurs lorsque vous en avez fini avec eux, car ils ouvrent un système pour faire des compromis. Ne créez jamais ces services avec le compte utilisateur root.

[ Simplifiez plus que jamais la gestion de votre réseau avec l'automatisation du réseau pour tous, un livre gratuit de Red Hat. ]


Linux
  1. Commande Linux Tee avec exemples

  2. Tutoriel de commande de service Linux pour les débutants (avec exemples)

  3. Commande principale Linux avec exemples

  4. Commande JQ sous Linux avec exemples

  5. Commande Ncat Linux

Commande Echo sous Linux avec exemples

Commande Linux ip avec exemples

Commande Tr sous Linux avec des exemples

15 Commande Linux ps avec exemples

Commande de CD Linux avec exemples

Commande Linux chkconfig avec exemples