Есть mpd5.4 + freeradius
скриптом на поднятие интерфейса фейковый айпишник добавляется в табличку pf из которой разрешен НАТ.
А вот как сделать так чтобы все запросы человека на 80 порт редиректились на 1 страницу?
Т.е. например у человека закончились деньги, ну и пусть он коннектится, НАТ ему оставим только на 80 порт и то все запросы будем перенаправлять 1 сайт с страницей: "Пополните баланс"
Как это обычно реализуется у провайдеров?
pf + 80 порт на 1 страницу
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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 страницу
А если аналогично? Ну то есть при поднятии интерфеса скрипт закидывает эти адреса (у которого кончились баблосы) в другую, отдельную табличку, специально созданную для задолжников. Ну а дальше уж дело техники - редиректим эту табличку туда куда нам надо. Хоть во двор, хоть в коридор
-
- мл. сержант
- Сообщения: 124
- Зарегистрирован: 2007-11-06 17:07:27
- Откуда: Москва
Re: pf + 80 порт на 1 страницу
Или сделать редирект тех кто не в табличке на нужную страничку
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2010-01-03 10:40:15
Re: pf + 80 порт на 1 страницу
создал в pf 2 таблички: accept и blocked
тем кто в accept должен быть полный НАТ без ограничений
а тем кто в blocked НАТа не должно быть или должен запрещаться и все страницы должны перенапрвляться на нужный айпишник - это я сделал
проблема вот в чем:
при поднятии интерфейса MPD5.4 выполняется скрипт
pfctl -t accept -T add $4
при опускании
pfctl -t accept -T delete $4
так вот если человек подключился и ему разрешен НАТ и есть интернет
то если потом я его вручную удаляю из accept и добавляю в blocked, то у него все равно все работает
тем кто в accept должен быть полный НАТ без ограничений
а тем кто в blocked НАТа не должно быть или должен запрещаться и все страницы должны перенапрвляться на нужный айпишник - это я сделал
проблема вот в чем:
при поднятии интерфейса MPD5.4 выполняется скрипт
pfctl -t accept -T add $4
при опускании
pfctl -t accept -T delete $4
так вот если человек подключился и ему разрешен НАТ и есть интернет
то если потом я его вручную удаляю из accept и добавляю в blocked, то у него все равно все работает
-
- мл. сержант
- Сообщения: 124
- Зарегистрирован: 2007-11-06 17:07:27
- Откуда: Москва
Re: pf + 80 порт на 1 страницу
Нужно не просто удалить из таблицы, но очистить все установленные подключения. pfctl -k IPадресс
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2010-01-03 10:40:15
Re: pf + 80 порт на 1 страницу
Премного благодаренAzureZ писал(а):Нужно не просто удалить из таблицы, но очистить все установленные подключения. pfctl -k IPадресс
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2010-01-03 10:40:15
Re: pf + 80 порт на 1 страницу
Хм, сделал вот так:
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-адрес
ходит какой-то минимальный траффик
что я делаю не так, может покритикуете?
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-адрес
ходит какой-то минимальный траффик
что я делаю не так, может покритикуете?