Squid (англ. squid — «кальмар») — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS. http://www.squid-cache.org/
В тестовой среде
1)#apt update
2)Установка squid
#apt-get install squid
3)Переходим в каталог squid
#cd /etc/squid/
4)Настройка Squid
# vim /etc/squid/squid.conf
———————————————————————————— squid.conf———
acl CONNECT method CONNECT
acl our_networks src 10.10.10.0/24
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
#http_access allow localnet
http_access allow our_networks
http_access allow localhost
———————————————————————————————————-
5)Проверка файла конфигурации squid
#squid -k parse #squid -k check
6)Перезапуск сервиса squid
#systemctl restart squid
добавление в автозагрузку
sudo systemctl enable squid
7)Проверка состояние сервиса
ps aux |grep squid
root 3348 0.0 0.1 115424 2332 ? Ss ноя24 0:00 /usr/sbin/squid -YC -f /etc/squid/squid.conf
proxy 3350 0.0 1.3 155528 26392 ? S ноя24 0:00 (squid-1) -YC -f /etc/squid/squid.conf
proxy 3351 0.0 0.0 14004 1788 ? S ноя24 0:00 (logfile-daemon) /var/log/squid/access.log
root 3394 0.0 0.0 13136 1032 pts/0 S+ 00:18 0:00 grep —color=auto squi
7.1)Проверка порта
ss -tunelp | grep 3128
8)Подключимся к интренет сайту и проверим результат в логе:
tail -f /var/log/squid/access.log
9)Узнаем версию пакета squid
dpkg -s squid
9.1)Включим прозрачный прокси
nano /etc/squid/squid.conf
http_port 3128 transparent
Если у тебя Squid старше версии 3.1, то нужно писать немного иначе:
http_port 3128 intercept
9.2)Чтобы заворачивать весь http трафик на порт прокси, необходимо создать правило в файрволле(iptables). Правило дано шаблоном, поэтому, чтобы привести его к нужному виду, замени SQUIDIP на публичный IP адрес, на котором «висит» Squid и слушает порты.
iptables -t nat -A PREROUTING -s 10.10.10.0/24 -p tcp -m multiport --dports 80,8080 -j REDIRECT --to-ports 3128
или
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination SQUIDIP:3128
iptables -t nat -A OUTPUT -p tcp -m multiport —dport 80,81,82,83,7900,8080,8088,8888,11523 -j DNAT —to-destination 10.10.10.1:3128
Заворот портов 80 8080 и других на Squid
eth1 интерфейс локальной сети
#iptables -t nat -A PREROUTING -i eth1 ! -d 10.10.10.0/24 -p tcp -m multiport --dport 80,81,82,83,7900,8080,8088,8888,11523 -j DNAT --to 10.10.10.1:3128
iptables-save
10)Перезапуск squid
systemctl restart squid 11)проверка таблицы iptables -t nat -L -n -v 12)Сброс всех правил если понадобится
iptables -F iptables -X