Netgraph ipfw и гибкий учет трафика через netflow

Заметки
Продолжим обзор модулей FreeBSD netgraph.

Сегодня у нас в гостях ng_ipfw, ng_one2many и старый друг ng_netflow.
С их помощью попробуем посчитать трафик по определенным условиям и посмотрим как это можно использовать на практике.

Что за модули?




ng_ipfw — модуль, создающий интерфейс для доступа к подсистеме netgraph из фаервола IPFW. При загрузке в ядро, модуль автоматически создает свой узел в пространстве подсистемы netgraph с именем «ipfw:», и может присутствовать только в единственном экземпляре. Ng_ipfw принимает подключения к произвольным номерным хукам, номера хуков указываются в правилах ipfw. Каждый входящий в модуль пакет тэгируется по нескольким параметрам (ipfw правило, интерфейс, направление), для того чтобы его можно было идентифицировать при возврате обратно в ipfw. Не тэгированные пакеты, возвращаемые в фаервол, уничтожаются. Контрольных сообщений модуль не принимает.

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

Подготовка FreeBSD для использования в качестве Web-сервера на базе технологии LAMP

Web

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

В результате долгих лет тренировок в установке и использовании этой системы могу предложить оптимальный, на мой взгляд, вариант этого процесса. После попадания в “Sysinstall Main Menu” выберите “Custom” – эта опция даст вам возможность самостоятельно и в полной мере руководить процессом установки системы. Перейдите к разделу “Partitions”, где необходимо создать разделы будущей системы, затем в “Label” для привязки точек монтирования к так называемым слайсам (файловым системам) на созданном разделе. Теперь самое интересное – переход к “Distributions”, где нужно выбрать набор устанавливаемого вами минимального (на мой взгляд) ПО для обеспечения функционирования системы. Там переходим на “Custom”, и в нем выбираем “man”, “ports” и “src”, а в последнем – “sys” и “include”. Кроме этого надо, конечно, отметить подпункт “Minimal”, что приблизительно и по аналогии соответствует пресловутому Linux-base, но только в формате FreeBSD.

После выбора источника установки ПО и подтверждения начала установки переходим к самой инсталляции. По ее окончании нужно зайти в пункт меню “FreeBSD Config Menu”, установить пароль для root и ряд других опций – мышь, шрифт и т.д. Затем необходимо сконфигурировать временную зону, настроить сетевые интерфейсы, через “Sysinstall Main Menu” выйти на “Exit install” и после перезагрузки попасть в работающую систему, которая встретит вас своим фирменным приветствием.

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

Краткая инструкция по настройке Vlan-ов

Руководство
Для начала определимся что такое 802.1q vlan, дабы не изобретать велосипед маленькая вырезка из википедии:
VLAN (аббр. от англ. Virtual Local Area Network) — виртуальная локальная компьютерная сеть, представляет собой группу хостов с общим набором требований, которые взаимодействуют так, как если бы они были подключены к широковещательному домену, независимо от их физического местонахождения. VLAN имеет те же свойства, что и физическая локальная сеть, но позволяет конечным станциям группироваться вместе, даже если они не находятся в одной физической сети. Такая реорганизация может быть сделана на основе программного обеспечения вместо физического перемещения устройств.
На устройствах Cisco, протокол VTP (VLAN Trunking Protocol) предусматривает VLAN-домены для упрощения администрирования. VTP также выполняет «чистку» трафика, направляя VLAN трафик только на те коммутаторы, которые имеют целевые VLAN-порты. Коммутаторы Cisco в основном используют протокол ISL (Inter-Switch Link) для обеспечения совместимости информации.
По умолчанию на каждом порту коммутатора имеется сеть VLAN1 или VLAN управления. Сеть управления не может быть удалена, однако могут быть созданы дополнительные сети VLAN и этим альтернативным VLAN могут быть дополнительно назначены порты.
Native VLAN — это параметр каждого порта, который определяет номер VLAN, который получают все непомеченные (untagged) пакеты.

