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

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

i

 

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

t

 

P

D

 

 

 

 

 

 

 

 

o

 

 

P

D

 

 

 

 

 

 

 

 

o

 

 

 

 

NOW!

r

 

 

 

 

 

 

NOW!

r

 

 

 

 

 

BUY

>>m

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

SYN/ACK

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

o

 

 

 

w

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

df

 

 

 

 

e

 

 

 

 

p

df

 

 

 

 

e

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

ЕВГЕНИЙ «J1M» ЗОБНИН

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/ ZOBNIN@GMAIL.COM /

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Аренда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

отсобственника

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПоднимаемсервиспосдачеварендувиртуальныхFreeBSD-серверов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СегоднямыувидимвозможностиFreeBSD jail внескольконеобычном

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

свете– создадимсервиспосдачеварендувиртуальныхFreeBSD-ма-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

шин. Онбудетполностьюавтоматизированным, позволитиспользо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ватьразныеверсиивиртуальныхокруженийнаоднойфизической

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

машинеиобособленныенастройкидлякаждогосервера. Ивсеэто—

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

спомощьюнесколькихпростыхшелл-скриптов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ОДИНИЗСПОСОБОВПОДНЯТЬ

простозагнется,когдаколичествовиртуальных

/usr/jailbase/FreeBSD-версия.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SYN/ACK

 

 

 

$$$ ВКРИЗИСНОЕВРЕМЯВиртуальная

серверовперевалитзапервыйдесяток.Поэтому

2. Подготавливаемнаборскриптов,которые

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FreeBSD-машина—этонечтоиное,какпол-

передразвертываниеминаймомSEO-шников

будутуправлятьвиртуальнымисерверами(со-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нофункциональноеjail-окружение,которому

необходимотщательнопродуматьбудущую

здание/удаление,запуск/остановкаит.д.)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выделенглобальномаршрутизируемыйIP-адрес.

инфраструктуру.Дляначаласформулируем

3.Пишеминициализационныйскрипт,который

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задумкасервисавтом,чтобыраздаватьтакие

требованиякнашемусервису:

будетзапускатьвсесуществующиеокружения.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

окружениянаманерномероввотеле.Клиент

1.ВыделенныйIP-адресидоменноеимядля

КромесамогоFreeBSD-окружения,япоместилв

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

заходитнасайт,заполняетнеобходимыеполя

каждогоокружения.Имявыбираетсяклиентом

каталог/usr/jailbaseещенесколькокаталогови

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

формы,переводитчутокWMZнанашкошелеки

вовремязаполненияформынанашемсайте,а

конфигурационныхфайлов,необходимыхдля

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

получаетвответIP-адрессвоегосервера,домен

IP-адресизвлекаетсяизспециальногофайла.

управлениявиртуальнымисерверами:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N-огоуровняипароль/ключкssh-сервису.После

2. Полнаясвободаклиентавотношенииjail-

•/usr/jailbase/FreeBSD-версия—чистаясборка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

чегоонволенделатьсосвоимокружениемвсе,

окружения.Этозначит—никакихunionfsи

FreeBSD,копируетсявкаждоеокружениепри

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

чтодушезаблагорассудится—ровнодотого

nullfsдлявсего,кромеархивапортов.Вовремя

егосоздании.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

момента,поканенаступитвремясъезжать,то

созданияновогосервераокружениеполностью

•/usr/jailbase/distfiles-версия—монтируется

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

естьистечетсрокаренды,указанныйклиентом

копируетсяизспециальногокаталога.

к/usr/ports/distfilesкаждогоокруженияпри

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

водномизполейрегистрационнойформы.По

3. Общиекаталоги/usr/ports/distfilesи/

помощиnullfs.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

истечениюэтогосрокасерверостанавливаетсяи

usr/ports/packagesдлявсехокружений,чтобы

•/usr/jailbase/packages-версия—монтируется

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

удаляется.

порт,загруженныйоднимизклиентов,автома-

к/usr/ports/packagesкаждогоокруженияпри

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Идеявиртуальныхотелейдалеконеноваи,по

тическибылдоступендругим.

помощиnullfs.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сути,представляетсобойпример«Облачнойоб-

4.Автоматизированноесоздание,удаление,

•/usr/jailbase/db—базаданныхjail-окруже-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

работкиданных»(en.wikipedia.org/wiki/Cloud_

запускимониторингсерверов.

ний.ВпервойколонкеперечисленыIP-адреса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

computing),когданеобходимоеклиенту

5.Поддержкаразныхверсийвиртуальных

всехокружений,вовторой—базовыйкаталог

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

программноеобеспечениепредоставляется

FreeBSD-серверовнаоднойфизическоймашине.

(например,/usr/jail),втретьей—сетевой

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

каксервис.Чтобыорганизоватьсвойбизнеспо

6.Возможностьбыстрогопереносавиртуаль-

интерфейс,вчетвертой—доменноеимя,в

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сдачеварендувиртуальныхFreeBSD-серверов

ногосерверанадругойсетевойинтерфейсили

пятой—версия,вшестой—e-mailвладельца,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

оттебяпотребуетсяналичиеN-гоколичества

äèñê.

вседьмой—типаккаунта,ввосьмой—время

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

белыхIP-адресов(поодномунакаждыйвирту-

7.Ежедневныйбэкапвиртуальныхсерверов.

истечениястрокаарендывформатеГГММДДЧ-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

альныйсервер),домен,закрепленныйзаодним

8.Доступпоsshсаутентификациейнаоснове

ЧММ,вдевятой—состояние.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

изних,атакжебазовоепониманиепринципов

ключей.Ключгенерируетсявовремясоздания

•/usr/jailbase/defaults—дефолтовыезначения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

работыFreeBSD.

виртуальногосервераиотдаетсяклиентупоhttps.

дляразличныхполейконфигурационногофайла.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9.Разныетипыаккаунтов:trial—длядвухднев-

•/usr/jailbase/conf/—каталогснастройками

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

НЕМНОГОТЕОРИИ, ИЛИСФОРМУЛИРУЕМ

ногоиспытания,base—обычный,extra,vipит.д.

иограничениямидляразныхтиповаккаунтов:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ТРЕБОВАНИЯПользуясьзнаниями,почерп-

Теперьподумаемобинфраструктуресервиса

файлыtrial,base,extra,vip,которыебудутпрочи-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нутымиизпрошлоймоейстатьи,организовать

