У меня есть устройство, которое я хочу заблокировать некоторые запросы HTTP. Нет, мои настройки

[Переключатель устройства]

Поскольку устройство действительно простое, я не могу заблокировать от него запрос и не могу изменить программу, чтобы заблокировать запросы.

Что я хочу сделать, это

[Устройство] - [ПК] - [Переключатель]

Я использую Ubuntu 14.04, и мой компьютер имеет два порта Ethernet. Я попытался найти некоторые ответы в Интернете, но не так много удачи в этом.

Есть ли способ сделать это? Чтобы пропустить мое устройство через компьютер и заблокировать определенные http-запросы (например, с помощью fiddler)?

1 ответ1

1

Я бы тоже порекомендовал прозрачную настройку прокси. Это можно сделать в три этапа.

  1. Конфигурация Squid (чтобы он действовал как прозрачный прокси)
  2. Конфигурация Iptables (настройте систему как маршрутизатор, затем перенаправьте весь http-трафик на Squid)
  3. Используйте Squid ACL для фильтрации ваших http-запросов

1. Конфигурация Squid

Предполагая, что вы можете установить squid и отредактировать свой squid.conf, это будет простой (сжатый) пример для включения прозрачного http-прокси для сети 192.168.111.0/24 и * .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. Настройка Iptables

Тогда ваши правила DNAT будут выглядеть так, если предположить, что служба squid работает на порте по умолчанию (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. Squid ACL

Ваш пример ACL может выглядеть следующим образом. Просто используйте подходящие средства контроля доступа для вашего случая.

acl evelrequest url_regex -i ^http(s)://([a-zA-Z]+).hostname.tld/requestpath/.*$
http_access deny evelrequest

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .