The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"FreeBSD + Flow tools"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Учет трафика, статистика / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"FreeBSD + Flow tools"  +/
Сообщение от stum74 (ok) on 17-Июн-11, 15:53 
Всем привет!
1)    Проблема: Не могу настроить автозапуск деманов  flow tools (flow-capture и softflowd).
2)    Исходные данне:
- freebsd использую меньше недели. До этого работал в дебиан. Хочу перейти на freebsd, система весьма симпатична.
- хост находица на вм машине. Является тестовой площаткой для разработки шлюза
- установил следующее: freebsd 8.2 + mpd5 (впн сервер) + ipf  + ipnat - связка замечательно работает.  

3)    Решаемая задача: на внешнем интерфейсе (em0) собирать статистику по трафику.

И так. Решил ставить flow tools + iptraf. Реализация сенсора и хранилища flow tools на одном хосте.
Поставил из портов flow-capture и softflowd. Юзал ресурсы :  http://xgu.ru/wiki/NetFlow  http://subnets.ru/blog... .

Связка flow-capture и softflowd у меня замечательно стартует из командной строки с толкача так сказать в ручную путем:
router# /usr/local/bin/flow-capture -p /var/run/flow-capture.pid -n 287 -N 0 -w /var/netflow/ -S 5 0/0/8787
softflowd -i em0 -n 127.0.0.1:8787
начинает логии класть куда надо. Все замечательно. Проверял.

Но я столкнулся с проблемой когда логично захотел чтобы у меня стартовали деманы. В силу своих познаний и наития отконфигурировал /etc/rc.conf , но счастья нет. Попустался найти лог фаил Оси (ака syslog.log в дебиане), в котором пишутся все логии системы, но ничего похожего не нашел. Хотелось бы узнать где искать такой лог системы, чтобы разбирать ошибки или пробуксовки.

В мануалах, которыми я пользовался, в одних написано что нужно какой то скрипт запуска редактировать, в других ничего не пишется толком. Инфа неоднозначная и еще не понят для каких версий ПО и ОС.

Прошу помочь настроить автозапуск деманов flow-capture и softflowd.

Ниже привожу конфиг(/etc/rc.conf ег оуже по всякому перевертел, всеравно не стартует автоматом) и скрипты(руками не трогал).

/etc/rc.conf


# -- sysinstall generated deltas -- # Mon Jun  6 16:34:29 2011
# Created: Mon Jun  6 16:34:29 2011
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
defaultrouter="172.21.2.101"
gateway_enable="YES"
hostname="router"
ifconfig_em0="inet 172.21.2.2   netmask 255.255.255.0"
ifconfig_em1="inet 192.168.33.2   netmask 255.255.0.0"

#static_routes="net1"
#route_net1="-net 192.168.33.0 172.21.2.101"

#firewall_enable="YES"
#firewall_type="OPEN"
#tcp_drop_synfin="YES"

keymap="ru.koi8-r"
sshd_enable="YES"
mpd_enable="YES"


# -- IPF           http://www.linuxcenter.ru/lib/articles/networking/freebsd_ga...
ipfilter_enable="YES"            # Start ipf firewall
ipfilter_rules="/etc/ipf.rules"  # loads rules definition text file
ipmon_enable="YES"               # Start IP monitor log
ipmon_flags="-Ds"                # D = start as daemon
                                 # s = log to syslog
                                 # v = log tcp window, ack, seq
                                 # n = map IP & port to names

ipnat_enable="YES"               # Start ipnat function
ipnat_rules="/etc/ipnat.rules"   # rules definition file for ipnat

flow_capture_enable="YES"
flow_capture_datadir="/var/netflow"
flow_capture_remoteip="127.0.0.1"
flow_capture_localip="127.0.0.1"
flow_capture_port="8787"
flow_capture_pid="/var/run/flow-capture/flow-capture.pid"
flow_capture_flags="-n 287 -N 0 -w -S 5"

softflowd_enable="YES"
softflowd_interfaces="em0"
softflowd_netflow_host="127.0.0.1"
softflowd_netflow_port="8787"

/usr/local/etc/rc.d/flow_capture


#!/bin/sh
#
# $FreeBSD: ports/net-mgmt/flow-tools/files/flow_capture.in,v 1.3 2006/12/19 22:44:25 stas Exp $
#

# PROVIDE: flow_capture
# REQUIRE: LOGIN
# KEYWORD: shutdown

#
# Add the following line to /etc/rc.conf to enable flow-capture:
# flow_capture_enable (bool):    Set it to "YES" to enable flow-capture daemon.
#                Set to "NO" by default.
# flow_capture_datadir (str):    Base flow data directory.
#                Default is "/var/db/flows"
# flow_capture_localip (str):    IP address to bind to
#                Default to "0.0.0.0"
# flow_capture_remoteip (str):    IP address to accept flows from
#                Default to "0.0.0.0" or all IPs
# flow_capture_port (int):    Port to accept flow data on
#                Default is "8787"
# flow_capture_flags (str):    Custom additional arguments to be passed
#                to flow-collector (default "-E 128M").
# flow_capture_profiles (str):    A list of configuration    profiles to enable.
#                This allows you    to run several instances of
#                flow-capture with different parameters.
#                Consider the following example:
#                flow_capture_enable="YES"
#                flow_capture_localip="85.172.168.9"
#                flow_capture_profiles="r1 r2"
#                flow_capture_r1_datadir="/var/db/flows/r1"
#                flow_capture_r1_port="4444"
#                flow_capture_r1_flags="-E20G -n287 -N-2"
#                flow_capture_r2_datadir="/var/db/flows/r2"
#                flow_capture_r2_port="4445"
#                flow_capture_r2_flags="-E5G -n287 -N-2"
#
#                This will run two instances of the flow-capture
#                with parameters taken from appropriate
#                flow_capture_PROFILENAME_xxx variables. For
#                unspecified parameters flow_capture_xxx
#                varialbes will be used.

. /etc/rc.subr

name="flow_capture"
rcvar=`set_rcvar`

setup_profile_vars()
{
    name=flow_capture_$1
    eval ": \${flow_capture_${1}_datadir=${flow_capture_datadir}}"
    eval ": \${flow_capture_${1}_localip=${flow_capture_localip}}"
    eval ": \${flow_capture_${1}_remoteip=${flow_capture_remoteip}}"
    eval ": \${flow_capture_${1}_port=${flow_capture_port}}"
    eval ": \${flow_capture_${1}_user=${flow_capture_user}}"
    eval ": \${flow_capture_${1}_group=${flow_capture_group}}"
    eval ": \${flow_capture_${1}_flags=${flow_capture_flags}}"
    eval "pidfile=${flow_capture_pid}.\${flow_capture_${1}_port}"
    eval "command_args=\"-w \${flow_capture_${1}_datadir} -p ${flow_capture_pid} \${flow_capture_${1}_localip}/\${flow_capture_${1}_remoteip}/\${flow_capture_${1}_port}\""
}

start_profiles()
{
    unset start_cmd
    for _profile in ${flow_capture_profiles}; do
        setup_profile_vars $_profile
        run_rc_command "${rc_arg}"
    done
}

stop_profiles()
{
    unset stop_cmd
    for _profile in ${flow_capture_profiles}; do
        setup_profile_vars $_profile
        run_rc_command "${rc_arg}"
    done
}

load_rc_config $name

: ${flow_capture_enable="NO"}
: ${flow_capture_datadir="/var/db/flows"}
: ${flow_capture_localip="0.0.0.0"}
: ${flow_capture_remoteip="0.0.0.0"}
: ${flow_capture_port="8787"}
: ${flow_capture_pid="/var/run/flow-capture/flow-capture.pid"}
: ${flow_capture_user="flowtools"}
: ${flow_capture_group="flowtools"}
: ${flow_capture_flags="-E 128M"}

pidfile="${flow_capture_pid}.${flow_capture_port}"

command="/usr/local/bin/flow-capture"
command_args="-w ${flow_capture_datadir} -p ${flow_capture_pid} ${flow_capture_localip}/${flow_capture_remoteip}/${flow_capture_port}"

cmd="$1"
if [ $# -gt 0 ]; then
    shift
fi

[ -n "$*" ] && flow_capture_profiles="$*"

if [ "${flow_capture_profiles}" ]; then
    start_cmd="start_profiles"
    stop_cmd="stop_profiles"
fi

run_rc_command "$cmd"

/usr/local/etc/rc.d/softflowd


#!/bin/sh

# $FreeBSD: ports/net-mgmt/softflowd/files/softflowd.in,v 1.3 2011/05/15 02:49:12 dougb Exp $

# (c) 2010 Tom Judge

# PROVIDE: softflowd
# REQUIRE: LOGIN
# KEYWORD: shutdown

# softflowd_enable="YES"
# softflowd_interfaces="em0 em1"
# softflowd_em0_collector="collector:1234"
# softflowd_em1_collector="collector:1235"
# softflowd_em0_timeouts="-t maxlife=300"
# softflowd_em1_timeouts="-t maxlife=600"
# softflowd_em0_max_states="16000"
# softflowd_em1_max_states="17000"
# softflowd_em0_extra_args
# softflowd_em1_extra_args

. /etc/rc.subr

name=softflowd
rcvar=`set_rcvar`

start_precmd="softflowd_precommand $@"
stop_precmd="softflowd_precommand $@"
status_precmd="softflowd_precommand $@"
poll_precmd="softflowd_precommand $@"
rcvar_precmd="softflowd_precommand $@"
stop_cmd="softflowd_stop"
command="/usr/local/sbin/softflowd"
_pidprefix="/var/run/softflowd"
if [ -n $2 ]; then
    pidfile="${_pidprefix}.${2}.pid"
fi

load_rc_config $name

softflowd_enable=${softflowd_enable:-"NO"}
softflowd_timeouts="-t maxlife=300"
softflowd_max_states="16000"

softflowd_precommand ()
{
    if [ -n "$2" ]; then
        profile="$2"
        ctlfile="${_pidprefix}.${profile}.ctl"
        eval apache22_flags="\${apache22_${profile}_flags:-${apache22_flags}}"
        eval softflowd_collector="\${softflowd_${profile}_collector}"
        if [ "x${softflowd_collector}" = "x" ]; then
            echo "ERROR: You must specify a collector to send data to."
            exit 1
        fi
        eval softflowd_timeouts="\${softflowd_${profile}_timeouts:-${softflowd_timeouts}}"
        eval softflowd_max_states="\${softflowd_${profile}_max_states:-${softflowd_max_states}}"
        eval softflowd_extra_args="\${softflowd_${profile}_extra_args:-${softflowd_extra_args}}"
        command_args="-i ${profile} -n ${softflowd_collector} -m ${softflowd_max_states} -p ${pidfile} -c ${ctlfile} ${softflowd_timeouts} ${softflowd_extra_args}"
    else
        if [ "x${softflowd_interfaces}" != "x" ]; then
            for profile in ${softflowd_interfaces}; do
                echo "===> softflowd profile: ${profile}"
                /usr/local/etc/rc.d/softflowd $1 ${profile}
                retcode="$?"
                if [ "0${retcode}" -ne 0 ]; then
                    failed="${profile} (${retcode}) ${failed:-}"
                else
                    success="${profile} ${success:-}"
                fi
            done
        fi
        exit 0
    fi
}

softflowd_stop()
{
    /usr/local/sbin/softflowctl -c ${ctlfile} shutdown
}

run_rc_command "$1"

Кусок all.log


Jun 17 17:42:30 router kernel: IP gateway=YES
Jun 17 17:42:30 router kernel: .
Jun 17 17:42:30 router kernel: Starting devd.
Jun 17 17:42:30 router kernel: filter sync'd
Jun 17 17:42:30 router kernel: ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib
Jun 17 17:42:30 router kernel: a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout
Jun 17 17:42:30 router kernel: Starting ipmon.
Jun 17 17:42:30 router kernel: Creating and/or trimming log files
Jun 17 17:42:30 router kernel: .
Jun 17 17:42:30 router kernel: Starting syslogd.
Jun 17 17:42:31 router kernel: Clearing /tmp (X related).
Jun 17 17:42:31 router kernel: Starting mpd5.
Jun 17 17:42:31 router mpd: Multi-link PPP daemon for FreeBSD
Jun 17 17:42:31 router kernel: Updating motd:
Jun 17 17:42:31 router mpd:  
Jun 17 17:42:31 router mpd: process 879 started, version 5.5 (root@router 15:51  9-Jun-2011)
Jun 17 17:42:31 router mpd: CONSOLE: listening on 127.0.0.1 5005
Jun 17 17:42:31 router kernel: WARNING: attempt to domain_add(netgraph) after domainfinalize()
Jun 17 17:42:31 router kernel: .
Jun 17 17:42:31 router kernel: ===> softflowd profile: em0
Jun 17 17:42:31 router mpd: web: listening on 192.168.33.2 5006
Jun 17 17:42:31 router mpd: PPTP: waiting for connection on 192.168.33.2 1723
Jun 17 17:42:31 router kernel: ERROR: You must specify a collector to send data to.
Jun 17 17:42:31 router kernel: Starting flow_capture.
Jun 17 17:42:31 router root: /etc/rc: WARNING: failed to start flow_capture
Jun 17 17:42:31 router kernel: flow-capture: Specify localip/remoteip/port.
Jun 17 17:42:31 router kernel: /etc/rc: WARNING: failed to start flow_capture
Jun 17 17:42:31 router kernel: Configuring syscons:
Jun 17 17:42:31 router kernel: keymap
Jun 17 17:42:32 router kernel: blanktime
Jun 17 17:42:32 router kernel: .
Jun 17 17:42:32 router kernel: Starting sshd.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "FreeBSD + Flow tools"  +/
Сообщение от artemrts (ok) on 17-Июн-11, 23:50 
>[оверквотинг удален]
> Jun 17 17:42:31 router kernel: Starting flow_capture.
> Jun 17 17:42:31 router root: /etc/rc: WARNING: failed to start flow_capture
> Jun 17 17:42:31 router kernel: flow-capture: Specify localip/remoteip/port.
> Jun 17 17:42:31 router kernel: /etc/rc: WARNING: failed to start flow_capture
> Jun 17 17:42:31 router kernel: Configuring syscons:
> Jun 17 17:42:31 router kernel: keymap
> Jun 17 17:42:32 router kernel: blanktime
> Jun 17 17:42:32 router kernel: .
> Jun 17 17:42:32 router kernel: Starting sshd.
>

Здравствуйте. Раз вы только неделю с фрей осмелюсь дать пару советов. Так, ради того, что бы легче было и интересней, а не что бы поучить :).

  Связка freebsd 8.2 + mpd5 (впн сервер) + ipf  + ipnat - это гуд. Но посмотрите в сторону PF - синтаксис примерно тот же, но пофункциональнее будет.
  Статистика flow tools + iptraf - тоже клевая весчь. Но есть еще одна программка - pmacct. Я все серваки перевел с флоу-тулз на http://www.pmacct.net/ + там есть куча вэбморд к нему. Во Фре есть возможность генерировать flow-поток с интересующего интерфейса с помощью Netgraph. Собираете этот поток с помощью pmacct и обрабатываете.
Успехов!

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "FreeBSD + Flow tools"  +/
Сообщение от Hammer (ok) on 18-Июн-11, 09:45 
>[оверквотинг удален]
> что бы поучить :).
>   Связка freebsd 8.2 + mpd5 (впн сервер) + ipf  
> + ipnat - это гуд. Но посмотрите в сторону PF -
> синтаксис примерно тот же, но пофункциональнее будет.
>   Статистика flow tools + iptraf - тоже клевая весчь. Но
> есть еще одна программка - pmacct. Я все серваки перевел с
> флоу-тулз на http://www.pmacct.net/ + там есть куча вэбморд к нему. Во
> Фре есть возможность генерировать flow-поток с интересующего интерфейса с помощью Netgraph.
> Собираете этот поток с помощью pmacct и обрабатываете.
>  Успехов!

Очень дельный совет. Присоединяюсь.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "FreeBSD + Flow tools"  +/
Сообщение от stum74 (ok) on 20-Июн-11, 07:43 
спасибо за рекомендацию. но я бы хотел доделать свою сборку. при чем осталось делов то...
а на досуге можно и посмотреть рекомендуемый вариант. от меня ждут результат, а не исследование неисследованного.
как мне победить мою проблему, может кто-нибудь сказать? проблема с запуском демана при старте оси.


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "FreeBSD + Flow tools"  +/
Сообщение от stum74 (ok) on 20-Июн-11, 13:10 
Описаный выше вопрос решен.

Появился новый.
из all.log следует что служба softflow запускается перед flow-catpure

Jun 17 17:42:31 router kernel: ===> softflowd profile: em0
Jun 17 17:42:31 router mpd: web: listening on 192.168.33.2 5006
Jun 17 17:42:31 router mpd: PPTP: waiting for connection on 192.168.33.2 1723
Jun 17 17:42:31 router kernel: ERROR: You must specify a collector to send data to.
Jun 17 17:42:31 router kernel: Starting flow_capture.

как мне сделать наоборт чтобы был запуск? курил интернет. разобраца сам не смог.

rc.conf

# -- sysinstall generated deltas -- # Mon Jun  6 16:34:29 2011
# Created: Mon Jun  6 16:34:29 2011
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
defaultrouter="172.21.2.101"
gateway_enable="YES"
hostname="router"
ifconfig_em0="inet 172.21.2.2   netmask 255.255.255.0"
ifconfig_em1="inet 192.168.33.2   netmask 255.255.0.0"

#static_routes="net1"
#route_net1="-net 192.168.33.0 172.21.2.101"

#firewall_enable="YES"
#firewall_type="OPEN"
#tcp_drop_synfin="YES"

keymap="ru.koi8-r"
sshd_enable="YES"
mpd_enable="YES"


# -- IPF           http://www.linuxcenter.ru/lib/articles/networking/freebsd_ga...
ipfilter_enable="YES"            # Start ipf firewall
ipfilter_rules="/etc/ipf.rules"  # loads rules definition text file
ipmon_enable="YES"               # Start IP monitor log
ipmon_flags="-Ds"                # D = start as daemon
                                 # s = log to syslog
                                 # v = log tcp window, ack, seq
                                 # n = map IP & port to names

ipnat_enable="YES"               # Start ipnat function
ipnat_rules="/etc/ipnat.rules"   # rules definition file for ipnat
flow_capture_enable="YES"
flow_capture_datadir="/var/netflow"
flow_capture_remoteip="127.0.0.1"
flow_capture_localip="127.0.0.1"
flow_capture_port="8787"
flow_capture_pid="/var/run/flow-capture/flow-capture.pid"
flow_capture_flags="-n 287 -N 0 -w -S 5"

softflowd_enable="YES"
softflowd_interfaces="em0"
softflowd_netflow_host="127.0.0.1"
softflowd_netflow_port="8787"


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "FreeBSD + Flow tools"  +/
Сообщение от Hammer (ok) on 20-Июн-11, 19:39 
>[оверквотинг удален]
> flow_capture_datadir="/var/netflow"
> flow_capture_remoteip="127.0.0.1"
> flow_capture_localip="127.0.0.1"
> flow_capture_port="8787"
> flow_capture_pid="/var/run/flow-capture/flow-capture.pid"
> flow_capture_flags="-n 287 -N 0 -w -S 5"
> softflowd_enable="YES"
> softflowd_interfaces="em0"
> softflowd_netflow_host="127.0.0.1"
> softflowd_netflow_port="8787"