иотом,какреализоватьвсеперечисленные

таныскриптомзапускавиртуальногосервера.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сервиснетакужисложно.Окруженияjail

требованияиоставитьзаделнабудущее,тоесть

Файлdb—базаданныхдлявсехвиртуальных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

подкупаютсвоейпростотойилегкостьюразвер-

обеспечитьвозможностьдобавленияновых

сервероввформатеpasswd(поля,разделенные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тывания:несколькоскриптов-обвязок—идело

функцийвслучаенеобходимости.Последолгих

двоеточием).Девятоеполе«состояние»пред-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сделано!Воттолькодолготакойсервиснепротя-

размышленийяпришелкварианту,которыйне

назначенодляупрощенияадминистрирования

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нет.Администраторыначнутплеватьвмонитор

тольконагляденипрост,ноидостаточнолегокв

серверовиможетприниматьследующиезначе-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

навторойденьработы,клиентызавалятжало-

реализации:

ния:none—несуществует,disabled—временно

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

бамионизкойпроизводительности,асервер

1. СобираемFreeBSD-окружениевкаталог

отключен,ok—окружениесозданоиготово

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

128

 

 

XÀÊÅÐ 05 /125/ 09

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

SYN/ACKw

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

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

èдевятого(пример:192.168.0.1---none).Скрипт, создающийновыйсервер,простонаходит первуюстрокуссостояниемnoneизаполняет ее(тогдастрокапринимаетпримернотакой вид:192.168.0.1:/usr/jail:ed0:jail.host.com:7.1- RELEASE:vasya@mail.ru:trial:0903031700:ok). Вдальнейшемскриптзапускавиртуальных серверовнайдетзаписьссостояниемok,перейдетвкаталог,прописанныйвовторомполе, найдеткаталогнужногоокруженияпоIP-адресу

èзапуститвнемвиртуальныйсервер.

СОБИРАЕМВСЕВМЕСТЕПерво-напервомы должнысоздатьбазовоеокружениевкаталоге /usr/jailbase/FreeBSD-версия.Дляэтогоперехо- димв/usr/srcивводимследующуюпоследовательностькоманд:

#JAIL=/usr/jailbase/FreeBSD-'uname -r'

#mkdir -p $JAIL

#make world DESTDIR=$JAIL

#make distribution DESTDIR=$JAIL

Âмоемраспоряжениинаходитсямашинас FreeBSD7.1,поэтомукаталогбазовогоокруже- нияполучилимя«/usr/jailbase/FreeBSD–7.1- RELEASE».Войдемвокружениеипроведемба- зовуюконфигурацию(доменноеимяиIP-адрес наданномэтапенеимеютзначения):

#jail $JAIL base.jail 192.168.0.1 /bin/sh

#touch /etc/fstab

#newaliases

#tzsetup

#echo nameserver 127.0.0.1 > / etc/resolv.conf

Файлrc.confнетрогаем,онбудетгенерироватьсяскриптомaddvserverавтоматическидля каждоговиртуальногосервера.Парольсуперпользователянеустанавливаем:дляокружения будетсоздаватьсяпараключей,идоступпо паролюпоумолчаниюзакрыт.Отредактируем /etc/motdивключимтудавсюнеобходимую информациюопользованиисервисом:

# vi /etc/motd

Выйдемизокружения,набравexit.Скопируем деревопортовизбазовойсистемыв$JAIL/usr:

# cp -a /usr/ports $JAIL/usr

Теперьосвободимточкимонтированиядистфайловипакетовотлишнегомусора:

#rm -Rf $JAIL/usr/ports/distfiles $JAIL/usr/ports/packages

#mkdir $JAIL/usr/ports/distfiles $JAIL/usr/ports/packages

Базовоеокружениеготово!Конфигурационный файлбудетотличатьсядлякаждогоокружения, поэтомузаботуоегосозданиимывозложим

наплечискриптаaddvserver.Пойдемдальшеи добавимкаталоги/usr/jailbase/distfiles-версия и/usr/jailbase/packages-версия,которыебудут подключатьсякокружениямспомощьюnullfs:

# mkdir /usr/jailbase/ {distfiles,packages}-'uname -r'

Затемсоздадимфайлдефолтовыхзначений дляскриптасозданиявиртуальногосервера (addvserver):

#vim /usr/jailbase/defaults

#Дефолтовый сетевой интерфейс. На него будут вешаться вновь созданные окружения.

IF=nfe0

#Дефолтовый каталог для виртуальных серверов.

JAILDIR=/usr/jail

Форматбазыданныхвиртуальныхсерверовя описалвыше.Отмечулишь,чточистаябазадолжна выглядетькакнаборзаписейвидаIP::::::::none, пооднойзаписинакаждыйдоступныйвнешний IP-адрес.Всюработупоеезаполнениювозьмутна себясоответствующиескрипты.Теперьунасесть всенеобходимоедлясозданияиманипулирова- ниявиртуальнымисерверами,—осталосьтолько установитьинастроитьDNS-сервернафизичес- коймашине.Оннужендляпривязкидоменного имениккаждомувиртуальномусерверу.Мы будемиспользоватьBIND9,посколькуэтоединс- твенныйвменяемыйDNS-сервер,позволяющий обновлятьзоны,неостанавливаяработудемона. Пройдемчерезпростыеэтапыегонастройки:

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

$ dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER NSUPDATE

Команда запишет в текущий каталог два файла с именами примерно такого вида — Knsupdate.+157+36521.key и

Knsupdate.+157+36521.private. Они понадобятся скриптам addvserver и delvserver для обновления зон, поэтому скопируем их в каталог /usr/jailbase:

# cp Knsupdate.* /usr/jailbase/

Откроемконфиг/etc/namedb/named.confи запишемвнего:

# vim /etc/namedb/named.conf

//Позволим управлять сервером только с локальной машины

controls {

inet 127.0.0.1 allow { localhost; } keys { "NSUPDATE"; };

};

//Объявим ключ, значение опции secret можно взять из строки 'Key:' файла Knsupdate.+157+36521.private key NSUPDATE {

algorithm HMAC-MD5.SIG-ALG.REG.INT; secret VF5l+ZIdDcPjhDz1+eG3Jw==;

};

//Объявим зону host.com, которую ты должен заменить на свой домен

zone "host.com" { type master;

file "host.com.db"; allow-update { key "NSUPDATE"; }; notify yes;

};

