pf + 80 порт на 1 страницу

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Zohan
рядовой
Сообщения: 34
Зарегистрирован: 2010-01-03 10:40:15

pf + 80 порт на 1 страницу

Непрочитанное сообщение Zohan » 2010-02-13 14:32:18

Есть mpd5.4 + freeradius
скриптом на поднятие интерфейса фейковый айпишник добавляется в табличку pf из которой разрешен НАТ.
А вот как сделать так чтобы все запросы человека на 80 порт редиректились на 1 страницу?
Т.е. например у человека закончились деньги, ну и пусть он коннектится, НАТ ему оставим только на 80 порт и то все запросы будем перенаправлять 1 сайт с страницей: "Пополните баланс"
Как это обычно реализуется у провайдеров?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Бегемот
проходил мимо

Re: pf + 80 порт на 1 страницу

Непрочитанное сообщение Бегемот » 2010-02-13 18:46:39

А если аналогично? Ну то есть при поднятии интерфеса скрипт закидывает эти адреса (у которого кончились баблосы) в другую, отдельную табличку, специально созданную для задолжников. Ну а дальше уж дело техники - редиректим эту табличку туда куда нам надо. Хоть во двор, хоть в коридор :)

AzureZ
мл. сержант
Сообщения: 124
Зарегистрирован: 2007-11-06 17:07:27
Откуда: Москва

Re: pf + 80 порт на 1 страницу

Непрочитанное сообщение AzureZ » 2010-02-14 14:44:30

Или сделать редирект тех кто не в табличке на нужную страничку

Zohan
рядовой
Сообщения: 34
Зарегистрирован: 2010-01-03 10:40:15

Re: pf + 80 порт на 1 страницу

Непрочитанное сообщение Zohan » 2010-02-15 13:05:22

создал в pf 2 таблички: accept и blocked
тем кто в accept должен быть полный НАТ без ограничений
а тем кто в blocked НАТа не должно быть или должен запрещаться и все страницы должны перенапрвляться на нужный айпишник - это я сделал :)
проблема вот в чем:
при поднятии интерфейса MPD5.4 выполняется скрипт
pfctl -t accept -T add $4
при опускании
pfctl -t accept -T delete $4

так вот если человек подключился и ему разрешен НАТ и есть интернет
то если потом я его вручную удаляю из accept и добавляю в blocked, то у него все равно все работает :(

AzureZ
мл. сержант
Сообщения: 124
Зарегистрирован: 2007-11-06 17:07:27
Откуда: Москва

Re: pf + 80 порт на 1 страницу

Непрочитанное сообщение AzureZ » 2010-02-15 13:09:35

Нужно не просто удалить из таблицы, но очистить все установленные подключения. pfctl -k IPадресс

Zohan
рядовой
Сообщения: 34
Зарегистрирован: 2010-01-03 10:40:15

Re: pf + 80 порт на 1 страницу

Непрочитанное сообщение Zohan » 2010-02-15 14:02:39

AzureZ писал(а):Нужно не просто удалить из таблицы, но очистить все установленные подключения. pfctl -k IPадресс
Премного благодарен :)

Zohan
рядовой
Сообщения: 34
Зарегистрирован: 2010-01-03 10:40:15

Re: pf + 80 порт на 1 страницу

Непрочитанное сообщение Zohan » 2010-02-15 15:51:57

Хм, сделал вот так:

ext_if="bge0"
icmp_types="{echoreq, unreach}"
table <blocked> persist
table <accept> persist

# Options
set require-order yes
set block-policy drop
set optimization normal
set loginterface none
set skip on lo0

# Normalize packets
scrub in all
scrub out all

#NAT
nat pass from <accept> to any -> $ext_if
nat pass from <blocked> to any port 80 -> $ext_if

#Redirecting ports
rdr proto tcp from <blocked> to any port {80, 443, 8080, 3128} -> 10.0.x.xx port 80




block in all

pass out keep state
pass out all

pass from <blocked> to any
pass from any to <blocked>

pass from <accept> to any
pass from any to <accept>

pass in on $ext_if inet proto tcp from any to any port 1723
pass in on $ext_if inet proto gre from any to any
pass in on $ext_if inet proto tcp from any to any port 22
pass in on $ext_if inet proto tcp from any to any port 5006

pass in on $ext_if inet proto icmp all icmp-type $icmp_types


Но все -таки после того как вручную удаляю ip-адрес из accept, добавляю его в blocked и делаю pfctl -k ip-адрес
ходит какой-то минимальный траффик
что я делаю не так, может покритикуете?