Question Comment puis-je désactiver temporairement l’accès localhost à un certain port?


Je développe une application Web en Java, desservie par un conteneur Tomcat sur le port 80. Une autre application CLI se connecte à l'application Web. Je souhaite tester si cette application CLI est capable de se reconnecter lorsque la connexion est interrompue de manière inattendue et si l'application Web est correctement nettoyée.

Lors de l'arrêt (sudo service stop tomcat8) ou en tuant (kill -9 <pid>) Tomcat, la connexion est abandonnée de manière standard. C'est-à-dire que l'application CLI reçoit un BYE cadre de l'application Web. Je veux tester ce qui se passe quand il y a un délai d'attente, quand il y a une chute soudaine de connexion.

Est-il possible de désactiver l’accès sur le réseau localhost au port 80 de manière à ce que ni l’application Web ni le client n’aient le temps d’envoyer leurs données? BYE cadres?


0
2017-08-08 08:53


origine


Si vous fermez le port avec iptables sur le serveur (entrant et sortant), aucune des parties ne pourra fermer correctement la connexion. Les paquets seront arrêtés par le noyau. - Jos
Est-ce que cela peut aussi être fait si le serveur et le client sont tous deux la même machine? Je fais tout sur localhost pour les tests et le développement. - Drievoud Aarlen
Je ne suis pas tout à fait sûr, mais raisonnablement certain que les paquets du client vers le serveur (et v.v.) sur le même hôte sont en fait envoyés et reçus de l'interface réseau, et donc arrêtés par INPUT DROP et OUTPUT DROP iptables règles. Donc, la réponse est oui. - Jos
Permettez-moi d'ajouter ces commentaires comme une réponse, y compris le bon iptables règles, et si cela fonctionne, veuillez l'accepter. - Jos
Bien sûr, bonne idée! - Drievoud Aarlen


Réponses:


Utilisation iptables sur le serveur, pour l'empêcher d'envoyer des paquets au client et d'en recevoir des paquets:

sudo iptables -A OUTPUT -p tcp --sport 80 -j DROP

empêchera le serveur d'atteindre le client; et

sudo iptables -A INPUT -p tcp --dport 80 -j DROP

empêchera le client d'atteindre le serveur. sport représente le port source et dport pour le port de destination.

Ceci est complètement indépendant de la tomcat processus serveur, et il semblera (au client et au serveur) que la connexion a été soudainement interrompue. Je suis raisonnablement sûr que cela fonctionnera même si le client et le serveur sont sur le même hôte.

Voir quelles règles sont actuellement en place avec:

sudo iptables -L

Supprimez toutes les règles existantes avec:

sudo iptables -F

1
2017-08-08 09:24



Ça marche! Merci beaucoup Jos. - Drievoud Aarlen