Лимит по траффику...

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

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Urgor
лейтенант
Сообщения: 663
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Лимит по траффику...

Непрочитанное сообщение Urgor » 2006-03-21 15:49:26

Наступил такой интересный момент - порнуха у пользователей зарезана, приличная часть сайтов развлекательного назначения тоже заразана, баннеры режутся, короче, зарезано очень и очень много. А вот потребление траффика больше не снижается :( Народ припугнутый "драконовскими" методами, типа по 200 мегабайт инета на каждого протянул недолго - месяца полтора - потом просекли, что если попросить то включают анлим :(
А можно отсюда подробнее? Как можно сделать лимит скажем 30 мег/сутки? Или хотя бы падение скорости устроить при привышении определенного лимита, как у провов?

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-21 19:38:00

у меня сделано по 200 мег в месяц. Рубится тока по http - но можно и в фаер правила добалять

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

/usr/script/work/>cat traff_limit.sh
#!/bin/sh
#
#
#
db_user="ipacctd"
db_passwd="ipacctd"
db_name="ipacctd"
path_to_limit="/usr/home/lissyara/smb_share/all_of_sites/squid/limited_IP.conf"

year=`date '+%Y'`
month=`date '+%m'`


#
echo "192.168.20.253" > ${path_to_limit}
mysql_query="/usr/local/bin/mysql --user=${db_user} --password=${db_passwd} \
--database=${db_name}"

${mysql_query} --execute="SELECT \`to_IP\`, SUM(\`bytes\`) AS \`bytes\` FROM \`sk0_${year}\` WHERE \
\`to_IP\` LIKE '192.168.20.%' AND \`from_IP\` != '192.168.20.254' AND \
\`from_IP\` != '213.234.195.210' AND \`date\` LIKE '${year}-${month}-%' GROUP BY \`to_IP\` ORDER BY \`bytes\`" \
| grep -v "to_IP" | \
grep -v "192.168.20.142" | grep -v "192.168.20.30" | \
grep -v "192.168.20.152" | grep -v "192.168.20.31" | \
grep -v "192.168.20.123" | grep -v "192.168.20.158" | \
grep -v "192.168.20.141" | grep -v "192.168.20.148" |\
{
while read stroka
do
user_IP=`echo ${stroka} | awk '{print $1}'`
user_bytes=`echo ${stroka} | awk '{print $2}'`
if [ ${user_bytes} -ge 209715200 ]
then
    echo ${user_IP} >> ${path_to_limit}
fi
done
}
killall -1 squid
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 663
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2006-03-27 8:01:38

Хм. Хм. А ипы у тебя статические??? При смене ипа по dhcp статистика по нему накроется... Надо как-то к именам хостов привязывать.
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-27 8:25:39

Динамика.
Но, вообще-то, комп старается старый IP получить. По возможности.
Обычно ему это удаётся.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 663
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2006-03-27 9:10:38

Теоретически да, но вероятность все же есть... посему хотса сделать "как правильно" :)
А как будет выглядеть инетная статистика? Как частные адреса на внешнем интерфейсе?
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-27 9:20:04

на внешнем адресе nat - там не может быть частных адресов, они на внутреннем интерфейсе.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 663
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2006-03-27 9:45:18

Т.е. мы смотрим на нутряном интерфейсе весь траффик, который адресован не самому серваку?
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-27 9:49:42

точно :)
а что, из квери к mysql этого не видно? :)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 663
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2006-03-27 9:52:59

Неа =) Инет то еще не притащили, грят деньков через 10-15 буде... А прокся (мне нужен с авторизацией) отмечается как: '2006-03-26','12:16:00','192.168.0.200','3128','192.168.0.37','client','tcp','7464','8296'
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Urgor
лейтенант
Сообщения: 663
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2006-03-27 14:46:43

# Стираем пустые строки (а вот откуда они вылазиют я так и непонял....)
${sql_preffix} --execute="DELETE FROM \`traffic_tmp\` WHERE from_IP='' AND \
port_from_IP='' AND to_IP='' AND port_to_IP='' AND protocol=''"
# Стираем строки в которых полное число байт (вместе с технической инфой)
# равно нулю (тоже непойми откуда берутся - раз в статистику trafd попали -
# значит соединение было и байты должны были б быть...)
Наверное вот отсюда:

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

 (xl0) asu-002.mbfkk.spb.ru at Mar 22 15:46:56 - Mar 22 16:19:10
 Summary: 478306 data bytes, 674654 all bytes, 18 records
     From           Port         To            Port  Proto     Data       All
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-27 15:14:11

э нет... там не отражено, но щас оно хитрее делается там на входе стит

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

