dreamhunter
Рейтинг
+1.70
Сила
3.30

dreamhunter

Владимир

Ubuntu 14.04 LTS, старые компьютеры и старые видеокарты

… Скорей всего неофитам этого не понять. Но были времена, когда я мечтал о Hyperthreading P4 3GHz c видеокартой Ati radeon 9800 (что характерно с необходимостью доп. питания). И вот пару дней назад мы с мужиками вернулись с холодного склада, откуда вилами выкидывали старое барахло. И вот она у меня на столе. Когда то супер компьютер, сейчас — не сказать что бы очень.
Ну чтож, посмотрим, можно ли это куда-нибудь применить…

Читать дальше →

Настройка кеширующего интернет-шлюза

Введение
В современном мире крайне важным вопросом является доступ пользователей к сети интернет. Доступ должен быть безопасным, простым и высокоскоростным.

Существует множество решений — платных и бесплатных. Многие интеграторы проповедуют следующую схему подключения корпоративных пользователей:

На данной схеме пользователи могут работать с интернет только через прокси. Прокси регулирует абсолютно весь трафик. FireWall блокирует весь остальной трафик.

Читать дальше →

Тестируем мое творение.

Собственно все здесь: https://sourceforge.net/projects/netflow/

Программа умеет обрабатывать данные по IPv4 с сенсоров NetFlow v5 и v9. Плюс ко всему прикрутил веб-интерфейс. Скриншоты так же по ссылке.
Конечно есть, что еще делать, но программа уже сама по себе позволяет многое. А главное она показывает результаты.

Самая главная трудность заключалась в многопоточности, однако и это я преодолел.

Абсолютно весь проект сделан снуля. Конечно я позаимствовал кое что, но это можно больше отнести к best practice.

О всех возникших проблемах просьба сообщать в комментариях — буду исправлять.

Отпуск

Лето… Скатался с женой в отпуск… Отдыхал в санатории недалеко от города — каких-то 30 км.
Честно говоря я недоволен. Повсюду рекламируют эти ваши интернеты через 3G модемы. Мол собрался на дачу, а высокоскоростной интернет у тебя в кармане. А вот фигу вам. Я кое-как нашел в номере точку, в которой ловит этот самый 3G (под конец отдыха).

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

В общем мне не понравилось бегать к корпусу с рабочим вай-фай что бы позвонить и открыть пару страниц, заплатив при этом за люкс…

В России как всегда «умеют» организовать отдых.

NetFlow, Perl и Threads

Ну вот можно и поздравить меня с освоением нового горизонта. Кто-то может и усмехнется, что для него такие вещи семечки, однако этот кто-то вряд ли занимается чем то кроме своей специализации (в отличие от меня).

Задача: Создать многопоточное приложение, которое позволяет осуществлять обработку информации, полученной с большого количества сенсоров.

Главная проблема: Данные NetFlow передаются по UDP. Если пакет данных не был считан вовремя, он теряется. Все просто, когда у тебя 1-2 сенсора. В этом случае проблем никаких нет. Коллектор будет успевать перерабатывать данные. Тем более непосредственную переработку можно переложить на другую программу. Конечно потребуется создать вспомогательные таблицы, из которых можно сводить все в нужный вам вид. Но это не великое зло… Самое великое зло наступает в тот момент, когда вы хотите считать информацию с 10-20 нагруженных сенсоров.

Решение: Решение напрашивается самим собой — многопоточность. С одной стороны это действительно дремучий лес. Необходимо согласовать асинхронную обработку, распределить потоки данных и уследить за тем, что бы не пошла утечка памяти.
Лично я воспользовался нитями Perl (threads). Это механизм «легковесных» потоков. Сразу оговорюсь: Да, на самом деле эти потоки не легковесные. Приложение будет занимать порядочное место в памяти и кушать ресурсы по полной. Однако задачи сэкономить ресурсы не стоит. Наоборот, речь идет о полной утилизации ресурсов. То есть, что бы программа использовала ресурсы на полную катушку, удовлетворяя потребности в переработке данных.

Читать дальше →

Joomla - не так все хорошо.

Недавно столкнулся с использованием сего чуда. Я всегда люблю узнать что-то новое, потому с радостью окунулся. Окунулся не то слово.

