Назад | Перейти на главную страницу

Как мне настроить RouterOS для использования веб-прокси на другом компьютере?

В документации RouterOS показано, как прозрачно проксировать весь веб-трафик через прокси-сервер HTTP, встроенный в RouterOS:

/ip firewall nat 
add in-interface=ether1 dst-port=80 protocol=tcp action=redirect to-ports=8080 chain=dstnat 
/ip proxy
set enabled=yes port=8080

Я хотел бы запустить прокси на другом компьютере, чтобы я мог воспользоваться более сложными правилами фильтрации, доступными в Squid и т.п. Однако, если я использую NAT для перенаправления трафика на другую машину, на которой запущен Squid, это не сработает, так как HTTP-запрос нужно будет переписать, чтобы он стал HTTP-запросом прокси; просто перенаправление трафика дает плохие ошибки запроса от Squid.

Нет необходимости настраивать прокси в RouterOS. Вы можете направить весь исходящий HTTP-трафик на сервер напрямую через NAT:

ip firewall nat add in-interface=eth1 src-address=!<IP of Squid machine> dst-port=80 protocol=tcp action=dst-nat to-addresses=<IP of Squid machine> to-ports=8080 

Последний параметр "src-address =! ..." необходим в случае, если какая-то машина squid взаимодействует через тот же интерфейс, что и другие машины. В противном случае это было бы так:

  1. Компьютер отправляет HTTP-запрос
  2. RouterOS отправляет этот пакет squid
  3. Squid отправляет HTTP-запрос на веб-сервер
  4. RouterOS снова направляет запрос squid в squid -> loop

Это можно сделать с помощью parent-proxy настройка:

/ip proxy
set parent-proxy=<IP of Squid machine> parent-proxy-port=3128
/ip proxy
set parent-proxy=<IP of Squid machine> parent-proxy-port=3128

/ip firewall nat
chain=dstnat src-address=!<IP of Squid machine> protocol=tcp dst-port=80  src-address-list=<IP of Local machine> action=redirect to-ports=8080