Задача:
есть скрипт, надо ограничить его потребление трафа (дать ему 100 мб в день) с помощью iptables.
Как определить пакеты этого скрипта — это то фигня. А вот как задать это самое ограничение — я так и не понял. Перекопал весь iptables-tutorial, не нашел того, что мне нужно. Как сделать проверку вида «если(кол-во израсходованного трафа < 1024 Mb) то ACCEPT"? iptables ведь держит кол-во пакетов, и сумму байт этих пакетов, попавших под действие правила. Я могу обнулять этот счетчик по крону раз в сутки. Проблема только в том, как задать условие «если эта самая циферка из колонки bytes для данного правила меньше 100M, то ACCEPT"? В гугле в какой-то рассылке говорят про модуль quota, но я его нигде не нашел.
Помогите plz. Сервак для которого это делается довольно слабый, ставить туда биллинг ой как не хочется. А задача ограничить потребление трафа скриптом, который 24 часа в сутки качает обновления с других сайтов.
Да и еще надо ограничить ипам траф, т.е. одному ипу даем 200 мб на месяц, другому 300 (имеются в виду ипы, которые ходят в инет через NAT через данный сервак).
Заранее большое спасибо. Ответ «RTFM» приветствуется, если скажете в какую сторону копать :)
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Ну или посоветуйте легкий-легкий (в плане требований к компу) биллинг, который сможет выполнить эту задачу. netams комп просто не потянет :(
ну, самим iptables ты этого не сделаешь, т.е. отключать в нём самом по условию нет возможности.
однако, ты можешь это сделать сам, проверяя раз, скажем, в минуту.
запускай свой качающий скрипт от специального пользователя, добавь правило для iptables на разрешение прохождения пакетов для этого пользователя (man iptables около расширения owner)
проверять статистику для правила раз в минуту — читай man iptables у -L.
как только при очередной проверке обнаружилось, что произошло превышение трафа — добавляй запрещающее правило и удаляй разрешающее. при необходимости разрешить — добавляешь разрешающее и удаляешь запрещающее. и так каждый день.. ;)
правда, есть одна грабля. соединение, которое в этот момент было открыто, может не закрыться из-за keep-state правила.
в общем, идея, думаю, ясная.
Сделал проще — добавил в сам скрипт проверку на обьем скачанного :)
Ага.. А с моими теперяшними скоростями в 2-4 Мбайта в секунду я уж 100 метров лишних-то урвать успею точно ;) Раз в минуту — редко слишком..
Ничего, на следующий день можно уменьшить количество трафика на сегодняшний излишек :)
Или учащать проверку по мере приближения к лимиту. Хотя… скрипт уже исправлен.
а голова тебе на что дадена?
ну, шейпер поставь. и по owner разграничивай.
сквид, в конце концов настрой для себя с ограничениями, если уж так опасаешься. что действительно нужено скачать — понятное дело, что качать лучше wget-ом.
не можешь гарантировать, что можешь уследить за тем, что и как качается — настрой так, чтобы без дополнительных телодвижений не смог скачать. ;)