Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: [HOWTO] Подсчёт трафика по ip на шлюзе (через iptables)  (Прочитано 24227 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн andreyos

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: [РЕШЕНО] Подсчёт трафика на шлюзе (iptables)
« Ответ #15 : 25 Мая 2011, 21:21:42 »
Ну победил первый момент, у меня не писало в базу, пришлось установить apt-get install python-mysqldb но проблема во втором варианте самого файла где я так понял php код и там есть внизу 1. ссылка на файл traffic.php и 2 это внизу 192,168,0,200 адрес, в моем случае это адресс сервера внутри сети 192,168,0,3 ну что я не менял всеравно http://ip_serv/index.php отображается пустая страница и при просмотре кода страцы показывает пусто. php запущен - проверял. я так понимаю что там чтото еще нужно

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28392
    • Просмотр профиля
Re: [РЕШЕНО] Подсчёт трафика на шлюзе (iptables)
« Ответ #16 : 25 Мая 2011, 21:24:17 »
Ага. А если заглянуть в лог Апача - то сразу станет ясно, что именно.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн andreyos

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: [РЕШЕНО] Подсчёт трафика на шлюзе (iptables)
« Ответ #17 : 25 Мая 2011, 22:20:24 »
в логах апача ошибки исправил, но

Not Found
The requested URL /traffic.php was not found on this server.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28392
    • Просмотр профиля
Re: [РЕШЕНО] Подсчёт трафика на шлюзе (iptables)
« Ответ #18 : 25 Мая 2011, 22:44:30 »
Переводить?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн andreyos

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: [РЕШЕНО] Подсчёт трафика на шлюзе (iptables)
« Ответ #19 : 26 Мая 2011, 00:29:54 »
да я и так знаю что нет такого файла, меня интересует содержимое файла, но не знаю я как это писать!!!!! мне биллинг не нужен, для многих это элементарно, вот и прошу помощи.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28392
    • Просмотр профиля
Re: [РЕШЕНО] Подсчёт трафика на шлюзе (iptables)
« Ответ #20 : 26 Мая 2011, 00:47:03 »
Вы файлы не туда скопировали, явно же.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн andreyos

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: [РЕШЕНО] Подсчёт трафика на шлюзе (iptables)
« Ответ #21 : 26 Мая 2011, 01:10:48 »
я создал 2 файла traffic.py, index.php сунул им пути те что в скриптах и все, но ребует трафик.пхп и я его не создавал, я понимаю что добрый человек разжевал, а я тут с вопросами, просто в инете есть 2 статьи об этом, первая вообще мрак и вторая эта. если не трудно намеки подробней, я разберусь, в игры не играю, но для меня это лучше игр, там многое не получается, не отображается время, сам разберусь, не слушает айпишники скрип кроме eth1, но с этим разберусь, мне по скриптам непонятно, я 15 лет назад также сел и начал раздуплять html ну небыло тогда помощи и книг и какбы понял, а тут упустил моменты

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: [РЕШЕНО] Подсчёт трафика на шлюзе (iptables)
« Ответ #22 : 26 Мая 2011, 01:42:33 »
Начало arp -a поймали ип и мак адрес вывод ? (192.168.0.55) в 00:22:65:a0:fb:60 [ether] на eth0
, добавить мак или ип на iptables -t mangle -A PREROUTING -m mac --mac-source 00:22:65:a0:fb:60 -j ACCEPT, потом листнг мак адрес iptables -L -v -t mangle | grep -i 00:22:65:a0:fb:60 вывод.
216 57472 ACCEPT     all  --  any    any     anywhere             anywhere            MAC 00:22:65:A0:FB:60
Откуда 216 57472 это выход и вход байты мак адрес. Я сам скрипт и апаче.
 :D
« Последнее редактирование: 26 Мая 2011, 01:44:50 от victor00000 »
Wars ~.o

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6847
    • Просмотр профиля
Re: [РЕШЕНО] Подсчёт трафика на шлюзе (iptables)
« Ответ #23 : 26 Мая 2011, 01:55:04 »
andreyos
Ещё раз...
1. Чтобы эта канитель работала в iptables должны быть прописаны правила форвардинга, я выше показал (выделил решетками, то место, которое нужно дописать).
2. Есть скрипт на питоне, который запускается кроном раз в минуту (так у меня) он смотрит, что накопилось в статистике iptables, считывает это, парсит и пишет данные в БД, сбрасывает счётчик iptables.
3. Есть пхп-скрипт, который выбирает данные из БД и формирует отчёт по айпи и интервалу времени.

Оффлайн andreyos

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: [РЕШЕНО] Подсчёт трафика на шлюзе (iptables)
« Ответ #24 : 26 Мая 2011, 15:45:47 »
в питоне где мне нужно прописать нужные ip клиентов для занесения в базу, потому как пишется только трафик шлюза я пытался менять
sql = """INSERT INTO traffic.raw(ip, upload, download) VALUES ('%(ip)s', '%(up)s', '%(down)s')"""%{"ip":ip, "up":up, "down":down}
на так
sql = """INSERT INTO traffic.raw(ip, upload, download) VALUES ('%(ip)s', '%(up)s', '%(down)s')"""%{"ip":192.168.0.17, "up":up, "down":down}  тестовый клиент
выдает ошибку -->                                                                                                                                     ^          указывающую на 0

тут нужно менять [0-9] к примеру на [0-100] или это не имеет отношение к колличеству адресов в сети
arIP = re.findall("192\.168\.0\.[0-9]+",data)
arByte = re.findall("([0-9]+) ACCEPT",data)

в скрипте iptables я вписал клиентов, как в примере 192.168.0.101
#пропускаем инет для нужным айпи
iptables -A FORWARD -s 168.192.0.101 -i ppp0 -j ACCEPT
iptables -A FORWARD -d 168.192.0.101 -o ppp0 -j ACCEPT

в таблице mysql у меня не заполняются поля id и timestamp

при вот таких параметрах полей питон не выдает ошибки

И при запросе периода дат идет обращение к пустому файлу traffic.php что в нем должно быть?
« Последнее редактирование: 26 Мая 2011, 16:17:37 от andreyos »

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: [РЕШЕНО] Подсчёт трафика на шлюзе (iptables)
« Ответ #25 : 26 Мая 2011, 16:33:32 »
Вы топик то прочитайте.
Шаг за шагом можно достичь цели.

Оффлайн andreyos

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: [РЕШЕНО] Подсчёт трафика на шлюзе (iptables)
« Ответ #26 : 27 Мая 2011, 01:55:57 »
Вы топик то прочитайте.
Это что тут - угадай фокус? конечно читал, или я сам наваял с потолка эти вопросы, форум и существует для того чтобы помогать друг другу, а не писать "читал ли топик" или "учитесь пользоваться поиском", я перед тем как задать первый вопрос перечитал все возможные варианты, у меня много что получилось, но не получилось счиать трафик клиента, в данном случае в моем офисе 10 человек, и вопрос не глобальный, а если нечем помоч то и смысл сорить словами. Я конкретно задал вопрос, на него можно ответиь просто, с поямнениями и человек который создал эту тему, помоему занят, но если разберусь сам то можно придумать легкий мануальчик и впредь, вопросов не будет, я и так за эти три дня понял как и чем тут все делать и как пользоваться, все благодаря этому ресурсу, которому нет цены!!!!! так что - тема актуальна этой считалки или нет?

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6847
    • Просмотр профиля
Re: [РЕШЕНО] Подсчёт трафика на шлюзе (iptables)
« Ответ #27 : 27 Мая 2011, 02:19:35 »
andreyos
sql = """INSERT INTO traffic.raw(ip, upload, download) VALUES ('%(ip)s', '%(up)s', '%(down)s')"""%{"ip":192.168.0.17, "up":up, "down":down}  тестовый клиент
выдает ошибку -->                                                                                                                                     ^          указывающую на 0
чтобы не было ошибки заключи в кавычки, чтобы интерпретатор понял, что имеет дело со строкой.
но зачем тебе писать айпи в ручную я не пойму? оно сделано так, что само выдирает айпи, пусть выдирает.

тут нужно менять [0-9] к примеру на [0-100] или это не имеет отношение к колличеству адресов в сети
arIP = re.findall("192.168.0.[0-9]+",data)
arByte = re.findall("([0-9]+) ACCEPT",data)
опять же зачем ты лезишь сюда?
Тем более если не понимаешь, что это регулярное выражение.
"[0-9]+" - шаблон для цифр от 1 знака и более.



Я хотел было тебя поддержать в плане протеста podkovyrsty, однако, прочитав твой пост ещё раз тоже думаю, что тебе следует прочесть топик ещё раз (только мои посты) и сделать как сказано, не меняя ничего более, кроме того, что сказано изменить. Пример веб-морды я тоже привёл.

Пользователь решил продолжить мысль 27 Мая 2011, 03:32:10:
Написал подробное хауту, вроде всё разжевано. Проверяйте на ошибки и предлагайте улучшение.
« Последнее редактирование: 27 Мая 2011, 03:32:10 от ⚡ Thunde® ⚡ »

Оффлайн andreyos

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Cпасибо за более разжованный пост!!!
Я так все и сделал, но!
писал такое
не заносит данные в мускул в поля id, timestamp в остальные заносит, 3 дня с линзой рассматривал что не так, но записует в мускул только трафик самого шлюза. я понял где его менять и когда меняю получаю в таблицу данные уже с новым адресом
sql = """INSERT INTO traffic.raw(ip, upload, download) VALUES ('%(ip)s', '%(up)s', '%(down)s')"""%{"ip":"192.168.0.200", "up":gateway_up, "down":gateway_down}
помоему скрипту всеравно что писать в базу, какой адрес впишешь такой и вносит

а потом по выбору диапазона времени открывается строка с запросом traffic.php!!!! это я и спрашивал раза 3, что нужно всовывать в этот файл. Скорее скрипт не обрабатывает данные с базы изз отсутсвия заполненных полей, но и ошибок не выдает вообще, я так понимаю что файл traffic.php должен иметь скрипт который собирает данные по запросу, но он же пустой у меня. Или он динамически должен создаваться и заполняться, но не представляю каким образом.
Может iptables некорректно работет, там у меня разрешен доступ в инет всем из сети, потому как если не разрешать то по другому не пускает компы в инет, могу выложить на общий суд завтра и его.

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6847
    • Просмотр профиля
Чувак, скрипт пишет в БД траффик исходя из данных iptables, если ты не настроил правила как я показал, то ССЗБ.
Про то, что ты спрашивал 3 раза, я тебе уже несколько раз ответил про веб-морду. Рассказал общую схему работу всей системы подсчёта, расписал после ещё всё подробно в хауту. Если тебе и после этого не понятно, то видимо мой способ сильно плохой для тебя. Я уже не знаю, что тебе ещё объяснять...

 

Страница сгенерирована за 0.049 секунд. Запросов: 25.