Ограничение TCP-сессий

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
alx
мл. сержант
Сообщения: 101
Зарегистрирован: 2006-12-21 16:56:47
Откуда: Odessa

Ограничение TCP-сессий

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

Доброго времени суток!

Такой вопросик, встала нужда ограничивать кол-во сессий во Фряхе, кто-то делал что-то подобное?

делал:

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

ipfw add allow tcp from 192.168.1.0/24 to any setup limit src-addr 40
Результатов не принесло. Может ещё какие-то способы есть, например тот же pf.

Хостинговая компания 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/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Ограничение TCP-сессий

Непрочитанное сообщение hizel » 2009-08-12 7:30:17

тут вы верно в нат упёрлись :]
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

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

Re: Ограничение TCP-сессий

Непрочитанное сообщение Гость » 2009-08-12 13:17:00

В смысле???
Я после диверта правило прописал... Может как вариант, не должно быть НАТ-а?

Аватара пользователя
Khuman
рядовой
Сообщения: 27
Зарегистрирован: 2007-07-31 8:33:47
Откуда: Украина, Киев
Контактная информация:

Re: Ограничение TCP-сессий

Непрочитанное сообщение Khuman » 2009-08-12 14:15:43

на PF, но это работает:

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

local="{192.168.1.21}"

nat on bge0 from 192.168.1.0/24 to any -> {bge0}

pass quick from $local to any keep state (source-track, max-src-states 15)
Максимум 15 стейтов.
It comes in the night and sucks the essence from your computers. ©Kern Sibbald

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Ограничение TCP-сессий

Непрочитанное сообщение hizel » 2009-08-12 14:23:06

а check-state есть и где оно?
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

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

Re: Ограничение TCP-сессий

Непрочитанное сообщение terminus » 2009-08-12 14:26:40

правила с limit это keep-state с ограничением на количество динамических правил...
Вы весь свой конфиг ipfw покажите, тогда вам какая-нить "кабацкая теребень" чо-нить и насоветует. 8)
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

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

Re: Ограничение TCP-сессий

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

Khuman писал(а):на PF, но это работает:

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

local="{192.168.1.21}"

nat on bge0 from 192.168.1.0/24 to any -> {bge0}

pass quick from $local to any keep state (source-track, max-src-states 15)
Максимум 15 стейтов.
Аааа.... Знаменитый PF, да наслышан про него.... :) Классная весчь...

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

Re: Ограничение TCP-сессий

Непрочитанное сообщение Гость » 2009-08-12 14:35:13

terminus писал(а):правила с limit это keep-state с ограничением на количество динамических правил...
Вы весь свой конфиг ipfw покажите, тогда вам какая-нить "кабацкая теребень" чо-нить и насоветует. 8)
Да проблем нема... :roll:

Итак, к вашему вниманию /etc/rc.firewall

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

#!/bin/sh -
f='/sbin/ipfw'

ifOut='fxp0'
ifIn5='rl0'
ifIn6='rl1'

${f} -f flush

${f} add 50 allow tcp from any to me 22
${f} add 51 allow tcp from me 22 to any

${f} add 100 deny tcp from any to any 445

${f} add 101 allow ip from any to any via ${ifIn6}

${f} add 110 allow ip from any to any via lo0
${f} add 120 skipto 1000 ip from me to any
${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${f} add 140 deny ip from any to "table(120)"
${f} add 150 deny ip from "table(120)" to any
${f} add 160 skipto 2000 ip from any to me

${f} add 200 skipto 500 ip from any to any via ${ifOut}

${f} add 300 skipto 4500 ip from any to any in

${f} add 400 skipto 450 ip from any to any recv ${ifOut}
${f} add 420 divert 1 ip from any to any
${f} add 450 divert 2 ip from any to any
${f} add 490 allow ip from any to any

${f} add 500 skipto 32500 ip from any to any in
${f} add 510 divert 1 ip from any to any
${f} add 540 allow ip from any to any

#Ограничение TCP сессий
#${f} add 590 allow log tcp from any to 192.168.5.0/24 setup limit dst-addr 3

${f} add 1000 allow udp from any 53,7723 to any
${f} add 1010 allow tcp from any to any setup keep-state
${f} add 1020 allow udp from any to any keep-state
${f} add 1100 allow ip from any to any

${f} add 2000 check-state
${f} add 2010 allow icmp from any to any
${f} add 2020 allow tcp from any to any 80,443
${f} add 2050 deny ip from any to any via ${ifOut}
${f} add 2060 allow udp from any to any 53,7723

${f} add 2100 deny ip from any to any

${f} add 32490 deny ip from any to any
Если кто-то думает что это мудрённый конфиг, то на этом тазике биллинг крутится.

alx
мл. сержант
Сообщения: 101
Зарегистрирован: 2006-12-21 16:56:47
Откуда: Odessa

Re: Ограничение TCP-сессий

Непрочитанное сообщение alx » 2009-08-12 14:38:25

Блин, всё забываю авторизоватся, Гость - aka alx

alx
мл. сержант
Сообщения: 101
Зарегистрирован: 2006-12-21 16:56:47
Откуда: Odessa

Re: Ограничение TCP-сессий

Непрочитанное сообщение alx » 2009-08-12 14:40:57

Khuman писал(а):на PF, но это работает:

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

local="{192.168.1.21}"

nat on bge0 from 192.168.1.0/24 to any -> {bge0}

pass quick from $local to any keep state (source-track, max-src-states 15)
Максимум 15 стейтов.
Да, и ещё, а почему максимум, больше низя?

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Ограничение TCP-сессий

Непрочитанное сообщение hizel » 2009-08-12 14:41:08

чото я вижу что до вашего лимита на 590 строке оно тупо не доходит : )
в логах то чтонибудь е?
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

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