//Объявим обратную зону, в которой должен быть прописан сегмент, выделенный для твоих внешних IP-адресов zone "67.16.172.in-addr.arpa" {

type master;

file "host.com-reverse.db"; allow-update { key "NSUPDATE"; }; notify yes;

};

Настроимзоныhost.com(локальныеуже существуют):

# vim /etc/namedb/host.com.db

$TTL 86400

 

 

@

IN

SOA

@ root (

1 28800 7200 604800 86400 )

 

IN

NS

dns

dns

IN

A

 

172.16.67.1

 

 

 

 

 

 

# vim /etc/namedb/host.com-reverse.db

$TTL 86400

 

@

IN

SOA @ root (

1 28800 7200 604800 86400 )

XÀÊÅÐ 05 /125/ 09

129

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

t

 

P

D

 

 

 

 

 

 

 

 

o

 

 

 

P

D

 

 

 

 

 

 

 

 

o

 

 

 

 

NOW!

r

 

 

 

 

 

 

 

NOW!

r

 

 

 

 

 

BUY

>>m

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

SYN/ACK

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

o

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

df

 

 

 

 

e

 

 

 

 

 

p

df

 

 

 

 

e

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вывод jls для пяти виртуальных серверов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IN

NS

dns

Структуракаталога/usr/jailbase

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

IN

PTR

dns.host.com.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Укаживнихвсехосты,имеющиестатическиеимена,ибольшеэтифайлы

# Добавляем новый сервер в базу DNS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мытрогатьнебудем,занасвсесделаютскрипты.Запустимbind:

UPREQ=$JAILBASE/upreq

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

echo "update add $HOSTNAME 86400 A $IP" > $UPREQ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# /etc/rc.d/named start

 

echo "send" >> $UPREQ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nsupdate -k $JAILBASE/Knsupdate.*.private $UPREQ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СКРИПТЫЧтобынашсервиссоответствовалвсемпредъявленным

rm -f $UPREQ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

# Записываем информацию об окружении в базу данных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

минимум,восемьскриптов:

 

sed "/^$IP.*/s##$IP:$JAILDIR:$IF:$HOSTNAME:$OSVER:$EMA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.addvserver—создаетвиртуальныйсерверпутемдобавлениянового

IL:$ACTYPE:$TIME:ok#" $DB > ${DB}.new

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

окружения,обновляет/usr/jailbase/db,добавляетнужнуюзаписьвDNS-

mv ${DB}.new $DB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

таблицы.

 

 

# Возвращаем IP сервера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.delvserver — удаляет виртуальный сервер, принцип действия

echo $IP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

обратный.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.disablevserver—отключаетвиртуальныйсервер,неудаляяего(флаг

Скриптпринимаетшестьаргументов(доменноеимявиртуальногосер-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'disabled').

 

 

вера,версияОС,e-mailвладельца,типаккаунта,времяистечениясрока

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.enablevserver—включаетотключенныйвиртуальныйсервер(ставит

аренды,файлспубличнымключомклиента)ивозвращаетIPнового

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ôëàã'ok').

 

 

сервера.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.startvserver—запускаетсуществующийвиртуальныйсервер,сверяясь

Скриптdelvserverвыполняетобратнуюпроцедуру.Сначалаоннаходит

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ñ/usr/jailbase/db.

 

 

сервервбазеdb,проверяет,существуетлисервервообще(статусне

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.stopvserver—останавливаетсуществующийвиртуальныйсервер.

долженбытьnone),азатемвыполняетследующуюпоследовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7.vservers—скриптдлякаталога/usr/local/etc/rc.d,которыйзапускает

действий(переменнаяSTRING—этострокасервераизdb):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

виртуальныесерверавовремязагрузкисистемыиостанавливаетво

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

времяшатдауна.

 

 

# vim /usr/local/bin/delvserver

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8.watchvservers—скрипт,исполняемыйcron,следитзасостояниемвир-

# Удаляем сервер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

туальныхсерверовиостанавливаетихвслучаенеобходимости(напри-

JAILDIR='echo $STRING | cut -d ':' -f 2'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мер,приистечениисрокааренды).

 

rm -Rf $JAILDIR/$IP $JAILDIR/${IP}.ipfw

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

По-хорошему,первыешестьскриптовлучшеобъединитьводин,при-

# Удаляем сервер из базы DNS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нимающийаргументыadd,del,startиstop,нодлясохраненияпростоты

HOSTNAME='echo $STRING | cut -d ':' -f 4'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

изложенияоставимихвотдельныхфайлах.

UPREQ=$JAILBASE/upreq

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Итак,скриптномеродин,addvserver(здесьидалее—толькоключевые

echo "update delete $HOSTNAME A" > $UPREQ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

элементыскриптов;полныеверсиитынайдешьнаприлагаемомкжурна-

echo "send" >> $UPREQ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

лудиске):

 

 

nsupdate -k $JAILBASE/Knsupdate.*.private $UPREQ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

rm -f $UPREQ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# vim /usr/local/bin/addvserver

 

# Устанавливаем для сервера статус none

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# Настраиваем переменные

 

NEWSTRING='echo $STRING | sed "/$STATUS/s##none#"'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

HOSTNAME=$1; OSVER=$2; EMAIL=$3; ACTYPE=$4; TIME=$5;

sed "/^$IP.*/s##$NEWSTRING#" $DB > ${DB}.new

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

KEY=$6

 

 

mv ${DB}.new $DB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JAILBASE=/usr/jailbase

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DB=$JAILBASE/db

 

 

Скриптdisablevserver,предназначенныйдлявременногоотключения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# Читаем дефолтовые настройки

виртуальногосервера,оченьпохожнаdelvserver,стемисключением,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. $JAILBASE/defaults

 

чтооннеудаляетсервер,апростоставитнанегофлаг«disabled».Тоесть,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# Находим свободный IP-адрес

переменнаяNEWSTRINGприметвид:«NEWSTRING=`echo $STRING |

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

STRING='grep ':none$' $DB'

sed "/$STATUS/s##disabled#"`».

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IP='echo $STRING | cut -d ':' -f 1'

Скриптenablevserver—брат-близнецdisablevserver,единственноеотли-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# Копируем окружение…

 

чиекоторого—установкафлага'ok'вместо'disabled'.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cp -a $JAILBASE/FreeBSD-$OSVER $JAILDIR/$IP

