Настройка логирования интернета внутри локальной сети с помощью Mikrotik, Squid и Lightsquid
Логирование интернета задача тривиальная, если увас есть linux сервер в качетсве шлюза. Но что если шлюзом выступает mikrotik, а логирование всеравно нужно?
Без squid можно обойтись, но логи будут не полные. Настройка squid в такой связке почти такая же как при шлюзе. Обовсем по порядку:
1. Настройка mikrotik для сбора статистики посещения интернета
2. Установка и настройка Squid с ssl bump и сертификатов
3. Установка и настройка lightsquid
1. Настройка Mikrotik:
192.68.100.250 - адрес сервера со squid
192.168.100.0/24 - Локальная подсеть
Настройка самого mikrotik сводится к двум командам в терминале:
/ip firewall mangele add action=mark-routing chain=prerouting disabled=no dst-
address=!192.168.100.0/24 dst-port=80,443,8080 new-routing-mark=squid
passthrough=yes protocol=tcp src-address=!192.68.100.250 src-address-list=squid
/ip routeadd distance=1 gateway=192.168.100.250 routing-mark=squid
После этого в раздел IP -> Firewall -> AddressLists
нужно добавить адреса за которыми наблюдаем. Но не торопимся, предварительно нужно создать и установить сертификат.
2. Настройка Squid и сертификатов
Для начала скачаем исходники squid
$ apt build-dep squid
Соберем squid с нужными параметрами и установим:
$ ./configure --prefix=/usr --localstatedir=/var --libexecdir=/usr/lib/squid --datadir=/usr/share/squid --sysconfdir=/etc/squid --enable-ssl-crtd --with-openssl --enable-translation --enable-cpu-profiling --disable-dependency-tracking --disable-hostHeaderIpVerify -enable-delay-pools --enable-icmp --enable-linux-netfilter --with-large-files --with-default-user=proxy --with-logdir=/var/log/squid --with-pidfile=/var/run/squid.pid
$ make
$ make install
Выпустим сертификаты:
$ openssl genrsa -out /etc/squid/sslcert/squid.key
$ openssl req -new -key /etc/squid/sslcert/squid.key -out /etc/squid/sslcert/squid.csr
$ openssl x509 -req -days 3650 -in /etc/squid/sslcert/squid.csr -signkey /etc/squid/sslcert/squid.key -out /etc/squid/sslcert/squid.pem
$ openssl x509 -in /etc/squid/sslcert/squid.pem -outform DER -out squid.der
Изменим права на сертификаты:
chown -R :proxy /etc/squid/sslcert
Изменения в стандартном конфиге squid:
acl intermediate_fetching transaction_initiator certificate-fetching
http_access allow intermediate_fetching
acl localnet src 192.168.100.0/24 # RFC1918 possible internal network
dns_nameservers 8.8.8.8
#Непрозрачный порт, через который происходит взаимодействие клиентских хостов с прокси-сервером
http_port 0.0.0.0:3130 options=NO_SSLv3 cert=/etc/squid/sslcert/squid.pem key=/etc/squid/sslcert/squid.key
#прозрачный порт указывается опцией intercept
http_port 0.0.0.0:3128 intercept options=NO_SSLv3 connection-auth=off cert=/etc/squid/sslcert/squid.pem key=/etc/squid/sslcert/squid.key
#HTTPS порт
https_port 0.0.0.0:3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/sslcert/squid.pem key=/etc/squid/sslcert/squid.key
sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/cache/squid/ssl_db -M 4MB
always_direct allow all
tls_outgoing_options flags=DONT_VERIFY_PEER
sslproxy_cert_error allow all
ssl_bump stare all
Скопировать сервис для автозапуска:
cp /root/source/squid-4.6/tools/systemd/squid.service /etc/systemd/system/squid.service
Перечитать systemd
systemctl daemon-reload
Проверить запуск squid
systemctl start squid
Если все хорошо, то добавить в автозапуск:
systemctl enable squid
Необходимо добавить правило в iptables:
iptables -t nat -A PREROUTING ! -d 192.168.100.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING ! -d 192.168.100.0/24 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3129
И сохранить правила в автозагрузку:
iptables-save > /etc/iptables.up.rules
Добавить в /etc/network/interfaces
в конец описания сетевого интерфейса:
post-up iptables-restore < /etc/iptables.up.rules
На все компы в организации поставить сертификат /etc/squid/sslsquid/squid.der
в доверенные центры сертификации
Теперь можно добавлять IP адреса на Mikrotik в список squid IP -> Firewall -> AddressLists
Трафик по порту 80 и 443 на эти IP адреса будет ходить через squid.
Ошибка: FATAL: The /usr/lib/squid/security_file_certgen -s /var/cache/squid/ssl_db -M 4MB helpers are crashing too rapidly, need help!
Необходимо вручную выполнить:
$ /usr/lib/squid/security_file_certgen -c -s /var/cache/squid/ssl_db -M 4MB
и раздать права:
$ chown proxy:proxy /var/cache/squid/ssl_db
ERROR: Failed to acquire TLS certificate ‘/etc/squid/squid.pem’: error:0909006C:PEM routines:get_name:no start line
Надо перевыпустить сертификат и самоподписать его:
$ openssl genrsa -out /etc/squid/sslcert/squid.key
$ openssl req -new -key /etc/squid/sslcert/squid.key -out /etc/squid/sslcert/squid.csr
$ openssl x509 -req -days 3650 -in /etc/squid/sslcert/squid.csr -signkey /etc/squid/sslcert/squid.key -out /etc/squid/sslcert/squid.pem
$ openssl x509 -in /etc/squid/sslcert/squid.pem -outform DER -out squid.der
3. Установка и настройка lightsquid
Скачиваем и копируем в новую директорию
$ mkdir /var/www/lightsquid
$ wget http://downloads.sourceforge.net/project/lightsquid/lightsquid/1.8/lightsquid-1.8.tgz
$ tar -xf ./lightsquid-1.8.tgz `
$ cp -R ./lightsquid-1.8/* /var/www/lightsquid
Задаем права:
$ chown -R www-data:www-data /var/www/lightsquid
$ chmod +x /var/www/lightsquid/*.cgi
$ chmod +x /var/www/lightsquid/*.pl
В файл /etc/apache2/apache2.conf
добавляем:
Alias /lightsquid /var/www/lightsquid
<Directory /var/www/lightsquid>
AddHandler cgi-script .cgi
Options +ExecCGI
AllowOverride All
</Directory>
И исправляем конфиг: /var/www/lightsquid/lightsquid.cfg
Проверяем в переменных пути. И выбираем язык: $lang="ru";
Проверяем конфигурацию: $ /var/www/lightsquid/check-setup.pl
добавляем в крон:
* 4 * * * /var/www/lightsquid/lightparser.pl today
В файле /var/www/lightsquid/realname.cfg
можно добавить сопаставление IP адресов и реальных имен. Заполняем: ipaddr name
Ошибка no: CGI.PM found, please install
apt install libcgi-pm-perl
Ошибка: CGI скрипты отображаются а не выполняются.
Необходимо включить модуль в apache2
a2enmod cgi
systemctl restart apache2
Ошибка: 403 Forbidden You don’t have permission to access this resource.
Добавить в /etc/apache2/apache2.conf
строку: Options +ExecCGI
Ошибка: пустые отчеты
Проверить права на директорию: /var/log/squid/
Проверить наличие логов в /var/log/squid/access.log
Запустить сборщик /var/www/lightsquid/lightparser.pl today
Written with StackEdit.
Комментариев нет:
Отправить комментарий