Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
13.11 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

>>

ХАКЕР

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

.PROBUY

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Диспетчер NLB

make: *** [checkconfig] Ошибка 1

Открываемконфигурационныйфайлвстроенноговеб-сервера/etc/ asterisk/http.confвтекстовомредактореиправим:

$sudomcedit/etc/asterisk/http.conf

enabled = yes enablestatic = yes

; Принимать соединения со всех интерфейсов bindaddr = 0.0.0.0

Ивmanager.conf:

$sudomcedit/etc/asterisk/manager.conf

enabled = yes webenabled = yes

; Заводим учетную запись admin с паролем password для на строек сервера, даем ему соответствующие права и разре шаем заходить только с определенного адреса

[admin]

secret = password

read = system,call,log,verbose,command,agent,config,u ser

write = system,call,log,verbose,command,agent,config,u ser

deny = 0.0.0.0/0.0.0.0

permit = 192.168.1.100/255.255.255.0

Вшаблонеконфигурациипользователянеприведенпараметрconfig.Если егонедобавить,тотынесможешьредактироватьнастройкиAsterisk.Поэтомунезабудьегодописать.Теперьзапускаемещеразmakecheckconfig и,еслиутилитанеругается,идемдальше.ПодсказкипоURLсмотривее выводе.Набираемвбраузереhttp://127.0.0.1:8088/asterisk/static/config/ setup/install.html,регистрируемсяспараметрамиучетнойзаписи,созданнойвыше,иследуемуказанияммастерапредварительнойнастройки.

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

Сначала мастер протестирует оборудование, и если найдет устройства сопряжения с аналоговыми линиями, то выведет их список в первом окне. По окончании нажимаем Next, в списке Local Extension выбираем

Настройка параметров кластера

количество цифр, которое будут иметь локальные номера, и в поле First Extension Number — номер, который будет присвоен первому пользователю. Флажок «Allow analog phones…» разрешает номерам с аналоговой линии назначать несколько экстеншенов.

НаследующемшагеServiceProvidersможноуказатьданныеVoIP-провай-

дера.НажимаемAddServiceProvider,затемвполеProviderTypeвыбираем типподключения.Возможныварианты:Analog,VoIP(трипредустановленныхпровайдера)иCustomVoIP.Впоследнемслучаевсепараметры придетсязаполнитьсамостоятельно.ВполеCommentдобавляемописание,вспискеProtocolвыбираемпротоколsipилиiax,вполеHostуказываемадреспровайдераичутьнижеучетныеданные.ПосленажатиянаSave вспискеListofServiceProvidersпоявитсяноваязапись.Нажатиенаполе Optionsоткроетменю,вкоторомможновыбратькодекидляработысэтим провайдеромирасширенныенастройки.ВAdvancedможнодополнительноуказать,какойдоменбудетиспользоватьсявзаголовках(fromdomain), изменитьназваниетранка,задатьCallerID.Чтобыможнобылоподключатьсяизвнебезвводапароля,вinsecureприсваиваемзначениеinvite. Здесьжеможноизменитьпортсервисавтомслучае,еслипровайдер используетнестандартныйномер(SIP—5060,IAX—4569).Итакдалее. Начетвертомшагепредстоитуказатьправилавызова;таккакпоканетдиалпланапоумолчанию,будетпредложеноегосоздать.Дальшеидутнастройки ящикадляработысголосовойпочтойинекоторыеегопараметры(посылка сообщениянаemail,максимальноеколичествосообщений,времязаписи

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

ЕслитыранеепробовалнастраиватьAsteriskприпомощиконфигурационныхфайлов,тыбыстроосвоишьсявAsteriskNOW.Интерфейслогиченипонятен,всенастройкинаходишьименновтехместах,вкоторыхожидаешь. Есть,конечно,исвоиособенности.Например,создаваяучетнуюзапись, сразуотмечаешь,скакимпротоколомонможетработать:SIPи/илиIAX2. Записьоновомпользователесоздаетсявuser.conf,авсеразрешения указываютсяприпомощиспециальныхпараметроввродеhasiax,hassip, hasvoicemail,назначениекоторыхпонятноибездокументации.

Интерфейс управления и учета AstBill

ВAsteriskNOWфункцииучетаитарификациизвонковразвитыещенедостаточно,поэтомуеслитребуетсятакаяфункциональность,следуетобратитьсякпродуктамстороннихразработчиков.ДляпримеравозьмемAstBill (astbill.com),которыйраспространяетсяполицензииGNUGPL.Система строитсяприпомощиоткрытыхпродуктов—Apache,MySQLиDrupal—и позволяетприпомощипонятноговеб-интерфейсапроизводитьосновные операции,полныйсписоккоторыхзанимаетдваэкрана.Срединих:

•  просмотринформацииобучетныхзаписяхSIP,IAX,персональный контактныйкаталогсподкатегориями; •  поддержкавиртуальныхучетныхзаписейсвозможностьюпривязкик любомуномеру;

xàêåð 02 /110/ 08

149

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>>

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

ХАКЕР.PRO

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Выбор интерфейса для работы кластера

•  биллинг,основанныйнапродолжительностизвонкаинаправлении; •  выводбаланса,расходовиплатежейпокаждомусчету,звонкивкредит, предоплаченныеуслуги; •  отсылкапредупрежденийомаломколичествесредствнауказанный email;

•  возможностьзвонкачерезGUIимногоедругое,чеговполнедостаточно длялюбойSMB-организацииилинебольшогоVoIP-провайдера.

К сожалению, интерфейс не локализован, но человек с базовым английским найдет все необходимое, хотя, возможно, и не сразу, так как функций у AstBill очень много. Кстати, внешний вид можно изменить при помощи тем.

ДляустановкипонадобитсясамAsterisk,СУБДMySQL5.хивеб-сервер Apache2.x,аDrupalужевходитвсоставAstBill,поэтомуотдельноустанавливатьегоненужно.ПроектпредлагаетдемонстрационнуюверсиюAstBill LiveCD,которыйпостроеннабазедистрибутиваDawnSmallLinux(оDSL можнопрочитатьвэтомженомере][.—Прим.редактора)иужевключает всенеобходимое.

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

строй AstBill.

Установка AstBill

ДляначалаподготовимMySQL.Установимпарольадминистратора(если этонесделаноранее),создадимбазуastbillидадимспециальномупользователюastbilluserвсенеобходимыепривилегии:

$ mysqladmin --user=root password 'mysql_root_password' $ mysqladmin --user=root -p create astbill

$ mysql --user root -p

mysql> GRANT ALL PRIVILEGES ON astbill.* TO astbilluser@ localhost IDENTIFIED BY 'astbill_db_passwd';

Query OK, 0 rows affected (0.00 sec) mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec) mysql> quit;