Скриптstartvserver—довольнопримитивен.Онищетпереданныйему

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# …и создаем для него файл инициализации

IP-адресвбазе,проверяетсервернаготовность(статус'ok')изапускает

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RCCONF=$JAILDIR/$IP/etc/rc.conf

его.Наборправилномер4(ruleset4)длякомандыdevfsсозданспеци-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

echo "hostname=\"$HOSTNAME\"" > $RCCONF

альнодляjail-окруженийисодержитсявфайле/etc/defaults/devfs.rules.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

echo "network_interfaces=\"\"" >> $RCCONF

Чтобыскриптработалкорректно,этотфайлнеобходимоположитьв/etc.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

echo "rpcbind_enable=\"NO\"" >> $RCCONF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

echo "sshd_enable=\"YES\"" >> $RCCONF

# vim /usr/local/bin/startvserver

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# Копируем публичный ключ в каталог /root/.ssh

# Извлекаем данные, необходимые для запуска

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mkdir -p $JAILDIR/$IP/root/.ssh

JAILDIR='echo $STRING | cut -d ':' -f 2'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cat $KEY >> /root/.ssh/authorized_keys2

IF='echo $STRING | cut -d ':' -f 3'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

130

 

 

 

XÀÊÅÐ 05 /125/ 09

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

t

 

P

D

 

 

 

 

 

 

 

 

o

 

 

P

D

 

 

 

 

 

 

 

 

o

 

 

 

 

NOW!

r

 

 

 

 

 

 

NOW!

r

 

 

 

 

 

BUY

 

 

>>

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

SYN/ACKw

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

o

 

w Click

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

df

 

 

 

 

e

 

 

 

 

 

p

df

 

 

 

 

e

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример заполненной базы серверов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В списке процессов — пять только что запущенных серверов

umount $JAILDIR/$IP/usr/ports/packages

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

umount $JAILDIR/$IP/dev

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

umount $JAILDIR/$IP/proc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ifconfig $IF inet -alias $IP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vservers,которыйпроверяетопциюvservers_enableв/etc/rc.conf,запуска-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

етвсеготовыевиртуальныесерверывовремязагрузкиОСиостанавлива-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

етвовремяшатдауна.Ключевыестрокиэтогофайла:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# vim /usr/local/etc/rc.d/vservers

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# Получаем список работоспособных серверов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

VSERVERS='cat /usr/jailbase/db | grep -e ':ok$' | cut -d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

':' -f 1'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# Процедура запуска серверов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vservers_start()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

for IP in $VSERVERS; do

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/usr/local/bin/startvserver $IP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

done

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Скрипт /usr/local/etc/rc.d/vservers

# Процедура остановки серверов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vservers_stop()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

HOSTNAME='echo $STRING | cut -d ':' -f 4`

for IP in $VSERVERS; do

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OSVER='echo $STRING | cut -d ':' -f 5`

/usr/local/bin/stopvserver $IP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# Запускаем jail-сервер

done

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ifconfig $IF inet alias $IP

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mount -t devfs none $JAILDIR/$IP/dev

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

devfs -m $JAILDIR/$IP/dev ruleset 4

Вотивсе.Рассмотренныескриптыавтоматизируютвсюгрязнуюработу.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mount -t procfs none $JAILDIR/$IP/proc

Большененужнокомпилироватьокружениеисполнения,добавлять

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mount_nullfs $JAILBASE/distfiles-$OSVER

IP-псевдонимыиредактироватьфайлызон!Достаточновыполнитьвсего

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$JAILDIR/$IP/usr/ports/distfiles

двекоманды,—ивиртуальныйсерверсоздан,запущениполностьюготов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mount_nullfs $JAILBASE/packages-$OSVER

киспользованию:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$JAILDIR/$IP/usr/ports/packages

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

jail $JAILDIR/$IP $HOSTNAME $IP /bin/sh /etc/rc

# IP='addvserver new.host.com 7.1-RELEASE vasya@mail.ru

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

base 0906061200 /публичный/ключ/Васи'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Скриптstopvserverпередостановкойпроделываеттежешагии,плюск

# startvserver $IP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

этому,проверяет,запущенлисерверспомощьюкомандыjls—иизвлека-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

етегоJID(перваяколонкавыводаjls):

Остановитьиудалитьсерверещепроще:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# vim /usr/local/bin/stopvserver

# stopvserver $IP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# Проверяем, запущен ли сервер

# delvserver $IP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

STRING='jls | grep $IP'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

if [ ! "$STRING" ]; then

Осталосьтольконанятьвеб-разработчиков,которыесоздалибыповерх

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

echo "Сервер $IP не запущен»

этогохозяйствапростойинтерфейсдлярегистрациипользователей,и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

exit 3

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fi

неистеклисрокарендыаккаунта(примерскриптатынайдешьнадиске).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# Узнаем jid сервера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JID='echo $STRING | cut -d ' ' -f 1'

КАРКАССОЗДАНМысоздаливполнеработоспособныйкаркас

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# Останавливаем jail-сервер

будущегосервиса.Вследующейстатьемырассмотрим,какприкрутить

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

killall -j $JID -TERM > /dev/null 2>&1

кнемуполноценныймониторинг,настройкидляразныхтиповаккаун-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sleep 1

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

killall -j $JID -KILL > /dev/null 2>&1

гетерогеннуюсистему,вкоторойсмогутсосуществоватьразныеверсии

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

umount $JAILDIR/$IP/usr/ports/distfiles

FreeBSD-окружений.z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XÀÊÅÐ 05 /125/ 09

 

131

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

w Click

 

BUY

>>m

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

SYN/ACK

 

 

 

 

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

 

 

 

 

>> SYN/ACK

NATHAN BINKERT

Идеальный/ NAT@SYNACK.RU / шторм

Экономичныйипроизводительныйсервер

DEPO Storm 1150N5

 

 

Техническиехарактеристики

 

 

> Процессор

 

 

Intel Pentiu m dual-core E2200/ E5200 или

 

 

Intel Core 2 Duo E7200 /E8400

 

 

> Память

 

 

до8 ГбдвухканальнойпамятиDDR2-800

 

 

> Дисковыеотсеки

 

 

8 отсековпод5.25" устройства

 

 

> ПоддержкаRAID

 

 

ИнтегрированныйSATA RAID-контроллерIntel

 

 

ICH9R (RAID 0,1,5,10), поддерживающийдо6

 

 

жесткихдисков

 

 

> Сетевойинтерфейс

 

 

2-портовыйинтегрированныйGigabit Ethernet

 

 

10/100/1000 Мбит(Intel 82573)

 

 

> Питание

 

 

Блок питания мощностью 700 Вт или сдво-

 

 

енный блок питания на 500 Вт (2x500 Вт) с

 

 

избыточностью и возможностью горячей

 

 

замены

 

 

> Исполнение

 

 

Отдельно стоящая башня

 

 

Размеры (ДВШ, мм) — 591*430*221, с ножка-

 

 

ми 591*449*330, брутто 695*355*545

 

 

Масса — до 25 кг

 

 

Дополнительно может поставляться комп-

 

 

лект для монтажа в 19" стойку. Рельсы имеют

 

 

длину 500 мм. Высота сервера в стойке

 

 

составляет 5U

Сервер DEPO Storm 1150N5, созданный специа-

Ксчастью,этонепроблема,потомукакдополни-

«горячей замены», а также комплект для монта-

листамикомпанииDEPOComputers,рассчитанв

тельно сервер может быть укомплектован и ап-

жавстойку19".

первуюочередьнаприменениевсферемалогои

паратными SAS/SATA RAID-контроллерами LSI

Сервер поставляется с документацией на рус-

среднего бизнеса. Это недорогой, но производи-

LogicилиAdaptecна4или8портовнавыбор(для

ском языке и полным набором необходимых

тельный сервер, выполненный в форм-факторе

последнего также доступна батарея аварийного

драйверов. За дополнительную плату специа-

Pedestal,высотой45сантиметров,которыйвми-

питания кэш-памяти). Количество и объем дис-

листы DEPO Computers установят на сервер MS

нимальной конфигурации можно использовать

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

Windows 2008 Standard и набор ПО, из которого

в качестве внутрисетевого DNS-, DHCP-, прок-

корзиной«горячейзамены»на5дисков.

можно выбрать MS SharePoint Services 3.0 и MS

си-сервера, брандмауэра и шлюза для офиса не-

Материнская плата построена на чипсете Intel

Hyper-V.

большой компании. Установка опционального

3200 с интегрированным 2-портовым сетевым

Конфигурация сервера очень гибка. На сайте

RAID-контроллера на 4 или 8 дисков превратит

контроллером Intel 82573V+82566DM и видеоа-

компанииимеетсяудобныйконфигуратор,ко-

еговнадежныйфайл-серверилисерверweb-хос-

даптеромXGIZ9S16Мб.Объемпредустановлен-

торый позволит подобрать множество допол-

тинга.

ной оперативной памяти варьируется от одного

нительных компонентов сервера и отказаться

По умолчанию сервер оснащен программно-ап-

до (максимум) восьми гигабайт двухканальной

от ненужных предустановок. Цена сервера

паратнымSATARAID-контроллеромIntelICH9R.

DDR2-800. В стандартной комплектации сервер

в стандартной конфигурации, включающей

Он поддерживает до шести дисков, но работает

оснащенприводамиDVD-ROMиFDD,отустанов-

процессор Intel Pentium dual-core E5200, 1 Гб

только в паре с драйвером операционной систе-

кикоторых,впрочем,можноотказаться.Особен-

оперативной памяти, жесткий диск на 250 Гб

мы и не обеспечивает надежности, сравнимой с

но радует опциональный сдвоенный блок пита-

и блок питания на 700 Вт, составляет 33578

полностью аппаратными RAID-контроллерами.

ния,общеймощностью1000Втивозможностью

рублей. z

132

 

XÀÊÅÐ 05 /125/ 09

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

SYN/ACKw

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

>> SYN/ACK

NATHAN BINKERT

/ NAT@SYNACK.RU /

Безшумаипыли

IBM System x3250 M2:

доступныйинадежный1U-сервер

ТехническиехарактеристикиIBM

> ПоддержкаRAID:

> Другое:

System x3250 M2:

Интегрированный аппаратный RAID-0, -1 в

IPMI 2.0-совместимый mini-BMC2, дополни-

> Процессор(одиниз):

стандартной комплектации, дополнительно

тельно RSA II SlimLine

Intel Xeon 3360 (четырехъядерный) (2,83 ГГц,

RAID-5

Интегрированный видеоадаптер ATI ES1000

1333 МГц FSB, 12 Мб)

 

32 Мб

Intel Xeon 3120 (двухъядерный) (3,16 ГГц,

> Сетевойинтерфейс:

Привод DVD+/-RW

1333 МГц FSB, 6 Мб)

Два адаптера Gigabit Ethernet (GbE)

 

Intel Core 2 Duo E7200 (2,53 ГГц, 1066 МГц

 

> Системаохлаждения:

FSB, 3 Мб)

> Питание:

Технология Calibrated Vectored Cooling (CVC)

Intel Celeron (2 ГГц, 800 МГц FSB, 512 Кб)

Блок питания мощностью 350 Вт

 

 

 

> Исполнение:

> Память:

> Расширение:

Установка в стойку/1U, 22" в глубину

до 8 Гб двухканальной оперативной памяти

1 слот PCI Express x8

 

DDR2-667/800

1 слот PCI Express x4

> Гарантийноеобслуживание:

 

 

Ограниченная гарантия на 1 или 3 года на

> Дисковыеотсеки:

> Внешниепортыввода-вывода

заменяемые заказчиком модули с обслужи-

Два 3,5-дюймовых диска с возможностью

4 разъема USB 2.0 (2 спереди, 2 сзади)

ванием на месте эксплуатации

обычной замены и интерфейсом SATA, два

1 выход VGA (D-Sub)

 

3,5-дюймовых диска SCSI (SAS)/SATA, либо

2 последовательных порта (DB-9M)

 

четыре 2,5-дюймовых диска SAS с возмож-

Разъемы PS/2 для подключения мыши и

 

ностью горячей замены

клавиатуры

 

IBM System x3250 M2 позиционируется как сер-

достаточнодляработысетевыхсервисовнеболь-

ка, регулируя скорости вращения вентиляторов

вер, оптимально подходящий для поддержки

шой компании. В качестве хранилища данных

в зависимости от внутренних температур. Это

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

могут быть использованы пара 3,5-дюймовых

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

и отделов. И, надо сказать, это правда. Низкий

