У меня есть компьютер, на котором запущен debian между локальной сетью и балансировщиком нагрузки, который подключается к Интернету. Все в порядке, внутри этого компьютера работает Squid, НО у нас проблема с VPN, все в офисе не могут получить доступ к VPN-серверу, когда мы удаляем этот компьютер между балансировщиком нагрузки и локальной сетью, все в порядке.
Наша машина debian запускает squid в прозрачном режиме с конфигурацией моста, чтобы обойти все данные от балансировщика нагрузки, который также действует как маршрутизатор.
Я думаю, мне нужно какое-то правило iptables для пересылки данных VPN
root@squid:~# iptables -vnL Chain INPUT (policy ACCEPT 225K packets, 182M bytes) pkts bytes target prot opt in out source destination
0 0 ACCEPT udp -- eth1 * 0.0.0.0/0 0.0.0.0/0 udp spts:67:68 dpts:67:68 0 0 ACCEPT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp spts:67:68 dpts:67:68Цепочка FORWARD (политика ACCEPT 193K пакетов, 77M байтов) pkts bytes target prot opt in source destination
ЦЕПНЫЙ ВЫХОД (политика ПРИНЯТЬ 240 К пакетов, 185 Мбайт) Пакеты байтов целевой протокол исключить исходное назначение
root@squid:~# iptables -vnL -t nat Chain PREROUTING (policy ACCEPT 7172 packets, 1019K bytes) pkts bytes target prot opt in out source destination
2585 151K REDIRECT tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 3128 0 0 REDIRECT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 3128 0 0 REDIRECT tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 3128 0 0 REDIRECT tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 3128Цепочка POSTROUTING (политика ACCEPT 8621 пакетов, 1092 Кбайт) pkts bytes target prot opt in out source destination
0 0 MASQUERADE все - * eth0 0.0.0.0/0 0.0.0.0/0Цепочка ВЫХОДА (политика ПРИНЯТЬ 1625 пакетов, 97780 байт) Пакеты байтов target prot opt in source destination
root@squid:~# cat /etc/squid/squid.conf cache_effective_user squid cache_effective_user squid http_port 3128 transparentкаталог_кеша УФС / дома / мост / сквид / кеш 2000 16 256
cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log нет
emulate_httpd_log на
cache_mem 16 МБ
иерархия_стоплист cgi-bin? acl QUERY urlpath_regex cgi-bin \? asp aspx jsp no_cache deny QUERY
файл_хостов / etc / hosts
шаблон_обновления ^ ftp: 1440 20% 10080 шаблон_обновления ^ gopher: 1440 0% 1440 шаблон_обновления. 0 40% 4320
acl все src 0.0.0.0/0.0.0.0
Определите свою сеть ниже
acl mynetwork src 192.168.0.0/24 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl purge method PURGE acl CONNECT method CONNECT
acl Safe_ports порт 80 # http acl Safe_ports порт 21 # ftp acl Safe_ports порт 443 # https
acl Safe_ports port 1025-65535 # незарегистрированные порты
acl SSL_ports порт 443563
http_access разрешить диспетчер localhost http_access разрешить диспетчер http_access разрешить очистку localhost http_access разрешить очистку http_access allow! Safe_ports http_access allow CONNECT! SSL_ports
http_access разрешить localhost http_access разрешить mynetwork http_access разрешить все http_reply_access разрешить все icp_access разрешить mynetwork
icp_access запретить все
visible_hostname мост
coredump_dir / etc / squid
Я решил свою проблему, добавив простое правило iptables:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE