| |||
[network & security news] [RSS & Twitter] [articles, programing info] [books] [links, soft & more...] [soft archive] | [home] |
Построение сети с разделением трафика на базе iptables & ip routeВот как-то встала такая задачка: Оговорюсь сразу что разделение происходит только для соединений инициированных из внутренней сети т.к. осуществить редирект внешнего клиента (посетителя сайта) не входило в задачу да и не является столь актуальным т.к. основной вид трафика потребляемого внешним клиентом это исходящий мы же делим входящий %)).
Ну, начнем по порядку...
Далее составляем таблицу роутинга для подсетей или машин (зависит от задачи). #!/bin/bash RU_IP="195.182.16.3" RU_DEV="eth2" Default_IP="63.18.23.10" Default_dev="eth1" RUNET="/bin/cat /etc/routing/runet.db|grep -v 192.168.|grep -v 127.0.0|grep -v 10.0.0|grep -v 172.0.0" RUHOST="/bin/cat /etc/routing/ruhost.db|grep -v 192.168.|grep -v 127.0.0|grep -v 10.0.0|grep -v 172.0.0" USR="/bin/cat /etc/routing/users" for US in $USR { /sbin/ip rule add from $US table runet } for RU in $RUNET { /sbin/ip route add $RU via $RU_IP dev $RU_DEV table runet } for RU in $RUHOST { /sbin/ip route add $RU via $RU_IP dev $RU_DEV table runet } /sbin/ip route add default via $Default_IP dev $Default_dev table runet После данных махинаций мы получим то, что до заданных сетей и хостов машины будут ходить по разным маршрутам. Проверить это можно с помощью traceroute (unix) или tracert (win). Далее нам необходимо сконфигурировать шлюз для отсечения ненужного и учета входящего трафика с разных направлений. В моем случае использовался NAT, т.е. внутренняя сеть проходит через трансляцию адресов, в том числе и сервера, что и нужно отразить в скрипте шлюза.
Скрипт который у меня получился можно скачать здесь: rc.firewall.txt
(Скачано 5641 раз)
Попробую объяснить, что происходит в данном скрипте ;-) .
Статистику по входящему трафику получаем с помощью: Chain ip_net_in (1 references) pkts bytes target prot opt in out source destination 6061 426394 ACCEPT all -- * * 0.0.0.0/0 192.168.0.1 1598 135371 ACCEPT all -- * * 0.0.0.0/0 192.168.0.2 0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.0.11 0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.0.12 0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.0.13 0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.0.22 0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.0.23 0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.0.20 325 17421 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 Вот собственно мы и получили статистику ;-), что с ней делать дальше решать вам, могу лишь подсказать пример скрипта разбирающего и пишущего ее в postgreSQL. Скачать этот скрипт можно здесь: db_add.txt (Скачано 4568 раз) Вот и сказочке конец а кто слушал тот... ;-)
Все документы и программы на этом сайте собраны ТОЛЬКО для образовательных целей, мы
не отвечаем ни за какие последствия, которые имели место как следствие использования
этих материалов\программ. Вы используете все вышеперечисленное на свой страх и риск. |
[network & security news] [RSS & Twitter] [articles, programing info] [books] [links, soft & more...] [soft archive] | [home] |
2000-2015 © uinC Team |