PPPoE mpd (возможно ли)

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

PPPoE mpd (возможно ли)

Непрочитанное сообщение mediamag » 2009-11-23 13:29:49

Есть задача - раздать инет 15 юзерам в сети..разбить их на 2 группы - 1 группа давать скорость 2 мбита+открыть все порты, 2 группа давать скорость 512к+давать только 80 и 5190, при этом обойтись без биллинга и прокси...что я сделал...шлюз на фре 7,1+мпд (pppoe) скорость не проблема порезать в ipfw..вот правила (пишу не все)

Код: Выделить всё

ipfw add divert natd ip from "table(1)" to any out via ${extif}
ipfw add divert natd ip from any to ${extip} in via ${extif}
ipfw add ip 
extif -внешняя сетевая
extip - внешний айпи
table 1 список айпишников который выдает мпд, в котором все юзеры привязаны по логину и паролю

а теперь для каждого ng интерфейса создаю правило типа

Код: Выделить всё

ipfw add allow tcp from "table (1)" to any in via ng0
ipfw add allow tcp from "table (1)" to any in via ng1
ipfw add allow tcp from "table (1)" to any in via ng2
инет то бегает, но не решена главная задача - резать порты....ведь например, вася имеющий строгий айпи по мпд 10,0,0,1 может быть и на ng0 и на ng1, а если разрешать не по таблицам а по айпи, то где гарантия что 10,0,0,1 всегда будет на ng0, ведь интерфейсы раздаются случайно - если занят ng0, то выдается ng1 и так далее....или как то все таки можно связать их? Прошу помощи...!!!

Хостинговая компания 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: PPPoE mpd (возможно ли)

Непрочитанное сообщение Гость » 2009-11-23 14:02:11

мануал по mpd почитайте

up/down скрипты еще есть и работают

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение mediamag » 2009-11-23 14:50:30

собрал мпд 5,3 с портов..никаких скриптов в папке с мпд нет

Гость
проходил мимо

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение Гость » 2009-11-23 14:52:16

мануальчик почитайте
их по умолчанию и нет

QuAzI
мл. сержант
Сообщения: 79
Зарегистрирован: 2009-08-04 16:41:09

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение QuAzI » 2009-11-23 15:08:56

Можно Васе и конкретный ng* задать. А если это "мпд, в котором все юзеры привязаны по логину и паролю" сделано через mpd.secret или Radius, то там же можно и ip жёстко привязать и жёстко задать для конкретных ip политики в ipfw и будет легче и надёжнее.

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение mediamag » 2009-11-23 15:30:42

вот вот уже теплее))) скажите плиз как задать конкретный ng конкретному айпи или юзеру

QuAzI
мл. сержант
Сообщения: 79
Зарегистрирован: 2009-08-04 16:41:09

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение QuAzI » 2009-11-23 15:53:44

Насчёт ng* в вашем случае я пожалуй погорячился.
А почему вы так упорно не хотите использовать ip пользователя ? Разделить их на два диапазона ip-адресов и дальше уже статически настроенные политики ipfw, без лишних скриптов.
Или если уж очень хочется

Код: Выделить всё

set iface up-script /usr/local/etc/mpd5/up_guest.sh
set iface down-script /usr/local/etc/mpd5/down_guest.sh
А уже сами скрипты получают параметры так
script interface proto local-ip remote-ip authname [ dns1 server-ip ] [ dns2 server-ip ] для up
script interface proto local-ip remote-ip authname [ dns1 server-ip ] [ dns2 server-ip ] для down
Подробнее тут http://mpd.sourceforge.net/doc5/mpd.html

Аватара пользователя
GRooVE
ст. сержант
Сообщения: 309
Зарегистрирован: 2009-01-04 10:33:43
Откуда: Odessa, UA
Контактная информация:

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение GRooVE » 2009-11-23 15:56:37

не привязывайтесь к интерфейсу вообще

QuAzI
мл. сержант
Сообщения: 79
Зарегистрирован: 2009-08-04 16:41:09

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение QuAzI » 2009-11-23 16:01:05

А то привыкните к нему, а он помрёт и даже похоронить по человечески не получится.

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение mediamag » 2009-11-23 16:03:10

Погоди...немного не въехал....у меня и так щас в mpd.secret лог и пасс привязан к айпи....вот авторизовался юзер..выдался ему айпи...в ipfw у меня допусти table 1 и table 2 с этими айпи...каким образом разделять???? ведь чтобы пустить юзера в нет я должен указать айпи либо таблицу+ интерфейс (в данном случае ng*)???? не могу пока въехать :unknown:

Аватара пользователя
GRooVE
ст. сержант
Сообщения: 309
Зарегистрирован: 2009-01-04 10:33:43
Откуда: Odessa, UA
Контактная информация:

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение GRooVE » 2009-11-23 16:07:04

Код: Выделить всё

# ipfw add queue 10 all from any to "table (1)"
# ipfw add pipe 10 config bw 256KBytes
# ipfw add queue 20 all from any to "table (2)"
# ipfw add pipe 20 config bw 64KBytes
так нельзя?

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение mediamag » 2009-11-23 16:09:09

я же писал выше, что проблем с резаньем скорости нет..как одной группе разрешить все а другой только, например 80 и 5190???

Аватара пользователя
GRooVE
ст. сержант
Сообщения: 309
Зарегистрирован: 2009-01-04 10:33:43
Откуда: Odessa, UA
Контактная информация:

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение GRooVE » 2009-11-23 16:13:43

Код: Выделить всё

# ipfw add allow tcp from "table (1)" to any 80,5190 in keep-state
# ipfw add deny all from "table (1)" to any
а можно вообще пойти от обратного и исключить все локальные интерфейсы? например так:

Код: Выделить всё

# ipfw add allow tcp from "table (1)" to any 80,5190 in not via rl0, rl1 keep-state
# ipfw add deny all from "table (1)" to any
Последний раз редактировалось GRooVE 2009-11-23 16:18:20, всего редактировалось 1 раз.

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение mediamag » 2009-11-23 16:20:03

а что в данном случае делает параметр keep-state ? и зачем нужно вторым правилом блочить таблицу?

Аватара пользователя
GRooVE
ст. сержант
Сообщения: 309
Зарегистрирован: 2009-01-04 10:33:43
Откуда: Odessa, UA
Контактная информация:

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение GRooVE » 2009-11-23 16:23:53

keep-state создает цепочку динамических правил
т.е. все пакеты данной сессии не буду блокироваться при возврате (подробнее советую мануал почитать)
а что в данном случае делает параметр keep-state ? и зачем нужно вторым правилом блочить таблицу?
ну как зачем? я же не знаю какие у вас там еще правила, под которые может попасть "table (1)"
а этим правилом мы явно запрещаем все... вам же только 80 и 5190 нужны, не так ли?
в любом случае, все зависит от контекста

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение mediamag » 2009-11-23 16:49:46

вот мои правила ipfw

Код: Выделить всё

#!/bin/sh


extif="rl0"
extnet="10.1.1.0/30"
extip="10.1.1.2"


intif="vr0"
intnet="10.2.2.0/24"
intip="10.2.2.200"


userports="80,5190"

fwcmd="/sbin/ipfw  "


${fwcmd} -f flush

${fwcmd} -f pipe flush

${fwcmd} -f queue flush

${fwcmd} -f table 1 flush

#----Table 1 MPD5--------------

${fwcmd} table 1 add 10.2.2.10
${fwcmd} table 1 add 10.2.2.11
${fwcmd} table 1 add 10.2.2.12
${fwcmd} table 1 add 10.2.2.13
${fwcmd} table 1 add 10.2.2.14
${fwcmd} table 1 add 10.2.2.15
${fwcmd} table 1 add 10.2.2.16
${fwcmd} table 1 add 10.2.2.17
${fwcmd} table 1 add 10.2.2.18
${fwcmd} table 1 add 10.2.2.19

#----DUMMYNET-------------------------------------------------

