Comment faire passer l'appareil par le PC pour bloquer les requêtes http

0

J'ai un appareil sur lequel je veux bloquer certaines requêtes http. Non ma configuration est

[Device] - [Switch]

Comme le périphérique est vraiment simple, je ne peux pas bloquer une requête et je ne peux pas modifier le programme afin de bloquer les requêtes.

Ce que je veux faire c'est

[Périphérique] - [PC] - [Commutateur]

J'utilise Ubuntu 14.04 et mon ordinateur a deux ports Ethernet. J'ai essayé de trouver des réponses sur Internet, mais sans trop de chance.

Y'a-t'il un quelconque moyen d'y arriver? Passer mon appareil à travers mon ordinateur et bloquer les requêtes http spécifiques (comme utiliser fiddler)?

Lefsler
la source
Il y a plusieurs façons de le faire, en fonction des détails de votre situation. Renseignez-vous sur la configuration de Linux en tant que route, avec ou sans NAT, et sur iptablesle blocage des requêtes http, ou sur l'exécution d'un proxy transparent pour bloquer ou modifier uniquement certaines requêtes.
dirkt

Réponses:

1

Je recommanderais également une configuration de proxy transparente. Cela peut être fait en trois étapes.

  1. Configuration Squid (pour qu'il agisse comme un proxy transparent)
  2. Configuration Iptables (configurez le système en tant que routeur, puis transférez tout le trafic http à Squid)
  3. Utilisez les ACL de Squid pour filtrer votre / vos requête (s) http

1. Configuration du calmar

En supposant que vous puissiez installer squid et modifier votre squid.conf, il s'agirait d'un exemple simple (condensé) permettant d'activer un proxy http transparent pour le réseau 192.168.111.0/24 et * .222. / 24.

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
acl lan src 192.168.111.1 192.168.222.0/24
http_access allow localhost
http_access allow lan

2. Configuration d'Iptables

Vos règles DNAT ressembleraient alors à ceci, en supposant que le service squid est exécuté sur le port par défaut (3128).

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

3. ACL de calmar

Votre exemple d'ACL peut ressembler à ceci. Il suffit d’utiliser les contrôles d’accès adaptés à votre cas.

acl evelrequest url_regex -i ^http(s)://([a-zA-Z]+).hostname.tld/requestpath/.*$
http_access deny evelrequest
bjoster
la source
J'essaie cela sur un réseau géré. Nous avons besoin de cela pour tester certains problèmes. Mais essayer cela crée beaucoup de problèmes. Est-il possible de ne contourner que la connexion d'un port à un autre? Il y aura une machine uniquement pour le faire. Il sera utilisé pour contrôler le flux du réseau sur certains appareils.
Lefsler
"Mais essayer cela crée beaucoup de problèmes." n'est pas vraiment utile pour vous aider. "Est-il possible de ne contourner que la connexion d'un port à un autre?" - Oui, ce serait http sur le port 80 dans ce cas. Ou autant d'auditeurs ( http_port) ou autant d'ACL ( acl MyAcl ...) que vous le souhaitez. Le calmar serait presque aussi transparent qu'un câble de réseau. Si je devais isoler le trafic d'un seul hôte, j'utiliserais un ACL Squid pour le faire.
bjoster