жесткихдисковSATA,пара3,5-дюймовыхдисков

электроэнергии. Особо отметим наличие встро-

уровень шума и энергопотребления, малый раз-

SAS/SATA или четыре 2,5-дюймовых диска SAS.

енного управляющего мини-контроллера mini-

мер, хорошая производительность и поддержка

Причем, последние два варианта предполагают

BMC2, совместимого со спецификацией IPMI

RAID 0, -1 вкупе с невысокой ценой (от 36800

возможность горячей замены не только без ос-

2.0 (интеллектуальный интерфейс управления

рублей — зависит от конфигурации) делают его

тановки сервера, но и без извлечения из стойки.

платформой). Кроме основных функций, mini-

очень привлекательным в качестве надежного

Встроенный RAID-контроллер поддерживает

BCM2 также позволяет управлять и следить за

почтового или web-сервера, контроллера доме-

конфигурацию RAID-0, -1, но для получения

состоянием RAID-контроллера. Дополнительно

на Active Directory, балансировщика нагрузки,

поддержки RAID-5 придется установить допол-

можно приобрести адаптер для удаленного уп-

DNS-,DHCP-,прокси-сервераилибрандмауэра.

нительный адаптер PCI-Express. Сервер выпол-

равления RSA II SlimLine (en.wikipedia.org/wiki/

Вычислительная мощность сервера может быть

нен в форм-факторе 1U для установки в стойку,

IBM_Remote_Supervisor_Adapter). Среди офици-

индивидуальноподобранаподзадачу.Дажевми-

благодаря чему он отлично подходит для расши-

ально поддерживаемых операционных систем

нимальной конфигурации с процессором Intel

рения существующей сетевой инфраструктуры.

числятся MS Windows 2003, Novell NetWare 6.5 и

Celeron на 2 ГГц и одним гигабайтом оператив-

Технология Calibrated Vectored Cooling (CVC) оп-

Linux-дистрибутивыRedHatEnterpriseLinuxR5и

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

тимизируетпутьпрохождениявоздушногопото-

SUSELinuxEnterpriseServer10.z

XÀÊÅÐ 05 /125/ 09

 

133

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

>>m

 

w Click

to

 

 

 

SYN/ACK

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

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

 

 

 

 

>> SYN/ACK

VASILIY «CANAVAR» OZEROV

/ FR33M2N@GMAIL.COM /

Игры сжелезнымикошками

НастраиваембоевойCisco роутер

Думаешь, чтоработатьссетевымоборудованиемCisco Systems могут толькобородатыедядькиссертификатаминенижеCCIE? Постараюсьтебявэтомпереубедить.

ВНАШЕВРЕМЯТОЛЬКОЛЕНИВЫЙИЛИ ДАЛЕКИЙОТКОМПЬЮТЕРОВНЕСЛЫ-

ШАЛОCISCO. Эта компания довольно давно работает в сфере информационных технологий и разрабатывает сетевое оборудование, которое позволяет решить практически все возникающие задачи. Как ты понимаешь, стоят такие девайсы не $10, а намного дороже. Поэтому я советую сначала потренироваться на эмуляторах (Xenomips, GNS3, Boson Router Simulator), и только потом переходить к реальным системам. А если тебе не терпится повертеть в руках железку от Cisco, то можешь походить по различным барахолкам

èприобрести оборудование там. Именно так я и поступил, купив маршрутизатор Cisco 1721

èмодуль расширения WIC-4ESW (свитч на 4 порта) за 10k деревянных. Вполне нормально, если сравнивать с ценами в магазинах (там бы с меня содрали еще тысяч 20, как минимум). Думаю, ты сам разберешься, какую модель прикупить, а я пока расскажу про используемое программное обеспечение.

CISCO IOS IOS(InternetworkOperationSystem, межсетеваяоперационнаясистема)устанавливаетсянасетевоеоборудованиеCiscoи предоставляетвозможностьгибкойнастройки системы.По-хорошему,IOSнужнопокупать,но еслитыограниченвсредствах,можешьпоис- катьнужныйIOS-образнафорумах(например, torrents.ru/forum).Версиюоперационкиподбирайподконкретныезадачи.Допустим,имидж IOSназываетсятак:c1700-ipbasek9-mz.124-12. bin(намоейцискеустановленименноон).В данномслучае:

c1700 означает, что IOS предназначен для оборудования 17-й серии;

ipbasek9 — набор возможностей; ipbase расшифровывается как начальный уровень функциональности,обеспечиваетбазовыйроутинг, то есть статические маршруты, RIP, OSPF,

EIGRP, только на IPv4, включает NAT и VLAN'ы (802.1q и ISL); k9 — поддержка шифрования;

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

124-12 — номер релиза.

Для выбора подходящего IOS'а используется утилита Feature Navigator. Находится она на официальном сайте Cisco: tools.cisco.com/ ITDIT/CFN/jsp/index.jsp. Искать подходящий IOS можно по набору возможностей, по используемой платформе, а также по названию образа. Чтобы посмотреть, какой у тебя установлен IOS, достаточно набрать в консоли:

cisco#show version

Эта команда выдаст полную информацию о твоей циске — количество памяти, аптайм, модель процессора, доступные интерфейсы, значение конфигурационного регистра.

ПОСТАНОВКАЗАДАЧИВ начальных условиях унасестьдвапровайдера:первыйпредоставляетдоступвинтернетчерезлокальнуюсетьс серым(читай:приватным)IP,второйвыдает белыйIP,нотолькопослеустановлениясоеди- нениясPPTP-сервером.Такжеунасимеется двелокальныхсетисадресами192.168.1.0/24 и192.168.3.0/24.Адресдемилитаризованной зоны(DMZ)—10.10.20.0/24.Формулируем задачи:

1.Cisco должна устанавливать соединение с PPTP-сервером.

2.Локальныесетидолжнывыходитьвинтернет через первого провайдера (выделяет серый IP).

3.ВсезапросынавнешнийIPдолжныперенаправлятьсявDMZнасоответствующиесервера.

4.Для локальных сетей циска должна выступать в роли DNS и DHCP серверов.

ПОДКЛЮЧЕНИЕКЦИСКЕЯпредпочитаюнастраиватьсетевоеоборудованиечерезконсоль,

