The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Несколько вопросов относительно ipfw"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Firewall, Фильтрация пакетов / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Несколько вопросов относительно ipfw"  +/
Сообщение от ARH665 email(ok) on 31-Янв-11, 08:53 
Добрый день!
По ходу пользования системой в качестве шлюза, возникло несколько вопросов. Может кто-то сталкивался и подскажет, хотелось бы узнать вот что:
Вопрос №1. Как можно в фаерволе перенаправить одних пользователей через 1 канал, а других через 2.
Читал про PBR
http://ipfw.ism.kiev.ua/pbr.html

сначала запускаю нат для двух интерфейсов:
natd -a 91.205.170.67 -p 8668
natd -a 91.205.170.68 -p 8778

(после этого пишу top, и там отображается всего один natd. Не странно ли это?)

пишу правила:
IP которому разрешено ходить через 1 канал (1 канал с интерфейса vr0 (LanOut) с IP 192.168.0.150, все остальные идут через второй канал, в самом начале конфига:
#!/bin/sh
FwCMD="/sbin/ipfw"
LanOut="vr0"
LanOut2="nfe0"
LanIn="vr1"
IpOut="91.205.170.67"
IpOut2="91.205.170.68"
IpIn="192.168.0.1"
NetMask="24"
NetIn="192.168.0.0"

. . .

${FwCMD} 00100 add divert 8668 ip from 192.168.0.150 to any
${FwCMD} 00200 add divert 8778 ip from any to any
${FwCMD} 00300 add fwd 91.205.170.254 ip from ${IpOut} to any
${FwCMD} 00400 add fwd 91.205.170.254 ip from ${IpOut2} to any
${FwCMD} 00500 add divert 8668 ip from any to ${IpOut}
${FwCMD} 00600 add divert 8778 ip from any to ${IpOut2}

все правильно? А не работает. При sh /etc/firewall.conf соединение по ssh отваливается на правиле 00100, благо сижу на тестовой машине, монитор перед глазами, но так ладу и не дал с divert...

Вопрос №2: Нашел инструкцию как это сделать, но она была для pf. Думаю в ipfw тоже предусмотрена такая функция. Как можно перенаправить ВСЕ запросы с одного IP адреса в локальной сети на одну страницу на сервере. Т.е. что-то типа: пользователь с IP открывает любую страницу, например yandex.ru, и вместо яндекса видит: доступ запрещен. А страница с надписью доступ запрещен лежит где-то на сервере. Как так сделать?

Вопрос №3: Как можно отследить трафик c IP адреса и например если он выкачивает в период времени с 20 до 23 больше 1 гб ограничить ему скорость до 1 мегабита, и восстановить скорость например в 23 часа и все это автоматически? Имеются неплохие знания в PHP. Был идея написать какой-то скрипт проверки на php: например вытаскивать каждые 10 минут из базы данных darkstat показания трафика и если они превышают допустимые сделать запуск средствами PHP sh скрипта в котором будет написано что-то типа:

. . .
${FwCMD} pipe 1 config bw 1Mbit/s
chour=`date '+%H'`
if [ ${chour} -lt 23 ]; then
    ${FwCMD} pipe 1 config bw 15Mbit/s
fi

Единственное не знаю как из php заставить запустить sh скрипт. Правда может это показаться знатокам бредом, но это мои мысли пришедшие ко мне на стадии пользования FreeBSD пол года. Подскажите, как было бы правильнее?

Вопрос №4: Был у меня роутер Dlink DIR-300. И стояла на нем прошивка DD-WRT. В ней была очень интересная функция, что-то типа рекламной сети или как-то так. Суть в том, что когда пользователь открывает любую страницу, у него в браузере сверху добавляется фрейм, в котором идет какая-то информация заложенная администратором роутера, а ниже сам контент страницы, которую запросил пользователь. Сколько времени искал, ничего похожего даже не нашел. Отсюда напрашивается вывод, если в роутере с linuxом сделали такую фишку, неужели на более мощном шлюзе нельзя сделать так же на FreeBSD?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Несколько вопросов относительно ipfw"  +/
Сообщение от ленивец_ on 01-Фев-11, 15:14 
чего-то намудрили =)
задача у вас ерундовая, дольше говорить-писать чем делать и объяснять ))
если версия фри позволяет - лучше использовать nat а не natd - говорят быстрее,
делайте 1 дефолтный маршрут и всех по нему, а одиночный ip заворотом через fwd на другой направляйте, хотя уже во фре есть поддержка setfib (то есть можете и два и более маршрутов
указать как дефолтовые)
через чих-пых команды выполнять конечно можно, впринципи, но зачем же через ж.. гланды лечить? есть свой шелл и он прекрасно со всем, что вам нужно справится - и из базы выдернет, что вам нужно и шейперу в ipfw команду нужную даст по cron'у на изменение скорости
Короче, читайте маны, форум опять же. удачи.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру