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]$ |
Собственно 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/
Установка:
Настройка производится в файле /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 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',
} |
Устанавливаем:
Производим небольшую настройку в файле ~/.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 |
Собственно 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> grant all on snort.* to snort@localhost identified by 'snort';
Создаем таблицы:
$ mysql -u snort -p snort < /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
Пример – чтение траффика из файла:
Опции командной строки характерные для режима регистрации пакетов:
-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:

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