Ну же, дружище, включите логику.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "FreeBSD + Flow tools"  +/
Сообщение от stum74 (ok) on 21-Июн-11, 07:21 
вопрос решил. готовый вариант


softflowd_enable="YES"
softflowd_interfaces="em0"
#softflowd_netflow_host="127.0.0.1"
#softflowd_netflow_port="8787"
softflowd_em0_collector="127.0.0.1:8787"


flow_capture_enable="YES"
flow_capture_datadir="/var/netflow"
flow_capture_remoteip="127.0.0.1"
flow_capture_localip="127.0.0.1"
flow_capture_port="8787"
flow_capture_pid="/var/run/flow-capture/flow-capture.pid"
flow_capture_flags="-n 287 -S 5"

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "FreeBSD + Flow tools"  +/
Сообщение от stum74 (ok) on 24-Июн-11, 15:13 
Устал капать инет. посоветуйте, если есть возможно в примерах.

вобщем я все упростил. Mpd5 у меня выплевывает flow поток. у меня настроен flow-capture. например поток падает туда.

посоветуйте чем мне его обрабатывать? весь день рыл инет голова пухнет не знаю за что хвататься.
нарыл красивую штуку nfsen http://nfsen.sourceforge.net/#mozTocId853803 . но нигде не нашел мануала как ее ставить на фряху. по установке много не понятного. то есьт там нужен пхп, апач  и тд и тд. вроди система весьма сложная и поднимается вопрос нужна ли она.

желаемое:
собирать поток в текстовом виде - это уже работает.
и просто отчетом или каким либо визуализатором получать инфу о топ 10, куда ходил данный юзер(ип), сколько скачал и тд. веб морда не обязательно, но и желательна.

также есть у нет флоу тулзов какие то модули, которые могут дать желаемый результат.

просьба поделица опытом или дать дельную рекомендацию.