Все, MySQL готов к работе. Чтобы упростить создание таблиц, разработчики предлагают файлы шаблонов, которые доступны в архиве. Получаем последнюю версию AstBill с сайта проекта, распаковываем, установочный скрипт делаем исполняемым:

БиллингвAsterisk

ДлякаждоговызовасерверAsteriskгенерируетзаписьCDR(Call DetailRecord).Поумолчаниювсяинформация(номер,CallerID, направление,времяначала,вызова,ответа,окончанияипрочее)

хранитсявCSV-файле/var/log/asterisk/cdr-csv.Форматзаписей,

датыивремениопределенвфайлеcdr/cdr_csv.c.Дляудобстваучета вконфигурационныхфайлахилиприпомощикомандможноука-

затьучетныекоды(${CDR(accountcode)}),флагиAMA(Automated MessageAccounting)накаждыйканалилипользователя,которые будутиспользованыприбиллинге.ВозможнохранениеCDR-инфор- мациивбазеданных.ПоддерживаютсяSQLite,MySQL,PostgreSQL, unixODBC,MSSQL,Sybaseинекоторыедругие.Принеобходимости скриптыдляизвлечениянужныхданныхитарификацииразговоров можнонаписатьсамому.

$ tar jxvf astbill-0.9.22.tar.bz2 $ cd astbill

$chmod +x install.sh

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

$ mysql --user=root -p astbill < ./database/astbill.sql $ mysql --user=root -p astbill < ./database/astbill_ proc.sql

Проверяем,чтоесть:

$ mysql --user=root — p mysql> SHOW DATABASES;

+--------------------

+

| Database

|

+--------------------

+

| information_schema |

| astbill

|

| mysql

|

+--------------------

+

3 rows in set (0.01 sec) mysql> use astbill; Database changed mysql> show tables;

Выводпокажетбольшоеколичествотаблиц.ЕсливсеОК,идемдальше.

$ sudo ./install.sh

На запрос скрипта о продолжении работы вводим yes. Кроме установки AGI-скриптов (Asterisk Gateway Interface — интерфейс взаимодействия с внешними скриптами) и файлов озвучки будут сохранены и конфигурационные файлы уже установленного Asterisk. Кроме этого, будет создан каталог /home/astbill, в нем AstBill ищет свои настройки, если нужные файлы не доступны в каталоге, куда распакован сам биллинг. После работы скрипта корневой каталог astbill находится (в моем случае) в /home/grinder/astbill/wwwroot. Чтобы сделать его видимым веб-серве-

ру, создадим символическую ссылку (есть и другие варианты, это самый простой):

$ ln -s /home/grinder/astbill/wwwroot /var/www/html/ astbill

150

xàêåð 02 /110/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>>

ХАКЕР

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.PROBUY

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

-

 

n

e

 

 

 

 

 

x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Изменение загрузки для узла

Вкаталогеastbillнаходитсяконфигурационныйфайлastbill.conf,уста- новкиизкоторогосчитываютсяразличнымиPerl-иAJAX-скриптами. Дляудобстваработыегоможноскопироватьв/home/astbill.Послеэтого обязательноследуетизменитьинформациюдлядоступакБД:

$sudomcedit/home/astbill/astbill.conf

emailadd = noreply@grinder.com company_name = GrinderTelecom dbhost = localhost

dbname = astbill dbuser = astbilluser

dbpass = astbill_db_passwd dbdsn = astbilldns HostedOn = AstBill

debug = YES debug2 = NO YES odbc = NO odbc2 = YES NO

;

Незнаюпочему,норазработчикиполенилисьсделатьэтодлядругогофай-

ла—settings.php,которыйнаходитсявwwwroot/sites/default.Открываем иправимвнутрипараметрыдлядоступакБД:

$sudomcedit/var/www/html/astbill/sites/default/settings.php

$db_url = 'mysql://astbilluser:astbill_db_passwd@ localhost/astbill';

# И правим путь, если AstBill установлен в каталог вебсервера с другим именем

$base_url = 'http://127.0.0.1/astbill';

Наэтотфайлестьуказаниявдокументации,нопокаянеподправил параметрываналогичномфайлеизподкаталога127.0.0.1.astbill,ничего неработало.Такжевдокументациидаетсясовет,предписывающий убедиться,что«$db_prefix='pbx_';»,иначеAstBillработатьнебудет.По умолчаниютаконоиесть,нонавсякийслучайнеполенисьпроверить.И, наконец,осталосьотредактироватьфайл/etc/asterisk/res_mysql.conf(он входитвсоставAsterisk).

$sudomcedit/etc/asterisk/res_mysql.conf

[general]

dbhost = localhost dbname = astbill dbuser = astbilluser

dbpass = astbill_db_passwd dbport = 3306

# Обрати внимание на dbsock, в разных дистрибутивах этот

Просмотр событий в системном журнале

путь отличается

dbsock = /var/run/mysqld/mysqld.sock

Наэтомвсе,можнопробовать.ЗапускаемAsterisk,открываембраузеризаходимнастраницуhttp://127.0.0.1/astbill.Еслизагрузиласьзаглавнаястраница, значитвсенормально.Впротивномслучаевнимательночитаемописание проблемы,онодовольносодержательноеипомогаетнайтиошибку.

Поумолчаниювсистемезаведеныдвеучетныезаписи:пользовательс правамиадминистратора(astbill,парольdemoastbill)иобычныйпользователь(demo,парольdemoastbill).Первыйпользователь,набравшийURL, автоматическирегистрируетсякакastbill.Поэтомуследуетсразузайтив Myaccount,выбратьвкладкуEditиизменитьинформациюосвоейучетной записи:имяпользователя,email,пароль,статус(Active),роль.Системапо умолчаниюподдерживаетчетырероли,каждаяизкоторыхможетиметь строгоопределенныеправа:Admin,анонимныйпользователь,зарегистрированныйпользовательипартнер.Втораяитретьявнастройкахпо умолчаниюзаблокированы.Изменитьправаможно,зайдянастраницу AdministerAccesscontrol.ТамжевRolesможносоздатьновыеролиипо именипользователяилиemail’упроверить,включеналиучетнаязапись. РаботасучетнымизаписямивAstBillпостроенапонесколькимпринципам.Этонепосредственноаккаунт,которыйможетиспользоваться отдельнымпользователемилибытьпривязанкклиенту(Customer). Партнеры(Partner)являютсяподобиемгруппимогуттакжевключать своихклиентов.АккаунтсоздаетсявCreateAccount.Здесьтынайдешь всепараметры,встречающиесяприсозданииобычнойучетнойзаписив Asterisk.ВотличиеотAstersikNOW,здесьвозможенвыбортолькоодного типаучетнойзаписи:SIP,IAX2,VirtualAccountилиH323.Исходящие направленияописываютсявProviderTrunks,гдекромепривычных параметров(учетнаязапись,узел,методаутентификации)указываетсяи стоимостьнаправления.

Принеобходимости,нажавнаDialPlan,можноуказатьвремяидень недели,когдабудетдоступенпровайдер.Этопозволитзадатьсвоитарифы дляразноговремени.Плантарификациизвонковуказываетсявовкладке

«AstBillAdminSettingRatePlans».Оплатузвонковможноприни-

матьприпомощипредоплаченныхCallingCards,которыесоздаютсяв одноименнойвкладке.Здесьуказываетсяномер,карты,количестводенег, срокгодности,статус(Enabled/Disabled)ипрочее.Настроекнемного,а оченьмного,поэтомунаосвоениеAstBillнекотороевремявсежепридется потратить,новрезультатетыполучишьпонятнуюсистемубиллинга, настроеннуюподконкретныеусловия.

Естественно,этонеединственноерешение.Например,стоитобратить вниманиенатакуюсистемубиллингадляAsterisk,какA2Billing(trac. asterisk2billing.org/cgi-bin/trac.cgi),котораяможетбытьиспользована дляучетавсамыхразныхситуациях:традиционноепредоставлениеуслуг VoIP,callback-сервис,подсчеттрафикапартнерами.Насайтепроекта доступнадемоверсия,поэтомупознакомитьсясA2Billingможноибез установки.z

xàêåð 02 /110/ 08

151

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>>

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

ХАКер.PRO

криС каСперСки

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Наобломках RAID-массива

подъем raid’оВ с аппаратно-программной глубины на операционную поВерхность

Правило самолета гласит: сложность увеличивает вероятность поломки; двухмоторный самолет, по сравнению с одномоторным, имеет по крайней мере вдвое больше проблем с двигателями. И это совсем не шутка. Отказы RAID’ов (как программных, так и аппаратных) вполне обычное дело, а вот сложность их восстановления порядка на два выше. В одной статье, короткой, как мышиный хвост, просто невозможно описать технику восстановления в деталях, поэтому ограничимся базовыми приемами, задающими нужное направление.

учноевосстановлениеданныхтребуетспециальнойпод- Р готовкиибоевогоопыта.Нестоитинадеяться,чточтение

статей,книгитехническойдокументациипоможетвосстановитьупавшийдисковыймассивспервогораза,неразрушив

егоокончательно.Автоматизированныеутилиты—бесспорно,зло,но этонаименьшеезлоибезальтернативныйкомпромиссдлятех,ктоне

занимаетсявосстановлениемданныхрегулярноинеимеетнисредств,ни временидляобучения.Наподъемдисковогомассивазачастуюотпущены дниилидажечасы,и,чтобывсуматохеничегоненапутать,необходимо заблаговременноскачатьавтоматизированныеутилиты(темилииным образомзарегистрировавих),создатьвиртуальныйRAIDподVMware(или VirtualPC)иразобратьсясосновнымирычагамиуправления.

152

xàêåð 02 /110/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>>

ХАКЕР

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

.PROBUY

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Так выглядит R-Studio

Мы будем говорить главным образом об операционных системах семейства NT и файловой системе NTFS, Linux/BSD устроены совсем подругому, но оставить их неупомянутыми — это преступление.

Что нам понадобится

Лучшая утилита для автоматизированного восстановления аппаратных RAID-массивов и динамических дисков, поддерживаемых начиная с Win2k, — это, бесспорно, R-Studio от компании R-Tools Technology (www.r-tt.com). Версия чисто для NTFS (www.r-studio.com) обойдется всего лишь в $50, что немногим дешевле полной версии, «переваривающей» десяток файловых систем из разных операционных миров и стоящей $80, хотя ее полнота весьма относительна и R-Studio Technical License со всеми наворотами обойдется в $900, при этом компания настоятельно рекомендует хорошо подумать, прежде чем ее покупать. Довольно странный маркетинг, неправда ли?

NtExplorer от Runtime Software (www.runtime.org) представляет собой продукт совершенно иного класса — удобный дисковый редактор, отображающий в естественном виде все ключевые структуры файловой системы NTFS. Версия для Linux появилась относительно недавно и все еще остается достаточно сырой, но это лучше, чем lde или другие дисковые редакторы, которыми приходилось пользоваться до этого. И та и другая версии стоят по $69. Работа с RAID-массивами непосредственно не поддерживается, но при тяжелых отказах (например, выходе из строя RAID-контроллера) с дисками приходится работать на физическом уровне, и тут NtExplorer оказывается незаменимым. R-Studio также включает в себя дисковый редактор, но тот нереально примитивный и ужасно неудобный.

Наконец,дляосмысленногоуправлениявсемирычагаминепременнопотребуетсясправочноеруководствоипутеводительпоструктурамфайловых систем,например«Техникавосстановленияданных»,которуюможно бесплатноскачатьсhttp://nezumi.org.ru/recover-full-rus.zip.

О блоке служебной инфы замолвите слово

ВсякийRAID(неважно,аппаратныйилинет)представляетсобойдисковыймассив,информацияоконфигурациикоторогочащевсегохранится насамихдискахвспециальнойобласти,обычнорасположеннойвначале и/иликонцекаждогодиска,апотомувоткнутьдисквобычныйконтроллернеполучится.ВедьдажееслиэтоRAID1(зеркальныйдиск),BIOS,не обнаруживвположенномместезагрузочногосекторастаблицейразделов,откажетсягрузиться.ОК,грузимсясдискеты.Нафизическомуровне дискчитаетсяпрекрасно,новотоперационнаясистемавупорневидит структурданныхфайловойсистемыипредлагаетотформатироватьтакой диск,считаяегопустым.Заманчивоепредложение,нолучшеотказаться отнегосразуинавсегда.

Внешний вид NtExplorer

Вблокеконфигурациизаписываютсяжизненноважныепараметры,и форматэтихпараметровуникалендлякаждогоконтроллера,апотому RAID-массив,собранныйпододнимконтроллером,сточкизрениядругого пуст.Какминимумвблокеконфигурациихранитсятипмассива,размер одногоблока(варьирующийсявзависимостиотнастроекиособенностей контроллераот512байтдо1Мб),атакжепорядокдисковвмассиве,однакоизвсякогоправилаимеютсяисключения.

ДостаточномногиеаппаратныеRAID-контроллерыопределяютпорядок следованиядисковпутемжесткойпривязкиихкпортамконтроллера,или, говорячеловеческимязыком,ккабелям,соединяющимих.Этонеестьгуд потойпростойпричине,чтоеслимывытащим(сгоревший)контроллер, предварительнонепометивпорядоккабелей,то,дажезаменивегоновым, превратимдисковыймассиввтруху(если,конечно,этонеRAID1),и придетсязапускатьутилитуавтоматическоговосстановления,например тужеR-Studio.

Размеродногоблокаиногдахранитсявэнергонезависимойпамятиконтроллераиутрачиваетсяпривыходеизстрояпоследнего(илитотальном сбросевсехнастроек,если,конечно,размерблокаотличаетсяотдефолт- ного).ПростейшиеRAID-контроллерыхранятвэнергонезависимой памятиитипдисковогомассива(особенноэтохарактернодляRAID-кон- троллеров,интегрированныхвматеринскуюплату).

Блок конфигурации аппаратного RAID’а операционной системе недоступен и потому может быть разрушен только из-за ошибок в самом RAID’е или образования BAD-секторов на поверхности диска. Клинические случаи, когда мы снимаем диск с RAID-контроллера и подключаем к обычному IDE/SCSI-контроллеру, мы не рассматриваем, хотя… интегрированные RAID-контроллеры зачастую могут работать в обоих режимах и при сбросе настроек CMOS’а способны переходить из RAID’а в обычный режим.

Блок конфигурации программных RAID’ов находится в пределах логического дискового пространства, и разрушить его может кто угодно (например, менеджеры загрузки). А его порча, естественно, ведет к утрате доступа ко всему массиву. К счастью, блок конфигурации

практически всегда дублируется на каждом диске массива, и, хотя эти блоки частично различны, самые главные параметры из них все-таки можно вытянуть.

А можно и не вытягивать, а восстановить методом перебора. Поскольку дисковые массивы более чем из пяти HDD — редкость, их порядок подбирается за несколько минут. С размером блока дела обстоят чуть сложнее, но поскольку он может принимать только фиксированный ряд значений, кратный размеру сектора, то количество возможных вариантов не так уж и велико. Просто создаем виртуальный RAID в R-Studio и перебираем его параметры до тех пор, пока все данные не станут полностью читабельными.

xàêåð 02 /110/ 08

153

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>>

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

ХАКер.PRO

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

JBOD RAID

ВыхОд Из СтРОя rAID-КОНтРОллеРа

ОтказыRAID-контроллеровслучаютсядостаточночастоиоченьнеприятны. Еслиэтовнешнийконтроллероткрупногопроизводителя(типаAdaptec), тодажедлямоделей,снятыхсвыпуска,практическивсегдаможнонайтисовместимыйконтроллер,посколькуфирмазаботитсяопреемственностиив энергонезависимойпамятиничегонехранит,располагаявсюинформацию надисках.Короче,простоменяемконтроллерирадуемсяжизни.

АвотвылетRAID-контроллера,интегрированноговматеринскуюплату,

—этоужекатастрофа.Дажееслиудастсянайтианалогичнуюмать,вовсе нефакт,чтоприсменеревизииипрошивкиконтроллеранеизменитсяи структураблокаслужебныхданных.Опять-такиесличастьинформациио конфигурациихранитсявCMOS(ахранитсяонатампредательскичасто), топослезаменыматериинтегрированныйRAID-контроллерзапросто можетотказатьсяраспознаватьдисковыймассив,предлагаясделатьему REBUILD,уничтожающийвседанные.

Втакихслучаяхприходитсярастаскиватьмассивпоотдельнымдискам, подключатьихкобычномуконтроллеруисобиратьисходнуюматрицу вдисковомредактореиливсетойжеR-Studio.Онаэтоумеет.Проблема

возникает,лишькогдаколичестводисковвматрицепревышаетколичест- вопортовIDE-контроллеранаматеринскойплате.Мыщъхнесобирается отправлятьпострадавшихвмагазиннапоискиплатысбольшимколичествомпортов,равнокакненастаиваетнаиспользованиивнешнихIDEконтроллеров,втыкаемыхвPCI(режевUSB),посколькуэтонегуманно. ВиртуальныеRAID’ы,создаваемыеR-Studio,могутсобиратьсяпочастям, сливаясьводинбольшойфайл,записываемыйнадиск.Конечно,этот дискдолженбытьдостаточногоразмераипривосстановлениимассивов RAID0,составленныхизнесколькихдисковмаксимальногообъема,какой тольковстречаетсявпродаже,возникаеточевиднаяпроблема:акудавсе этолить?!Ответ:собиратьновыйRAID.Другоговыходанет.

Кстати,SCSI-контроллерыобычнонеимеюттакихжесткихограничений поколичествупортов,какIDE,ипотомувосстанавливатьматрицупокусочкамнетребуетсяи(небезриска,конечно)можнособиратьвиртуальныйRAIDнепосредственнонабазеразрушенного,тоестьбезкопирования еговотдельныйфайл,которыйнамиразместитьнегде.

Вылет жеСтКОГО дИСКа

Отказодногоилинесколькихжесткихдисков,превышающийпредел избыточностиRAID’а,—этосамоехудшее,чтотолькоможетслучитьсяс массивом.Инужнооченьсильноизвратиться,чтобыспастихотябычасть данных,особеннонамассивахтипаRAID0(тоестьбезизбыточности).

RAID 0

Техникавосстановления(аснейинашишансынаудачу)оченьсильнозависитоттипамассива,поэтомумырешилиразделитьRAID’ыпоклассам, начинаяссамыхпростыхизаканчиваяужесовсемнавороченными.

CONCATeNATION (JbOD, ИлИ sPAN)

ЭтонесовсемRAID,точнее,совсемнеRAID,ноонподдерживаетсямногимиконтроллерамиидовольнопопуляренвпрограммныхRAID’ах.Дваи болеефизическихдискапростообъединяютсяводинлогическийспоследовательнойадресацией.Естественно,«логический»втерминахRAID’а.С точкизренияоперационнойсистемыэтовполненатуральныйфизический диск,которыйможетбытьразбитнасколькоугоднологическихразделов (томов).Нискорости,ниотказоустойчивостиэтонедобавляет,простопозволяетсоздаватьдискибольшогоразмера.И,какправило,такиедискине разбиваются.Иначезачемихбылообъединять?!Вылетпоследнегодиска изстроянепредставляетникакойпроблемы,иприэтомтеряютсятолько записанныенанемданные.Естественно,фрагментированныефайлы могутрасполагатьсясразунанесколькихдисках,иеслихотябыодинкластерпопадаетнадефектныйдиск,файлстановится«дырявым».Насколько этосмертельно,зависитоттипафайла.Многиефайлы(pdf,например) включаютвсебянепродублированныеиневосстанавливаемыеструктуры данных,приповреждениикоторыхонивообщенеоткрываются.Другиеже (скажем,zip-архивы)выживают,дажееслипредставляютсобойсплошное «решето».Хужевсего,есливылетаетпервыйдиск.НанемвNTFSхранится схемаразмещениявсехостальныхфайлов,безкоторойнечегоипытаться вытянутьсRAID’ахотябычастьданных.Исключениясоставляютслучаи, когдафайлыслабофрагментированыивключаютвсебяслужебные структурыданных,указывающиенапорядокразмещенияихблоков.Тотже zip-архивможетбытьвосстановлендажеприотносительносильнойфраг- ментациииотсутствиисхемыразмещениякластеров,принадлежащих восстанавливаемомуфайлу.Простособираемвсесвободноепространство водинбольшойкомокданныхиговоримpkzip.exeзаветноеслово‘-fix’...И мыполучаемвсефайлы,хранящиесявzip-архивах.Аналогичнымобразом можновосстанавливатьдокументыMSOffice,базыданных…Насайтахвышеупомянутыхкомпанийимеютсяспециальныеутилиты,которыеделают это.R-Studioдажевурезаннойредакциираспознаетбольшоеколичество типовфайловихорошоумеетихвосстанавливать.Такчтонеотчаивайся! Вылет «серединного» диска представляет собой частный случай отказа последнего диска, при котором гибнут только те данные,которыерасположенынанем.Приотсутствииодногоиздисковматрицыконтроллер, конечно,работатьснейоткажется,новотR-Studioнеоткажется.Перегоняем

154

xàêåð 02 /110/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

>>

ХАКер

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

.PROBUY

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

RAID 1

содержимоенавиртуальныйRAID-массивикопируемснеговседанные, которые только можно скопировать. При этом могут оказаться разрушенными каталоги, поскольку они хранятся в специальных индексных файлах, но те уже давно перестали быть критической структурой данных и лишь ускоряют операции с каталогом, дублируя базовые структуры файловой системы, которые записаны на первом диске. Для переиндексации каталогов в NTFS достаточно запустить chkdsk, и все будет ОК. С файловой системой FAT этот номер, увы, не проходит, но вот с ext{2,3}fs/UFS (файловые системы миров Linux/BSD) — вполне. Кстати,оBSD.Внейинформацияоразмещениифайловсодержитсяв блокахгруппыцилиндров,приэтомтакихгруппобычнонесколько,они равномернобьютдискнарядчастей,чтобысократитьперемещения дисковойголовки,ипривылетепервогодискамытеряемлишьданныео размещениипервогоблокацилиндров,асовсемиостальнымивсеОК.В Linuxподдержкагруппблоковцилиндровобъявленаужедавно,нопока реальноиспользуетсятолькооднагруппа,даженабольшихдисках.

rAID 0 (ОН же sTrIPe seT, ИлИ sTrIPeD vOlUMe)

Гадость.Обещаетувеличитьпроизводительностьвдвое,нонапрактикебыст- родействиевозрастаетмаксимумна10-30%(цифровойвидеомонтажирабо- тасграфическимифайламиполиграфическогоразрешения—единственное исключениеизправила),авотнадежностьпадаетнижеабсолютногонуля.

Данныепишутсянадискблоками.Первыйблокнапервыйдиск,второй

—наследующийитакдалее.Допустим,мыимеемдвадискавматрице (наиболеераспространеннаякомбинация)изаписываемблокиA1A2 A3A4A5A6,тогдапривыходеодногодискаизстроямыимеем«решето»

видаA1A3A5A7.Нуичтоснимделать?!Большинствожурнальныхстатей предлагаетсдаваться,потомучтосделатьтутнельзяабсолютноничего. НасамомделевсезависитотконфигурацииRAID’а.Мелкиефайлы(а типичныйразмеродногоблокасоставляет8,16,32или64Кб)восстанавливаютсянаура.Этораз.Еслиимеетсяболееоднойкопиивосстанавливаемыхфайлов(пускайдажерасположенныхнатомжесамомRAID’е),тос определеннойвероятностьюониокажутся«продырявленными»вразных местах,исобратьиздвухкопийоднувполневозможно.

Чтожекасаетсяинформацииоразмещениифайлов,то…половинузаписейвслужебныхструктурахданныхмытеряемсразу(иона,увы,нигдене продублирована),апотомуреальноудаетсявосстановитьвлучшемслучае 10%,нумаксимум25%данныхсдвухдисковойматрицыRAID0содним поврежденнымдиском,даитоприблагоприятныхусловиях.Новсе-таки 10%—этоужекое-чтоинамногобольше,чемсовсемничего.

RAID 5

rAID 1 (ОН же MIrrOr)

Самый замечательный массив в плане восстановления. Данные дублируются на все диски, которые только есть в наборе (обычно их там два), и при отказе одного из дисков мы не теряем ничего. Теоретически. А на практике очень многие RAID-контроллеры отказываются работать с одним диском, требуя вставить чистый диск такого же или большего объема для его автоматического реплицирования. Причем зачастую это выглядит как полный отказ. Контроллер сообщает об ошибке, операционная система не видит массива, и перепуганный администратор хватается за валидол, недоумевая, как могли выйти из строя сразу два диска. И только запустив диагностическую утилиту (поставляемую вместе с контроллером), мы видим, что вылетел только один диск, и можем определить, какой именно. Главное тут — не перепутать их местами.

Как вариант — можно воспользоваться услугами R-Studio, последовательно подключая то один, то другой диск к обычному контроллеру. R-Studio запросто вычитает с рабочего диска все данные, позволив их записать, куда угодно. А некоторые контроллеры имеют режим

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

ОСтальНые уРОВНИ rAID

RAID2,RAID3,RAID4используютсякрайнередко,есливообщеиспользуются.ЗаинтересованныхмыщъхотсылаеткВикипедии(en.wikipedia. org/wiki/Standard_RAID_levels).RAID5довольнопопуляреннасерверах.

Требуеткакминимумтрехдисков.ОбычноиспользуетсяпятьHDD,при этом1/5объемамассивазанимаюткодыкоррекцииошибок,засчет которыхRAIDвыдерживаетотказлюбогоиздисковматрицы.Хорошие контроллерыподдерживаютрежимгибридизации,позволяющийсовмещатьRAID0сRAID1,врезультатечегомы…кхм,удваиваем(втеории!) производительностьиотказоустойчивостьценой50%избыточности. Насамомделеотказоустойчивостьприближаетсяк75%,посколькупри вылетедвухзеркальныхдисковмысохраняем100%,новотесливыйдетиз строяодинзеркальныйипарныйемудиск,мыполучаемтужеситуацию, чтоисRAID0,описаннуювыше.z

xàêåð 02 /110/ 08

155

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

 

>>

 

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

ХАКер.PRO

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вчастнуюсеть

Виртуально расширяем границы интранета с помощью openvpn

Когда речь заходит о необходимости предоставления авторизированному пользователю доступа к защищенным ресурсам частной сети, на ум сразу приходят примеры построения VPN на базе IPSec, PPTP, L2TP и SSL. Однако если требуется в кратчайшие сроки развернуть бесплатное, кросс-платформенное, полнофункциональное ПО с гибкими возможностями конфигурирования и относительно простой установкой, не требующей вмешательства в ядро ОС, то из всех доступных решений выбор невольно падает на OpenVPN.

ПОеМ дИФИРаМБы OPeNvPN

OpenVPNявляетсяреализациейтехнологииVPNсиспользованием протоколаSSL/TLS.Сегопомощьюможноподнятьнадежный,достаточно быстрыйивтожевремязащищенныйотпрослушиванияивмешательства злоумышленниковкриптотуннельповерхобщедоступнойсети,такойкак интернет.Вдвухсловахсхемуработыэтогоприложенияможноописать следующимобразом:любойсетевойтрафик,посылаемыйилипринимаемыйсетевымадаптером,инкапсулируетсявзашифрованныйпакет

идоставляетсявдругойконечныйпункттуннеляOpenVPN,гдеданные расшифровываютсяипопадаютвудаленнуюсеть.

КчислуосновныхпреимуществпримененияOpenVPNстоитотнести следующие:

высокаяпереносимостьмеждуплатформами—пакетработаетна

Windows2000/XP/2003/Vista,Linux,Free/Net/OpenBSD,MacOSXи Solaris;

поддержкарежимовмаршрутизации(routed)имоста(bridged),другими словами,намподсилутуннелироватькакIP-пакеты,такиEthernet-фрей- мы;

длятранспортаможноиспользоватьUDP/TCP;

клиентскиехостымогутиметьстатическиеидинамическиеIP-адреса;

туннелиможносоздаватьповерхNAT;

работачерезмежсетевыеэкраны,вкоторыхреализованконтроль состояниясоединений(достигаетсязасчетотправкичерезопределенные промежуткивремениecho-запросов);

ассиметричноешифрованиесиспользованиемстатическихключейи SSL/TLS-сертификатов;

встроенныемерыбезопасностидляпредотвращенияDoS-атакиповтор- ногопроигрываниязлоумышленникомпоследовательностизаписанных пакетов;

адаптивнаякомпрессияпередаваемыхданных;

способность«проталкивать»маршрутыдляклиента;

использованиевсехмеханизмовшифрования,встроенныхвбиблиотеку

OpenSSL;

работавchroot-окружении;

поддержкамультипоточнойбиблиотекиpthread(положительновлияет набыстродействиепридинамическомобменеSSL/TLS-ключами).

Каквидишь,списоквозможностейвпечатляет,новотличиеотдругихSSL VPN,достоинствомкоторыхсчитаетсябесклиентскаяустановка(соединениеSSLVPNустанавливаетсячерезбраузер),дляOpenVPNнеобходим специальныйклиент(поговоримобэтомниже).

156

xàêåð 02 /110/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>>

ХАКЕР

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

.PROBUY

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Страничка, посвященная программе OpenVPN GUI

Увертюра к основному действию

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

Функции шлюза компании, выпускающего сотрудников в интернет, выполняет компьютер с тремя сетевыми картами (213.167.XX.YY, 192.168.1.1, 192.168.2.1) под управлением... хотя это не так важно, настройки в поддерживаемых операционках будут отличаться минимально. В моем случае на сервере заказчика была установлена OpenBSD 3.9. Что касается корпоративной внутренней сети, то она

состоит из двух участков: проводного (192.168.1.0/24) и беспроводного (192.168.2.0/24). После рекогносцировки на местности переходим к установке OpenVPN.

Серверная инсталляция

OpenVPNбезтрудаможнонайтивлюбомрепозитарииилидеревепортов:

#cd /usr/ports/net/openvpn

#make install clean

Вслучаеустановкиизисходныхкодоввнекоторыхсистемахможет понадобитьсяотключитьподдержкуреализациипотоковвыполненияи указатьместоположениебиблиотекизаголовочныхфайловlzo:

#./configure --disable-pthread \ --with-lzo-lib=/usr/local/lib \ --with-lzoheaders=/usr/local/include

#make

#make install

Дляпроверкиспомощьюследующихкомандможнопосмотреть,какие дайджесты(применяютсядляаутентификациикаждойполучаемойUDPдатаграммы)иалгоритмышифрованиядоступны:

#/usr/local/sbin/openvpn --show-digests

#/usr/local/sbin/openvpn --show-ciphers

Чтобыобеспечитьдополнительныйуровеньзащитыизастраховатьсяот возможногоущербапривзломе,нужнодатьуказаниедемонуOpenVPN работатьсправаминепривилегированногопользователявchroot’ной среде—средесизмененнымкорневымкаталогом.Первыйшагдляэтого

добавитьвсистемугруппу_openvpnиодноименногопользователя:

# groupadd -g 500 _openvpn

Официальный сайт OpenVPN

#useradd -u 500 -g 500 -c 'OpenVPN Server' \ -s /sbin/nologin \

-d /var/openvpn -m _openvpn

Проверяемправильностьвыполнениядвухпоследнихкоманд:

# grep 500 /etc/passwd

_openvpn:*:500:500:OpenVPN Server:/var/openvpn:/sbin/ nologin

Золотые ключики и подарочные сертификаты

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

# mkdir -p /etc/openvpn/keys

Копируемкомплектскриптовeasy-rsa,предназначенныйдляупрощения созданиясертификатов,которыепредъявляютсявпроцессеаутентификациидляподтверждениявалидностиклиентов.Теперьомонстроидальных командахopensslможнозабыть.

# cp -r /usr/local/share/examples/openvpn/easy-rsa /etc/openvpn

ДалееследуетэкспортироватьпеременныеKEY_*,онинеобходимыдля работыскриптовbuild-*:

#cd /etc/openvpn/easy-rsa

#. ./vars

Инициализируемдиректорию/etc/openvpn/easy-rsa/keys:

# ./clean-all

Создаемкорневойисерверныйсертификаты:

#./build-ca

#./build-key-server server

Для создания файла параметров Диффи-Хелмана, предназначенного для обеспечения более надежной защиты данных при установке соединения клиента с сервером, выполняем:

xàêåð 02 /110/ 08

157

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>>

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

ХАКЕР.PRO

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

-

 

 

n

e

 

 

 

 

 

x cha

 

 

 

 

Настройки на стороне клиента

# ./build-dh

СнизитьвероятностьуспешногопроведенияDoS-атакинасервер OpenVPNможнозасчетиспользованияклиентомисерверомстатического ключаHMAC(такназываемыйsharedsecret):

# /usr/local/sbin/openvpn --genkey --secret keys/ta.key

Перемещаемвсесозданныефайлывподкаталогkeysивыставляемдляних корректныеправадоступа:

#cd keys/

#mv ca.crt dh1024.pem server.crt server.key ta.key /etc/openvpn/keys

#chown -R root:wheel /etc/openvpn

#chmod 700 /etc/openvpn/keys

#chmod 644 /etc/openvpn/keys/{ca.crt,dh1024. pem,server.crt}

#chmod 600 /etc/openvpn/keys/{server.key,ta.key}

Процедурасозданияклиентскихсертификатовпрактическианалогична соответствующейпроцедуредлясервера:

#./build-key client1

#mkdir -p /home/vpn/client1

#mv client1.crt client1.key /home/vpn/client1

#cp /etc/openvpn/keys/{ca.crt,ta.key} /home/vpn/ client1

Теперьподкаталогclient1следуетперенестинавинтилифлешку«географическиизолированного»сотрудника.

Щепетильное конфигурирование

КонфигурациясервераOpenVPNхранитсявфайле/etc/openvpn/server. conf.Нижеприведенпримерподобногоконфига.Всеопциидетально прокомментированы,поэтомусложностейвозникнутьнедолжно.При настройкестарайся«несрезатьуглы»—заодиншагдобавляй/изменяй что-тоодноисразужетестируй.Вседействиявserver.confжелательно фиксироватьвлокальномcvs-репозитории,чтобыможнобылобыстро просмотретьисториюизмененийивернутьсякрабочейревизии.

#vi/etc/openvpn/server.conf

;Работаем в режиме демона daemon openvpn

;Указываем местоположение файла с уникальным идентифи катором процесса сервера OpenVPN

writepid /var/openvpn/pid

;Определяем файл, содержащий список текущих клиентских соединений

Правим конфигурационный файл server.conf

status /var/openvpn/status 10

;Внешний IP-адрес нашего сервера local 213.167.XX.YY

;Используемый порт

port 1194

;Для транспорта по умолчанию применяется протокол UDP. Это вполне резонный подход. Во-первых, благодаря мень шему размеру заголовков и отсутствию встроенной функции подтверждения доставки пакетов, производительность UDP значительно выше. А во-вторых, при использовании UDP общая надежность не снижается, так как OpenVPN шифрует исходные пакеты, обеспечивая проверку ошибок и повтор ную передачу. В связи с этим TCP рекомендуется применять только в тех случаях, когда UDP не работает (например, если брандмауэр блокирует весь UDP-трафик).

proto udp

;Выбираем тип виртуального устройства туннеля (tun, tap

или null) dev tun0

;Включаем компрессию передаваемых данных

comp-lzo

;Указываем абсолютные пути к созданным сертификатам и ключам

ca /etc/openvpn/keys/ca.crt

cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem

;Значение 0 следует использовать на сервере, 1 — на кли енте

tls-auth /etc/openvpn/keys/ta.key 0

;Для большинства сетей подойдет режим маршрутизато

ра (routed). Да, в этом случае широковещательный трафик отсутствует, соответственно, не будут работать некото рые протоколы, которые его используют, например NetBIOS поверх TCP. Но последнее нивелируется развертыванием WINS-сервера, либо подключением сетевых дисков/создани ем ярлыков на расшаренные ресурсы

server 192.168.3.0 255.255.255.0

;«Проталкиваем» подключенным клиентам статические марш руты, чтобы они могли получить доступ к ресурсам провод ной и беспроводной сети

push "route 192.168.1.0 255.255.255.0" push "route 192.168.2.0 255.255.255.0"

;Не позволяем соединению разорваться при простое keepalive 10 120

;Алгоритмы, используемые для аутентификации и шифрова ния пакетов

auth SHA1

cipher AES-256 CBC

158

xàêåð 02 /110/ 08

Соседние файлы в папке журнал хакер