Re: Ограничение TCP-сессий

Непрочитанное сообщение terminus » 2009-08-12 14:45:15

hizel писал(а):чото я вижу что до вашего лимита на 590 строке оно тупо не доходит : )
в логах то чтонибудь е?
+1

куды правило нумер 32500 дел? ;-)

много букав в правилах - глаза разбегаются.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

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

Re: Ограничение TCP-сессий

Непрочитанное сообщение terminus » 2009-08-12 15:23:36

Конкретней задачу поставьте - ограничивать надо соединения от 192.168.5.0/24 наружу или наоборот?

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

${f} add 101 allow tcp from 192.168.5.0/24 to any setup limit dst-addr 3 via ${ifIn6}
${f} add 102 allow ip from any to any via ${ifIn6}
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

alx
мл. сержант
Сообщения: 101
Зарегистрирован: 2006-12-21 16:56:47
Откуда: Odessa

Re: Ограничение TCP-сессий

Непрочитанное сообщение alx » 2009-08-12 15:52:07

terminus писал(а):
hizel писал(а):чото я вижу что до вашего лимита на 590 строке оно тупо не доходит : )
в логах то чтонибудь е?
+1

куды правило нумер 32500 дел? ;-)

много букав в правилах - глаза разбегаются.
Такое расположение должно быть, я там поставил биллинг http://nodeny.com.ua/ и там требования к размещениям правил. Там типа используется принцип "два окна" один фиксированый, второй под шейпинг и всё такое.

alx
мл. сержант
Сообщения: 101
Зарегистрирован: 2006-12-21 16:56:47
Откуда: Odessa

Re: Ограничение TCP-сессий

Непрочитанное сообщение alx » 2009-08-12 15:55:49

terminus писал(а):Конкретней задачу поставьте - ограничивать надо соединения от 192.168.5.0/24 наружу или наоборот?

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

${f} add 101 allow tcp from 192.168.5.0/24 to any setup limit dst-addr 3 via ${ifIn6}
${f} add 102 allow ip from any to any via ${ifIn6}
Мне надо ограничить юзеровские тачки, может быть вирусная активность а так же препятствовать перепродажи трафика. Предложил им нормальный канал, их цена не устроила. Они типа хотят по проще взять и перепродавать его, поставить юзергейт какой-то для раздачи. Думаю до 100 сессий вполне достаточно будет.

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

Re: Ограничение TCP-сессий

Непрочитанное сообщение terminus » 2009-08-13 14:06:59

вот такой вариант по-идее должен будет прокатить (правило 501)

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

#!/bin/sh -
f='/sbin/ipfw'

ifOut='fxp0'
ifIn5='rl0'
ifIn6='rl1'

${f} -f flush

${f} add 50 allow tcp from any to me 22
${f} add 51 allow tcp from me 22 to any

${f} add 100 deny tcp from any to any 445

${f} add 101 allow ip from any to any via ${ifIn6}

${f} add 110 allow ip from any to any via lo0
${f} add 120 skipto 1000 ip from me to any
${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${f} add 140 deny ip from any to "table(120)"
${f} add 150 deny ip from "table(120)" to any
${f} add 160 skipto 2000 ip from any to me

${f} add 200 skipto 500 ip from any to any via ${ifOut}

${f} add 300 skipto 4500 ip from any to any in

${f} add 400 skipto 450 ip from any to any recv ${ifOut}
${f} add 420 divert 1 ip from any to any
${f} add 450 divert 2 ip from any to any
${f} add 490 allow ip from any to any

${f} add 500 skipto 32500 ip from any to any in

# limitim sessii it ip istochnika - max=3
${f} add 501 skipto 510 ip from any to any out xmit ${ifOut} limit src-addr 3

${f} add 510 divert 1 ip from any to any
${f} add 540 allow ip from any to any

${f} add 1000 allow udp from any 53,7723 to any
${f} add 1010 allow tcp from any to any setup keep-state
${f} add 1020 allow udp from any to any keep-state
${f} add 1100 allow ip from any to any

${f} add 2000 check-state
${f} add 2010 allow icmp from any to any
${f} add 2020 allow tcp from any to any 80,443
${f} add 2050 deny ip from any to any via ${ifOut}
${f} add 2060 allow udp from any to any 53,7723

${f} add 2100 deny ip from any to any

${f} add 32490 deny ip from any to any
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.