#${fwcmd} add 1 pipe 1 ip from not ${intnet} to "table(1)" out
#${fwcmd} pipe 1 config bw 256Kbit/s mask dst-ip 0xffffffff
#${fwcmd} add 2 pipe 2 ip from "table(1)" to not me in 
#${fwcmd} pipe 2 config bw 256Kbit/s mask src-ip 0xffffffff

#----dinamyc rule------------

${fwcmd} add 100 check-state

#----kill fragments (ip & icmp)---------------

${fwcmd} add 200 deny ip from any to any frag
${fwcmd} add 300 deny icmp from any to any frag

#----block undesirable icmp requests-------------------------------------

${fwcmd} add 400 deny icmp from any to any in icmptype 5,9,13,14,15,16,17

#----block ident---------------------------------------------

${fwcmd} add 500 deny tcp from any to any 113 in via ${extif}

#----block net-bios-------------------------------------------

${fwcmd} add 600 deny tcp from any to any 135-139 via ${extif}
${fwcmd} add 700 deny tcp from any to any 135-139 via ${intif}

#----block circle(127.0.0.1) lo0-----------------

${fwcmd} add 800 deny ip from any to 127.0.0.0/8
${fwcmd} add 900 deny ip from 127.0.0.0/8 to any

#----loopback------------------------------------

${fwcmd} add 1000 allow ip from any to any via lo0

#----antispoofing 1-----------------------------------

${fwcmd} add 1100 reject log ip from any to any not verrevpath in

#----antiscaner ports------------------------------------------------------------------

${fwcmd} add 1200 reject tcp from any to any tcpflags fin, syn, rst, psh, ack, urg
${fwcmd} add 1300 reject tcp from any to any tcpflags !fin, !syn, !rst, !psh, !ack, !urg
${fwcmd} add 1400 reject tcp from any to any not established tcpflags fin

#----antispoofing 2--------------------------------------------

${fwcmd} add 1500 deny all from ${intnet} to any in via ${extif}
${fwcmd} add 1600 deny all from ${extnet} to any in via ${intif}

#---block microsoft share on extif---------------------------------

${fwcmd} add 1650 deny tcp from any to ${extip} 445 via ${extif}

#----block inside LAN which can`t be in internet--------------------

${fwcmd} add 1700 deny ip from any to 192.168.0.0/16 in via ${extif}
${fwcmd} add 1800 deny ip from any to 172.16.0.0/12 in via ${extif}
${fwcmd} add 1900 deny ip from any to 0.0.0.0/8 in via ${extif}
${fwcmd} add 2000 deny ip from any to 169.254.0.0/16 in via ${extif}

#----block multicast delivers------------------------------------

${fwcmd} add 2100 deny ip from any to 224.0.0.0/4 in via ${extif}
${fwcmd} add 2200 deny ip from any to 240.0.0.0/4 in via ${extif}

#----block broadcast through icmp------------------------------------------

${fwcmd} add 2300 deny log icmp from any to 255.255.255.255 in via ${extif}
${fwcmd} add 2400 deny log icmp from any to 255.255.255.255 out via ${extif}

#----allow ssh from intnet----------------------------------------------

${fwcmd} add 2500 allow tcp from any to 10.2.2.200 35665 in via ${intif}

#----allow GRE traffic for mpd5-------------

${fwcmd} add 2530 allow gre from any to any

#----allow port 1723 (for mpd5 clients)---------------------------------------

${fwcmd} add 2550 allow tcp from "table(2)" to 10.2.2.200 1723 in via ${intif}

#----NAT--------------------------------------------------------------

${fwcmd} add 2600 divert natd ip from "table(1)" to any out via ${extif}
${fwcmd} add 2700 divert natd ip from any to ${extip} in via ${extif}

#----block inside LAN for NAT-------------------------------------

${fwcmd} add 2800 deny ip from 192.168.0.0/16 to any out via ${extif}
${fwcmd} add 2900 deny ip from 172.16.0.0/12 to any out via ${extif}
${fwcmd} add 3000 deny ip from 0.0.0.0/8 to any out via ${extif}
${fwcmd} add 3100 deny ip from 169.254.0.0/16 to any out via ${extif}

