Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
После чего пересобираем ядро. Если у Вас до этого ядро было без файрволла - то будте готовы к тому, что после перезагрузки он заработает, и в нём будет только одно правило:
|
Если файрволл есть, то в него надо добавить следующие строки (в самом верху):
|
Где переменные:
${FwCMD} - /sbin/ipfw - собственно IPFW
${NetIn} - 192.168.20.0 - внутренняя сеть
${NetMask} - 24 - маска сети
${IpOut} - 222.222.222.222 - внешний IP сервака
Вкратце о том, что всё это делает: первые две pipe для того, чтобы не ограничивалась скорость работы с самим серваком - на нём лежит почта, кое какие файлы, и естественно от того, что почта принимается со скоростью 64k никто в восторге не будет, тем более, что внутри офиса довольно большой документооборот идёт именно по почте. Затем запускаем цикл по всем IP-шникам (я сделал не одно правило, а целую кучу (больше 200!), чтобы была большая гибкость в использовании - есть люди которым не надо ничего ограничивать, те же IT-шники, начальство...) В цикле (он специально сделан не с начала диапазона и не до конца - у меня вверху и внизу висят серваки - их ограничивать не надо вообще) добавляются именованые каналы и в зависимости от IP выставляется скорость - в примере приведено для 2-х адресов - 192.168.20.13 и 192.168.20.22 - можно сделать не такое жёсткое деление, используя не else, а elif. Выглядеть это будет так:
|
В этом случае имеем всем скорость 64k, для адресов
192.168.20.13 и 192.168.20.22 - 100 мегабит,
192.168.20.18 и 192.168.20.38 - 128k,
192.168.20.55, 192.168.20.159 и 192.168.20.188 - 256k.
После чего перезапускаем файрволл следующей командой:
|
(при условии, что конфиг файрволла у Вас в файле /etc/rc.firewall). Для просмотра существующих pipe пользуемся командой
|
Только не забудьте & в конце - иначе может так получиться, что старые правила сбросятся, а новые не успеют примениться (в момент запуска этой команды соединение по ssh почти всегда обрывается.)
размещено: 2005-11-29,
последнее обновление: 2006-05-18,
автор: lissyara
PomidorOFF, 2006-07-26 в 16:38:06
src/share/examples/ipfw/change_rules.sh
стандартный скрипт перезапуска фаервола, ssh не рвется если правила написаны верно, и не разрывается соединение. ;)
paha, 2006-09-21 в 13:10:16
а так не проще?
/etc/rc.d/ipfw forcerestart . ни разу SSh не рвалось.
ztaz, 2006-10-20 в 3:53:48
А не проще ничего не выводить при обновлении правил?
FwCMD="/sbin/ipfw -q"
Тогда ничего и не будет разрывать...
sticker, 2006-11-25 в 18:46:55
Про обрывание соединений при изменении настроек ipfw тоже пережмвал, пока не узнал об
/usr/ports/sysutils/screen/
Даже не представляю теперь как жиз без этого раньше :)
Trias, 2007-02-10 в 13:07:30
еще достаточно удобно делать ограничения используя возможности IPFW2, а точнее ipfw table
в 5.х и 6.х уже по дефолту а 4.х надо пересобирать ядро.
тоесть например
ipfw add 2 pipe 1 ip from any to table\(1\) in
pipe 1 config bw 300Kbit/s mask dst-ip 0xffffffff
ipfw add 2 pipe 2 ip from table\(1\) to any
pipe 2 config bw 300Kbit/s mask src-ip 0xffffffff
если пользователь заносится в таблицу 1 то он будет иметь ограничение по 300/300 на каждого. уберем ( mask dst-ip 0xffffffff ) в pipe и будет на всех в таблице =)
Andrey74, 2007-04-15 в 21:01:05
А после elif не нужен then?
Zaq, 2007-05-14 в 14:45:30
ну и не плохо добовлять in/out для правил, дабы избежать превращения 128 в 64, может это конечно только при наличии natd но всёже более чёткое правило будет
pipe 1 ip from 10.0.0.109 to any in
pipe 1 ip from any to 10.0.0.109 out
pipe 1 config bw 128kbit/s mask src-ip 0xffffffff
pipe 2 config bw 128kbit/s mask dst-ip 0xffffffff
правда, зачем плодить пайпы ))
zOrg, 2007-06-01 в 15:34:04
Попробовал, действительно теребует после elif then!!! Фря 6.2
ma4o, 2007-09-12 в 14:34:40
Вот что искал нигде не мог внятного ответа найти про "sh /etc/rc.firewall &", точнее про амперсанд в конце. А то по удаленке перегружаешь правила и все колом встает пока в локаль не залезешь. Да и сама статья полезная.
ADvise, 2008-04-29 в 6:25:58
Господа, я так понимаю, это все мы проделываем ручками.
скажем, вот хочу так, дошел юзер до предела, скажем 200 мб выкачал, и все, хочу ему или инет отрезать или скорость такой сделать, что ему все желание отбивает пользоваться инетом. но скажем я на месте бываю раз в три месяца.
скажем, по юзеру можно узнать, сколько он накачал, но как правила на лету править... или подставлять в командной строке адрес и в крон?
Из статьи лишь понятно, что мы просто жестко определяем скорость конкретным пользователям. и все.
может сделать следующее:
1. смотрим число - 1 число, разрешаем максимальную допустимую скорость всем.
2. не 1 число, смотрим статистику юзера, >200 мб накачал, вызываем файрвол с параметром (адрес юзера), урезаем скорость.
3. и можно ему об этом еще письмом сообщить, что мол лимит достигнут имейте совесть, тра-ля-ля.
Алексей, 2008-09-02 в 9:52:57
А если юзвери ходят в инет через прозрачный проксик... а остальной трафик через NAT. Ограничить таким образом ширину канала для них возможно?
Croaker, 2008-09-08 в 15:46:14
В первом конфиге есть строка
${FwCMD} add pipe 2 ip from ${IpIn} to
а сама переменная IpIn не опеределена
vesper, 2009-03-14 в 1:17:01
А для DUMMYNET В FreeBSD 7.1 ничего не будет? О:-) там много нового появилось.. а инфы мало
dr_alf, 2009-05-21 в 10:20:30
${FwCMD} pipe $i config bw 64000 bit/s
у меня с пробелом неработало) я особенный или в разных версиях фри, разные требования? ))))
denis-k, 2010-01-23 в 3:56:09
Народ, статья все еще актуальна? Например, для 8-ки.
Морфин, 2010-03-25 в 7:34:14
А можно же сделать
rdr on $int_if proto tcp from \\\"192.168.20.0/24\\\" to any port www -> 127.0.0.1 port 3128
и аналогично для FTP и скомпилить SQUID под поддержку pf
Товарищщи!, 2010-04-01 в 21:58:29
Товарищщи! Это поля для ввода комментариев к статье, а не для вопросов. Сюда пишите найденные баги, или какие-то фичи :)
Для вопросов есть форум!
beerdy, 2011-09-22 в 17:12:53
День добрый.
Есть ВОТ это:
${FwCMD} add pipe 2 ip from ${IpIn} to ${NetIn}/${NetMask}
${FwCMD} pipe 2 config bw 100Mbit/s
Для чего? Что за IpIn?
Мфынф, 2013-10-22 в 17:12:15
АФТАР ЕБЛАН СОСИ ХУЙ!!!!!!!!!!!11111111111
Мфынф, 2021-03-24 в 0:33:58
АЛЕКС КЕДА ЛОХЪ
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [20 шт.]