дабыпринеполадкахвсетиоставаласьвозможностьпродолжениянастройки.Итак,один конецконсольногопроводацепляемкциске, другойконец—ккомпу,используяCOM-порт. Чтобыподключитьсякдевайсу,запускаемлюбуютерминальнуюпрограммуисоединяемсяс COM-портомнаскорости9600.Каквариант,— можешьиспользоватьHyperTerminal,который включенвсоставWindows.Послеподключения жмем<Enter>ивходимвпривилегированный режимкомандой«enable». Вданныймомент можнопосмотретьсостояниеразличныхсчет- чиков,текущуюистартовуюконфигурацию,а такжепроизвестипоискнеисправностейвсети (яимеюввидуping,traceroute).Дляперехода

врежимконфигурациинеобходимоввести команду«configureterminal».Именновэтом режимемыибудемпроизводитьвсюдальнейшуюнастройку.

ПОДКЛЮЧЕНИЕСЕТЕЙВ принципе, здесь ничего сложного — подключаем витую пару в циску и присваиваем IP-адреса интерфейсам. Все бы хорошо, но порты модуля WIC-4ESW

— это switch-порты, то есть на них нельзя выставить IP-адрес (L2 switching). Решение сводится к добавлению физических портов в определенные VLAN'ы. Для тех, кто не в курсе: VLAN — это виртуальная локальная вычислительная сеть, отличие которой от обычной сети состоит в том, что отделяется она от других сетей не физически (установка нового оборудования), а логически (на управляемом коммутаторе ставится соответствие между его портами и определенными VLAN). Другими словами, для решения нашей проблемы нам необходимо создать четыре виртуальные сети, присвоить им IP-адреса и сказать циске, что этот порт принадлежит этой сети, а этот — той. Чтобы не занимать драгоценное журнальное место и не повторяться, приведу пример только для одной сети:

134

XÀÊÅÐ 05 /125/ 09

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

P

D

 

 

 

 

 

 

 

 

o

 

 

 

 

 

 

P

D

 

 

 

 

 

 

 

 

o

 

 

 

 

NOW!

r

 

 

 

 

 

 

 

 

 

 

NOW!

r

 

 

 

 

 

BUY

 

 

 

 

 

 

>>

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

SYN/ACKw

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

o

 

 

 

 

 

w Click

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

df

 

 

 

 

e

 

 

 

 

 

 

 

 

 

p

df

 

 

 

 

e

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

INTERNET

 

 

ISP #1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

172.16.0/16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Схема нашей сети

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CISCO 1721

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ISP #2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10.2.135.0/24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WEB SERVER

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

LOCAL NETWORK#2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DMZ

 

 

LOCAL NETWORK#2

192.168.1.0/24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10.10.20.0/24

 

 

192.168.3.0/24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cisco#vlan database

Vlan2•192.168.1.254•YES•manual •up

«?», и ее нужно ввести вручную. Благодаря этой

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cisco(vlan)#vlan 2

•up

 

 

 

команде, при выборе протокола подключения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

VLAN 2 added:

cisco#sh ip int brief fa4

 

можно выбрать протокол PPTP.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Name: VLAN0002

Interface•IP-Address•OK?•Method•

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cisco(vlan)#ex

Status•Protocol

 

cisco(config)#service internal

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FastEthernet4•unassigned•YES•

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Теперь настроим наш vlan-интерфейс:

unset•up•up

 

 

Включаем и настраиваем vpdn (Virtual Private

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cisco#sh vlan-switch

 

Dialup Network):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cisco#conf t

VLAN Name

Status

Ports

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

! Настраиваем vlan 2

--------------------------------

! Включаем vpdn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cisco(config)#int vlan 2

1

default

active

 

cisco(config) #vpdn enable

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

! Выставляем IP адрес

2

VLAN0002

active

Fa4

! Создаем группу с номером 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cisco(config-if)#ip-address

... skipped ...

 

cisco(config) #vpdn-group 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

192.168.1.254 255.255.255.0

 

 

 

 

cisco(config-vpdn) #request-dialin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cisco(config-if)#^Z

Можешь попробовать пропинговать кого-

! Указываем протокол соединения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нибудь. Должно получиться. В качестве

cisco(config-vpdn-req-in)#protocol

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последнее, что необходимо сделать — доба-

упражнения советую подключить остальные

pptp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вить физический интерфейс в нужный нам

сети по аналогии с тем, как мы только что

cisco(config-vpdn-req-in)#rotary-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vlan:

сделали. Советую также добавлять описание

group 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

к интерфейсу с помощью команды description,

! Указываем VPN сервер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

! Конфигурируем интерфейс

которую необходимо вводить в режиме кон-

cisco(config-vpdn)#initiate-to ip _vpn_

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fastethernet 4

фигурирования интерфейса. Это необязатель-

server_ip_

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cisco(config)#int fa4

ная процедура, но через некоторое время без

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

! Тип порта (может быть еще trunk)

таких пометок будет сложно разобраться, что

Понятное дело, что вместо «_vpn_server_ip_»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cisco(config-if)#switchport mode

к чему относится.

 

 

необходимо подставить IP-адрес своего VPN-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

access

 

 

 

 

сервера. Теперь создаем сам интерфейс, на

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

! Добавляем этот порт во второй vlan

СОЕДИНЕНИЕСPPTP-СЕРВЕРОМКогда

котором укажем параметры соединения:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cisco(config-if)#switchport access

я покупал циску, то полагал, что установить

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vlan 2

соединение с VPN-сервером по протоколу

! Настраиваем интерфейс VPN-клиента

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PPTP — простая задача. На деле оказалось, что

cisco(config)#interface Dialer0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Посмотрим, что получилось:

девайс умеет соединяться только по протоколу

! Указываем mtu

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L2TP. Прогуглив этот вопрос, я нашел решение,

cisco(config-if)#mtu 1440

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cisco#sh ip int brief vlan 2

которое мне кажется больше хаком, чем

! Автоматически получать IP-адрес

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Interface•IP-Address•OK?•Method•St

документированной возможностью. Нижес-

cisco(config-if)#ip address

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

atus•Protocol

ледующая команда не появляется по нажатию

negotiated

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XÀÊÅÐ 05 /125/ 09

 

 

 

 

 

135

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

w Click

 

BUY

>>m

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

SYN/ACK

 

 

 

 

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

 

 

 

 

 

Вывод команды «show version» — полная информация

Официальная документация от Cisco Systems

о роутере

INFO

info

Cisco IOS — мно-

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

CLI — интерфейс команднойстроки