Статью по самой джумле я может быть напишу позже. «Порадовал» меня вот какой случай…

Если кто не знает, сама джумла — это движок для сайтов, на который можно подключить все что угодно. От обилия шаблонов, свистелок и перделок в глазах рябит.
Первым делом я (естественно) искал шаблон. Скачал несколько вариантов и задействовал который более понравился. Далее (как водится) я его допиливал… Тут обычная рутина. Допиливать приходится все бесплатное.
И тут я почувствовал неладное. На сайте вылезли скрытые блоки с рекламой. Для не знающих: Тема в том, что проблем нет, пока вы не попытаетесь «засветить» свой сайт в поисковых системах. А те, не смотря на указанные вами дескрипторы и метатеги, могут показать любую информацию на странице, в том числе и информацию, содержащуюся в скрытых блоках.
Конечно же инъекцию я нашел и убил сразу. Потом я нашел сайт, откуда оно взялось и решил восстановить справедливость — написать хотя бы на тематическом русском форуме о нехорошей деятельности.

Читать дальше →

Netflow-искания Часть 4.2 (Анализ данных)

Налепил я скрипт, который что-то где-то собирает и вот встает вопрос: что делать дальше? Ну собрал ты данные — молодец. Однако необходимо их как то представлять?
На самом деле тут должен явиться мега-супер спец по SQL. Но пока такового нет, я вам кое что покажу…

Задача: Отобразить данные, собраные с шайтан-машина Cisco router, шайтан-скриптом dreamhunter-a.

Читать дальше →

Netflow-искания Часть 4.1 (Netflow v9 collector script)

В общем похоже некий этап преодолен и теперь можно продемонстрировать первую версию моего коллектора. И да, я расположил свой скриптец на sourceforge. Это было по крайней мере мне интересно сделать.

Возможности:
  1. Работа с протоколами NetFlow 5 и 9 версии;
  2. Работа со всеми устройствами через один или несколько портов;
  3. Хранение данных в базе MySQL;
  4. Работа с различными типами сенсоров;
  5. Работа на различных ОС.

Системные требования:
  1. PIII и выше;
  2. 512MB RAM;
  3. наличие сетевого адаптера.

