Вторник, 22 марта 2016 15:03

Linux как сервер сетевого моста для мониторинга и управления проходящего трафика

Автор
Оцените материал
(2 голосов)

Это будет долгая статья, так как все перепровить быстро не получается.

Ставим себе задачу следить тайно за проходящем трафиком. У меня это делает старенький комп с тремя сетевыми картами, две из них соеденены в мост, а третья для управления.

eth2 - сетевая для управления сервером

eth0 и eth1 соеденены в мост

apt-get install bridge-utils

и пишем нужные нам данные в /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth2
iface eth2 inet static
address 192.168.1.11
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.3

auto vmbr1
iface vmbr1 inet manual
bridge_ports eth0 eth1
bridge_stp off
bridge_fd 0

Для визуализации проходящего трафика я использую ntopng но! ночную сборку. Для этого ставим репозиторий и ставим нужные нам пакеты

wget http://apt.ntop.org/jessie/all/apt-ntop.deb
dpkg -i apt-ntop.deb
apt-get clean all
apt-get update
apt-get install pfring nprobe ntopng ntopng-data

Теперь через броузер мы подключаемся http://192.168.1.11:3000 логин и пароль admin

Теперь мы можем наблюдать за трафиком. Но что бы через iptables мы могли управлять трафиком, нам надо загрузить модуль ядра modprobe br_netfilter допились систему через sysctl.conf а именно добавим туда вот что:

net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward=1

Выполняем sysctl -p и рисуем правила фаервола (iptables)

Пример нашей сети:

Доступ в инет идет через микротик, а между ним и сетью установлен наш сервер,

eth0 и eth1 это мост, eth0 смотрит в локальную сеть, а eth1 в сторону микротика, еще есть eth2 которой назначен ip 192.168.1.11/24 для управления данным сервером

Допустим что у нас на этом же сервере стоит proxy server squid на который мы будем пересылась все запросы идущие в инет на 80 порт, так как все запросы идут вначале на eth0, то рисуем правило

iptables -t nat -A PREROUTING -p tcp -s 192.168.1.160 -m physdev --physdev-in eth0 --dport 80 -j REDIRECT --to-port 3128

physdev указывает на сетевую карту, которая в мосте и смотрит в локальную сеть, так как все запросы идут из неё. О том как настроить кальмара на прозрачное проксирование и https сайтов читать тут.

Ограничение пропускной способности.

Как показывает практика, простейший способ организации шейпера на Linux это htb.init. Htb.init это скрипт, который читает ваши конфигурационные файлы и выдает вам набор правил для применения, которые и будут нарезать ваш канал на нужные скорости.

Прочитано 2350 раз Последнее изменение Среда, 08 ноября 2017 00:24
Другие материалы в этой категории: « nginx и phpmyadmin Установка nginx php5-fpm mysql-server на Debian wheezy Jessie »

Добавить комментарий


Защитный код
Обновить