Cisco IOS.

Dynamips — програм-

мныйэмулятормаршрутизаторовCisco. Позволяетэмулироватьаппаратнуючасть маршрутизаторов, непосредственнозагружаяивзаимодействуя среальнымиобразами Cisco IOS. Работаетна Windows, большинстве Linux-систем, атакже наMac OS X.

Подробнеео

VLAN'ахисозданиивиртуальной локальнойсетичитай встатье«Шаманство надвилланами», опубликованнойв январскомномере zза2009 год.

!Благодаря данной команде наш интерфейс будет всегда в состоянии "up"

cisco(config-if)#ip pim dense-mode

!Выставляем инкапсуляцию ppp

cisco(config-if)#encapsulation ppp cisco(config-if)#dialer in-band cisco(config-if)#dialer idle-timeout 0 cisco(config-if)#dialer string 123 cisco(config-if)#dialer vpdn

!Номер dialer-list'а — для просмотра подходящих данных

cisco(config-if)#dialer-group 1

!Отрубаем поддержку cisco discovery protocol на этом интерфейсе

cisco(config-if)#no cdp enable

!Указываем логин и пароль для аутентификации cisco(config-if)#ppp chap hostname _login_ cisco(config-if)#ppp chap password 0 _ password_

Èдобавляем dialer-list, где будут задаваться типы данных (в нашем случае — весь протокол IP), которые будут заставлять циску устанавливать соединение:

cisco(config)#dialer-list 1 protocol ip permit

Вот вроде бы и все. Теперь соединение с VPN-сервером должно пройти нормально. Проверяем:

cisco#sh ip int dial0 Interface•IP-Address•OK?•Method•Status•Protocol Dialer0•xxx.xxx.xxx.xxx•YES•IPCP•up•up

Соединение успешно установлено! Переходим к самому интересному — выпуск пользователей в интернет.

НАТИМПОЛЬЗОВАТЕЛЕЙКак сказано в техзадании, нам необходимо выпускать пользователей в интернет через первого провайдера, а второго оставить только для внешних сервисов. Самым простым будет установить дефолтный маршрут на первого провайдера и NAT'ить все пакеты,

идущие из наших сетей. Так и поступим:

cisco(config)#ip route 0.0.0.0 0.0.0.0 ISP1_GW

Маршрут добавили. Теперь создаем Access List. Он будет ловить необходимые нам пакеты, для которых нужно делать NAT. Прошу заметить, что в данных правилах используется не обычная маска, а инвертная:

! Создаем access-list номер 1 cisco(config)#access-list 1 permit 192.168.1.0 0.0.0.255 cisco(config)#access-list 1 permit 192.168.3.0 0.0.0.255

Введенный ACL не применяется на интерфейсе для разграничения доступа, и правила permit и deny следует понимать не как «разрешить» или «запретить», а как просмотр подходящих (permit) и неподходящих (deny) пакетов. При написании NAT-правил нам придется указать адреса источ- ников, которые необходимо будет заменить. Именно для этих целей нам пригодится наш ACL. В итоге, схема выглядит так: адрес источника будет модифицироваться только в тех пакетах, которые подошли под этот ACL.

! Указываем в качестве исходных адресов access-list 1

cisco(config)#ip nat inside source list 1 interface Vlan4 overload

Здесьмыменяемадресанаадресинтерфейсаvlan4.В завершающейстадиинамнужноуказать,какиеинтерфейсы являютсявнутренними,акакие—внешними.Делаетсяэтос помощьюкоманд«ipnatinside»и«ipnatoutside»соответственно.Командывводятсяприконфигурированииинтерфейса:

cisco(config)#int vlan 2 cisco(config-if)#ip nat inside cisco(config-if)#int vlan 4 cisco(config-if)#ip nat outside

136

XÀÊÅÐ 05 /125/ 09

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

SYN/ACKw

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

В процессе настройки VLAN

Cisco 1721. Вид спереди

В этом случае vlan2 является внутренней сетью, а vlan4 — внешней.

ИСПОЛЬЗУЕМВНЕШНИЕРЕСУРСЫ Следующимшагомбудетперенаправлениевсехданныхотвнешнихклиентовквнутреннимсерверам.Не станемсразупереходитькнастройке,асначаларазберемся,какэтодолжноработать.Итак,навнешнийинтерфейсприходятзапросынапорт80.

НашацискаперенаправляетполученныеданныеWeb-серверу,который стоитвDMZ.ПослеобработкиданныхWeb-серверначинаетотвечать, итутвозникаетбольшаяпроблема.Ответпопадаеткциске,укоторой

defaultrouteстоитISP1_GW—именночерезэтотшлюзонаегоиотправит. Еслинепонятно,вчемкосяк,топредставьситуацию,когдатыспрашива- ешьукого-то«какдела»,аотвечаеттебесовершеннодругой,незнакомый человек.Нанезнакомцаты,естественно,вниманиянеобращаешь.Тут ситуацияаналогична:запросмыотправилинаодинIP,аответпришелс какого-тосовершеннолевого.ИсправлятьбудемспомощьюPolicyBased Routing.НеобходимосоздатьACL,определяющийпакеты,которыедолжныбытьотправленычерезканалвторогопровайдера:

!Создаем расширенный access-list номер 100

!Так как в расширенных листах нет отрицания, то перед

Cisco 1721. Вид сзади. Справа находится модуль WIC-4ESW, слева —

Serial порт и по центру — Console

разрешающими правилами пишем запрещающие cisco(config)#access-list 100 deny tcp host 10.10.20.2 eq www 192.168.1.0 0.0.0.255 cisco(config)#access-list 100 deny tcp host 10.10.20.2 eq www 192.168.3.0 0.0.0.255

cisco(config)#access-list 100 permit tcp host 10.10.20.2 eq www any

Первые два правила deny означают, что к пакетам, идущим от веб-серве- ра к локальным сетям, не будет применяться политика маршрутизации. А остальные пакеты попадут в политику WEB:

cisco(config)#route-map WEB permit 10

! Определяем область действия политики — только на адреса, подпадающие под access-list 100 cisco(config-route-map)#match ip address 100 cisco(config-route-map)#set ip next-hop 172.17.0.1

Директива match указывает, какие данные попадают под эту политику; команда «set ip next-hop» задает следующий hop. Для полного счастья ос-

XÀÊÅÐ 05 /125/ 09

137

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