grep "^[0-9]"
- т.е. левак сразу отсекается. а вот строки пустые есть :)))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 663
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2006-03-27 15:21:48

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

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-27 15:56:14

х.з. :)
Перловый подо что? trafd или ipacctd?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 663
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2006-03-28 8:10:28

Под trafd, но IMHO под ipacctd модифицировать будет не сложно (главное таблицы не трогать). Но у меня задумка грандиозная =) Сделать группы, квоты, рассылку предупреждений после ужимания канала и после отрубания (когда квоту на отдел выберут)... вообщем всю рутину возложить на сервак.
А заодно и язык еще один изучу.
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-28 8:17:36

я тоже подобное начал - но времени не хватило доделать.
тока я с web мордой делать собирался.... на php и shell
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 663
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2006-03-29 14:07:52

Начал делать... появилось несколько вопросов:
1. Правила пайпов обязательно писать всамом начале правил файрвола или мона к правилам ната опустить?
2. При перезагрузке правил скажем раз в 10 минут (сквиду конфиг тоже придется перечитывать) машинке не поплохеет?
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-29 14:31:30

наскока я понял - нужно вверху. ссылку не дам, прямого утверждения не помню :(
а чё вдруг поплохеет-то?
Сквида я killall -1 squid заставляю перечитываться. Это лучше чем перезапуск.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
northern
лейтенант
Сообщения: 778
Зарегистрирован: 2006-02-08 20:48:45
Откуда: Днепропетровск
Контактная информация:

Непрочитанное сообщение northern » 2006-03-29 15:17:12

обрати внимание на переменную sysctl net.inet.ip.fw.one_pass:
net.inet.ip.fw.one_pass: 1 Когда установлено, пакет, выходящий из потока dummynet, не проходит через брандмауэр повторно, В противном случае, после обработки канала пакет повторно вводится в брандмауэр по следующему правилу.
то есть если у тебя она=1, то после выхода из pipe пакет покидает файер.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-29 15:21:22

Ага. Тока с фаером где по дефолту deny all from any to any нолик ставить не стоит... Ибо по возвращении в фаер применится последнее правило :))) Сам нарывался :)))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
northern
лейтенант
Сообщения: 778
Зарегистрирован: 2006-02-08 20:48:45
Откуда: Днепропетровск
Контактная информация:

Непрочитанное сообщение northern » 2006-03-29 15:29:53

ты имеешь ввиду если у тебя вего две строки в файере: pipe и deny ip from any to any? тогда да. А с другой стороны ты наваял фаер (точнее я, нарвался тоже :) ), вверху поставил pipe и думаешь, что у тебя защита, а пакетики-то после трубы уходят.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-29 15:49:18

хм... дело то в том, что я снаружи не лимитирую.
А замечание дельное.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-29 15:50:29

northern писал(а):обрати внимание на переменную sysctl net.inet.ip.fw.one_pass:
net.inet.ip.fw.one_pass: 1 Когда установлено, пакет, выходящий из потока dummynet, не проходит через брандмауэр повторно, В противном случае, после обработки канала пакет повторно вводится в брандмауэр по следующему правилу.
то есть если у тебя она=1, то после выхода из pipe пакет покидает файер.
цитата знакомая... линк дай?
Чё-то меня сомнения затерзали...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
northern
лейтенант
Сообщения: 778
Зарегистрирован: 2006-02-08 20:48:45
Откуда: Днепропетровск
Контактная информация:

Непрочитанное сообщение northern » 2006-03-29 15:55:48


Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-29 16:04:41

несходится... если бы покидали то до диверта бы не доходило...
щас пробовал - divert срабатывает при любом раскладе - а он у меня после труб...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
northern
лейтенант
Сообщения: 778
Зарегистрирован: 2006-02-08 20:48:45
Откуда: Днепропетровск
Контактная информация:

Непрочитанное сообщение northern » 2006-03-29 16:55:44

не знаю... дома дивертов не было, я только по логу и понял, что что-то не так. Ставлю несколько pipe, смотрю ipfw show - как написано так и есть: если one_pass=1 после первой трубы уходит из фaйера. Ставлю 0 - проходит все трубы. Да по скорости видно, заходит в канал или нет, дома-то ADSL 8Mb. Надо разобраться. Смотрю ман 4.11, тоже - пишут, уходить должен после трубы:
Pass packet to a dummynet(4) ''pipe'' (for bandwidth limitation,
delay, etc.). See the TRAFFICSHAPER (DUMMYNET)CONFIGURATION
Section for further information. The search terminates; however,
on exit from the pipe and if the sysctl ( 8 ) variable
net.inet.ip.fw.one pass is not set, the packet is passed again to
the firewall code starting from the next rule.