Требования к ПО:
  1. OS windows/*nix/MacOS (да, эта фигня должна работать на всем подряд, вопрос в прямоте ваших рук);
  2. MySQL 5.5 версии и выше;
  3. Perl 5.14 и выше.

Читать дальше →

Netflow-искания Часть 4 (Netflow v9 collector)

Предисловие:

Опасное это дело, Фродо, — выходить за порог: стоит ступить на дорогу и, если дашь волю ногам, неизвестно куда тебя занесёт.

Задача: Получить и обработать данные с сенсора netflow v9.

Подготовка
Запускаем уже полюбившийся скрипт и захватываем первый пакет, переданный от маршрутизатора:
#!/usr/bin/perl
use IO::Socket::INET;
$| = 1;
my ($socket,$received_data);
my ($peeraddress,$peerport);
$socket = new IO::Socket::INET (
LocalPort => '9999',
Proto => 'udp',
) or die "ERROR in Socket Creation : $!\n";
while(!$recieved_data)
{
$socket->recv($recieved_data,4096);
}

open (MYFILE, '>data.txt');
print MYFILE $recieved_data;
close (MYFILE);

$socket->close();

Читать дальше →

GNS3 - Решение для начинающих администраторов. Часть 1.

Предисловие
Хочется предаться воспоминаниям, как я на недопиленной FreeBSD 4.7, Р166 и с 10 мегабайтами интернета в день мастерил свой первый DHCP/DNS/SMB/HTTP сервер. О наличии управляемого коммутатора и тем более маршрутизатора речи вообще не шло (до поры). Но к моему счастью наш админ быстро уволился и мне досталось небогатое, но всеже наследство: Сеть с коммутаторами HP Procurve 2524, несколькими серверами FreeBSD ну и прочая требуха, включая капризных пользователей. К сожалению знаний у меня было вообще ноль, а освоить все за один раз очень сложно. Естественно первым делом я освоил FreeBSD и тогда еще WinNT Server. Непосредственно маршрутизацией (и switching) я занялся через 5 лет после начала работы на месте системного администратора. Но время идет и все становится лучше в сфере IT. Однако без опыта все равно сделать ничего не получится. Не хочу показаться ненавистником Microsoft, но они и впрямь усугубляют все дело. Современный администратор Microsoft серверов может полностью настроить сервер DNS/HTTP/DHCP/NTP/etc, при этом не понимая, как это на самом деле работает… Когда я это обсуждал с ними, были случаи что на меня смотрели пустыми глазами и задавали вопрос: а зачем мне понимать? У меня есть интеграторы, горячая линия поддержки Microsoft. За глаза им скажу: Ты либо понимаешь принципы работы, либо ты всего лишь ненужная жировая прослойка между этим саппортом и твоим работодателем.
Итак, дорогой друг, ты решил пойти трудным путем сетевого администратора. Что это значит? На моем предприятии сетевой администратор это тот, кто занимается исключительно сетевыми устройствами. В моем понимании сетевой администратор должен заниматься сетевыми сервисами. То есть внутри отдела можно распределить задачи и взаимодействовать без лишних обращений в группу серверов. Если возложить сетевые сервисы на серверных специалистов (например DNS и DHCP), то возникает необходимость в разработке регламентов работ — очень больная тема. Грубо говоря со своими проще договориться чем с коллегами из другого отдела. Для тех, на кого ориентирована статья эти проблемы могут быть непонятными и далеко впереди идущими, так что отнесем это к лирике.

Задача: Создать полнофункциональный виртуализированный стенд из маршрутизаторов Cisco и виртуальных машин для проведения различных тестов и обучения.

Читать дальше →

FreeBSD - Феникс, возрожденный из DUMP-a

… Сколько времени я уговаривал админа, чтобы выделил мне виртуалку. И главное не забавы для, а дела ради. И с какой радостью/скоростью мне ее грохнули. Молодцы ребятки. Все правильно сделали. Одно только неправильно сделали — предупредили меня о том, что все грохнут за пару часов до времени «Ч».

Задача: эвакуировать сервер с VMWare куда угодно. Например на VirtualBox.

Имеем: виртуальную машину FreeBSD на VMWare кластере и очень мало времени.

Читать дальше →

Netflow-искания Часть 3.1 (изобретаем анализатор)

Очередным доказательством того что своя на работе только кружка послужило стирание виртуалки с NetFlow анализатором. Причины по сути довольно смешные. Не смешная только возможность потерять данные. В связи с этим решил создать новый топик, где поделюсь своими исследованиями и сохраню методы решения задачи для себя.

Преамбула: Есть такая классная штука, как сервер видеонаблюдения. Еще есть не менее классная штука как сервер ВКС. И они очень любят кушать канал связи. 10 мегабит для них — воронка, в которую они пытаются просунуть свой арбуз. Одним весенним утром наш Мега-Босс захотел воспользоваться конференц-связью дабы отыметь своих подчиненных пусть не физически, но хоть так. И что характерно — отымел, но совсем не тех кого ожидали, а наш отдел. Качество связи было отвратительным.
Естественно сам факт совершенного насилия над нами был лишь следствием. Захотелось узнать истинные причины этого. Одной из задач стояло составление очень сложного отчета по трафику в разрезах по сервисам. То есть грубо говоря необходимо было поставить на мониторинг и детально разобрать трафик для выяснения причин плохого качества ВКС.

Задача: Сформировать сложный, но читабельный для всех отчет по трафику по заданным периодам в разрезе по различным сервисам/источникам данных.

Исходные данные: Сырые данные, собранные Flow-Tools.

Читать дальше →

Копирование HDD во FreeBSD

Сегодня был очень приятно порадован далеко шагнувшим прогрессом в области резервного копирования.

Возникла необходимость увеличить диск на виртуальной машине (vmware). Старый диск был объемом 15 GB. Естественно он быстро забился. Создали новый образ, но как поступить? Кроме того что мне не хватало дискового пространства, у меня был еще и swap маленького размера (это как раз тот случай, когда размер имеет значение). Насколько я знаю, процедуры расширения слайса не бывает. Потому первое что в голову пришло — dump/restore. Я уже пользовался этим набором — вполне успешно, только геморно. Обратился к Google и он мне подсказал, что оказывается есть решение попроще:
# whereis clonehdd
clonehdd: /usr/ports/sysutils/clonehdd
# cd /usr/ports/sysutils/clonehdd
# make install clean
# rehash
# man clonehdd
...читаем и видим пример:
# clonehdd -src=ad0 -dst=ad2 -swap=1024
его и пользуем...

Естественно названия дисков у меня были другие и размер swap больше.
После того как я ввел команду с необходимыми мне параметрами, он меня вежливо предупредил, что все на dst диске будет убито. И сделал всю грязную работу.
Во время копирования я посмотрел, какие процессы запущены — dump/restore.
То есть фактически это красивая и удобная упаковка для этих двух программ. Я запустил копирование на работающей машине. Конечно сколько то байт информации потерялось, но мне было все равно. В данном случае это было допустимо.

Netflow-искания Часть 3 (изобретаем коллектор)

Итак поигрались с готовыми решениями — красота. Что дальше? Лично меня очень беспокоила информация о потерянных пакетах в логах:
# /var/log/flow-capture.log:
ftpdu_seq_check(): src_ip=xxx.xxx.xxx.xxx dst_ip=0.0.0.0 d_version=5 expecting=1531521097 received=1531521307 lost=210
ftpdu_seq_check(): src_ip=xxx.xxx.xxx.xxx dst_ip=102.0.0.0 d_version=5 expecting=1730244036 received=1730300526 lost=56490
ftpdu_seq_check(): src_ip=xxx.xxx.xxx.xxx dst_ip=99.111.117.110 d_version=5 expecting=1730207586 received=1730300556 lost=92970
ftpdu_seq_check(): src_ip=xxx.xxx.xxx.xxx dst_ip=102.0.0.0 d_version=5 expecting=1730300556 received=1730300586 lost=30

Плюс ко всему какие то нелепые dst_ip.

Что бы не мешать основному процессу, добавляю на сенсоре строчку для дублирования инфы на другой порт:
# conf t
# ip flow-export destination xxx.xxx.xxx.xxx 9997

Циска ругнется, что мы дублируем инфу, но послушно выполнит.

Читать дальше →

Cacti - The complete RRDTool-based solution

Предыстория: О cacti я слышал много положительных отзывов. Эта статья написана после серии статей «Netflow-искания» поскольку получилось слишком много оффтоп-информации, которая могла бы оказаться полезной.

Возможности:
1) Сбор данных по SNMP, NetFlow, Syslog и ciscoconfigs с устройств сети;
2) Анализ собранных данных и их отображение в виде графиков;
3) Построение карт сетей;
4) Мониторинг доступности устройств.

Задача: Организовать мониторинг сети на основе программного комплекса Cacti.

Имеем: Сервер с установленными FreeBSD 9.1, Apache 2.2, PHP 5.3, MySQL 5.5, Flow-Tools 0.68.

Читать дальше →

Netflow-искания Часть 2 (анализаторы)

Итак, если вы вдруг случайно настроили сенсоры, коллекторы и FlowTools, то естественно встанет вопрос с анализатором. Flow-Tools — очень хороший пакет программ. Но если вы работаете в более-менее приличной конторе, в которой есть больше одного IT работника, вам понадобится как то представлять (показывать) информацию своим коллегам и начальству для дальнейшего разбора полетов.

Читать дальше →

Netflow-искания Часть 1 (сенсоры и коллекторы)

Я думаю, что все согласятся с тем, что мониторинг сетевой активности является одной из приоритетных задач в процессе эксплуатации корпоративных сетей.
Все легко и просто, пока вы администрируете сеть небольшого офиса в городе N. Но что если ваша фирма пошла в гору и стала расширяться? Открытие нового филиала скорей всего повлечет начало отношений с провайдерами, организацию каналов связи и более сложные (назовем это так) манипуляции с сетью.
Нет желания описывать такие вещи, как маршрутизацию, ее необходимость и проблемы с ней связанные. Допустим вы непосредственно маршрутизацию победили. Но это не значит, что все у вас будет хорошо.

Читать дальше →