Squid Transparent Proxy Version: 3.3.8
OS: Ubuntu Server 14.04
Server IP: 192.168.1.3
(за исключением комментариев с использованием grep)
root@ubuntu:~# grep -v '^$\|^\s*\#' /etc/squid3/squid.conf
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
acl mylocalnetwork src 192.168.1.0/24
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access allow mylocalnetwork
http_access deny manager
http_access allow localhost
http_access deny all
http_port 3128 transparent
cache_mem 8 MB
maximum_object_size_in_memory 32 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
cache_dir aufs /opt/squid/cache 10000 14 256
maximum_object_size 128000 KB
cache_swap_low 95
cache_swap_high 99
coredump_dir /var/spool/squid3
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern -i \.(gif|png|jp?g|ico|bmp|tiff?)$ 10080 95% 43200
refresh_pattern -i \.(rpm|cab|deb|exe|msi|msu|zip|tar|xz|bz|bz2|lzma|gz|tgz|rar|bin|7z|doc?|xls?|ppt?|pdf|nth|psd|sis)$ 10080 90% 43200
refresh_pattern -i \.(avi|iso|wav|mid|mp?|mpeg|mov|3gp|wm?|swf|flv|x-flv|axd)$ 43200 95% 432000
refresh_pattern -i \.(html|htm|css|js)$ 1440 75% 40320
refresh_pattern -i \.index.(html|htm)$ 0 75% 10080
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 1440 90% 10080
quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 100
store_avg_object_size 13 KB
visible_hostname localhost
-------------------------------------------------------------
-----------------------------------------------------------
----------------------------------------------------------
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| Loaded Icons.
2014/07/03 22:11:57| HTCP Disabled.
2014/07/03 22:11:57| Pinger socket opened on FD 13
2014/07/03 22:11:57| Squid plugin modules loaded: 0
2014/07/03 22:11:57| Adaptation support is off.
2014/07/03 22:11:57| Accepting NAT intercepted HTTP Socket connections at local=0.0.0.0:3128 remote=[::] FD 11 flags=41
2014/07/03 22:11:57| Done reading /opt/squid/cache swaplog (2 entries)
2014/07/03 22:11:57| Finished rebuilding storage from disk.
2014/07/03 22:11:57| 2 Entries scanned
2014/07/03 22:11:57| 0 Invalid entries.
2014/07/03 22:11:57| 0 With invalid flags.
2014/07/03 22:11:57| 2 Objects loaded.
2014/07/03 22:11:57| 0 Objects expired.
2014/07/03 22:11:57| 0 Objects cancelled.
2014/07/03 22:11:57| 0 Duplicate URLs purged.
2014/07/03 22:11:57| 0 Swapfile clashes avoided.
2014/07/03 22:11:57| Took 0.08 seconds ( 24.94 objects/sec).
2014/07/03 22:11:57| Beginning Validation Procedure
2014/07/03 22:11:57| Completed Validation Procedure
2014/07/03 22:11:57| Validated 2 Entries
2014/07/03 22:11:57| store_swap_size = 12.00 KB
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| pinger: Initialising ICMP pinger ...
2014/07/03 22:11:57| pinger: ICMP socket opened.
2014/07/03 22:11:57| pinger: ICMPv6 socket opened
2014/07/03 22:11:57| Pinger exiting.
2014/07/03 22:11:58| storeLateRelease: released 0 objects
(пока используется единый интерфейс "eth0")
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.3:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
Проблема в Я не мог получить доступ в Интернет на своих клиентских машинах с IP Squid в качестве шлюза и первичного DNS, как показано ниже.
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.3
dns-nameservers 192.168.1.3
Когда я меняю DNS на клиенте Ubuntu на dns-nameservers 192.168.1.1
& Клиент Windows на тот же IP-адрес маршрутизатора 192.168.1.1
вместо ip squid (192.168.1.3), тогда я мог бы получить доступ к Интернету на обоих. Это может быть не способ сделать, поскольку страница может отображаться непосредственно с маршрутизатора и может быть не с сервера squid с использованием кеша (конечно, я мог видеть журналы, создаваемые в /var/log/squid3/cache.log). Я также заметил, что мой маршрутизатор мигает для страниц, к которым уже есть доступ, это может означать, что он отправляет запрос через Интернет, а не извлекает из кеша squid.
Я все еще не скомпрометирован. Если бы я мог получить доступ к посещенным страницам на моих клиентских машинах из кеша при отключенном Интернете, я был бы удовлетворен.
Какова процедура настройки клиентов для Squid Transparent Proxy? Кто-нибудь подскажет, пожалуйста?
root@ubuntu:~# iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:192.168.1.3:3128
0 0 REDIRECT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 3128
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * eth0 192.168.1.0/24 0.0.0.0/0
Это работает по предыдущему изданию Ubuntu 10.04(lucid)
с версией кальмара Squid Cache: Version 2.7.STABLE7
, а ниже - файл конфигурации squid сработал, и я мог получить доступ к Интернету на клиентских машинах, когда шлюз клиента и DNS настроены на ip lucid:
root@lucid:~# grep -v '^$\|^\s*\#' /etc/squid/squid.conf
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl mynet src 192.168.1.0/24 # RFC1918 possible internal network
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow mynet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
cache_mem 8 MB
maximum_object_size_in_memory 32 KB
cache_dir ufs /var/spool/squid 2000 16 256
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Package(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
offline_mode on
coredump_dir /var/spool/squid
Я не уверен, почему это не работает Ubuntu 14.04
с версией Squid Squid Cache: Version 3.3.8
. Мне определенно не хватает некоторых настроек в новой версии squid или в новом дестро !.
Я не уверен, но, пожалуйста, ознакомьтесь с этим контрольным списком:
Отредактируйте файл squid.conf и измените следующую строку, чтобы включить режим прозрачного прокси:
http_port 3128
to http_port 3128 intercept
перезагрузка службы squid перезагрузка службы squid
Добавьте запись в таблицу NAT iptables для перенаправления входящего трафика порта на внутреннем интерфейсе (сторона LAN) на сервер Squid на порт 3128 (при условии, что eth0 является внутренним интерфейсом с IP-адресом 192.168.1.3.
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to (продолжение) 192.168.1.3:3128
Теперь вы можете посмотреть свои iptables, таблицу фильтров по умолчанию и таблицу nat, используя следующие команды
iptables -L -t filter iptables -L -t nat
Теперь вы можете добавить (добавить) в таблицу фильтров iptable с помощью следующих команд, чтобы принимать ввод через порт 3128 для Squid
iptables -t filter -A INPUT -p tcp --dport 3128 -j ACCEPT
Также попробуйте это
В конфигурации вам нужен как один порт для перехвата, так и один порт для прямого прокси, даже если вы не используете прокси:
http_port 3129
http_port 3128 перехват
Заметка: Параметр «прозрачный» не рекомендуется для параметра «перехват» с 2010 года.
Ошибка: No forward-proxy ports configure
(в /var/log/squid3/cache.log
)
Читать Вики.
По моему опыту, прозрачный прокси-сервер требует порта NAT в squid.conf
(оба из них)
http_port 3128
http_port 8080 intercept
Согласно Кальмар WiKi у вас неправильная настройка в http_port вариант, с Squid 3.1+ и DNAT он должен быть intercept
вместо того transparent
.
http_port 3128 intercept
Хотя вывод вашего журнала Squid действительно указывает на то, что перехваченные сокеты активны.
Во-вторых, сервер Linux должен разрешить пересылку TCP-IP с sysctl net.ipv4.ip_forward=1
После простого добавления «перехвата» к параметру http_port у меня все еще остались проблемы в сочетании с режимом перенаправления iptables, если клиенты настроены на использование прокси:
«ОШИБКА: не настроены порты прямого прокси». и "ВНИМАНИЕ: обнаружена петля пересылки для:"
После прохождения вышеуказанных утверждений я использую это как лучший результат сейчас:
а) используйте запись с двумя портами в squid.conf, например:
http_port 8080
http_port 3128 intercept
Это представит порт 8080 как обычный порт пересылки для конфигурации на стороне клиента и предоставит второй порт для пересылки перенаправленного трафика.
б) используйте правило iptables следующим образом:
iptables -A PREROUTING -t NAT -i $LAN_IF -p tcp --dport 80 -j REDIRECT --to-port 3128
Таким образом, у вас будет классический прокси-порт (8080) для настройки на ваших клиентах и принудительный порт для незашифрованного трафика.
Зачем вам это нужно? Что ж, если вам не нравится иметь HTTPS-трафик в обход прокси (необходимость в настройке обычных клиентов в любом случае) и если вы хотите поддерживать, но не хотите (или не можете) настраивать менее умные устройства или программы.
В Ubuntu 14.04 Squid Transparent Proxy Version: 3.3.8 вы должны удалить прозрачный из конфигурации http_port 3128, то есть просто оставить
http_port 3128
не
http_port 3128 прозрачный
почему-то сейчас не работает.
с участием :
http_port 3128
http_port 8080 intercept
оно работает
(Ошибка: порты прямого прокси не настроены в /var/log/squid3/cache.log)