Для чего это надо?
Есть несколько ситуаций:
1. Банально представим ситуацию есть большая сеть, в районе покрытия этой сети у нас расположено два офиса, их необходимо объединить в одну физическую сеть, при этом общегородская сеть не должна видеть/иметь доступ к офисным тачкам. Данную ситуацию конешно можно разрулить VPN-ами, но на шифрованый трафик порядка 100 мегабит нужно не кислое железо, поэтому рулим vlan-aми.
2. Есть масса подсетей, территориально поделенных по городу, необходимо на каждую подсеть настроить интерфейс, по началу можно конечно обойтись сетевыми картами, но сети имеют свойства разростаться, и что прикажете делать, например в такой ситуации?:
serv:~# ifconfig | grep eth | wc -l
152
serv:~# 

3. Клиенту необходимо выдать блок из 4,8,16 и т.д. и т.п. адресов.
4. Уменьшение количества широковещательного трафика в сети
Каждый VLAN — это отдельный широковещательный домен. Например, коммутатор — это устройство 2 уровня модели OSI. Все порты на коммутаторе, где нет VLANов, находятся в одном широковещательном домене. Создание VLAN на коммутаторе означает разбиение коммутатора на несколько широковещательных доменов. Если один и тот же VLAN есть на разных коммутаторах, то порты разных коммутаторов будут образовывать один широковещательный домен.
И множество других причин/ситуаций в которых это может понадобиться.
5. Увеличение безопасности и управляемости сети
Когда сеть разбита на VLAN, упрощается задача применения политик и правил безопасности. С VLAN политики можно применять к целым подсетям, а не к отдельному устройству. Кроме того, переход из одного VLAN в другой предполагает прохождение через устройство 3 уровня, на котором, как правило, применяются политики разрешающие или запрещающие доступ из VLAN в VLAN.

Как мне это все сделать?
Легко!
Читать дальше

Установка и настройка ejabberd

Руководство
Установка для FreeBSD:
В /etc/make.conf прописываем
WITHOUT_JAVA=yes
WITHOUT_ODBC=yes
Это нужно чтобы erlang собрался без Java.
Далее как всегда
cd /usr/ports/net-im/ejabberd/ && make install clean

Для Debian всё гораздо проще:
aptitude install ejabberd

Настройка Ejabber

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

darkstat - самый простой мониторинг трафика

GNU/Linux
Darkstat — Минималистическай тулза(94kb) по сбору статистики трафика в сети.
Имеющая свой встроенный вэб сервер на котором отображаются такие отчеты как трафик по хостам, портам, протоколам, а также построение графиков. Darkstat может быть запущен на любой современной

UNIX системе в которой имееться libpcap. Как заявлено на официальном сайте, может работать на следующих ОС:

AIX
FreeBSD
Linux (Archlinux, Debian, Fedora, Gentoo, OpenSUSE, Ubuntu)
Mac OS X
NetBSD
OpenBSD
Solaris

Установка для OC FreeBSD:

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

Установка webmin

Web
Webmin – веб панель управления сервером. Webmin позволяет решать большую часть задачь по управлению сервером через панель управления. Большим достоинством, по сравнению с другими панелями, является то, что webmin, в своей работе старается следовать идеологии дистрибутива, а не навязывать свою систему расположения файлов и стартовых скриптов. Впрочем, в то же время это в некоторой степени ограничивает функционал вебмин. Следующее достоинство, webmin абсолютно бесплатен, ставится легко и не требует больших знаний системы, как для установки, так и для дальнейшего обслуживания.
На сегодня я не слышал о проблемах с безопасностью при работе с webmin, хотя ранее подобные инцеденты случались.
Ставим webmin из портов:

cd /usr/ports/sysutils/webmin
make install clean


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

Начальная настройка FreeBSD

Руководство
Первым делом внесем имя хоста в /etc/rc.conf

echo 'hostname="test.hilik.org.ua"' >> /etc/rc.conf


Теперь пропишем интерфейс:
Если DHCP то:

echo 'ifconfig_em0="DHCP"' >> /etc/rc.conf


и все, на этом настройка сети закончена. В случае со статикой пописать прийдется побольше.
Прописываем адрес:

echo 'ifconfig_em0="inet 192.168.0.23/24"' >> /etc/rc.conf


Теперь прописываем шлюз(маршрут по умолчанию):

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