Image

База знаний → Учет трафика через squid transperent в iptables используя NAT

[Виртуальные сервера]
Дата публикации: 12.03.2024

По умолчанию сервер работает в режиме роутера и задача учитывать весь веб трафик по всем подключенным локальным устройствам к нашему серверу.

Текущая конфигурация описана тут: Настройка NAT в Linux Debian (интернет в локальной сети)

Мы будем заворачивать весь веб трафик на наш Squid, что позволит получить детализированную статистику по всем сайтам с группировкой по устройствам.

1. Установим Squid и ssl компоненты

apt install squid squid-openssl

1.1 Сгенерируем самоподписанный сертификат

Он нужен для конфигурации перенаправления трафика на порту 443

mkdir -p /etc/squid/ssl
openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout squidCA.pem -out /etc/squid/ssl/squidCA.pem

1.2 Приведем конфигурацию squid к виду

nano /etc/squid/squid.conf
...
acl localnet src 100.100.100.0/24
...
acl SSL_ports port 443
acl Safe_ports port 80		# http
...
http_access allow localhost
...
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
...
http_port 3128
http_port 3129 intercept
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump splice all
https_port 3130 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl/squidCA.pem

1.2.1 Перезапустим службу

service squid restart

1.3 Завернем веб трафик на наш прокси

iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-port 3129
iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-ports 3130

1.4 Проверим хождение трафика

tail -f /var/log/squid/access.log

Попробуем открыть любой сайт с устройства из локальной сети, в логе должны будут появиться события, связанные с нашими действиями.

1710202038.351   5012 100.100.100.101 TCP_TUNNEL/500 3815 CONNECT synay.net:443 - ORIGINAL_DST/89.104.77.7 -
1710202108.954  75616 100.100.100.101 TCP_TUNNEL/500 9916 CONNECT synay.net:443 - ORIGINAL_DST/89.104.77.7 -

Готово, теперь весь веб трафик идет через службу squid и мы можем получить удобный читаемый лог, используя SARG, о том как его настроить описано тут: Установка и настройка SARG на прокси сервер SQUID.

Теперь весь веб трафик по всем устройствам в нашем офисе учитывается и мы в любое время можем посмотреть с какого устройства какие сайты были открыты включая время и объем данных.





Нет комментариев