#----block multicast for NAT--------------------------------------

${fwcmd} add 3200 deny ip from 224.0.0.0/4 to any out via ${extif}
${fwcmd} add 3300 deny ip from 240.0.0.0/4 to any out via ${extif}

#----allow all established tcp connections-------------

${fwcmd} add 3500 allow tcp from any to any established

#----allow some icmp (ping, tracert)-----------------------

${fwcmd} add 3600 allow icmp from any to any icmptype 0,8,11

#----LAN traffic-------------------------------------------------

${fwcmd} add 3700 allow ip from any to ${intnet} in via ${intif}
${fwcmd} add 3800 allow ip from ${intnet} to any out via ${intif}

#----allow DNS requests on tcp 53 from inet to firewall (TCP DNS)--

${fwcmd} add 4300 allow tcp from any to ${extip} 53 in via ${extif}

#----allow udp ports in LAN (DNS server in LAN)---------------------

${fwcmd} add 6900 allow udp from any 53 to ${intnet} in via ${extif}
${fwcmd} add 7000 allow udp from any 53 to ${intnet} out via ${intif}
${fwcmd} add 7100 allow udp from ${intnet} to any 53 in via ${intif}

#----allow DNS requests on extiface (53 port)-----------------------

${fwcmd} add 7110 allow udp from any to ${extip} 53 in via ${extif}
${fwcmd} add 7120 allow udp from ${extip} 53 to any out via ${extif}
${fwcmd} add 7130 allow udp from any 53 to ${extip} in via ${extif}
${fwcmd} add 7140 allow udp from ${extip} to any 53 out via ${extif}

#----block other established tcp connections-------------------------

${fwcmd} add 7200 deny tcp from any to ${extip} in via ${extif} setup

#----allow established tcp connections from ext IP to ext interface----

${fwcmd} add 7300 allow tcp from ${extip} to any out via ${extif} setup
${fwcmd} add 7400 allow tcp from any to ${extip} in via ${intif} setup


################### USER INET ##########################################

${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng0 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng1 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng2 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng3 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng4 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng5 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng6 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng7 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng8 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng9 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng10 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng11 setup


mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение mediamag » 2009-11-23 17:04:19

кстати идя с исключение всех локальных интерфейсом хорошая - не знал что так можно - спасибо попробую вечером, отпишусь

Аватара пользователя
GRooVE
ст. сержант
Сообщения: 309
Зарегистрирован: 2009-01-04 10:33:43
Откуда: Odessa, UA
Контактная информация:

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение GRooVE » 2009-11-23 17:05:14

ну, во первых, тут у вас одинаковые номера правил:

Код: Выделить всё

################### USER INET ##########################################

${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng0 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng1 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng2 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng3 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng4 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng5 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng6 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng7 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng8 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng9 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng10 setup
${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng11 setup
во вторых, разбейте юзверей по двум таблицам
и рулите себе обеими

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение terminus » 2009-11-23 17:22:57

Код: Выделить всё

${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via { ng0 or ng1 or ng2 or ng3 or ng4 or ng6 } setup
или еще короче

Код: Выделить всё

${fwcmd} add 7500 allow tcp from "table(1)" to not ${intnet} ${userports} in via ng* setup
:pardon:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
GRooVE
ст. сержант
Сообщения: 309
Зарегистрирован: 2009-01-04 10:33:43
Откуда: Odessa, UA
Контактная информация:

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение GRooVE » 2009-11-23 17:36:06

я вот помню, что можно шаблон указывать, но не мог вспомнить как
оказывается, я правильно вспомнил... только провтыкал с экранированием звездочки :)

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: PPPoE mpd (возможно ли)

Непрочитанное сообщение mediamag » 2009-11-23 18:28:40

афигеть!!!! спасибо мужики..не знал я такого)))))