Archive

Archive for February, 2009

OpenDD

February 28th, 2009 No comments

OpenDD is a DynDNS client, written in C, and especially designed
for small gateway machines, like a Soekris box. Its main feature
is that it does not require any Perl or Python interpreter.
It supports HTTPS, can send a mail report, and can run as daemon.
It is also very easy to deploy.

WWW: http://www.bsdmon.com/wakka/OpenDD

Установка:

1
2
3
4
5
6
7
[root@case.net.ru]$ cd /usr/ports/dns/opendd
[root@case.net.ru]$ make showconfig
===> The following configuration options are available for opendd-0.7.9:
     OPENDD_SSL=off "Build with SSL support"
     RC_NG=on "Install RC_NG script"
===> Use 'make config' to modify these settings
[root@case.net.ru]$ portinstall opendd

Настройка производится в файле /usr/local/etc/opendd/opendd.conf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
servername = members.dyndns.org
hostname = case.selfip.net
username = [username]
password = [password]
use_ssl = 0
cert_path = /usr/local/etc/opendd/opendd.pem
iface = ng0
runasdaemon = 1
use_syslog = 1
syslog_facility = daemon
system_user = nobody
system_group = nogroup
pidfile_path = /var/run/opendd.pid
pollfrequency = 300
domain_lifetime = 28
wildcard = 1
mx = mx.case.net.ru
backupmx = 1
offline = 0
mailfrom = opendd@case.net.ru
mailto = root@case.net.ru
smtpservername = localhost

В rc.conf я его не записывал. Запускается он из скриптов mpd:

1
2
3
4
5
[root@case.net.ru]$ cat /usr/local/etc/mpd4/up_stream.sh | grep opendd
/usr/local/etc/rc.d/opendd forcestart
[root@case.net.ru]$ cat /usr/local/etc/mpd4/down_stream.sh | grep opendd
/usr/local/etc/rc.d/opendd forcestop
[root@case.net.ru]$
Tags:

Balance

February 28th, 2009 No comments

Собственно net/balance.

Balance is a simple but powerful generic tcp proxy with round robin load
balancing and failover mechanisms. Its behaviour can be controlled at runtime
using a simple command line syntax.

The latest release now supports the definition of channel groups and
connection counting and handling boosting the power and versatility of
balance one big step further.

WWW: http://balance.sourceforge.net/

Установка:

1
portinstall balance

Настройка производится в файле /etc/rc.conf:

1
2
3
4
5
6
balance_enable="YES"
balance_hosts="web"
balance_web_flags="-a"
balance_web_address="80.92.110.82"
balance_web_ports="80"
balance_web_targets="172.16.127.10:80 172.16.127.11:80"
Tags:

VIM

February 28th, 2009 No comments

Vim is a virtually compatible, extremely enhanced, version of the UNIX
text editor vi.

There are a lot of enhancements above Vi: multi level undo, multi-windows
and buffers, syntax highlighting, command line editing, filename completion,
on-line help, visual selection, etc..

Many features above standard vi’s have been added:
multiple windows and buffers, multi level undo, command line history,
filename completion, selection highlighting, block operations (including
column/rectangular blocks), syntax highlighting, on-line help, etc.
Embeded Perl, Tcl, and Python support.
See “:help vi_diff” for a summary of the differences between Vim and Vi.

An X-windows aware or a full X-windows GUI version can also be built
that allows full use of the mouse and pull-down menus

See http://www.vim.org/why.html for a full explanation of Vim’s features.

Portability to all UNIX platforms, AmigaOS, Archimedes, Atari MiNT, BeOS,
M$-DOS, MacOS, OS/2, VMS, WinNT+Win95.

– David (obrien@cs.ucdavis.edu)
WWW: http://www.vim.org/

Для начала уберем поддержку X11 – в файле /usr/local/etc/pkgtools.conf должно быть следующее:

1
2
3
  MAKE_ARGS = {
        'editors/vim' => 'WITHOUT_X11=1',
  }

Устанавливаем:

1
# portinstall vim

Производим небольшую настройку в файле ~/.vimrc:

1
2
3
4
5
6
7
8
set title
set fdm=marker
set shiftwidth=4
set ts=4
set ruler
au BufReadPost * if line("'"") > 0 && line("'"") <= line("$") | exe "normal g'"" | endif
syntax on
set nomodeline
Tags:

Snort

February 27th, 2009 No comments

snort Собственно Snort – the de facto standard for intrusion detection/prevention. Установка особых проблем не вызывает:

# cd /usr/ports/security/snort
# make config
[ ] DYNAMIC     Enable dynamic plugin support
[ ] FLEXRESP    Flexible response to events
[ ] FLEXRESP2   Flexible response to events (version 2)
[X] MYSQL       Enable MySQL support
[ ] ODBC        Enable ODBC support
[ ] POSTGRESQL  Enable PostgreSQL support
[ ] PRELUDE     Enable Prelude NIDS integration
[ ] PERPROFILE  Enable Performance Profiling
[ ] SNORTSAM    Enable output plugin to SnortSam
# make install clean

Прописываем в rc.conf:

snort_enable="YES"
snort_interface="em0"

После установки регистрируется на оффициальном сайте, для того что бы скачать наборы правил под свою версию snort’а. Я скачал файлик snortrules-snapshot-2.8.tar.gz размером порядка 80 мегабайт. Создаем каталог /usr/local/etc/snort/rules и распаковываем туда содержимое скачанного архива. Настройка производится в файле /usr/local/etc/snort/snort.conf.

Настройка MySQL: Добавляем пользователя:

mysql&gt; grant all on snort.* to snort@localhost identified by 'snort';

Создаем таблицы:

$ mysql -u snort -p snort &lt; /usr/ports/security/snort/work/snort-2.8.2.2/schemas/create_mysql

Включаем вывод в базу в файле snort.conf:

output database: log, mysql, user=snort password=password dbname=snort host=localhost

Snort умеет работать в 3-х режимах:

  • Анализатор пакетов – аналог tcpdump
  • Регистратор пакетов – записывает траффик в файл
  • Сетевая система обнаружения вторжений

Опции командной строки характерные для всех режимов работы:

-i     Listen on interface 
-p         Disable promiscuous mode sniffing
<h1></h1>
Опции командной строки характерные для режима анализатора пакетов:
<pre lang="cli">-d         Dump the Application Layer
-e         Display the second layer header info
-v         Be verbose
-q         Quiet. Don't show banner and status report
-r     Read and process tcpdump file Пример - чтение траффика с интерфейса:
<pre lang="cli">$ snort -q -i vlan3 -p -d -e -v -n 10 port 80

Пример – чтение траффика из файла:

$ snort -v -r ~/traffic/

Опции командной строки характерные для режима регистрации пакетов:

-l     Log to directory Пример - запись траффика в файл:
<pre lang="cli">$ snort -i vlan3 -p -l ~/traffic/

Опции командной строки характерные для режима NDIS:

-I         Add Interface name to alert output
-A         Set alert mode: fast, full, console, test or none  (alert file alerts only) "unsock" enables UNIX socket logging (experimental).

Пример:

$ snort -i vlan3 -p -A console

Установка BASE (Basic Analysis and Security Engine)

 Use 'make config' to modify these settings
$ make install clean

Программа устанавливается в /usr/local/www/base. Делаем алиас или симлинк для веб-сервера и открывает в браузере. Начинаем инсталяцию. Особенности: – делаем каталог base доступным для записи веб-сервером; – в качестве “Path to ADODB” вводим /usr/local/share/adodb.

 

Ссылки:

  • http://www.ibm.com/developerworks/web/library/wa-snort1/
  • http://www.emergingthreats.net/ – сообщество, разрабатывающее правила

 

Иллюстрация с сайта snortattack.org – Snort в режиме работы Inline:
snort_inline

Tags: ,

APC Smart-UPS 1000 XL

February 24th, 2009 No comments

apcУстановил новый UPS в свою серверную. При его подключении к системе в логах видим следующее:

ugen0: American Power Conversion Smart-UPS 1000 XL FW:631.3.I USB FW:1.5, rev 1.10/0.06, addr 2.

Для снятия с него информации устанавливаем /usr/ports/sysutils/apcupsd с опциями WITH_APCSMART_DRV и WITH_USB (UPS у меня подключен по USB).
Настройка производится в файле /usr/local/etc/apcupsd/apcupsd.conf. Для USB кабеля надо немного его поменять:

UPSCABLE usb
UPSTYPE usb
DEVICE

Далее дописываем в rc.conf: apcupsd_enable=”YES” и запускаем: /usr/local/etc/rc.d/apcupsd start.
Проверяем:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
$ apcaccess
APC      : 001,043,1101
DATE     : Tue Feb 24 19:52:09 MSK 2009
HOSTNAME : case.net.ru
RELEASE  : 3.14.5
VERSION  : 3.14.5 (10 January 2009) freebsd
UPSNAME  : case.net.ru
CABLE    : USB Cable
MODEL    : Smart-UPS 1000 XL
UPSMODE  : Stand Alone
STARTTIME: Tue Feb 24 14:38:38 MSK 2009
STATUS   : ONLINE
LINEV    : 220.3 Volts
LOADPCT  :  14.3 Percent Load Capacity
BCHARGE  : 100.0 Percent
TIMELEFT : 829.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
OUTPUTV  : 220.3 Volts
SENSE    : High
DWAKE    : -01 Seconds
DSHUTD   : 180 Seconds
LOTRANS  : 200.0 Volts
HITRANS  : 253.0 Volts
RETPCT   : 000.0 Percent
ITEMP    : 27.9 C Internal
ALARMDEL : Always
BATTV    : 27.5 Volts
LINEFREQ : 50.0 Hz
LASTXFER : Low line voltage
NUMXFERS : 1
XONBATT  : Tue Feb 24 14:46:34 MSK 2009
TONBATT  : 0 seconds
CUMONBATT: 272 seconds
XOFFBATT : Tue Feb 24 14:51:06 MSK 2009
SELFTEST : NO
STATFLAG : 0x07000008 Status Flag
SERIALNO : AS0303330928
BATTDATE : 2006-10-06
NOMOUTV  : 230 Volts
NOMBATTV :  24.0 Volts
FIRMWARE : 631.3.I USB FW:1.5
APCMODEL : Smart-UPS 1000 XL
END APC  : Tue Feb 24 19:52:20 MSK 2009

Небольшой скрипт для cacti: /usr/local/share/cacti/scripts/apcaccess.sh:

1
2
#!/bin/sh
/usr/local/sbin/apcaccess | /usr/bin/grep -e ITEMP -e BCHARGE -e TIMELEFT -e LINEV -e OUTPUTV -e LOADPCT | /usr/bin/tr "n" " " | /usr/bin/awk -F' ' '{print $1 ":" $3 " " $5 ":" $7 " " $11 ":" $13 " " $15 ":" $17 " " $19 ":" $21 " " $23 ":" $25}'

Выдает информацию в виде:

1
LINEV:221.7 LOADPCT:13.6 BCHARGE:100.0 TIMELEFT:829.0 OUTPUTV:221.7 ITEMP:27.9

Настройку устройство (например количество подключенных батарей) можно производить через утилитку APC PowerChute Business Edition Deluxe.

Ссылки:

Tags: , ,

Verlihub: отключаем поиск акадовцам

February 19th, 2009 No comments

Дабы не грузить исходящий канал бесполезными запросами на поиск от акадовцев, пишем небольшой lua скрипт:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
aRange = {
["127.0.0.1-127.0.0.255"] = 1,
["10.128.0.1-10.128.255.254"] = 1,
["10.129.0.1-10.129.255.254"] = 1,
["10.130.0.1-10.130.255.254"] = 1,
["192.168.0.1-192.168.255.254"] = 1,
["213.79.108.1-213.79.111.254"] = 1,
["172.16.127.1-172.16.127.255"] = 1,
}
 
function VH_OnParsedMsgSearch(nick,data)
 
    res, myinfo = VH:GetMyINFO(nick)
    _, _, sharess = string.find(myinfo,"(%d+)$$")
    _, ip = VH:GetUserIP(nick)
 
    local Allow,Range = Func.CheckIP(GetIP(nick))
 
    if (Allow == 0) then
        VH:SendDataToUser("$To: Case From: Verlihub $<VerliHub> user: "..nick..", data: "..data.."", "Case")
        return 0
    else
        VH:SendDataToUser("$To: Case From: Verlihub $<VerliHub> user: "..nick..", data: "..data.."", "Case")
        return 1
    end
end
 
Func = {}
 
Func.ComIP = function(curIP)
    local _,_,a,b,c,d = string.find(curIP, "(%d+).(%d+).(%d+).(%d+)")
    return a*16777216 + b*65536 + c*256 + d
end
 
Func.CheckIP = function(curIP)
    local _,_,a,b,c,d = string.find(curIP, "(%d*).(%d*).(%d*).(%d*)")
    if ( tonumber(a) and tonumber(b) and tonumber(c) and tonumber(d) ) then
        local UserIP = Func.ComIP(curIP)
        if UserIP then
            for Range, Table in pairs(aRange) do
                local _,_,R1,R2 = string.find(Range, "(%S+)-(%S+)")
                Range1 = Func.ComIP(R1)
                Range2 = Func.ComIP(R2)
                if UserIP >= Range1 and UserIP <= Range2 then
                    return 1,Range
                end
            end
        end
    end
    return 0
end
 
function GetIP(sNick)
    res, ip = VH:GetUserIP(sNick)
    return ip
end

Кладем скрипт в файл /usr/local/etc/verlihub/scripts/search.lua и в чате dc набираем команду:

1
!luaload /usr/local/etc/verlihub/scripts/search.lua
Tags: ,

Motion – детектор движения

February 19th, 2009 No comments

Собственно subj. Лежит тут: multimedia/motion. Можно указать либо сразу местонахождение веб-камеры, либо скармливать jpg’шки с нее. На данный момент я использую второй вариант.
Основные настройки motion.conf:

1
2
3
4
5
6
7
8
9
10
11
daemon on
process_id_file /var/run/motion.pid 
setup_mode off
framerate 2
netcam_url file:////mnt/share/vlc/final.jpg
target_dir /mnt/share/vlc/motion
jpeg_filename %s
webcam_port 0
control_port 0
quiet on
on_picture_save /path/to/moution_detect.sh
Tags:

Видеонаблюдение

February 17th, 2009 No comments

Скриптик постоянно записывает поток с видеокамеры, каждую минуту обновляя файл, а также каждые 2 секунды создает новый скриншот с потока.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/sh
 
trap cleanup 1 2 3 6 15
 
cleanup()
{
    killall wget
    exit 1
}
 
while test true
do
    vdir=`date "+%Y-%m-%d-%H"`
    if ! [ -e $vdir ]
    then
        mkdir $vdir
    fi
 
    filename=`date "+%Y-%m-%d-%H-%M-%S"`
    wget --tries=0 -o /dev/null -O "$vdir/$filename.mpg" http://172.16.127.4:8080 &
 
    i=1
    while [ $i -lt 60 ]
    do  
        sleep 2
        sfile=`date +%s`
 
        sdir=`date "+%Y-%m-%d-%H"`
        if ! [ -e $sdir ]
        then
            mkdir $sdir
        fi
 
        let sfile = $sfile + 2
        if [ -s "$vdir/$filename.mpg" ]
        then
            ffmpeg -i "$vdir/$filename.mpg" -an -ss 00:00:$i -r 1 -vframes 1 -y -f mjpeg "$sdir/$sfile.jpg" && if [ -s "$sdir/$sfile.jpg" ]; then rm final.jpg; ln "$sdir/$sfile.jpg" final.jpg; fi &
        fi
        let i = $i + 2
 
        if [ -e stop ]
        then
            rm stop
            cleanup
        fi
    done
 
    killall wget
done
Tags:

Lisa

February 13th, 2009 No comments

2009.02.13:
lisa

2009.07.11:
IMG_09061

Tags:

Asterisk: будущее телефонии

February 11th, 2009 No comments

asterisk авторы: Меггелен, Мадсен, Смит
издательство: Символ-Плюс
дата выхода: ноябрь 2008
ISBN 5-93286-128-2
ISBN 978-5-93286-128-8
тираж 2000 экз.
страниц: 656; масса, г.: 780; размеры (высота, ширина, толщина), см.: 24x17x3
обложка: мягкая; бумага: офсетная
переводное издание
оригинал: “Asterisk: The Future of Telephony, Second Edition” ISBN 0-596-51048-9 язык: английский год издания: 2007
ссылка: http://www.books.ru/shop/books/611000

Tags: