Как настроить iptables для прокси-сервера Squid с помощью всего одной сетевой карты HW-NIC

Как настроить iptables для прокси-сервера Squid с помощью всего одной сетевой карты HW-NIC

Я арендовал сервер со статическим IP-адресом и теперь хочу настроить на этом сервере прозрачный прокси-сервер.

после того, как я настроил squid для тестирования с прослушивателем "http_access allow all", я хотел настроить iptables. Я понял, что у меня есть только одно соединение Ethernet с моим статическим IP-адресом, смонтированным. Но, по крайней мере, я не нашел документации, которая показала бы мне, как это настроить. (нашел много информации о том, как настроить squid с двумя физическими отдельными сетевыми картами, но не с одной)

выход:

root@1:~# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:49 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3536 (3.5 KB)  TX bytes:3536 (3.5 KB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:127.0.0.1  P-t-P:127.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.255
          inet6 addr: ::2/128 Scope:Compat
          inet6 addr: 2a01:[....]external-ipv6[...]/128 Scope:Global
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:551353 errors:0 dropped:0 overruns:0 frame:0
          TX packets:455717 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:351211942 (351.2 MB)  TX bytes:267054641 (267.0 MB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:[...]external-ipv4[...]  P-t-P:[...]external-ipv4[...]  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

Я много читал об iptables и немного об ebtables. И теперь я застрял. Я не знаю, какой шаг должен быть моим следующим.

На данный момент мои iptables совершенно пусты.

Нужен ли мне ebtables для корректной работы прозрачного прокси? Достаточно ли правильных iptables, чтобы сделать это без ebtables? Если да, я был бы очень признателен, если бы вы могли дать мне строку для их настройки.

#

Источники: wiki[.]ubuntuusers[.]de/Squid http://freecode.com/articles/configuring-a-transparent-proxywebcache-in-a-bridge-using-squid-and-ebtables http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html

#

особенно эта цитата должна объяснить мне, как это сделать, но я не понимаю...

Далее я добавил следующие правила для пересылки всех http-запросов (поступающих на порт 80) на порт 3128 сервера Squid:

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

с

iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 80 -j DNAT --to 127.0.0.1:3128
iptables -t nat -A PREROUTING -i venet0:0 -p tcp --dport 80 -j REDIRECT --to-port 3128

это должно работать, но не работает...

решение1

В этом сценарии нельзя использовать прозрачный прокси-сервер.

Прозрачный прокси-сервер должен находиться на сетевом маршруте трафика, чтобы он мог перехватывать и перезаписывать весь трафик, перенаправляя его в Squid, а поскольку ваш сервер находится за пределами вашего сетевого пути, у вас нет возможности это сделать.

Если вы хотите использовать этот сервер в качестве прокси-сервера, это должен быть обычный прямой прокси-сервер.

Связанный контент