пс.  система должна работать на одной банке (онже роутер на фряхе). для теста сделал банку на винде которая ловила поток в нет флоу анализатор. все показывает, но наш админ по связи хочет чтобы я сделал все на одной банке: freebsd+mpd5+collector+analiz traf.
осталось немного. дожать не могу все (

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "FreeBSD + Flow tools"  +/
Сообщение от den (??) on 28-Июн-11, 14:14 
ну дык flow-tools и дает статистику в текстовом виде

flow-cat <flow_file> | flow-stat -f 10 | flow-print

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "FreeBSD + Flow tools"  +/
Сообщение от stum74 (ok) on 28-Июн-11, 15:05 
систему малек переделал. вопрос


может есть у кого rc.conf по запуску демана nfcapd
что в инете ничего нет на эту тему.
в ручную нормально стартует : nfcapd -z -w -D -T all -l /var/netflow/ -I any -S 2
решил было извратица на обум написать:

nfcapd_enable="YES"
nfcapd_datadir="/var/netflow"
nfcapd_flags="-z -w -D -T all -I any -S 2"

даже в лог файлы не вошло ничего. реакция нулевая.
есть еще такая инфа:
router# whereis nfcapd
nfcapd: /usr/local/bin/nfcapd /usr/local/man/man1/nfcapd.1.gz

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "FreeBSD + Flow tools"  +/
Сообщение от Deac (ok) on 28-Июн-11, 15:21 
>[оверквотинг удален]
> в ручную нормально стартует : nfcapd -z -w -D -T all -l
> /var/netflow/ -I any -S 2
> решил было извратица на обум написать:
>
nfcapd_enable="YES" 
> nfcapd_datadir="/var/netflow"
> nfcapd_flags="-z -w -D -T all -I any -S 2"

> даже в лог файлы не вошло ничего. реакция нулевая.
> есть еще такая инфа:
>
router# whereis nfcapd 
> nfcapd: /usr/local/bin/nfcapd /usr/local/man/man1/nfcapd.1.gz

Открой для себя /usr/local/etc/rc.d
Ну и хэндбук в руки, поверь, там всё есть.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "FreeBSD + Flow tools"  –1 +/
Сообщение от stum74 (ok) on 29-Июн-11, 07:12 
>[оверквотинг удален]
>> решил было извратица на обум написать:
>>
nfcapd_enable="YES" 
>> nfcapd_datadir="/var/netflow"
>> nfcapd_flags="-z -w -D -T all -I any -S 2"

>> даже в лог файлы не вошло ничего. реакция нулевая.
>> есть еще такая инфа:
>>
router# whereis nfcapd 
>> nfcapd: /usr/local/bin/nfcapd /usr/local/man/man1/nfcapd.1.gz

> Открой для себя /usr/local/etc/rc.d
> Ну и хэндбук в руки, поверь, там всё есть.

Согласен с твоим комментарием. но

router# ls -all /usr/local/etc/rc.d/
total 26
drwxr-xr-x   2 root  wheel   512 Jun 27 14:00 .
drwxr-xr-x  12 root  wheel   512 Jun 27 14:00 ..
-r-xr-xr-x   1 root  wheel  3455 Jun 17 11:54 flow_capture
-r-xr-xr-x   1 root  wheel  3089 Jun 17 11:54 flow_fanout
-r-xr-xr-x   1 root  wheel   916 Jun  9 15:51 mpd5
-r-xr-xr-x   1 root  wheel  4434 Jun  9 15:50 ng_ipacct
-r-xr-xr-x   1 root  wheel   659 Jun 27 14:00 rrdcached
-r-xr-xr-x   1 root  wheel  2345 Jun 20 14:59 softflowd

у меня нет ничего связанного с nfcapd.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "FreeBSD + Flow tools"  +/
Сообщение от stum74 (ok) on 29-Июн-11, 08:26 
пролистал хенд бук и не нашел инфы про rc.d или rc.conf
можно поточнее дать инфу о которой вы говорили?
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "FreeBSD + Flow tools"  +/
Сообщение от Deac (ok) on 29-Июн-11, 16:04 
> пролистал хенд бук и не нашел инфы про rc.d или rc.conf
> можно поточнее дать инфу о которой вы говорили?

http://www.freebsd.org/doc/handbook/configtuning-rcd.html

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "FreeBSD + Flow tools"  +/
Сообщение от stum74 (ok) on 07-Июл-11, 06:57 
up. последний пост актуален. не могу в продакшен сдать, потому что не могу настроить деман nfcapd в автостарт.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "FreeBSD + Flow tools"  +/
Сообщение от stum74 (ok) on 11-Июл-11, 12:03 
Подвожу итоги проведенной работы в виде полевых заметок собранных в блендере.

Тема мануала:

Организовать шлюз в организации для раздачи Интернета от внешнего провайдера до оконечных пользователей. ОС шлюза Freebsd, фаервол IPF, инет раздается пользователям через впн подключение пользователя к шлюзу, ВНП сервер использовал mpd5, он же отсылает поток логов по трафику встроенным инструментом ака netflow tools, поток собирает коллектор nfcapd, а демон nfdump анализирует и выдает отчеты по трафику.  

[color=#FF0000]1 Устанавливаем Freebsd 8.2[/color]

1.1 http://forum.qwerty.ru/index.php?showtopic=231345&view=findp...
1.2 перед завершением установки оси нужно включить опцию изменения ядра http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/kerne...
1.3 мои добавление в фаил ядра ( пункт 4 в статье http://forum.qwerty.ru/index.php?showtopic=231345&view=findp...). дописываем в конце файла

# Extended options max edite
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=999
options IPFIREWALL_FORWARD
options IPFILTER
options IPFILTER_LOG
options IPDIVERT
options DUMMYNET
options QUOTA
options DEVICE_POLLING # для поддержки polling'а

options NETGRAPH
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE

device     if_bridge


#########################################
отступление
рекомендуется после установки оси обновить колекцию портов. я юзал следующие источки. они друг друга дополняют. но можно и не делать это. как показала практика у меня по почти все поставилось новое.

Вариант 1:http://www.opennet.dev/base/sys/port_upgrade.txt.html (у меня файлик не появился. я его взял вот от сюда server# cp /usr/share/examples/cvsup/stable-supfile /etc/)
для инфы http://www.freebsd.org/doc/ru/books/handbook/ports-using.html

нужно установить утилиту portupgrade

пример команд обновления одного порта в ручную:
rehash
pkg_version -v | grep "need"
portupgrade pkgname -r python26-2.6.6


---------------------------------------------
Варинат 2

# portsnap fetch
# portsnap extract
# portsnap update

При последующих запусках:
Код:

# portsnap fetch
# portsnap update


####################################################

[color=#FF0000]2 выполняем установку впн сервера mpd5.[/color]
2.1 ttp://www.lissyara.su/articles/freebsd/security/vpn_mpd5/ - по статье ставим mpd5 . до ходим до пункта "Настраиваем сжатие" и останавливаемся.

после установки mpd5 заливаем мой конфиг

/usr/local/etc/mpd5/mpd.conf


################################################################################
[quote]startup:
# Задаем пароль для доступа в web-intarface
# т.е меняем password на свой пароль
        set user ads 12345 admin
# set user password cancer
# configure the console
        set console self 127.0.0.1 5005
        set console open
# configure the web server
        set web self 192.168.33.2 5006
        set web open

#--- куда сбрасывает ip/port
       set netflow peer 127.0.0.1 9995
#--- период сброса статистики
       set netflow timeouts 60 120


default:
        load pptp_server


pptp_server:
# Определяем диапазон выдаваемых IP удалённым клиентам
# у меня с ...200 по ...220
        set ippool add poolsat 172.180.180.50 172.180.180.150
#    set nat enable
        create bundle template B
        set iface enable proxy-arp
        set iface idle 0
        set iface enable tcpmssfix
        set ipcp yes vjcomp
# IP адрес сервера, который мы будем показывать клиентам
# в моем случае 172.21.19.211 (можно не реальный IP)
        set ipcp ranges 172.180.179.1/24 ippool poolsat
#    set ipcp ranges 172.180.179.50/24 192.168.33.210/24
# Здесь указываем DNS сервер
        set ipcp dns 172.21.2.101
# Здесь указываем Wins сервер
#        set ipcp nbns 192.168.10.1

#    set iface enable netflow-in netflow-out nat
    set iface enable netflow-in
    set iface enable netflow-out


# Enable Microsoft Point-to-Point encryption (MPPE)
        set bundle enable compression
        set ccp yes mppc
        set mppc yes compress e40 e56 e128 stateless

# Create clonable link template named L
        create link template L pptp
# Set bundle template to use
        set link action bundle B
# Multilink adds some overhead, but gives full 1500 MTU
        set link enable multilink
        set link yes acfcomp protocomp
        set link no pap chap eap
        set link enable chap
        set link enable chap-msv1
        set link enable chap-msv2
# We reducing link mtu to avoid GRE packet fragmentation.
        set link mtu 1460
        set link keep-alive 10 60

# Configure PPTP and open link
# Тут указываем IP сетевой карты или имя интерфейса (rl1) смотрящего в интернет
    set pptp self 192.168.33.2
# Allow to accept calls
        set link enable incoming[/quote]

#########################################################################################


/usr/local/etc/mpd5/mpd.secret

###################################################################################

#Пользователь              Пароль             Выдаваемый пользователю IP

max                    max               172.180.180.50
anton                    anton              172.180.180.51
andrey            andrey            172.180.180.52    
natasha        natasha        172.180.180.53

# Этим 2 пользователям выдаются динамический IP адреса с ...200 по ...220
# т.е те которые в момент подключения не заняты
#user3                    321                     *
#user4                    321                     *

########################################################################################


[color=#FF0000]3 IFP+IPNAT[/color]

3.1. юзаем статья http://www.linuxcenter.ru/lib/articles/networking/freebsd_ga...
3.2 заливаем мои конфиги

* Коенчено в конфигах ставим свои ИП, сети и интерфейсы

/etc/rc.conf

######################################################################


# -- sysinstall generated deltas -- # Mon Jun  6 16:34:29 2011
# Created: Mon Jun  6 16:34:29 2011
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.


defaultrouter="172.21.2.101"
gateway_enable="YES"
hostname="router"
ifconfig_em0="inet 172.21.2.2   netmask 255.255.255.0"
ifconfig_em1="inet 192.168.33.2   netmask 255.255.0.0"

#static_routes="net1"
#route_net1="-net 192.168.33.0 172.21.2.101"

#firewall_enable="YES"
#firewall_type="OPEN"
#tcp_drop_synfin="YES"

keymap="ru.koi8-r"
sshd_enable="YES"
mpd_enable="YES"


# -- IPF           http://www.linuxcenter.ru/lib/articles/networking/freebsd_ga...
ipfilter_enable="YES"            # Start ipf firewall
ipfilter_rules="/etc/ipf.rules"  # loads rules definition text file
ipmon_enable="YES"               # Start IP monitor log
ipmon_flags="-Ds"                # D = start as daemon
                                 # s = log to syslog
                                 # v = log tcp window, ack, seq
                                 # n = map IP & port to names

ipnat_enable="YES"               # Start ipnat function
ipnat_rules="/etc/ipnat.rules"   # rules definition file for ipnat

#softflowd_enable="YES"
#softflowd_interfaces="ng0"
#softflowd_em0_collector="127.0.0.1:8787"
#softflowd_em1_collector="127.0.0.1:8787"
#softflowd_ng0_collector="172.21.2.244:9996"
#softflowd_em0_collector="172.21.2.244:9996"
#softflowd_em1_collector="172.21.2.244:9996"

#flow_capture_enable="YES"
#flow_capture_datadir="/var/netflow"
#flow_capture_remoteip="127.0.0.1"
#flow_capture_localip="127.0.0.1"
#flow_capture_port="8787"
#flow_capture_pid="/var/run/flow-capture/flow-capture.pid"
#flow_capture_flags="-n 287 -S 5"


в конфиге есть наработка по flow tools - она рабочая, н ов процессе работы я от нее отказался. закомментил.

########################################################################

/etc/ipf.rules

###############################################################################

# --  No restrictions on Loopback Interface [1]
pass in quick on lo0 all
pass out quick on lo0 all


# --  No restrictions on Local Interface [2]
pass in quick on em1 all
pass out quick on em1 all


# -- Let clients behind the firewall send out to the internet,
# -- and replies to come back in by keeping state [3]
pass out quick on em0 proto tcp all keep state
pass out quick on em0 proto udp all keep state
pass out quick on em0 proto icmp all keep state

# -- Let's people access the services running on
# -- this system [4]
#pass in quick on em0 proto tcp from any to any\
# port 30000 >< 50000 flags S keep state #PASV FTP
# FTP
#pass in quick on em0 proto tcp from any to any port = 21
# SSH
#pass in quick on em0 proto tcp from any to any port = 22
#pass in log quick on em0 proto icmp from any \
# Ping
#to 62.16.105.195/8 icmp-type 8 keep state
# DNS
#pass in quick on em0 proto tcp/udp from any to any port = 53
# WWW
#pass in quick on em0 proto tcp from any to any port = 80
#pass in quick on em0 proto tcp from any to any port = 443
# RAdmin
#pass in quick on em0 proto tcp from any to any port = 4899

# [traceroute to internal host 2nd stage: receiving error code of icmp-type 3
# (destination unreachable) and icmp-type 11 (time exceeded)]
#pass in quick on em0 proto icmp from any to any icmp-type 3 keep state keep frags
#pass in quick on emo proto icmp from any to any icmp-type 11 keep state keep frags

#pass in quick on em0 proto tcp from any to any port = 25 flags S keep state keep frags


#block out all
#block in all
block in quick on em0 all
block out quick on em0 all


#--- ipf.rules end

#Жмем Ctrl + c и пишем exit
#
#где,
#
#    lo0 - устройство loopback.
#    fxp0 - сетевая карта смотрящая во внутреннею сеть.
#    em0 - сетевая карта смотрящая в Internet.
#
#[1] - устройство loopback должно быть обязательно разрешено все для правильной работы;
#[2] - ни каких запретов внутренней LAN;
#[3] - разрешить исходящие TCP, UDP & ICMP сессии с сохранением соединения;
#[4] - открыть порты на сетевые службы;


############################################################################


/etc/ipnat.rules

##################################################################################

#--- ipnat.rules begin

#rdr em0 172.21.2.2/16 port 80 -> 192.168.0.5 port 80 tcp [1]
#rdr em0 62.16.105.195/32 port 4899 -> 192.168.0.5 port 4899 tcp
#map em0 172.21.0.0/8 -> 0/16 proxy port ftp ftp/tcp    
#map em0 172.21.0.0/8 -> 0/16 portmap tcp/udp 1025:65000
#map em0 192.168.33.0/24 -> 0/32
map em0 172.180.180.0/24 -> 0/32

#map em0 192.168.33.0/24 -> 172.21.2.2/16

#--- ipnat.rules end

#[1] - переброска входящих соединений на внутренний WEB сервер. Тоже самое с портом 4899 для RAdmin;
#[2] - проксирование FTP входящих/исходящих запросов;
#[3] - распределяет все исходящие сессия на порты от 1025 до 65000;
#[4] - тоже что и [3], но перекидывает все исходящие без рамок на используемые поты для сессий (можно не указывать, работать все равно будет).

##########################################################################################


[color=#FF0000]4. Ставим коллектор и декриптор логов nfdump[/color]

4.1
router#  whereis nfdump
nfdump: /usr/local/bin/nfdump /usr/local/man/man1/nfdump.1.gz /usr/ports/net-mgmt/nfdump
router# cd /usr/ports/net-mgmt/nfdump
router# make inastall clean

4.2 создаем каталог для логов
/var/netflow - например

Запуск колектора из командной строки nfcapd -z -w -D -T all -l /var/netflow/ -I any -S 2
отчет один из: nfdump -R /var/netflow/ -o extended -s srcip -s ip/flows -s dstport/pps/packets/bytes -s record/bytes

Примеры команд отчетов


маны по этому софту:
http://nfdump.sourceforge.net/
http://www.freebsd.org/cgi/man.cgi?query=nfcapd&apropos=0&se...
http://www.freebsd.org/cgi/man.cgi?query=nfdump&apropos=0&se...

4.3 ставим nfcapd в автозапуск при старте Оси

* Смотрим где у нас лежит запускной фаил службы и даем на ее прова запуска:
router# whereis nfcapd
nfcapd: /usr/local/bin/nfcapd /usr/local/man/man1/nfcapd.1.gz
router# chmod 777 /usr/local/bin/nfcapd

* создаем скрипт запуска в /etc/rc.d/имя_скрипта и наполняем его:
#!/bin/sh
/usr/local/bin/nfcapd -z -w -D -T all -l /var/netflow/ -I any -S 2

* даем права запуска
chmod 777 /etc/rc.d/имя_скрипта

* автозапуск я сделал при помощи Крона
/etc/crontab списываем спроку
#minute    hour    mday    month    wday     who    command
@reboot                                            root    sh /etc/rc.d/имя_скрипта

то есть задача крона говорит, что скрипт будет юзаца при загрузки ОСи.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру