Поиск по шаблону является настолько обычным занятием в разработке программного обеспечения, что для облегчения этой задачи была создана специальная технология — регулярные выражения. Узнайте, как можно использовать ее при написании кода, прочитав эту статью.
Все устройства получают входную информацию, выполняют какие-либо операции и выдают результат. Например, телефон во время разговора преобразует звуковую энергию в электрический сигнал и обратно. Двигатель потребляет топливо (пар, расщепление атомных ядер, бензин, мышечные усилия) и преобразует его в энергию. Блендер поглощает ром, лед, лайм и кюрасао и взбалтывает их в коктейль Mai Tai. (Или, если вам хочется чего-то изысканного, сделайте Bellini из шампанского и грушевого сока. Блендер – замечательное универсальное устройство.)
Так как программное обеспечение преобразует данные, то каждое приложение фактически является устройством (хоть и виртуальным, так как у него нет физических составляющих). Например, компилятор в качестве входной информации получает исходную программу и преобразует ее в двоичный исполняемый код. Программа прогнозирования погоды генерирует предсказания на основе результатов прошлых (исторических) замеров, а графический редактор обрабатывает пикселы, применяя правила к отдельным пикселам или их группам, чтобы, например, сделать изображение более четким или изменить его стиль.
Так же, как и любое другое устройство, программное обеспечение предназначено для работы с определенным исходным материалом, например, набором чисел, данными XML-схемы или протоколом. Если программе задать некорректную входную информацию — неподходящую по форме или типу, то существует большая вероятность того, что результат будет непредсказуемым и, возможно, даже катастрофическим. Как говорится: "Мусор заложишь - мусор получишь".
На самом деле для решения всех нетривиальных задач необходимо отделять правильные данные от некорректных и отклонять некорректные данные во избежание ошибок в результатах. Это, конечно же, актуально и для Web-приложений, написанных на языке PHP. Неважно, получены ли входные данные из формы для ввода с клавиатуры или в результате выполнения программного запроса Asynchronous JavaScript + XML (Ajax), прежде чем начать какие-либо вычисления, программа должна проверить входную информацию. Возможно, что числовые значения должны находиться в пределах определенного диапазона чисел или представлять собой только целые числа. Возможно, значение должно соответствовать определенному формату, например, почтового индекса. Например, почтовый индекс в США представляет собой пять цифр плюс дополнительный префикс "Plus 4", состоящий из дефиса и 4 дополнительных цифр. Возможно, другие строки также должны состоять из определенного количества символов, например, две буквы для указания аббревиатуры штата США. Строковые данные доставляют особенно много проблем: PHP-приложение должно быть начеку по отношению к злонамеренным программам-агентам, вложенным в SQL-запросы, код JavaScript или любой другой код, которые способны изменить поведение приложения или обойти защиту.
Однако каким образом программа может определить, являются ли входные данные числом или соответствуют ли определенным требованиям, например, к почтовому индексу? На самом деле для реализации проверки путем сопоставления с шаблоном необходим небольшой парсер, создающий конечный автомат, считывающий входные данные, обрабатывающий маркеры, отслеживающий состояние и выдающий результаты. Однако создание и обслуживание даже самого простого парсера может оказаться непростым делом.
К счастью, анализ на основе сопоставления с шаблоном настолько широко распространен в компьютерных технологиях, что с течением времени (примерно с момента появления UNIX®) были разработаны специальные технологии и, конечно же, механизмы обработки, чтобы облегчить рутинную работу. Регулярное выражение (regex) описывает шаблоны посредством лаконичных и удобочитаемых обозначений. Получив регулярное выражение и данные, механизм regex сообщает, совпадают ли эти данные с шаблоном, и если совпадение было обнаружено, что именно совпало.
Вот небольшой пример использования регулярного выражения, взятый из UNIX-утилиты, работающей в режиме командной строки, которая ищет заданный шаблон в содержимом одного или нескольких текстовых файлов UNIX. Команда grep -i -E '^Bat' ищет последовательность символов beginning-of-line (начало строки), обозначаемое "крышкой", [^]), за которым следуют буквы b, a, и t верхнего или нижнего регистра (ключ -i указывает на то, что при сопоставлении с шаблоном регистр не учитывается, таким образом, например, B и b - тождественны). Следовательно, для файла heroes.txt:
Листинг 1. heroes.txt
Вышеупомянутая команда grep выдаст два совпадения:
Batman
Batgirl
Регулярные выражения
PHP предлагает два программных интерфейса регулярных выражений: один -- для интерфейса переносимых операционных систем (POSIX), а второй - для регулярных выражений, совместимых с языком Perl (PCRE). В общем и целом второй интерфейс является более предпочтительным, так как PCRE сам по себе мощнее, чем POSIX, и предоставляет все операторы, используемые в языке Perl. Более подробная информация по обращению к regex-функциям POSIX представлена в документации по языку PHP (см. раздел Ресурсы). В данной статье мы сосредоточим свое внимание на свойствах PCRE.
Регулярные выражения PHP PCRE содержат операторы, позволяющие путем сопоставления находить конкретные символы или другие операторы, определенные местоположения, например, начало и конец строки, начало или конец слова. Регулярные выражения также позволяют описывать альтернативы, которые можно задать альтернативы типа "или"-"или"; повторения фиксированной, изменяемой или неопределенной длины; наборы символов (например, "любая буква от a до m"); и классы, или типы символов (печатаемые символы, знаки препинания). Специальные операторы также разрешают использовать группировку — возможность применить оператор к целой группе других операторов.
В таблице 1 показаны некоторые типичные операторы регулярных выражений. Для создания сложных выражений можно последовательно объединять элементарные операторы из таблицы 1 (и другие).
Таблица 1. Типичные операторы регулярных выражений
Оператор Значение
. (точка) Любой одиночный символ
^ (крышка) Пустая последовательность в начале строки или цепочки
$ (знак доллара) Пустая последовательность в конце строки
A Буква A верхнего регистра
a Буква a нижнего регистра
\d Любая цифра
\D Любой нецифровой символ
\w Любая буква или цифра; синоним - [:alnum:]
[A-E] Любая заглавная буква из A, B, C, D или E
[^A-E] Любой символ, за исключением заглавных букв A, B, C, D или E
X? Найти совпадение по отсутствию или наличию одной заглавной буквы X
X* Ни одной или любое количество заглавных букв X
X+ Одна или несколько заглавных букв X
X{n} Ровно n заглавных букв X
X{n,m} Не менее n и не более m заглавных букв X; если опустить m, то выражение будет искать не менее n заглавных букв X
(abc|def)+ По меньшей мере одно вхождение последовательности abc и def
В следующем примере показано типичное использование регулярного выражения. Например, для web-сайта необходимо, чтобы каждый пользователь регистрировался. Имя пользователя должно начинаться с буквы и содержать от 3 до 10 буквенно-цифровых символов. Для проверки имени пользователя на соответствие ограничениям при отправке данных в приложение можно использовать следующее регулярное выражение: ^[A-Za-z][A-Za-z0-9_]{2,9}$.
Знак "крышка" соответствует началу строки. Первый набор [A-Za-z] соответствует любой букве. Второй набор [A-Za-z0-9_]{2,9} соответствует последовательности, содержащей от 2 до 9 букв, цифр или символов подчеркивания. Знак доллара ($) соответствует концу строки.
На первый взгляд, знак доллара может показаться лишним, однако его использование важно. Если его пропустить, то условиям данного регулярного выражения будет отвечать любая строка, которая начинается с буквы, содержит от 2 до 9 буквенно-цифровых символов и любое количество других символов. Иными словами, если бы не было знака доллара как привязки к концу строки, то подошла бы недопустимо длинная строка с подходящим началом, например, "martin1234-cruft" .
Программирование на языке PHP и регулярные выражения
В PHP есть функции для поиска совпадений в тексте, замены каждого совпадения на другой текст (похоже на операцию "найти и заменить") и поиска совпадений среди элементов списка. Вот эти функции:
Чтобы показать, как работают эти функции, давайте создадим небольшое PHP-приложение, которое будет просматривать список слов на соответствие определенному шаблону. Слова и регулярные выражения будут вводиться из обычной web-формы, а результаты отображаться в браузере посредством функции simple print_r(). Эта программка пригодится, если возникнет желание проверить или отладить регулярное выражение.
PHP-код показан в листинге 2. Все входные данные берутся из обычной HTML-формы. (Для краткости эту форму и PHP-код, отслеживающий ошибки, опустим.)
Листинг 2. Сравнение текста с шаблоном
Вначале с помощью функции preg_split() строка из слов, разделенных запятыми, преобразуется в отдельные элементы. Данная функция разбивает строку в тех местах, которые соответствуют условиям регулярного выражения. В данном случае регулярное выражение представляет собой просто "," , (запятая - разделитель списка слов, указанных через запятую). Слэш в начале и в конце просто показывает начало и конец regex.
Третий и четвертый аргументы функции preg_split() необязательны, но полезны. Добавьте в третий аргумент число n целого типа, если необходимо вернуть только первые n совпадений, или -1, если необходимо вернуть все совпадения. Если в качестве четвертого аргумента задать идентификатор PREG_SPLIT_NO_EMPTY, то функция preg_split() не будет возвращать пустые результаты.
Затем каждый элемент списка слов, разделенных запятыми, корректируется (убираются начальные и конечные пробелы) с помощью функции trim() и сравнивается с заданным регулярным выражением. Функция preg_grep() существенно упрощает процесс обработки списка: просто укажите в качестве первого аргумента шаблон, а в качестве второго - массив слов для сравнения. Функция возвращает массив совпадений.
Например, если в качестве шаблона задать регулярное выражение ^[A-Za-z][A-Za-z0-9_]{2,9}$ и список слов разной длины, то можно получить результат, показанный в листинге 3.
Листинг 3. Результат работы простого регулярного выражения
Кстати, с помощью дополнительного маркера PREG_GREP_INVERT можно инвертировать операцию preg_grep() и найти элементы, которые не совпадают с шаблоном (аналогично оператору grep -v в командной строке). Заменяя 22 строку на $matches = preg_grep( "/${_REQUEST[ 'regex' ]}/", $words, PREG_GREP_INVERT ) и используя входные данные из листинга 3, мы получим Array ( [1] => 1happy [2] => hermanmunster ).
Разбор строк
Функции preg_split() и preg_grep() очень удобны. Первая из них может разбирать строку на подстроки, если подстроки разделяются определенным шаблоном. Функция preg_grep() позволяет быстро отфильтровать список.
Но что произойдет, если строку нужно разобрать на составные части, используя одно или несколько сложных правил? Например, в США номера телефонов обычно выглядят следующим образом: "(305) 555-1212," "305-555-1212," или "305.555.1212." Если убрать пунктуацию, то количество символов сократится до 10 цифр, что легко можно определить с помощью регулярного выражения \d{10}. Однако код и префикс (каждый из которых состоит из трех цифр) телефонного номера США не могут начинаться с нуля или единицы (так как нуль и единица используются как префиксы для междугородных звонков). Вместо того чтобы разбивать числовую последовательность на отдельные цифры и создавать сложный код, для верификации можно использовать регулярное выражение.
Фрагмент кода позволяющий решить эту задачу, показан в листинге 4.
Листинг 4. Проверка американского телефонного номера
Давайте пройдем по этому коду:
* Как показано в таблице 1, в регулярных выражениях используется ограниченный набор специальных символов, например, квадратные скобки ([ ]) для наименования последовательности. Если надо найти такой символ в тексте, необходимо "выделить" специальный символ в регулярном выражении, поставив перед ним обратный слэш (\). Когда символ выделен, можно задать его посик, как и любого другого символа. Если нужно найти символ точки, например, в полном составном имени хоста, то напишите \.. При желании строку можно подать в функцию preg_quote() которая выполняет автоматическую изоляцию всех специальных символов регулярных выражений, как показано в строке 1. Если поставить echo() $punctuation после первой строки, то вы должны увидеть \(\)\.-.
* В строке 2 из телефонного номера убираются все знаки пунктуации. Функция preg_replace() заменяет все символы из $punctuation — операторы из набора [ ] - пустой строкой, эффективно устраняя такие символы. Возвращаемая новая строка присваивается переменной $number.
* В строке 4 определен шаблон верифицируемого телефонного номера США.
* Строка 5 реализует сопоставление, сравнивая телефонный номер, который теперь состоит только из цифр, с шаблоном. Функция preg_match() возвращает 1, если есть совпадение. Если совпадения нет, функция preg_match() возвращает нулевое значение. Если во время обработки возникла ошибка, то функция возвращает значение False (ложно). Таким образом, чтобы проверить удачное завершение, необходимо посмотреть, было ли возвращено значение 1. В противном случае проверьте итоговое значение функции preg_last_error() (если используется PHP версии 5.2.0 или выше). Если оно не равно нулю, то, возможно, был превышен лимит вычислений, например, разрешенная глубина рекурсии регулярного выражения. Обсуждение констант и ограничений, применяемых в регулярных выражениях PHP, представлено на странице, посвященной функциям регулярных выражений PCRE (см. раздел Ресурсы).
Извлечение данных
Во многих случаях необходимо только получить ответ на вопрос: "Соответствуют ли данные шаблону?" – например, при проверке данных. Однако чаще регулярные выражения используются для подтверждения соответствия и получения информации о совпадении.
Вернемся к примеру с телефонным номером. Пусть при соответствии шаблону нам необходимо сохранить код, префикс и номер линии в отдельных полях базы данных. Регулярные выражения могут запоминать совпадающие с шаблоном данные с помощью оператора capture. Оператор capture обозначается круглыми скобками и может использоваться в любой части регулярного выражения. Операции capture можно делать вложенными для поиска подсегментов в извлеченных сегментах данных. Например, чтобы из 10-значного номера телефона извлечь код города, префикс и номер линии, можно использовать следующую строку:
/([2-9][0-9]{2})([2-9][0-9]{2})([0-9]{4})/
Если входные данные соответствуют шаблону, первые три цифры захватываются первой парой круглых скобок, следующие три цифры - второй парой, а последние 4 цифры - последним оператором. Модификация вызова функции preg_match() возвращает извлеченные данные.
Листинг 5. Возврат извлеченных данных функцией preg_match()
Если в качестве третьего аргумента функции preg_match() указать переменную, например, в нашем коде, $matches, то в качестве ее значения будет выступать список извлеченных результатов. Нулевой элемент списка (с индексом 0) - это все совпадение целиком; первый элемент - совпадение, относящееся к первой паре круглых скобок, и так далее.
Вложенные операторы capture извлекают сегменты и подсегменты фактически любой глубины. Сложность с вложенными операторами capture состоит в том, чтобы определить, в какой части массива соответствий находится каждое соответствие, например, $matches. Действует следующее правило: подсчитайте порядковый номер открывающей скобки в регулярном выражении — этот номер и будет индексом нужного совпадения в массиве соответствий.
В листинге 6 показан пример (немного надуманный) извлечения частей городского адреса.
Листинг 6. Код для извлечения городского адреса
Опять все совпадение целиком хранится по индексу 0. А где хранится номер улицы? Если считать слева направо, номер улицы проверяется \d+. Это вторая открывающая круглая скобка слева, следовательно, значением $matches[2] будет 123. В $matches[4] оказывается название города, а в $matches[6] - почтовый индекс.
Продвинутые технологии
Обработка текста – широко распространенная задача, и PHP предоставляет ряд функций, упрощающих выполнение большого числа операций. Обратите внимание на следующее:
* Функция preg_replace() может работать как с одной строкой, так и с массивом строк. Если вызвать preg_replace() для массива строк, замена будет выполнена во всех элементах массива. В этом случае код preg_replace() возвращает массив измененных строк.
* Как и во всех остальных реализациях PCRE, здесь для осуществления замены можно прибегать к сравнению с вложенным шаблоном. Для наглядности давайте рассмотрим проблему стандартизации формата телефонного номера. Заменим все знаки пунктуации точками. Наше решение показано в листинге 7.
Листинг 7. Замена знаков пунктуации точками
Сопоставление с шаблоном и, в случае совпадения, перевод в стандартный телефонный номер выполняется за один шаг.
Из приложений Delphi вы можете получить доступ к .MDB-файлам Microsoft Access, используя драйверы ODBC. Delphi действительно может дать все необходимое, но некоторые вещи не столь очевидные. Вот шаги для достижения вашей цели.
Что вам нужно: Первое: проверьте, установлен ли ODBC Administrator (файл ODBCADM.EXE в WINDOWS\SYSTEM, вам также необходим файл DBCINST.DLL для установки новых драйверов и ODBC.DLL). Администратор ODBC должен присутствовать в Панели Управления в виде иконки ODBC. Если у вас его не было, то после установки Delphi он должен появиться. Если вы получаете сообщение типа "Your ODBC is not up-to-date IDAPI needs ODBC greater then 2.0", у вас имеется старая версия администратора и вы должны обновить ее до версии, включенной в поставку Delphi. Проверьте, имеете ли вы доступ к драйверу Access ODBC, установленному в Windows. Вы можете сделать это, щелкнув на "Drivers" в диалоговом окне "Data Sources", появляющемся при запуске ODBC Administrator. Delphi должна в диалоге добавить пункты Access Files (*.mdb) и Access Data (*.mdb), работающие с файлами Access 1.10 и использующие драйвер SIMBA.DLL (имейте в виду, что для данного DLL необходимы также файлы RED110.DLL и SIMADMIN.DLL, устанавливаемые для вас Delphi). Данные файлы должны поставляться с дистрибутивом вашей программы как часть ReportSmith Runtime библиотеки. Если вы хотите работать с файлами Access 2.0 или 2.5, вам необходимо иметь другой набор драйверов от Microsoft. Ключевой файл - MSAJT200.DLL, также необходимы файлы MSJETERR.DLL и MSJETINT.DLL. В США набор ODBC Desktop Drivers, Version 2.0. стоит $10.25. Он также доступен в январском выпуске MSDN, Level 2 (Development Platform) CD4 \ODBC\X86 как часть ODBC 2.1 SDK. Очевидно есть обновление этих драйверов для файлов Access 2.5 на форуме MSACCESS CompuServe. Имейте в виду, что драйвер Access ODBC, поставляемый с некоторыми приложениями Microsoft (например, MS Office) могут использоваться только другими MS-приложениями. К сожалению, они могут сыграть с вами злую шутку: сначала заработать, а потом отказать в совершенно неподходящий момент! Поэтому не обращайте внимания (запретите себе обращать внимание!) на строчку "Access 2.0 for MS Office (*.mdb)" в списке драйверов ODBC Administrator. Вы можете установить новые ODBC драйверы с помощью ODBC Administrator в Панели Управления.
Добавление источника данных ODBC (Data Source): если у вас имеются все необходимые файлы, можете начинать. Представленный здесь пример использует драйвер Access 1.10, обеспечиваемый Delphi. Используя ODBC Administrator, установите источник данных для ваших файлов Access: щелчок на кнопке "Add" в окне "data sources" выведет диалог "Add Data Source", выберите Access Files (*.mdb) (или что-либо подходящее, в зависимости от установленных драйверов). В диалоге "ODBC Microsoft Access Setup" необходимо ввести имя в поле "Data Source Name". В данном примере мы используем "My Test". Введите описание "Data Source" в поле Description. Щелкните на "Select Database" для открытия диалога "Select Database". Перейдите в директорию, где хранятся ваши Access .MDB-файлы и выберите один. Мы выберем файл TEST.MDB в директории C:\DELPROJ\ACCESS. Нажмите OK в диалоге "Setup". Теперь в списке источников данных (Data Sources) должен появиться "My Test" (Access Files *.mdb). Нажмите Close для выхода из ODBC Administrator. Используя этот метод, вы можете установить и другие, необходимые вам, источники данных.
Настройка Borland Database Engine: загрузите теперь Borland Database Engine (BDE) Configuration Utility. На странице "Drivers" щелкните на кнопке New ODBC Driver. Имейте в виду, что это добавит драйвер Access в BDE и полностью отдельное управление дополнительно к драйверам Access в Windows, устанавливаемым при помощи ODBC Administrator. В открывшемся диалоге Add ODBC Driver в верхнем поле редактировании введите ACCESS (или что-то типа этого). BDE автоматически добавит на первое место ODBC_. В combobox, расположенном немного ниже, выберите Access Files (*.mdb). Выберите Data Source в следующем combobox (Default Data Source Name), это должен быть источник данных, который вы установили с помощью ODBC Administration Utility. Здесь можно не беспокоиться о вашем выборе, поскольку позднее это можно изменить (позже вы узнаете как это можно сделать). Нажмите OK. После установки драйвера BDE, вы можете использовать его более чем с одним источником данных ODBC, применяя различные псевдонимы (Alias) для каждого ODBC Data Source. Для установки псевдонима переключитесь на страницу "Aliases" и нажмите на кнопку "New Alias". В диалоговом окне "Add New Alias" введите необходимое имя псевдонима в поле "Alias Name". В нашем примере мы используем MY_TEST (не забывайте, что пробелы в псевдониме недопустимы). В combobox Alias Type выберите имя ODBC-драйвера, который вы только что создали (в нашем случае ODBC_ACCESS). Нажмите OK. Если вы имеете более одного ODBC Data Source, измените параметр ODBC DSN ("DSN" = "Data Source Name") в списке "Parameters" псевдонима на подходящий источник данных ODBC Data Source, как установлено в ODBC Administrator. Имейте в виду, что вы не должны ничего добавлять в параметр Path (путь), так как ODBC Data Source уже имеет эту информацию. Если вы добавляете параметр Path, убедитесь, что путь правильный, в противном случае ничего работать не будет! Теперь сохраните конфигурацию BDE, выбирая пункты меню File|Save, и выходите из Database Engine Configuration Utility.
В Delphi: Создайте новый проект и расположите на форме компоненты Table и DataSource из вкладки Data Access палитры компонентов. Затем из вкладки Data Controls выберите компонент DBGrid и также расположите его на форме. В Table, в Инспекторе Объектов, назначьте свойству DatabaseName псевдоним MY_TEST, установленный нами в BDE Configuration Utility. Теперь спуститесь ниже и раскройте список TableName. Вас попросят зарегистрироваться в базе данных Access MY_TEST. Обратите внимание, что если бюджет не установлен, то User Name и Password можно не заполнять, просто нажмите на кнопку OK. После некоторой паузы раскроется список, содержащий доступные таблицы для ODBC Data Source указанного псевдонима BDE. Выберите TEST. В DataSource, в Инспекторе Объектов, назначьте свойству DataSet таблицу Table1. В DBGrid, также в Инспекторе Объектов, назначьте свойству DataSource значение DataSource1. Возвратитесь к таблице, и в том же Инспекторе Объектов установите свойство Active в True. Данные из таблицы TEST отобразятся в табличной сетке. Это все! Одну вещь все-таки стоит упомянуть: если вы создаете приложение, использующее таблицы Access и запускаете его из-под Delphi IDE, то при попытке изменения данных в таблице(ах) вы получите ошибку. Если же вы запустите скомпилированный .EXE-файл вне Delphi (предварительно Delphi закрыв), то все будет ОК. Сообщения об ошибках ODBC, к несчастью, очень туманные и бывает достаточно трудно понять его источник в вашем приложении, в этом случае проверьте установку ODBC Administrator и BDE Configuration Utility, они также могут помочь понять источник ошибки. Для получения дополнительной информации обратитесь к ODBC 2.0 Programmer's Reference или SDK Guide от Microsoft Press (ISBN 1-55615-658-8, цена в США составляет $24.95). В этом документе вы получите исчерпывающую информацию о возможных ошибках при использовании Access-файлов посредством ODBC. Также здесь вы можете найти рапорты пользователей о найденных ошибках, в том числе и при использовании Delphi. Более того, я выяснил, что большинство описанных проблем возникает при неправильных настройках ODBC, т.е. те шаги, которые я описал выше. Надеюсь, что с развитием технологии доступа к базам данных такие сложности уйдут в прошлое. Кроме того, имейте в виду, что если вам необходимо создать новую таблицу Access 1.10, вы можете воспользоваться Database Desktop, включаемый в поставку Delphi.
Авторы данной технологии Ralph Friedman (CompuServe 100064,3102), Bob Swart и Chris Frizelle.
Взято из Советов по Delphi от Валентина Озерова
--------------------------------------------------------------------------------
Может кто-нибудь, предпочтительно из персонала Borland, ПОЖАЛУЙСТА, дать мне ПОЛНЫЙ рассказ о том, как с помощью Delphi и сопутствующего программного обеспечения получить доступ и работать с базами данных MS Access. Среди прочего, мне необходимо узнать...
Нижеследующая инструкция в точности повторяет ту технологию, с которой я работаю на данный момент, надеюсь, что это поможет.
Драйвер ODBC, предусмотренный для доступа к Access 2.0, разработан только для работы в пределах среды Microsoft Office. Для работы со связкой ODBC/Access в Delphi, вам необходим Microsoft ODBC Desktop Driver kit, part# 273-054-030, доступный через Microsoft Direct за $10.25US (если вы живете не в США, воспользуйтесь службой WINEXT). Он также доступен в январском выпуске MSDN, Level 2 (Development Platform) CD4 \ODBC\X86 как часть ODBC 2.1 SDK. Имейте в виду, что смена драйверов (в частности Desktop Drivers) может негативно сказаться на работе других приложений Microsoft. Для информации (и замечаний) обращайтесь в форум WINEXT.
Также вам необходимы следующие файлы ODBC:
Минимум:
ODBC.DLL 03.10.1994, Версия 2.00.1510
ODBCINST.DLL 03.10.1994, Версия 2.00.1510
ODBCINST.HLP 11.08.1993
ODBCADM.EXE 11.08.1993, Версия 1.02.3129
Рекомендуется:
ODBC.DLL 12.07.1994, Версия 2.10.2401
ODBCINST.DLL 12.07.1994, Версия 2.10.2401
ODBCINST.HLP 12.07.1994
ODBCADM.EXE 12.07.1994, Версия 2.10.2309
Нижеследующие шаги приведут вас к искомой цели:
1. Используя администратора ODBC, установите источник данных (datasource) для вашей базы данных. Не забудьте задать путь к вашему mdb-файлу. Для нашего примера создайте источник с именем MYDSN.
2. Загрузите утилиту BDE Configuration.
3. Выберите пункт "New Driver".
4. Назначьте драйверу имя (в нашем случае ODBC_MYDSN).
5. В выпадающем списке драйверов выберите "Microsoft Access Driver (*.mdb)
6. В выпадающем списке имен выберите MYDSN
7. Перейдите на страницу "Alias" (псевдонимы).
8. Выберите "New Alias" (новый псевдоним).
9. Введите MYDSN в поле имени.
10. Для Alias Type (тип псевдонима) выберите ODBC_MYDSN.
11. На форме Delphi разместите компоненты DataSource, Table, и DBGrid.
12. Установите DBGrid1.DataSource на DataSource1.
13. Установите DataSource1.DataSet на Table1.
14. Установите Table1.DatabaseName на MYDSN.
15. В свойстве TableName компонента Table1 щелкните на стрелочку "вниз" и вы увидите диалог "Login". Нажмите OK и после короткой паузы вы увидите список всех имен ваших таблиц. Выберите одно.
16. Установите свойство Active Table1 в True и данные вашей таблицы появятся в табличной сетке.
С появлением и продвижением микрософтом OLE DB и реализацией в Дельфи ADO (начиная с версии 5.0) работа с MS Access через ODBC перестала быть актуальной. За исключением особых случаев рекомендуется пользоваться именно ADO линейкой компонентов для связи с MS Access
Доступность оборудования и простота организации делают беспроводные локальные сети всё более популярными. Даже небольшие компании стараются идти в ногу со временем и избавляются от традиционных кабельных "локалок". Использование беспроводных сетей не ограничивается небольшими офисами и домашними системами - крупные же фирмы применяют Wi-Fi для подключения к корпоративным сетевым ресурсам в тех местах, где технически невозможна прокладка кабелей.
Однако решение об устройстве беспроводной сети далеко не всегда оправданно, тем более что во многих случаях безопасности таких сетей уделяется слишком мало внимания. По оценкам специалистов, почти 70 процентов удачных хакерских атак через беспроводные сети связаны с неправильной настройкой точек доступа и клиентского программного обеспечения, а также с установкой чересчур низкого уровня безопасности при слишком сильном сигнале, с лёгкостью "пробивающего" стены офиса.
По каким-то необъяснимым причинам организаторы беспроводных сетей нередко считают, что при их включении автоматически обеспечивается надлежащий уровень безопасности. Производители оборудования, в свою очередь, устанавливают низкие настройки безопасности "по умолчанию", либо вовсе отключают их, чтобы при развёртывании сети клиенты случайно не столкнулись с невозможностью доступа. При минимальных настройках безопасность оборудование лучше всего совместимо с самым широким спектром других устройств и практически с любым современным программным обеспечением. Поэтому после настройки и проверки сети на совместимость с существующей инфраструктурой системный администратор должен изменить настройки безопасности, для того чтобы предотвратить несанкционированное проникновение в корпоративную сеть.
В отличие от проводных сетей, беспроводные требуют повышенного внимания к безопасности, поскольку проникнуть в них гораздо проще, поскольку для этого не нужен физический доступ к каналу. Радиоволны можно принимать на любое совместимое устройство, а если данные не защищены, то их сможет перехватить любой желающий. Разумеется, не стоит отказываться от паролей прочих традиционных средств авторизации, однако их явно недостаточно для защиты от несанкционированного доступа. Рассмотрим вкратце несколько способов повышения защищённости беспроводных сетей.
Отключаем передачу SSID
Последовательность цифр и букв, называемая SSID (Service Set Identifier) - это уникальный идентификатор вашей беспроводной сети. Передача идентификатора сети является встроенным средством защиты, по умолчанию включённым в большей части продающегося сегодня оборудования, и оно позволяет с лёгкостью обнаружить имеющиеся точки доступа в процессе развёртывания сети. Передача SSID требуется именно для того, чтобы ваше оборудование смогло подключиться к сети.
Точки доступа, которые являются базовыми станциями для подключаемых к сети компьютеров, являются потенциальным слабым местом, через которое злоумышленник может проникнуть в сеть. На уровне точек доступа отсутствует система авторизации по умолчанию, что делает внутренние сети незащищёнными, поэтому системные администраторы должны реализовать существующую корпоративную систему в беспроводных базовых станциях.
Для обеспечения повышенной безопасности можно запретить трансляцию точками доступа идентификатора сети. При этом возможность подключения к сети остаётся только у тех, кто знает правильный SSID, то есть, у сотрудников вашей компании, а случайные пользователи, обнаружившие вашу сеть при помощи сканирования, просто не смогут получить к ней доступ. Отключение передачи SSID возможно в подавляющем большинстве устройств ведущих производителей, что позволяет фактически скрыть вашу сеть от чужих. Если ваша сеть не передаёт идентификаторов, и если вы не афишируете использование беспроводной технологии, то этим вы осложните задачу злоумышленников. Подробные инструкции по отключению SSID обычно приводятся в руководствах по эксплуатации беспроводных точек доступа или маршрутизаторов.
Включаем средства шифрования
Уже давно используемое при пересылке важной электронной корреспонденции шифрование данных нашло применение и в беспроводных сетях. Для защиты данных от чужих глаз, в аппаратуре для беспроводной связи реализованы различные криптографические алгоритмы. При покупке оборудования важно убедиться в том, что оно поддерживает не только низкоуровневое 40-разрядное шифрование, но и 128-битный шифр повышенной стойкости.
Чтобы включить криптографическую защиту можно задействовать системы WEP (Wired Equivalent Privacy - "эквивалент проводной безопасности") или WPA (Wi-Fi Protected Access - "защищённый доступ к Wi-Fi"). Первая система менее стойкая, поскольку в ней используются статические (постоянные) ключи. Защищённые по этому протоколу сети взламываются хакерами без особого труда - соответствующие утилиты нетрудно найти в интернете. Тем не менее, по оценкам специалистов, даже этот протокол не задействован в более половины работающих корпоративных беспроводных сетей. Одним из средств повышения действенности WEP является регулярная автоматическая смена ключей, но даже в этом случае сеть не получает стопроцентной защиты. Попытки проникнуть в такую сеть оставят лишь случайные люди, обнаружившие её, но злонамеренных специалистов WEP не остановит, поэтому для полноценной защиты корпоративных сетей данный протокол использоваться не может.
В недалёком прошлом у организаторов беспроводных сетей не было иного выбора, как использовать протокол WEP, поддержка которого сохраняется в современных устройствах как в целях обеспечения совместимости оборудования, так и для обеспечения хотя бы минимального уровня безопасности в случае невозможности использования более современных протоколов. Сегодня WEP реализуется в двух модификациях: с 64- и 128-разрядным шифрованием. Однако корректнее было бы говорить о ключах длиной 40 и 104 бит, поскольку 24 бит из каждого ключа содержат служебную информацию и никак не влияют на стойкость кода. Однако это не столь важно, поскольку главным недостатком WEP являются статические ключи, для подбора которых злоумышленникам необходимо лишь в течение определённого времени сканировать сеть, перехватывая передаваемую информацию.
Повторим, что более-менее приемлемый уровень безопасность можно лишь при помощи регулярной смены ключей и при использовании 128-битного шифрования. Частота смены ключей зависит от частоты и длительности соединений, при этом необходимо обеспечить отработанную защищённую процедуру передачи новых ключей тем сотрудникам, которые пользуются доступом в беспроводную сеть.
Более эффективное шифрование обеспечивает протокол WPA, в котором реализовано динамическое создание ключей, что исключает возможность перехвата или подбора ключа, а также система идентификации (логин-пароль) при подключении к сети на основе протокола EAC (Extensible Authentication Protocol - "расширяемый протокол аутентификации"). В протоколе WPA 128-разрядные ключи генерируются автоматически при передаче каждых десяти килобайт данных, причём число этих ключей достигает сотен миллиардов, что делает практически невозможным подбор при помощи сканирования даже при отработанной методике перехвата информации. Кроме того, в этом протоколе реализован алгоритм проверки целостности данных MIC (Message Integrity Check), предотвращающий возможность злонамеренного изменения передаваемых данных. А вот выбору паролей следует уделять особое внимание: по мнению экспертов, для обеспечения высокого уровня безопасности длина пароля должна составлять не менее 20 знаков, причём он не должен представлять собой набор слов или какую-то фразу, поскольку такие пароли легко вскрываются методом словарного подбора.
Проблема с WPA заключается в том, что официально он был внесён в спецификации IEEE 802.11 лишь в середине 2004 года, поэтому далеко не всё беспроводное оборудование, выпущенное более полутора лет назад, способно работать по этому стандарту. Более того, если в сети есть хотя бы одно устройство, не поддерживающее WPA, будет применяться простое шифрование WEP, даже если WPA включён в настройках всего прочего оборудования.
Тем не менее, оборудование постоянно совершенствуется и в современных устройствах поддерживается новая, ещё более защищённая версия WPA2, работающая с динамическими ключами длиной 128, 192 и 256 бит. К таким устройствам, относится, например, трёхдиапазонный контроллер Intel PRO/Wireless 2915ABG.
Регулируем силу сигнала и его направленность
Технология беспроводной связи сама по себе по своей природе меньше защищена от постороннего вмешательства, поэтому при организации таких сетей особенно важно максимально затруднить несанкционированное проникновение в них. Среди чисто технических способов самым эффективным является снижение мощности транслируемого сигнала, ведь радиоволны с лёгкостью преодолевают стены зданий, а в сельской равнинной местности могут преодолевать весьма большие расстояния. Злоумышленники могут поставить свой автомобиль рядом со зданием, в котором расположен ваш офис, и в комфортной обстановке неторопливо подбирать ключ к вашей сети. Поэтому важно отрегулировать мощность сигнала, чтобы он не проникал за границы вашей территории. Кроме того, точки доступа следует располагать вдалеке от окон, внешних стен зданий, общих коридоров, холлов и лестниц.
Беспроводные сети являются очень удобным средством связи быстрого развёртывания, позволяющим объёдинить в сеть компьютеры даже в тех местах, где по тем или иным причинам невозможна прокладка кабеля. Однако поскольку незащищённые беспроводные сети куда проще поддаются взлому, чем проводные, следует уделять повышенное внимание защите от постороннего проникновения. Разумеется, стопроцентной гарантии безопасности дать невозможно, но некоторые действенные способы затруднения несанкционированного доступа в беспроводные сети мы описали в данном материале. Более подробные инструкции по реализации этих методов на практике обычно приводятся в документации к сетевому оборудованию, поэтому мы не ставили перед собой цели описать конкретные действия, тем более что они различаются в зависимости от модели и производителя беспроводных точек доступа и маршрутизаторов. Надеемся, что этот материал привлечёт внимание к проблеме обеспечения защиты беспроводных сетей.
Бурное развитие телекоммуникаций застало приход нового тысячелетия в новом витке технологических преобразований. Не остался в стороне и Web-Hosting как одна из профилирующих услуг интернет-сервиса. И если стремительное развитие IT характеризовалось, прежде всего, широко представленным предложением виртуального (в т.ч. бесплатного) хостинга, то новое десятилетие отмечает возросший интерес к разного рода технологиям выделенных серверов (dedicated servers) и co-location.
Что такое co-location? Co-location (colocation, collocation) дословно - это размещение физической машины клиента в специально оборудованном помещении провайдера на его технической площадке (в дата-центре). Помимо собственно размещения в базовый набор услуг по co-location входит:
Предоставление определенного объема предоплаченного трафика (входящего или исходящего, в зависимости от провайдера) или полосы пропускания;
Подключение к внешним каналам с высокой пропускной способностью (от 100 Мбит/c), наличие резервных каналов;
Повышенный уровень безопасности (система бесперебойного электропитания, климат-контроль, backup, охрана от физического проникновения посторонних на техническую площадку и т.д.);
Круглосуточная поддержка;
Оперативное устранение неисправностей непосредственно "на месте" (on-site).
Смежной с co-location является услуга аренды выделенного сервера (сервер не принадлежит клиенту, а взят в аренду у провайдера). В базовый набор услуг при аренде выделенного сервера обычно входит в дополнение к выше перечисленному :
Программное обеспечение для управления функциями сервера;
Услуга аренды сервера интересна в большей степени клиентам, территориально удаленным от коммуникационных центров (в России это Москва и Санкт-Петербург), а также тем, кто не хочет вкладывать деньги в покупку сервера, и тем у кого нет возможности инсталировать сервер своими силами, т.к. для этого нужно обладать знаниями системного администратора.
Co-location и dedicated существенно расширяют возможности веб-узла и являются единственно возможным решением для некоторых интернет-проектов. Как правило, к услугам аренды и размещения сервера прибегают при высоких требованиях к безопасности, потреблении большого объема трафика, высокой нагрузке на вычислительные мощности. Ведь при виртуальном хостинге ресурсы сервера делятся на всех клиентов размещенных на нем, и в случае появления высоко загруженного ресурса на сервере, вероятен отказ в обслуживании. Кроме того, безопасность виртуального хостинга вызывает большие сомнения: в 80% случаев взломы таких серверов производятся самими же клиентами. Немаловажным фактором при выборе выделенного сервера является возможность использования различного программного обеспечения и полный контроль над сервером. Последнее обстоятельство позволяет реализовать проект любой сложности с гарантированной защищенностью данных; для высоко загруженных проектов возможна реализация распределения вычислительной и сетевой нагрузки по нескольким серверам.
Среди проектов, решение которых в сети Интернет требует услуги co-location или выделенного сервера, следует назвать:
поисковые системы (www.yandex.ru)
фото-галереи (www.alenmax.ru)
виртуальные магазины (www.ozon.ru)
хостинг-провайдеры (www.alexhost.ru)
on-line базы данных (www.integrum.ru)
крупные проекты (www.uptime.ru)
интернет-версии оффлайновых СМИ (www.comprice.ru)
сайты с большим трафиком (www.mail.ru)
особо важные проекты (www.government.ru)
порталы (www.interpress.ru)
Несмотря на непространственную природу Интернет, широкое распространение спроса на услуги co-location в последнее время является своеобразной реакцией на распространение виртуального хостинга. Можно сказать, что в случае заключения контракта на co-location абонент покупает прежде всего определенное географическое место. Это место может характеризоваться особым географическим положением провайдера, включенностью в оптимальную телекоммуникационную инфраструктуру или, что тоже важно, хотя бы как психологический фактор, относительной близостью к главному офису заказчика.
Учитывая все эти факторы можно уверенно прогнозировать стремительное развитие данного вида web-услуг в Санкт-Петербурге. Данный регион - являющийся важнейшим телекоммуникационным центром России, местом, где пересекаются основные магистральные линии, связывающие страну с мировыми коммуникациями, - является вторым по экономической значимости регионом РФ. Более низкая по отношению к Москве затратная часть IT-бизнеса, высокий профессиональный уровень кадров, быстрое экономическое развитие региона в целом позволяют прогнозировать развитие спроса на услуги co-location и dedicated на петербургском рынке.
Мне приходится часто менять клиентов, потому что работаю удаленно. Сделал одному – иди к другому. А еще я продаю свои программы через Интернет. При имеющейся специфике работы, заметил одну странность: примерно в двадцати пяти процентов случаев, предприятие, оплатившее работу программиста и принявшее его работу, не пользуется ею.
Начну с примеров
Фирма, продающая компьютеры, купили внушительный комплект программного обеспечения, все своевременно оплатили, купили необходимое торговое оборудование... Мы, соответственно, все им установили и приготовились запускать. Остановились на этапе, когда сотрудники фирмы, ответственные за ввод в эксплуатацию нового программного комплекса, должны внести в информацию по имеющимся в отделах остаткам. Для справки – это примерно пара сотен наименований. Но на этом все работы по проекту остановились, потому что остатки не были внесены к намеченному сроку, ни через неделю после срока, ни через месяц. Не внесены они и до сих пор, хотя прошло уже пол года. Официально мы договорились, что клиент нам позвонит, когда сотрудники освободятся и найдут время внести остатки. Сами понимаете, на небольших фирмах менеджеры – по совместительству еще и продавцы, еще и грузчики, и кассиры…
Еще пример
Достаточно крупный комбинат решил автоматизировать учет обедов собственным сотрудникам в счет зарплаты. Систему подготовили, протестировали, поставили. Обучили их специалиста. Все как обычно. Недавно узнал, что конечный пользователь нашу систему не использует. Оказывается, по весьма банальной причине: на приобретение нового компьютера руководство не выделяет средств, а на имеющемся оказалось недостаточно мощности. В свое время мы указывали им на необходимость более мощного компьютера, но в силу не совсем понятных мне внутренних интриг, этот вопрос был замят на уровне IT-отдела. В результате, автоматизация стала не эффективной, и от использования новой программы решено было отказаться.
Третий пример
Производственная фирма заказала автоматизацию учета. От фирмы был назначен специалист – постановщик ТЗ и в будущем - внедренец. Работу сделали, сдали, провели обучение внедренца (на углубленное внедрение и обучение нами всех сотрудников не выделили бюджет). Я перезвонил клиенту через пол года, чтобы узнать, не было ли замечено каких-либо багов в работе системы. С удивлением услышал, что учет по-прежнему ведется в Excel-е, потому что на глубокое, самостоятельное освоение новой системы у сотрудников нет времени, а специалист, которого мы обучали, уволился…
Хотелось бы обобщить имеющийся, скромный опыт по таким случаям, и порассуждать на тему, когда автоматизация учета становится не эффективной по вине заказчика.
Уже из приведенных примеров можно сделать одно важное заключение: во всех трех случаях явно, что администрация не была заинтересована в результате. В первом – директор не захотел останавливать продажи даже не день, чтобы довести начатое до конца, во втором и третьем был урезан бюджет, и решили сэкономить там, где этого делать было нельзя.
1. Незаинтересованность руководства в результатах
Для меня всегда было загадкой, зачем руководство той или иной фирмы вообще тратится на автоматизацию, если отчетов в excel-е достаточно, и нет желания доводить начатое до конца? Чего дирекция хочет добиться? Дань моде? Надоел ноющий главбух? Решили, что что-то пора менять, но что менять – не выяснили? Стоит напомнить, что грамотно поставленная автоматизация учета в торгово-производственных фирмах способна увеличить прибыль и уменьшить затраты. Хорошая автоматизация окупается достаточно быстро, и уже скоро начинает приносить прибыль и экономию. Но если руководство не оценило перспектив автоматизации или, что еще хуже, считает, что новый стол из красного дерева топ-менеджеру важнее нового сервера сисадмину, то вряд ли на такой фирме автоматизация будет успешной.
2. Ограниченный бюджет
Как правило, из первого следует второе. Когда руководство не совсем отдает себе отчет в том, чего они ждут от автоматизации, тогда возникают идеи, наподобие: «а давайте пригласим студента, и он все сделает, как надо», или «давайте посадим главбуха на сервер»... Я, конечно, не против подработки студентов и не сомневаюсь в потенциале российского студенчества, но хочу лишь сказать о том, что для внедрения серьезной системы учета простого умения программировать очень мало. Хороший внедренец должен уметь просчитать возможные последствия выбора той или иной стратегии автоматизации. Это достаточно кропотливая работа, требующая, прежде всего, большого практического опыта, понимание не только специфики учета предприятия, но и его неочевидных нюансов. В конце концов, такая работа требует настойчивости, потому что часто решения внедренцев могут встретить сопротивление со стороны заказчика, и нужно уметь отстоять свои предложения, основываясь, опять же, на собственном опыте, защищая интересы сопротивляющегося клиента. Вряд ли какой-либо студент, понимающий, что занимается временным, не свойственным ему делом, способен на такое. Поэтому, считаю, что экономия на уровне исполнителя – это почти гарантия неудавшейся автоматизации.
Это же относится и к неоправданной экономии на оборудовании. Как правило, сбой системы происходит в самом слабом ее звене и в самый неподходящий момент… Помню, как у одного моего клиента, смотрящего «сквозь пальцы» на предложение обновить сервер, этот сервер вдруг однажды сгорел, когда бухгалтерия делала годовой отчет. Печально было то, что архивирование данных не велось должным образом, опять же, не смотря на рекомендации: директор считал покупку пишущего cd-room (в то время) – не особенно необходимыми затратами. Систему, конечно, восстановили. Но я помню, как бухгалтерии пришлось две недели работать чуть ли не по ночам, чтобы восстановить потерянные за год данные по первичным документам. Кстати, после этого случая руководство все-таки купило в то время жутко дорогой сервер с райд-массивом…
3. Тендер на откатах
Где-то встречал в сети примерную статистику, какой процент тендеров на IT услуги в России выигрывается за счет откатов ответственному лицу. Статистика – не утешительна. Печально, что на откаты попадают в основном крупные заказчики, где сумма договора внушительна, и руководство напрямую не занимается подбором исполнителя, а поручает это собственному специалисту, который не всегда бывает доволен уровнем своей заработной платы. Практика показывает, что при таком раскладе, все работы бывают выполнены в срок, все документы подписаны, но сотрудники фирмы остаются недовольны результатами и не могут использовать внедренную систему в планируемом объеме по разным причинам. Соответственно, руководство не имеет требуемой аналитической базы и начинает выяснять, в чем причина. Такие разбирательства затягиваются надолго, часто сопровождаются кадровыми движениями и, в конечном итоге, поисками того, кто бы систему довел до ума…
4. К вопросу о лидерах отрасли
Хотел бы привести еще один пример, достаточно типичный. Фирма готова тратить деньги на автоматизацию, но не сориентировалась на рынке IT-услуг и обратилась к кому-то очень известному. В результате затраты превысили все разумные пределы, а итог оказался не совсем ожидаемым, хотя, возможно, приемлемым с натяжкой.
К сожалению, это только при покупке автомобиля можно руководствоваться рекламными буклетами, и, если позволяют средства, выбирать самое последнее из модельного ряда. В сфере IT-услуг, как показывает практика, все далеко не так, особенно в сфере автоматизации на базе продуктов фирмы «1С» фирмами-франчайзи. Если исполнитель – не на уровне масштабов компании «Intel Corporation», то его раскрученность совсем может не соответствовать качеству предлагаемых им услуг, а объемы клиентской сети, требующей постоянного сопровождения, могут не позволить заниматься новым клиентом на должном уровне. На фоне этого, стоило бы вспомнить о небольших фирмах, менее раскрученных, а потому не выигравших тендер, которые были бы просто счастливы получить крупного заказчика IT-услуг, даже с меньшей суммой договора, и были готовы отдать все силы на то, чтобы клиент остался доволен. Амбиции небольших коллективов, уровень их специалистов и заинтересованность в результатах работы часто оказываются выше, чем у раскрученных, больших компаний. Небольшие фирмы не могут допустить в работе того, что позволят себе монополии, потому что любая неудача может грозить такой фирме банкротством.
Я назвал лишь четыре, пожалуй, основных фактора, когда автоматизация не достигает результатов, и присходит это, отчасти, по вине заказчика. Наверняка, имеются и другие причины, но корень проблем, на мой взгляд, следует искать, прежде всего, в неправильной позиции руководства компании, которая выражается или в непонимании, зачем нужна автоматизация, или в неправильно выбранной стратегии решения этого вопроса. Там, где решения принимаются трезво и взвешенно, где оценивается уровень специалиста, а не его раскрученность на рынке, где руководство четко понимает, чего оно ждет от автоматизации в итоге – там все будет нормально, чего всем и желаю…
Анимированное кино существует и развивается уже сто лет. Оно стало считаться одним из видов искусства. Год от года неуклонно возрастет число анимационных проектов. Такие картины, как Final Fantasy, Shrek, Little Stuart, The Incredibles, Finding Nemo претендуют на престижную премию Оскара. Возможно наступит момент, когда актеров заменят их трехмерные двойники.
Трехмерные сцены становятся все реалистичными, а их себестоимость снижается. Без трехмерных декораций не обходится ни один современный экшн.
Как создается трехмерная анимация.
Анимированное кино существует и развивается уже сто лет. Оно стало считаться одним из видов искусства. Год от года неуклонно возрастет число анимационных проектов. Такие картины, как Final Fantasy, Shrek, Little Stuart, The Incredibles, Finding Nemo претендуют на престижную премию Оскара. Возможно наступит момент, когда актеров заменят их трехмерные двойники.
Трехмерные сцены становятся все реалистичными, а их себестоимость снижается. Без трехмерных декораций не обходится ни один современный экшн.
Трехмерная анимация постепенно вытесняет классическую двухмерную мультипликацию. Многие мультяшные герои или "уходят на пенсию" (с ними просто больше не делают новых мультфильмов), или обретают новую жизнь в 3D. Например, мультфильм с моряком Папаем, сделанный при помощи 3D-редактора Softimage|XSI.
В 2004-ом году известная анимационная студия Blur Studio представила первый анимационный трехмерный проект про Микки Мауса и других диснеевских героев.
Три мультфильма общей продолжительностью 40 минут стали самым крупным проектом за девятилетнюю историю Blur Studio.
Работа над проектом велась совместно 3D-аниматорами Blur и художниками Disney Studios, которые в свое время рисовали Дональда, Плуто и прочих персонажей. Для того чтобы максимально сохранить особенности движения и внешнего вида персонажей при переносе их в трехмерный мир, ведущий аниматор студии Disney Андреас Дежа (Andreas Deja) все время давал советы коллегам-3D-художникам. Результатом остались довольны все, и в Blur и в Studio надеются, что проект не будет последним.
Метод ключевых кадров.
Современная техника анимации кардинально отличается от анимационных фильмов выпускавшихся двадцать, пятьдесят лет назад.
А до появления трехмерной графики существовала так называемая кукольная анимация. Делалась она так: снимался один кадр с мультипликационным героем, затем, например, руку персонажа передвигали на очень небольшое расстояние и опять снимали один кадр. Вся работа состояла в том, чтобы снять на пленку все положения руки мультяшного героя. Что же касается рисованной анимации, каждый кадр рисовался вручную.
В компьютерной анимации все гораздо проще. Аниматор задает в программе только два положения руки - верхнее и нижнее, а все промежуточные положения просчитываются компьютером. Кадры, которые фиксируют начальное и конечное положение тела, называютсяключевыми.
Используя метод ключевых кадров, можно "оживить" практически любые параметры анимационной сцены. Продолжительность анимации зависит от количества промежуточных кадров между ключевыми.
Если математически отобразить зависимость анимированного параметра (или ключа анимации, как его еще называют) от времени, каждый ключевой кадр будет характеризоваться двумя кривыми, которые определяют функциональные зависимости анимированного параметра на промежутке между текущим ключевым кадром и предыдущим, а также настоящим ключевым кадром и следующим. Во многих редакторах для работы с трехмерной графиков подобной графической зависимостью можно управлять, определяя характер анимации.
Преимущество метода ключевых кадров перед классической техникой создания анимации очевидно: аниматор тратит на создание проекта гораздо меньше времени. Большая часть рутинной работы, которая ранее выполнялась вручную, сегодня переложена на компьютер.
Проблемы при создании анимации методом ключевых кадров.
Несмотря на универсальность и простоту техники ключевых кадров, существуют случаи, когда использование этого метода не позволяет добиться желаемого результата. Это касается тех сцен, в которых необходимо отобразить эффекты, подчиняющиеся законам физики.
В реальной жизни все, что нас окружает, постоянно изменяется - шторы слабо двигаются, по озеру бежит мелкая рябь и так далее. Аниматору очень трудно воссоздать такую картину методом ключевых кадров.
Если сцена содержит большое количество анимированных объектов, установить для каждого из них свой набор ключевых кадров очень сложно. Поскольку подбор параметров значений анимированных параметров в каждом из ключевых кадров производится методом проб и ошибок, на подгонку такой сцены уйдет очень много времени.
Кроме этого, при помощи ключевых кадров 3D-аниматору бывает очень сложно воссоздать реалистичную анимацию некоторых объектов: жидкости, материи, огня, волос, разбивающихся предметов. Алгоритм решения этих проблем настолько сложен, что его разработкой занимаются целые институты.
Каждая программа для создания динамики в трехмерных сценах по-своему уникальна, имеет свои преимущества и недостатки. Поэтому при выборе программного обеспечения руководитель анимационного проекта обычно учитывает задачи, которые планируется выполнить на данном этапе.
Помимо проблем, связанных с моделированием физических процессов, существует еще одна трудность, связанная с анимированием большого количества объектов в сцене. Создать простую, на первый взгляд, сцену с горящим бенгальским огнем при помощи ключевых кадров невозможно. Вручную задать траекторию движения для каждой из огромного количества разлетающихся искр - задача практически невыполнимая. В этом случае в трехмерной анимации используются так называемые источники частиц. Их особенность в том, что они позволяют одновременно управлять большим количеством объектов. Значимость частиц в трехмерной графике столь велика, что некоторые 3D-редакторы имеют сложные системы управления источниками частиц, которые позволяют тонко настроить анимационные эффекты с учетом изменения скорости движения частиц, размера, цвета, формы, изменения положения в пространстве и т.д.
Персонажная анимация.
Создание персонажной анимации - это один из важнейших этапов создания трехмерного проекта.
Любую анимацию можно условно разделить на два типа: реалистичная и нереалистичная. Персонажная анимация может быть как реалистичной, так и нереалистичной, однако, зрителем она лучше воспринимается, если напоминает движения, совершаемые реальными существами. Даже если персонаж анимации - это вымышленное существо, плод воображения художника, лучше, чтобы его движения были правдоподобны. В противном случае персонаж будет выглядеть безжизненным манекеном.
Характер движения любого существа определяется анатомическим строением его скелета. Поэтому при создании трехмерной анимации сначала создается модель скелета существа, на который позже "одевается" оболочка.
"Одевание" оболочки - это тоже достаточно трудоемкий процесс, ведь нужно "привязать" кости к соответствующим частям тела таким образом, чтобы при изменении положения скелета оболочка деформировалась реалистично.
Создавать анимацию скелета будущего персонажа можно двумя способами: вручную, с помощью ключевых кадров, и используя систему захвата движения Motion Capture. Последний способ получил широкое распространение и используется практически по всех коммерческих анимационных проектах, так как имеет ряд преимуществ перед методом ключевых кадров.
Технология Motion Capture использовалась, например, в анимационном фильме - <Полярный экспресс> (The Polar Express). В этом фильме известный актер Том Хенкс, играл сразу несколько ролей: маленького мальчика, проводника поезда, бродягу и Санта Клауса. При этом, во многих анимационных сценах актер играл сам с собой. Конечно же, все герои мультфильма были трехмерными, но Том Хенкс управлял их действиями, жестами и даже мимикой. Актер одевал специальное одеяние с датчиками, напоминающее гидрокостюм, совершал действия перед специальным устройством, а компьютер получал информацию об изменении положения отметок на костюме и моделировал, таким образом, движения трехмерного персонажа. Подобные датчики были установлены и на лице актера, что позволило переносить на анимационных героев его мимику.
Понятно, что анимация персонажей, созданная с использованием технологии Motion Capture, более реалистична, чем полученная методом ключевых кадров.
Мимика персонажа.
Для создания мимики трехмерного персонажа, кроме метода Motion Capture, используется также метод морфинга. Все современные 3D-редакторы обычно имеют средства для создания морфинга.
Добиться высокой реалистичности при имитации мимики методом Motion Capture не всегда удается. Чтобы она была правдоподобной, необходимо имитировать движения огромного количества мускулов, а ведь на каждый мускул датчик повесить невозможно.
Поэтому для имитации мимики используется метод морфинга. Он заключается в том, что на основе модели, которая будет анимирована, создается определенное количество клонированных объектов. Затем каждый из этих объектов редактируется вручную - форма лица изменяется таким образом, чтобы на нем присутствовала та или иная гримаса. При создании мимики очень важно, чтобы лицо персонажа при анимации не выглядело однообразным. Для этого необходимо использовать модели-заготовки с самыми разными гримасами. Пусть на одной заготовке персонаж будет моргать, на другой - щуриться, на третьей - надувать щеки и т.д.
На основе этих моделей при помощи метода морфинга создается анимация. При этом, просчитывается, как изменяется лицо персонажа при переходе от выражения лица одной модели до гримасы, созданной на второй модели и т.д. Таким образом, каждая из моделей служит ключом анимации, в результате использования морфинга форма объекта изменяется, и создается мимика персонажа.
3D-аниматор, который профессионально занимается "оживлением" персонажей, должен быть не только художником, но и знатоком анатомии. Знания о строении тела и работе мускулов помогают создать реалистичные движения и выражения лица.
Если же персонаж не только ходит и кривляется, но еще и говорит, 3D-аниматор обязан превратиться еще и в лингвиста. Каждый звук, который произносит человек, сопровождается определенными движениями его губ, языка, челюсти. Для того чтобы перенести эти движения на трехмерную анимацию, нужно уметь разбивать речь на фонемы и создавать соответствующие их произношению движения на лице персонажа.
Виртуальные камеры.
Многие трехмерные анимационные эффекты создаются с помощью виртуальных камер. Эти вспомогательные объекты предназначены для того, чтобы изменять положение точки съемки в виртуальном пространстве.
Виртуальные камеры обладают всеми основными параметрами, которые присущи настоящим камерам. Так, например, для виртуальной камеры можно указать фокусное расстояние, установить свой тип линз и т.д.
Виртуальная камера, в отличие от настоящей, - это лишь вспомогательный объект, которого вы никогда не увидите на трехмерной анимации.
Трехмерная анимация заметно упрощает реализацию многих спецэффектов. Так, например, хорошо всем известный "эффект Матрицы", когда, камера медленно объезжает вокруг человека, замершего в прыжке, гораздо проще создать при помощи виртуальной камеры. Для реализации этого эффекта в фильме "Матрица" использовалось большое количество камер, расположенных вокруг объекта съемки. Все они зафиксировали положение человека в один и тот же момент времени. Из этих кадров была создана анимация, имитирующая "облет" вокруг объекта.
В трехмерной анимации законы физики не действуют, поэтому для создания такого эффекта достаточно зафиксировать в прыжке трехмерную модель человека и задать плавное движение виртуальной камеры вокруг него.
В реальном мире при съемке фото или видеокамерой быстро движущиеся объекты остаются на полученном изображении смазанными. Причем, размытие изображения в конкретном кадре указывает на направление движения заснятого объекта. Присутствие этого эффекта в трехмерной анимации делает ее более реалистичной.
Эффект смазанного движения (Motion Blur) позволяет создать в трехмерных анимированных сценах смазанный шлейф от быстродвижущихся объектов, и отобразить их такими, какими они выглядят при реальных съемках. Возможность использования эффекта смазанного движения имеется практически во всех модулях просчета изображения, которые используются в 3D-графике.
Сегодня 3D-анимация находится на ранней стадии своего развития но за ней большое будущее. Потребуется еще немало времени, пока в 3D будут созданы анимационные шедевры, которые можно будет сравнить с лучшими образцами классической анимации.
А пока все с удовольствием смотрят мультфильмы, выпущенные много лет назад. Такой например как мультфильм "Бемби", созданный студией Диснея шестьдесят три года назад и отреставрированный при помощи современных средств видеообработки.
Хочется надеяться, что такую же популярность, нерушимую временем, смогут снискать и трехмерные анимационные проекты будущего.
В состав библиотеки MFC входит ряд классов, представляющих стандартные диалоговые панели. Эти классы позволяют легко реализовать такие часто используемые операции, как открытие и сохранение файла, выбор цвета, выбор шрифта и т.д. Все эти классы наследуются от CCommonDialog, который в свою очередь является производным по отношению к базовому классу CDialog.
Приведем классы стандартных диалоговых панелей и их назначение:
CColorDialog - Панель для выбора цвета
CFileDialog - Панель выбора файлов для открытия и сохранения на диске
CFindReplaceDialog - Панель для выполнения операции поиска и замены
CFontDialog - Панель для выбора шрифта
CPrintDialog - Панель для вывода документа на печать
CPageSetupDialog - Панель выбора формата документа
COleDialog - Панель для управления технологией OLE
Классы, управляющие стандартными диалоговыми панелями, определены в файле afxdlgs.h. Поэтому при использовании этих классов в приложении необходимо включить этот файл в исходный текст при помощи директивы #include.
Панель выбора цвета (класс CColorDialog)
Чтобы отобразить на экране стандартную диалоговую панель выбора цвета, надо создать объект класса CColorDialog, а затем вызвать метод DoModal. При создании объекта класса СColorDialog используется следующий конструктор:
Все параметры конструктора необязательны, однако в некоторых случаях использование этих параметров может помочь.
Первый параметр clrInit позволяет указать цвет, выбранный по умолчанию сразу после открытия диалоговой панели. Если параметр не будет указан, в качестве цвета, выбранного по умолчанию, будет использоваться черный цвет.
Параметр dwFlags содержит набор флагов, управляющих диалоговой панелью выбора цвета. При помощи него блокировать или разрешать работу некоторых элементов управления диалоговой панели выбора цвета. Если при создании объекта класса CColorDialog не указать параметр dwFlags, тем не менее можно выполнить настройку диалоговой панели, обратившись непосредственно к элементу m_cc данного класса. Параметр dwFlags, указанный в конструкторе, используется для инициализации m_cc. Изменения в элемент m_cc должны быть внесены до того, как панель будет отображаться на экране.
Последний параметр pParentWnd можно использовать, чтобы указать родительское окно диалоговой панели.
Методы класса CСolorDialog
Чтобы вывести диалоговую панель выбора цвета на экран, необходимо использовать метод DoModal. После отображения панели на экране пользователь может выбрать из нее цвет и нажать кнопки OK или Cancel для подтверждения выбора цвета или отказа от него. Когда диалоговая панель закрывается, метод DoModal возвращается значения IDOK и IDCANCEL, в зависимости от того, какую кнопку нажал пользователь:
На экране появится стандартная диалоговая панель выбора цвета Color. В верхней половине диалоговой панели расположены 48 прямоугольников, имеющих различные цвета. Они представляют так называемые основные цвета (Basic colors). Можно выбрать один из этих цветов и нажать кнопку OK. После того, как диалоговая панель закрыта (метод DoModal завершил свою работу), можно воспользоваться методами класса CColorDialog, чтобы узнать цвета, выбранные пользователем.
Для определения цвета, выбранного пользователем, можно обратиться к методу GetColor класса CColorDialog. Данный метод возвращает значение COLORREF, соответствующее выбранному цвету.
Если пользователю недостаточно основных цветов, представленных в диалоговой панели Color, он может выбрать до 16 дополнительных цветов. Для этого он должен нажать кнопку DefineCustom Colors. Диалоговая панель изменит свой внешний вид - появятся дополнительные органы управления, позволяющие выбрать любой из 16 777 216 цветов. Когда цвет выбран, нужно нажать кнопку Add Custom Colors. Выбранный цвет будет добавлен к дополнительным цветам (Custom colors) - один из свободных прямоугольников окрасится соответствующим цветом.
При помощи метода GetSavedCustomColors класса CColorDialog можно определить дополнительные цвета, выбранные пользователем в диалоговой панели Color. Этот метод возвращает указатель на массив из 16 элементов типа COLORREF. Каждый элемент массива описывает один дополнительный цвет.
Когда диалоговая панель Color отображается приложением первый раз, все прямоугольники, отображающие дополнительные цвета, имеют белый цвет. Дополнительные цвета, выбранные пользователем, сохраняются во время работы приложения. После перезапуска приложения дополнительные цвета сбрасываются.
Панель выбора файлов (класс CFileDialog)
Среди стандартных диалоговых панелей, для которых в библиотеке MFC создан специальный класс, есть панели для работы с файловой системой - Open и Save As. Диалоговая панель Open позволяет выбрать один или несколько файлов и открыть их для дальнейшего использования. Диалоговая панель Save As позволяет выбрать имя файла для записи в него документа.
Для управления диалоговыми панелями Open и Save As предназначен один класс CFileDialog. Рассмотрим конструктор класса CFileDialog более подробно:
Объекты класса CFileDialog представляют диалоговые панели Open или Save As в зависимости от параметра bOpenFileDialog. Если параметр bOpenFileDialog содержит значение TRUE, то создается объект, управляющий диалоговой панелью Open, а если FALSE - диалоговой панелью Save As.
Параметр bOpenFileDialog является единственным обязательным параметром, который необходимо указать. Остальные параметры конструктора класса CFileDialog задают различные режимы работы панели и могут не указываться.
Чтобы создать объект класса CFileDialog , представляющий диалоговую панель для открытия файлов (mFileOpen), и объект, представляющий диалоговую панель для сохранения файлов (mFileSaveAs), можно воспользоваться следующими вызовами конструктора класса:
Во многих случаях имена файлов, которые нужно открыть или закрыть, имеют определенное расширение. Параметр lpszDefExt позволяет задать расширение файлов, используемое по умолчанию. То есть, если пользователь при определении имени файла не укажет расширение, имени файла автоматически присваивается расширение, принятое по умолчанию. Если при определении свойств диалоговой панели программист присвоит параметру lpszDefExt значение NULL, то расширение файлов должно задаваться пользователем явно.
В некоторых случаях требуется, чтобы диалоговые панели отображались с уже выбранным именем файла. Чтобы указать имя файла, используемое по умолчанию, применяется параметр lpszFileName. Если параметр lpszFileName имеет значение NULL, данная возможность не реализуется.
С помощью флага dwFlags можно изменить внешний вид и некоторые другие характеристики стандартных диалоговых панелей класса CFileDialog. В него можно записать комбинацию флагов, управляющих различными характеристиками этих панелей. Например, флаг OFN_HIDEREADONLY означает, что из диалоговой панели удаляется переключатель "Read Only", а флаг OFN_OVERWRITEPROMPT (используемый для панели Save As) - что необходимо выводить диалоговую панель с предупреждением, если пользователь выбирает для сохранения имя уже существующего файла.
Диалоговые панели выбора файлов обычно имеют список так называемых фильтров, включающих названия типов файлов и расширения имен файлов данного типа. Выбрав фильтр, пользователь указывает, что он желает работать только с файлами определенного типа, имеющими соответствующее расширение. Файлы с другими расширениями в диалоговых панелях не отображаются.
Список фильтров можно указать через параметр lpszFilter. Одновременно можно указать несколько фильтров. Каждый фильтр задается двумя строками - строкой, содержащей имя фильтра, и строкой, в которой перечислены соответствующие ему расширения имен файлов. Если одному типу соответствует несколько расширений, они разделяются символом ;. Строка, содержащая имя фильтра, отделяется от строки с расширениями файлов символом |. Если используется несколько фильтров, то они также отделяются друг от друга символом |. Например, в качестве строки, задающей фильтры, можно использовать строку вида:
Диалоговые панели, представленные объектами класса CFileDialog, могут иметь или не иметь родительского окна. Чтобы указать родительское окно, нужно передать конструктору CFileDialog указатель на него через параметр pParentWnd.
Методы класса CFileDialog
Создание объекта класса CFileDialog еще не вызывает отображения соответствующей диалоговой панели. Для этого необходимо воспользоваться методом DoModal класса CFileDialog.При вызове метода DoModal для ранее созданного объекта класса CFileDialog на экране открывается соответствующая диалоговая панель. После того, как пользователь завершает работу с диалоговой панелью, метод DoModal вернет значение IDOK или IDCANCEL в случае успешного завершения и нуль - в случае возникновения ошибок:
После того, как пользователь закроет диалоговую панель и метод DoModal вернет управление, можно воспользоваться другими методами класса CFileDialog , чтобы определить имена выбранных файлов:
GetPathName - Определяет полный путь файла
GetFileName - Определяет имя выбранного файла
GetFileExt - Определяет расширение имени выбранного файла
GetFileTitle - Позволяет определить заголовок выбранного файла
GetNextPathName - Если диалоговая панель позволяет выбрать сразу несколько файлов, то этот метод можно использовать для определения полного пути следующего из выбранных файлов
GetReadOnlyPref - Позволяет узнать состояние атрибута "только для чтения" (read-only) выбранного файла
GetStartPosition - Возвращает положение первого элемента из списка имен файлов
Наиболее важный метод - GetPathName. Он получает полный путь файла, выбранного из диалоговых панелей Open или Save As. Если диалоговая панель позволяет выбрать сразу несколько файлов, тогда метод GetPathName возвращает массив строк, состоящий из нескольких строк, заканчивающихся двоичным нулем. Первая из данных строк содержит путь к каталогу, в котором расположены выбранные файлы, остальные строки содержат имена выбранных файлов. Выделение строки, содержащей путь к каталогу, проблем не вызывает, а чтобы получить имена выбранных файлов, необходимо воспользоваться методами GetStartPosition и GetNextPathName.
[pagebreak]
Метод GetStartPosition возвращает значение типа POSITION. Оно предназначено для передачи методу GetNextPathName и получения очередного имени выбранного файла. Если пользователь не выбрал ни одного файла, метод GetStartPosition возвращает значение NULL. Значение, полученное этим методом, следует записать во временную переменную типа POSITION и передать ссылку на нее методу GetNextPathName. Метод GetNextPathName вернет полный путь первого из выбранных в диалоговой панели файлов и изменит значение переменной pos, переданной методу по ссылке. Новое значение pos можно использовать для последующих вызовов метода GetNextPathName и получения путей всех остальных выбранных файлов. Когда метод GetNextPathName вернет имена всех выбранных файлов, в переменную pos записывается значение NULL.
В панелях Open и Save As имеется переключатель "ReadOnly". По умолчанию этот преключатель не отображается. Если есть необходимость воспользоваться этим переключателем, то нужно отказаться от использования флага OFN_HIDEREADONLY.
Метод GetReadOnlyPref позволяет определить положение переключателя "ReadOnly". Если переключатель включен, то метод GetReadOnlyPref возвращает ненулевое значение. В противном случае GetReadOnlyPref возвращает нуль.
Панель выбора шрифта (класс CFontDialog)
Стандартная диалоговая панель Font предназначена для выбора шрифта. Эта панель отображает список шрифтов, установленных в системе, и позволяет выбрать название шрифта, его начертание и другие параметры.
Для управления диалоговой панелью Font в библиотеку классов MFC включен класс CFontDialog. Методы этого класса можно использовать для отображения панели Font и определения характеристик шрифта, выбранного пользователем. Конструктор класса CFontDialog:
Все параметры конструктора являются необязательными. Настройка стандартной панели выбора шрифта, которая выполняется конструктором класса CFontDialog по умолчанию, удовлетворяет большинству пользователей.
Параметр lplfInitial является указателем на структуру LOGFONT, описывающую логический шрифт. Если этот параметр используется, то в диалоговой панели по умолчанию будет выбран шрифт, наиболее соответствующий шрифту, описанному в структуре LOGFONT.
Параметр dwFlags задает набор флагов, управляющий различными режимами работы панели. Например, флаг CF_EFFECTS позволяет пользователю создавать подчеркнутые и перечеркнутые буквы, определять цвет букв, а флаг CF_SCREENFONTS - разрешает выбирать только экранные шрифты.
Через параметр pdcPrinter можно передать конструктору контекст отображения принтера, шрифты которого будут представлены в диалоговой панели Font. Данный параметр используется только в том случае, если в параметре dwFlags указаны флаги CF_PRINTERFONTS или CF_BOTH.
Через параметр pParentWnd можно указать родительское окно для диалоговой панели Font.
Методы класса CFontDialog
Для отображения диалоговой панели Font предназначен виртуальный метод DoModal. Если пользователь выбрал шрифт и нажал кнопку OK, метод DoModal возвращает идентификатор IDOK, если пользователь отменил выбор шрифта, метод DoModal возвращает идентификатор IDCANCEL:
Остальные методы класса предназначены для определения характеристик выбранного пользователем шрифта.
Метод GetCurrentFont позволяет сразу определить все характеристики выбранного шрифта, записав их в структуру LOGFONT.
Остальные методы класса позволяют определить только отдельные характеристики выбранного шрифта:
GetFaceName - Возвращает имя выбранного шрифта
GetStyleName - Возвращает имя стиля выбранного шрифта
GetSize - Возвращает размер выбранного шрифта
GetColor - Возвращает цвет выбранного шрифта
GetWeight - Возвращает плотность выбранного шрифта
IsStrikeOut - Определяет, является ли шрифт выделенным перечеркнутой линией
IsUnderline - Определяет, является ли шрифт выделенным подчеркиванием
IsBold - Определяет, является ли шрифт жирным
IsItalic - Определяет, является ли шрифт наклонным
Панель для вывода документов на печать (класс CPrintDialog)
Класс CPrintDialog можно использовать для создания двух видов диалоговых панелей, предназначенных для печати документов и выбора форматов документов. Кроме класса CPrintDialog можно также использовать класс CPageSetupDialog. Он позволяет создать диалоговую панель для выбора формата документа, имеющую несколько иной вид.
В приложениях, подготовленных с использованием средств MFC AppWizard и построенные по модели документ-облик, по умолчанию встроена возможность вывода редактируемого документа на печать.
В меню File такого приложения находятся три строки (Print, Print Preview и Print Setup), которые управляют процессом печати документов, подготовленных в приложении. Чтобы распечатать документ, достаточно выбрать из меню File строку Print. На экране появится диалоговая панель Print. В ней можно выбрать печатающее устройство для печати документов (группа Name), указать, будет печататься весь документ либо его часть (группа Print range), а также сколько копий документа будет напечатано (группа Copies). Также можно настроить различные характеристики печатающего устройства, если нажать кнопку Properties в группе Printer.
Если требуется определить только печатающее устройство и формат документа, из меню File следует выбрать строку Printer Setup. В группе Printer можно указать печатающее устройство и настроить его соответствующим образом. Группа Paper задает формат бумаги и режим подачи бумаги в печатающее устройство. Группа Orientation включает только один переключатель, определяющий ориентацию бумаги. Он принимает положение Portrait для вертикальной ориентации изображения на бумаге (режим "портрет") или Landscape для горизонтальной ориентации изоборажения на бумаге (режим "ландшафт").
Строка Print Preview меню File выбирается для предварительного просмотра документа перед печатью. При этом главное окно приложения изменит свой внешний вид и можно будет просмотреть, как будет выглядеть документ после печати.
Если не требуется выполнять специфическую обработку документа перед печатью, то вряд ли понадобится самостоятельное добавление программного кода, отвечающего за процесс печати. Просто следует отметить, что процедура создания панелей, связанных с печатью документа, практически ничем не отличается от создания выше описанных стандартных диалоговых панелей.
Панель для выполнения поиска и замены (класс CFindReplaceDialog)
Класс CFindReplaceDialog предназначен для управления диалоговыми окнами Find и Replace. Диалоговая панель Find используется для поиска известных строк в документе приложения, а панель Replace позволяет замену одной строки на другую.
Важным отличием диалоговых панелей Find и Replace от других стандартных диалоговых панелей является то, что они представляют собой немодальные диалоговые панели. Поэтому процесс создания этих панелей значительно отличается от процесса создания стандартных панелей для выбора цвета, шрифта и имен файла.
Очевидно, что администрирование работы сетевых служб подразумевает выполнение некоторых дополнительных процедур, направленных на обеспечение корректной работы всей системы. Вовсе не обязательно, чтобы эти функции выполнял один человек. Во многих организациях работа распределяется между несколькими администраторами. В любом случае необходим хотя бы один человек, который понимал бы все поставленные задачи и обеспечивал их выполнение другими людьми.
1. Введение
Идея создания сетей для передачи данных на большие и не очень большие расcтояния витала в воздухе с той самой поры, как человек впервые задумался над созданием телекоммуникационных устройств. В разное время и в различных ситуациях в качестве «устройств передачи информации» использовались почтовые голуби, бутылки с сообщениями «SOS» и наконец, люди — гонцы и нарочные.
Конечно, с тех пор прошло немало лет. В наши дни для того, чтобы передать от одного человека к другому приглашение на субботний футбольный матч, множество компьютеров обмениваются электронными сообщениями, используя для передачи информации массу проводов, оптических кабелей, микроволновых передатчиков и прочего.
Компьютерные сети сегодня представляют собой форму сотрудничества людей и компьютеров, обеспечивающего ускорение доставки и обработки информации.
Сеть обеспечивает обмен информацией и ее совместное использование (разделение). Компьютерные сети делятся на локальные (ЛВС, Local Area Network, LAN), представляющие собой группу близко расположенных, связанных между собой компьютеров, и распределенные (глобальные, Wide Area Networks, WAN)
Соединенные в сеть компьютеры обмениваются информацией и совместно используют периферийное оборудование и устройства хранения информации.
Очевидно, что администрирование работы сетевых служб подразумевает выполнение некоторых дополнительных процедур, направленных на обеспечение корректной работы всей системы. Вовсе не обязательно, чтобы эти функции выполнял один человек. Во многих организациях работа распределяется между несколькими администраторами. В любом случае необходим хотя бы один человек, который понимал бы все поставленные задачи и обеспечивал их выполнение другими людьми.
Основные задачи системного администратора
2.1. Подключение и удаление аппаратных средств
Любая компьютерная сеть состоит из трех основных компонентов:
1. Активное оборудование (концентраторы, коммутаторы, сетевые адаптеры и др.).
2. Коммуникационные каналы (кабели, разъемы).
3. Сетевая операционная система.
Естественно, все эти компоненты должны работать согласованно. Для корректной работы устройств в сети требуется их правильно инсталлировать и установить рабочие параметры.
В случае приобретения новых аппаратных средств или подключения уже имеющихся аппаратных средств к другой машине систему нужно сконфигурировать таким образом, чтобы она распознала и использовала эти средства. Изменение конфигурации может быть как простой задачей (например, подключение принтера), так и более сложной (подключение нового диска).
Для того чтобы принять правильное решение о модернизации системы, как системному администратору необходимо проанализировать производительность системы. Конечными узлами сети являются компьютеры, и от их производительности и надежности во многом зависят характеристики всей сети в целом. Именно компьютеры являются теми устройствами в сети, которые реализуют протоколы всех уровней, начиная от физического и канального (сетевой адаптер и драйвер) и заканчивая прикладным уровнем (приложения и сетевые службы операционной системы). Следовательно, оптимизация компьютера включает две достаточно независимые задачи:
* Во-первых, выбор таких параметров конфигурации программного и аппаратного обеспечения, которые обеспечивали бы оптимальные показатели производительности и надежности этого компьютера как отдельного элемента сети. Такими параметрами являются, например, тип используемого сетевого адаптера, размер файлового кэша, влияющий на скорость доступа к данным на сервере, производительность дисков и дискового контроллера, быстродействие центрального процессора и т.п.
* Во-вторых, выбор таких параметров протоколов, установленных в данном компьютере, которые гарантировали бы эффективную и надежную работу коммуникационных средств сети. Поскольку компьютеры порождают большую часть кадров и пакетов, циркулирующих в сети, то многие важные параметры протоколов формируются программным обеспечением компьютеров, например начальное значение поля TTL (Time-to-Live) протокола IP, размер окна неподтвержденных пакетов, размеры используемых кадров.
Тем не менее выполнение вычислительной задачи может потребовать участия в работе нескольких устройств. Каждое устройство использует определенные ресурсы для выполнения своей части работы. Плохая производительность обычно является следствием того, что одно из устройств требует намного больше ресурсов, чем остальные. Чтобы исправить положение, вы должны выявить устройство, которое расходует максимальную часть времени при выполнении задачи. Такое устройство называется узким местом (bottleneck). Например, если на выполнение задачи требуется 3 секунды и 1 секунда тратится на выполнение программы процессором, а 2 секунды — на чтение данных с диска, то диск является узким местом.
Определение узкого места — критический этап в процессе улучшения производительности. Замена процессора в предыдущем примере на другой, в два раза более быстродействующий процессор, уменьшит общее время выполнения задачи только до 2,5 секунд, но принципиально исправить ситуацию не сможет, поскольку узкое место устранено не будет. Если же мы приобретем диск и контроллер диска, которые будут в два раза быстрее прежних, то общее время уменьшится до 2 секунд.
Если вы всерьез недовольны быстродействием системы, исправить положение можно следующими способами:
* обеспечив систему достаточным ресурсом памяти. Объем памяти — один из основных факторов, влияющих на производительность;
* устранив некоторые проблемы, созданные как пользователями (одновременный запуск слишком большого количества заданий, неэффективные методы программирования, выполнение заданий с избыточным приоритетом, а также объемных заданий в часы пик), так и самой системой (квоты, учет времени центрального процессора);
* организовав жесткие диски и файловые системы так, чтобы сбалансировать нагрузку на них и таким образом максимально повысить пропускную способность средств ввода-вывода;
* осуществляя текущий контроль сети, чтобы избежать ее перегрузки и добиться низкого коэффициента ошибок. Сети UNIX/Linux можно контролировать с помощью программы netstat. Если речь идет об сетевых операционных системах семейства Windows, то вам поможет утилита PerformanceMonitor.
* откорректировав методику компоновки файловых систем в расчете на отдельные диски;
* выявив ситуации, когда система совершенно не соответствует предъявляемым к ней требованиям.
Эти меры перечислены в порядке убывания эффективности.
2.2. Резервное копирование
Процедура резервного копирования довольно утомительна и отнимает много времени, но выполнять ее необходимо. Ее можно автоматизировать, но системный администратор обязан убедиться в том, что резервное копирование выполнено правильно и в соответствии с графиком. Практически любая сетевая операционная система содержит механизмы для создания резервных копий или зеркального ведения дисков. Например, в UNIX-системах самое распространенное средство создания резервных копий и восстановления данных — команды dump и restore. В большинстве случаев информация, хранящаяся в компьютерах, стоит дороже самих компьютеров. Кроме того, ее гораздо труднее восстановить.
Существуют сотни весьма изобретательных способов потерять информацию. Ошибки в программном обеспечении зачастую портят файлы данных. Пользователи случайно удаляют то, над чем работали всю жизнь. Хакеры и раздраженные служащие стирают данные целыми дисками. Проблемы c аппаратными средствами и стихийные бедствия выводят их строя целые машинные залы. Поэтому ни одну систему нельзя эксплуатировать без резервных копий.
При правильном подходе создание резервных копий данных позволяет администратору восстанавливать файловую систему (или любую ее часть) в том состоянии, в котором она находилась на момент последнего снятия резервных копий. Резервное копирование должно производиться тщательно и строго по графику.
[pagebreak]
Поскольку многие виды неисправностей способны одновременно выводить из строя сразу несколько аппаратных средств, резервные копии следует записывать на съемные носители, CD-диски, ZIP-дискеты и т.д. Например, копирование содержимого одного диска на другой, конечно, лучше, чем ничего, но оно обеспечивает весьма незначительный уровень защиты от отказа контроллера.
2.3. Инсталляция новых программных средств
После приобретения нового программного обеспечения его нужно инсталлировать и протестировать. Если программы работают нормально, необходимо сообщить пользователям об их наличии и местонахождении.
Как правило, самой ответственной и самой сложной задачей системного администратора являются инсталляция и конфигурирование операционной системы. От правильности ваших действий зависит, будете ли вы играть в Quake и просматривать любимые сайты или вам придется бегать между пользователями системы и заниматься рутинной работой.
Во многих современных операционных системах разработчики идут по пути исключения многих непродуктивных параметров системы, с помощью которых администраторы способны влиять на производительность ОС. Вместо этого в операционную систему встраиваются адаптивные алгоритмы, которые определяют рациональные параметры системы во время ее работы. С помощью этих алгоритмов ОС может динамически оптимизировать свои параметры в отношении многих известных сетевых проблем, автоматически перераспределяя свои ресурсы и не привлекая к решению администратора.
Существуют различные критерии оптимизации производительности операционной системы. К числу наиболее распространенных критериев относятся:
* Наибольшая скорость выполнения определенного процесса.
* Максимальное число задач, выполняемых процессором за единицу времени. Эта характеристика также называется пропускной способностью компьютера. Она определяет качество разделения ресурсов между несколькими одновременно выполняемыми процессами.
* Освобождение максимального количества оперативной памяти для самых приоритетных процессов, например процесса, выполняющего функции файлового сервера, или же для увеличения размера файлового кэша.
* Освобождение наибольшего количества дисковой памяти.
Обычно при оптимизации производительности ОС администратор начинает этот процесс при заданном наборе ресурсов. В общем случае одновременно улучшить все критерии производительности невозможно. Например, если целью является увеличение доступной оперативной памяти, то администратор может увеличить размер страничного файла, но это приведет к уменьшению доступного дискового пространства.
После инсталляции и оптимальной настройки операционной системы начинается практически бесконечный процесс установки программного обеспечения. И здесь на первый план выходят проблемы совместимости различных программ, а если вы устанавливаете серверное программное обеспечение, — то еще и о безопасности.
Если вы начинающий системный администратор — устанавливайте на свой сервер более простые программы — в них меньше ошибок. В UNIX — избавьтесь от sendmail, поставьте другой SMTP-демон, внимательно анализируйте исходный код всех устанавливаемых на сервер программ, особенно если имя производителя вам ничего не говорит. В Windows NT не стоит использовать монстры типа Microsoft Exchange Server, и желательно избегать установки на сервер всевозможных freeware-программок.
2.4. Мониторинг системы
Существует великое множество обязательных для исполнения ежедневных операций. Например, проверка правильности функционирования электронной почты и телеконференций, просмотр регистрационных файлов на предмет наличия ранних признаков неисправностей, контроль за подключением локальных сетей и за наличием системных ресурсов.
Все многообразие средств, применяемых для мониторинга и анализа вычислительных сетей, можно разделить на несколько крупных классов:
Системы управления сетью (NetworkManagementSystems) — централизованные программные системы, которые собирают данные о состоянии узлов и коммуникационных устройств сети, а также данные о трафике, циркулирующем в сети. Эти системы не только осуществляют мониторинг и анализ сети, но и выполняют в автоматическом или полуавтоматическом режиме действия по управлению сетью — включение и отключение портов устройств, изменение параметров мостов адресных таблиц мостов, коммутаторов и маршрутизаторов и т.п. Примерами систем управления могут служить популярные системы HPOpenView, SunNetManager, IBMNetView.
Средства управления системой (SystemManagement). Средства управления системой часто выполняют функции, аналогичные функциям систем управления, но по отношению к другим объектам. В первом случае объектами управления являются программное и аппаратное обеспечение компьютеров сети, а во втором — коммуникационное оборудование. Вместе с тем некоторые функции этих двух видов систем управления могут дублироваться, например средства управления системой могут выполнять простейший анализ сетевого трафика.
Встроенные системы диагностики и управления (Embeddedsystems). Эти системы выполняются в виде программно-аппаратных модулей, устанавливаемых в коммуникационное оборудование, а также в виде программных модулей, встроенных в операционные системы. Они выполняют функции диагностики и управления единственным устройством, и в этом их основное отличие от централизованных систем управления. Примером средств этого класса может служить модуль управления концентратором Distrebuted 5000, реализующий функции автосегментации портов при обнаружении неисправностей, приписывания портов внутренним сегментам концентратора, и ряд других. Как правило, встроенные модули управления «по совместительству» выполняют роль SNMP-агентов, поставляющих данные о состоянии устройства для систем управления.
Анализаторы протоколов (Protocolanalyzers). Представляют собой программные или аппаратно-программные системы, которые ограничиваются, в отличие от систем управления, лишь функциями мониторинга и анализа трафика в сетях. Хороший анализатор протоколов может захватывать и декодировать пакеты большого количества протоколов, применяемых в сетях, — обычно несколько десятков. Анализаторы протоколов позволяют установить некоторые логические условия для захвата отдельных пакетов и выполняют полное декодирование захваченных пакетов, то есть показывают в удобной для специалиста форме вложенность друг в друга пакетов протоколов разных уровней с расшифровкой содержания отдельных полей каждого пакета.
Оборудование для диагностики и сертификации кабельных систем. Условно это оборудование можно поделить на четыре основные группы: сетевые мониторы, приборы для сертификации кабельных систем, кабельные сканеры и тестеры (мультиметры).
Экспертные системы. Этот вид систем аккумулирует человеческие знания о выявлении причин аномальной работы сетей и возможных способах приведения сети в работоспособное состояние. Экспертные системы часто реализуются в виде отдельных подсистем различных средств мониторинга и анализа сетей: систем управления сетями, анализаторов протоколов, сетевых анализаторов. Простейшим вариантом экспертной системы является контекстно-зависимая help-система. Более сложные экспертные системы представляют собой так называемые базы знаний, обладающие элементами искусственного интеллекта. Примером такой системы является экспертная система, встроенная в систему управления Spectrum компании Cabletron.
Многофункциональные устройства анализа и диагностики. В последние годы в связи с повсеместным распространением локальных сетей возникла необходимость разработки недорогих портативных приборов, совмещающих функции нескольких устройств: анализаторов протоколов, кабельных сканеров и даже ряд возможностей ПО сетевого управления.
Однако в отдельной сети Ethernet формальные процедуры управления сетью внедрять, как правило, не стоит. Достаточно провести тщательное тестирование сети после инсталляции и время от времени проверять уровень нагрузки. Сломается — почините.
Если у вас задействованы глобальная сеть или сложные ЛВС, рассмотрите вопрос приобретения выделенных станций управления сетью со специальным программным обеспечением.
2.5. Поиск неисправностей
Операционные системы и аппаратные средства, на которых они работают, время от времени выходят из строя. Задача администратора — диагностировать сбои в системе и в случае необходимости вызвать специалистов. Как правило, найти неисправность бывает намного сложнее, чем устранить ее.
Если вы обнаружили, что какой-то из узлов сети работает некорректно или вовсе отказывается работать, вам стоит обратить внимание на светодиодные индикаторы при включенном концентраторе и компьютерах, соединенных кабелями. Если они не горят, то очень вероятно, что причина заключается в следующем:
* Адаптеры некорректно сконфигурированы. Чаще всего при инсталляции сети проблем не возникает до тех пор, пока не будут подключены кабели, а иногда и до попытки получить доступ к сетевым ресурсам. Обычно источником проблемы является конфликт IRQ (два устройства используют одно прерывание). Такие ситуации не всегда легко обнаружить программными средствами, поэтому внимательно проверьте установки прерываний для всех устройств компьютера (звуковые платы, параллельные и последовательные порты, приводы CD-ROM, другие сетевые адаптеры и т.п). Иногда в определении доступного прерывания может помочь программа конфигурирования и/или диагностики адаптера. В некоторых случаях проблемы возникают при использовании на современных компьютерах с шиной PCI для сетевого адаптера IRQ 15, даже если это прерывание не используется.
* Адаптер не отвечает на запросы. Если после включения компьютера программа диагностики не может обнаружить адаптер или детектирует сбой при внутреннем тесте, попробуйте заменить адаптер или обратитесь к его производителям.
* Если проверка адаптеров и кабелей доказала их работоспособность, причиной возникновения проблем могут быть некорректные параметры драйвера сетевого адаптера. Проверьте корректность параметров и сам драйвер (он должен быть предназначен для используемого вами адаптера). Дополнительную информацию можно найти в описании адаптера.
* Концентраторы редко являются источником проблем, однако одной из наиболее распространенных проблем такого рода является отсутствие питания. Иногда неисправный сетевой адаптер может нарушить работу порта в концентраторе. Для проверки адаптера пользуйтесь диагностическими программами из комплекта адаптера.
[pagebreak]
2.6. Ведение локальной документации
Настраивая конфигурацию под конкретные требования, вы вскоре обнаружите, что она значительно отличается от той, что описана в документации (базовой конфигурации). Скорее всего, вы не вечно будете занимать место системного администратора и рано или поздно на ваше место придет другой человек. Известно, что бывших супругов и бывших системных администраторов редко вспоминают добрым словом. Но, чтобы уменьшить количество «камней в ваш огород» и, что важнее, оградить себя от звонков и вопросов с места бывшей работы, системный администратор должен документировать все инсталлируемые программные средства, не входящие в стандартный пакет поставки, документировать разводку кабелей, вести записи по обслуживанию всех аппаратных средств, регистрировать состояние резервных копий и документировать правила работы с системой.
Также следует учитывать, что система учета, ядро, различные утилиты — все эти программы выдают данные, которые регистрируются и в конце концов попадают на ваши диски. Эти данные тоже являются локальной документацией, характеризующей работу конкретной системы. Однако срок полезной службы большинства данных ограничен, поэтому их нужно обобщать, упаковывать и наконец, выбрасывать.
Процедура ведения файлов регистрации в любой операционной системе представляет собой набор процедур, которые повторяются через определенное время в одном и том же порядке. Следовательно, ее необходимо автоматизировать.
В UNIX-системах для этой цели используется процесс cron. А программа syslog может удачно применяется в качестве полной системы регистрации. Она отличается высокой гибкостью и позволяет сортировать сообщения системы по источникам и степени важности, а затем направлять их в разные пункты назначения: в файлы регистрации, на терминалы пользователей и даже на другие машины. Одной из самых ценных особенностей этой системы является ее способность централизовать регистрацию для сети.
Администраторы Windows NT могут для тех же целей использовать утилиту PerformanceMonitor, разработанную для фиксации активности компьютера в реальном масштабе времени. С ее помощью можно определить большую часть узких мест, снижающих производительность. Эта утилита включена в Windows NT Server и Windows NT Workstation.
PerformanceMonitor основан на ряде счетчиков, которые фиксируют такие характеристики, как число процессов, ожидающих завершения операции с диском, число сетевых пакетов, передаваемых в единицу времени, процент использования процессора и другие. PerformanceMonitor генерирует полезную информацию посредством следующих действий:
* наблюдения за производительностью в реальном времени и в исторической перспективе;
* определения тенденций во времени;
* определения узких мест;
* отслеживания последствий изменения конфигурации системы;
* наблюдения за локальным или удаленными компьютерами;
* предупреждения администратора о событиях, связанных с превышением некоторыми характеристиками заданных порогов.
2.7 Контроль защиты
Основной особенностью любой сетевой системы является то, что ее компоненты распределены в пространстве, а связь между ними осуществляется физически — при помощи сетевых соединений (коаксиальный кабель, витая пара, оптоволокно и т.д.) и программно — при помощи механизма сообщений. К сетевым системам наряду с обычными (локальными) атаками, осуществляемыми в пределах одной операционной системы, применим специфический вид атак, обусловленный распределенностью ресурсов и информации в пространстве, — так называемые сетевые (или удаленные) атаки. Они характеризуются тем, что, во-первых, злоумышленник может находиться за тысячи километров от атакуемого объекта, а во-вторых, нападению может подвергнуться не конкретный компьютер, а информация, передающаяся по сетевым соединениям.
Системный администратор должен реализовывать стратегию защиты и периодически проверять, не нарушена ли защита системы.
Естественно, абсолютная защита сети невозможна, однако задача каждого администратора — сделать все возможное для максимального ее улучшения. При построении системы защиты разумно придерживаться следующих принципов:
* Актуальность. Защищаться следует от реальных атак, а не от фантастических или же архаичных.
* Разумность затрат. Поскольку 100% защиты вы все равно не обеспечите, необходимо найти тот рубеж, за которым дальнейшие траты на повышение безопасности превысят стоимость той информации, которую может украсть злоумышленник.
Конечно же, действия, которые вы должны предпринять для защиты своего сервера очень зависят от того, какую операционную систему вы используете. Однако есть ряд простых правил, которые пригодятся любому системному администратору.
* Внимательно прочитайте руководство по администрированию системы, вы наверняка найдете там полезные советы, которыми захотите воспользоваться.
* Запустите программу автоматизированного контроля вашего хоста — типа Internet Scanner. Система Internet Scanner может быть запущена на одной из платформ (Windows NT, Windows 2000, HP/UX, AIX, Linux, Sun OS, Solaris). Используется она для анализа защищенности систем.
* Загляните на серверы CERT (http://www.cert.org/) или CIAC (http://ciac.llnl.gov/) и внимательно прочитайте относящиеся к вашей ОС бюллетени за последнее время. Установите все рекомендуемые заплатки и сконфигурируйте систему, как полагается.
* Правильно настройте (или установите) межсетевой экран. Поставьте монитор всех входящих соединений (например, tcp_wrapper).
* Запустите последний взломщик паролей. Здесь у вас большое преимущество перед хакерами — у вас уже есть файл с хэшированными паролями.
* Проверьте настройки основных Интернет-служб (http, ftp). Максимально используйте анонимный доступ, чтобы предотвратить передачу паролей по сети в открытом виде. При необходимости разграничения доступа используйте стойкие протоколы типа SSL.
* У всех остальных сетевых служб также по возможности используйте аутентификацию, не включающую передачу пароля открытым текстом.
* Выбросьте некоторые малоиспользуемые службы. Особенно это касается администраторов UNIX-серверов: давно не используемый, но существующий на вашем сервере сервис типа finger, talk, rpc может стать той самой «дырой» в системе безопасности, через которую сможет проникнуть (или уже проник) хакер.
* Поставьте proxy-сервер для дополнительной аутентификации извне, а также для скрытия адресов и топологии внутренней подсети.
* Поставьте защищенную версию UNIX или другой операционной системы.
2.8. Подключение и удаление пользователей. Оказание им помощи
Создание бюджетов для новых пользователей и удаление бюджетов тех пользователей, которые уже не работают, — обязанность системного администратора. Процесс включения и удаления пользователей можно автоматизировать, но некоторые решения, от которых зависит включение нового пользователя, должен принимать администратор.
Очень часто сотрудники предприятия оказываются самым слабым звеном в системе его безопасности, поэтому системному администратору следует уделять больше внимания работе с пользователями системы. Иначе простой листочек бумаги с паролем, лежащий на рабочем месте забывчивой сотрудницы, сделает бесполезной выверенную настройку вашего межсетевого экрана.
Для усиления безопасности компьютерных систем компании разумными могут считаться следующие шаги:
* Привлечение внимания людей к вопросам безопасности.
* Осознание сотрудниками всей серьезности проблемы и принятие в организации политики безопасности.
* Изучение и внедрение необходимых методов и действий для повышения защиты информационного обеспечения.
Если вы работаете в крупной (более 100 человек) организации, то для определения уровня ее защищенности можно провести тест на проникновение. Этот метод позволяет выявить недостатки безопасности с точки зрения постороннего человека. Он позволяет протестировать схему действий, которая раскрывает и предотвращает внутренние и внешние попытки проникновения и сообщает о них.
Тест должен разрешить два основных вопроса:
* Все ли пункты политики безопасности достигают своих целей и используются так, как было задумано.
* Существует ли что-либо, не отраженное в политике безопасности, что может быть использовано для достижения злоумышленником своих целей.
Все попытки должны контролироваться обеими сторонами — как взломщиком, так и «клиентом». Это поможет протестировать систему гораздо более эффективно. Необходимо также свести к минимуму количество людей, знающих о проведении эксперимента.
Требуется создать и разработать различные варианты политики безопасности, определить правила корректного использования телефонов компьютеров и другой техники. Необходимо учитывать и неосведомленность в области безопасности, поскольку любые средства технического контроля могут быть использованы ненадлежащим образом. В итоге тестирование системы безопасности должно обеспечить вам защиту от проникновения.
3. Почему давят на системного администратора
Сети имеют тенденцию разрастаться, следовательно, вы будете вынуждены тратить все больше и больше времени на выполнение функций администратора. Вскоре окажется, что вы — единственный человек в своей организации, который знает, как решить целый ряд важнейших проблем.
Поскольку круг обязанностей системного администратора четко ограничить нельзя, от вас, скорее всего, потребуют, чтобы вы были не только штатным администратором, но и штатным инженером, писателем, а также секретарем.
Вместо этого мы предлагаем вам следующее: ведите работу на должном уровне, параллельно регистрируя время, затрачиваемое на системное администрирование. Собирайте доказательства, которые могут вам пригодиться, когда вы попросите руководство взять в штат еще одного администратора или освободить вас от «лишних» обязанностей.
С другой стороны, вы можете обнаружить, что системное администрирование вам нравится. В этом случае проблем с поиском работы у вас не будет.
21 – ФТП пртокол, может использоваться если открыт анонимный доступ или стоит кривая версия софта (WU 2.6.0 (1) War FTPd и тд)
23 – Телнет протокол. Используеться для входа в систему с удалённого компьютера. Так же может показать версию ОС.
25 – Протокол для отправки почты, может использоваться в основном когда стоит кривая версия sendmail (самое распространённое) так же имеют место команды EXPN и VRFY которые могут дать взломщику некторую дополнительную информацию.
53 – Показывает установлен ли DNS. Может использоваться для так называемого DNS Spoofing. Т.е. подменой объекта ДНС.
79 – Это Finger. При должном везении и ошибках в программном обеспечении можно получить список всех пользователей залогиненых в систему.
80 – WWW Сервер. показывает присутствует ли WWW сервер на машине. Использовать можно для проверки на ЦГИ скрипты, так же показывает версию и название программного обеспечения установленного на машине.
110 – POP протокол для просмотра почтовых сообщений. Может использоваться при кривой версии ПО как например всем известный QPOP.
111 – Sun RPC. Может использоваться при наличии ответа на команду rpcinfo -d |grep bind - ypbind tcp и тд.
119 – NNTP. Проткол для чтения и отправки новостей в новостные группы, используеться так же при наличии ошибок в ПО
139 – NETBIOS. Пртокол для работы с локальной сетью. Может использовать для сканирования на расшаренные ресурсы и получение информации о сети.
443 – HTTPS, SSL. Тоже самое что и HTTP но использует безопасный протокол.
513 – rlogin. Если у хоста есть запись в файле .rlogin то вы коннектитесь на удалённый хост без использования логина и пароля.
Описание всех портов
1=TCP-MUX - TCP Port Service Multiplexer
2=COMPRESSNET - Management Utility
3=COMPRESSNET - Compression Process
5=RJE - Remote Job Entry
7=ECHO - Echo
9=DISCARD - Discard
11=SYSSTAT - System Status
13=DAYTIME - Daytime
15=NETSTAT - Network Status
17=QOTD - Quote of the Day
18=MSP - Message Send Protocol
19=CHARGEN - Character Generator
20=FTP-DATA - File Transfer Protocol [Default Data]
21=FTP - File Transfer Protocol [Control]
22=SSH - SSH (Secure Shell) Remote Login Protocol
23=TELNET - Telnet
24=PMS - Private Mail System
25=SMTP - Simple Mail Transfer Protocol
27=NSW-FE - NSW User System FE
29=MSG-ICP - Messege ICP
31=MSG-AUTH - Messege Authentication
33=DSP - Display Support Protocol
35=PPS - Private Printer Server
37=TIME - Time
38=RAP - Route Access Protocol
39=RLP - Resource Location Protocol
41=GRAPHICS - Graphics
42=NAMESERVER - Host Name Server
43=WHOIS - Who Is
44=MPM-FLAGS - MPM FLAGS Protocol
45=MPM - Message Processing Module [recv]
46=MPM-SND - MPM [default send]
47=NI-FTP - NI FTP (File Transfer Protocol)
48=AUDITD - Digital Audit Daemon
49=BBN-LOGIN - Login Host Protocol (TACACS)
50=RE-MAIL-CK - Remote Mail Checking Protocol
51=LA-MAINT - IMP Logical Address Maintenance
52=XNS-TIME - XNS Time Protocol
53=DOMAIN - Domain Name Server
54=XNS-CH - XNS Clearinghouse
55=ISI-GL - ISI Graphics Language
56=XNS-AUTH - XNS Authentication
57=MTP - Private terminal access
58=XNS-MAIL - XNS Mail
59=PFS - Private File System
60=Unassigned
61=NI-MAIL - NI MAIL
62=ACAS - ACA Services
63=WHOIS++ - whois++
64=COVIA - Communications Integrator (CI)
65=TACACS-DS - TACACS-Database Service
66=SQL*NET - Oracle SQL*NET
67=BOOTPS - Bootstrap Protocol Server
68=BOOTPC - Bootstrap Protocol Client
69=TFTP - Trivial File Transfer Protocol
70=GOPHER - Gopher
71=NETRJS-1 - Remote Job Service
72=NETRJS-2 - Remote Job Service
73=NETRJS-3 - Remote Job Service
74=NETRJS-4 - Remote Job Service
75=PDOS - Private dial out service
76=DEOS - Distributed External Object Store
77=RJE - Private RJE (Remote Job Entry) service
78=VETTCP - vettcp
79=FINGER - Finger
80=WWW-HTTP - World Wide Web HTTP (Hyper Text Transfer Protocol)
81=HOSTS2-NS - HOSTS2 Name Server
82=XFER - XFER Utility
83=MIT-ML-DEV - MIT ML Device
84=CTF - Common Trace Facility
85=MIT-ML-DEV - MIT ML Device
86=MFCOBOL - Micro Focus Cobol
87=LINK - Private terminal link
88=KERBEROS - Kerberos
89=SU-MIT-TG - SU/MIT Telnet Gateway
90=DNSIX - DNSIX Securit Attribute Token Map
91=MIT-DOV - MIT Dover Spooler
92=NPP - Network Printing Protocol
93=DCP - Device Control Protocol
94=OBJCALL - Tivoli Object Dispatcher
95=SUPDUP - SUPDUP
96=DIXIE - DIXIE Protocol Specification
97=SWIFT-RVF - Swift Remote Virtural File Protocol
98=TACNEWS - TAC News
99=METAGRAM - Metagram Relay
100=NEWACCT - [unauthorized use]
101=HOSTNAMES - NIC Host Name Server
102=ISO-TSAP - ISO-TSAP Class 0
103=X400 - x400
104=X400-SND - x400-snd
105=CSNET-NS - Mailbox Name Nameserver
106=3COM-TSMUX - 3COM-TSMUX
107=RTELNET - Remote Telnet Service
108=SNAGAS - SNA Gateway Access Server
109=POP - Post Office Protocol - Version 2
110=POP3 - Post Office Protocol - Version 3
111=SUNRPC - SUN Remote Procedure Call
112=MCIDAS - McIDAS Data Transmission Protocol
113=IDENT - Authentication Service
114=AUDIONEWS - Audio News Multicast
115=SFTP - Simple File Transfer Protocol
116=ANSANOTIFY - ANSA REX Notify
117=UUCP-PATH - UUCP Path Service
118=SQLSERV - SQL Services
119=NNTP - Network News Transfer Protocol
120=CFDPTKT - CFDPTKT
121=ERPC - Encore Expedited Remote Pro.Call
122=SMAKYNET - SMAKYNET
123=NTP - Network Time Protocol
124=ANSATRADER - ANSA REX Trader
125=LOCUS-MAP - Locus PC-Interface Net Map Ser
126=UNITARY - Unisys Unitary Login
127=LOCUS-CON - Locus PC-Interface Conn Server
128=GSS-XLICEN - GSS X License Verification
129=PWDGEN - Password Generator Protocol
130=CISCO-FNA - cisco FNATIVE
131=CISCO-TNA - cisco TNATIVE
132=CISCO-SYS - cisco SYSMAINT
133=STATSRV - Statistics Service
134=INGRES-NET - INGRES-NET Service
135=RPC-LOCATOR - RPC (Remote Procedure Call) Location Service
136=PROFILE - PROFILE Naming System
137=NETBIOS-NS - NETBIOS Name Service
138=NETBIOS-DGM - NETBIOS Datagram Service
139=NETBIOS-SSN - NETBIOS Session Service
140=EMFIS-DATA - EMFIS Data Service
141=EMFIS-CNTL - EMFIS Control Service
142=BL-IDM - Britton-Lee IDM
143=IMAP - Interim Mail Access Protocol v2
144=NEWS - NewS
145=UAAC - UAAC Protocol
146=ISO-TP0 - ISO-IP0
147=ISO-IP - ISO-IP
148=CRONUS - CRONUS-SUPPORT
149=AED-512 - AED 512 Emulation Service
150=SQL-NET - SQL-NET
151=HEMS - HEMS
152=BFTP - Background File Transfer Program
153=SGMP - SGMP
154=NETSC-PROD - NETSC
155=NETSC-DEV - NETSC
156=SQLSRV - SQL Service
157=KNET-CMP - KNET/VM Command/Message Protocol
158=PCMAIL-SRV - PCMail Server
159=NSS-ROUTING - NSS-Routing
160=SGMP-TRAPS - SGMP-TRAPS
161=SNMP - SNMP (Simple Network Management Protocol)
162=SNMPTRAP - SNMPTRAP (Simple Network Management Protocol)
163=CMIP-MAN - CMIP/TCP Manager
164=CMIP-AGENT - CMIP/TCP Agent
165=XNS-COURIER - Xerox
166=S-NET - Sirius Systems
167=NAMP - NAMP
168=RSVD - RSVD
169=SEND - SEND
170=PRINT-SRV - Network PostScript
171=MULTIPLEX - Network Innovations Multiplex
172=CL/1 - Network Innovations CL/1
173=XYPLEX-MUX - Xyplex
174=MAILQ - MAILQ
175=VMNET - VMNET
176=GENRAD-MUX - GENRAD-MUX
177=XDMCP - X Display Manager Control Protocol
178=NEXTSTEP - NextStep Window Server
179=BGP - Border Gateway Protocol
180=RIS - Intergraph
181=UNIFY - Unify
182=AUDIT - Unisys Audit SITP
183=OCBINDER - OCBinder
184=OCSERVER - OCServer
185=REMOTE-KIS - Remote-KIS
186=KIS - KIS Protocol
187=ACI - Application Communication Interface
188=MUMPS - Plus Five's MUMPS
189=QFT - Queued File Transport
190=GACP - Gateway Access Control Protocol
191=PROSPERO - Prospero Directory Service
192=OSU-NMS - OSU Network Monitoring System
193=SRMP - Spider Remote Monitoring Protocol
194=IRC - Internet Relay Chat Protocol
195=DN6-NLM-AUD - DNSIX Network Level Module Audit
196=DN6-SMM-RED - DNSIX Session Mgt Module Audit Redir
197=DLS - Directory Location Service
198=DLS-MON - Directory Location Service Monitor
199=SMUX - SMUX
200=SRC - IBM System Resource Controller
201=AT-RTMP - AppleTalk Routing Maintenance
202=AT-NBP - AppleTalk Name Binding
203=AT-3 - AppleTalk Unused
204=AT-ECHO - AppleTalk Echo
205=AT-5 - AppleTalk Unused
206=AT-ZIS - AppleTalk Zone Information
207=AT-7 - AppleTalk Unused
208=AT-8 - AppleTalk Unused
209=QMTP - The Quick Mail Transfer Protocol
210=Z39.50 - ANSI Z39.50
211=914C/G - Texas Instruments 914C/G Terminal
212=ANET - ATEXSSTR
213=IPX - IPX
214=VMPWSCS - VM PWSCS
215=SOFTPC - Insignia Solutions
216=CAILIC - Computer Associates Int'l License Server
217=DBASE - dBASE Unix
218=MPP - Netix Message Posting Protocol
219=UARPS - Unisys ARPs
220=IMAP3 - Interactive Mail Access Protocol v3
221=FLN-SPX - Berkeley rlogind with SPX auth
222=RSH-SPX - Berkeley rshd with SPX auth
223=CDC - Certificate Distribution Center
242=DIRECT -
243=SUR-MEAS - Survey Measurement
244=DAYNA -
245=LINK - LINK
246=DSP3270 - Display Systems Protocol
247=SUBNTBCST_TFTP -
248=BHFHS -
256=RAP -
257=SET - Secure Electronic Transaction
258=YAK-CHAT - Yak Winsock Personal Chat
259=ESRO-GEN - Efficient Short Remote Operations
260=OPENPORT -
261=NSIIOPS - IIOP Name Service Over TLS/SSL
262=ARCISDMS -
263=HDAP -
264=BGMP -
280=HTTP-MGMT -
281=PERSONAL-LINK -
282=CABLEPORT-AX - Cable Port A/X
308=NOVASTORBAKCUP - Novastor Backup
309=ENTRUSTTIME -
310=BHMDS -
311=ASIP-WEBADMIN - Appleshare IP Webadmin
312=VSLMP -
313=MAGENTA-LOGIC -
314=OPALIS-ROBOT -
315=DPSI -
316=DECAUTH -
317=ZANNET -
321=PIP -
344=PDAP - Prospero Data Access Protocol
345=PAWSERV - Perf Analysis Workbench
346=ZSERV - Zebra server
347=FATSERV - Fatmen Server
348=CSI-SGWP - Cabletron Management Protocol
349=MFTP -
350=MATIP-TYPE-A - MATIP Type A
351=MATIP-TYPE-B - MATIP Type B or bhoetty
352=DTAG-STE-SB - DTAG, or bhoedap4
353=NDSAUTH -
354=BH611 -
355=DATEX-ASN -
356=CLOANTO-NET-1 - Cloanto Net 1
357=BHEVENT -
358=SHRINKWRAP -
359=TENEBRIS_NTS - Tenebris Network Trace Service
360=SCOI2ODIALOG -
361=SEMANTIX -
362=SRSSEND - SRS Send
363=RSVP_TUNNEL -
364=AURORA-CMGR -
365=DTK - Deception Tool Kit
366=ODMR -
367=MORTGAGEWARE -
368=QBIKGDP -
369=RPC2PORTMAP -
370=CODAAUTH2 -
371=CLEARCASE - Clearcase
372=ULISTSERV - Unix Listserv
373=LEGENT-1 - Legent Corporation
374=LEGENT-2 - Legent Corporation
375=HASSLE - Hassle
376=NIP - Amiga Envoy Network Inquiry Proto
377=TNETOS - NEC Corporation
378=DSETOS - NEC Corporation
379=IS99C - TIA/EIA/IS-99 modem client
380=IS99S - TIA/EIA/IS-99 modem server
381=HP-COLLECTOR - HP Performance Data Collector
382=HP-MANAGED-NODE - HP Performance Data Managed Node
383=HP-ALARM-MGR - HP Performance Data Alarm Manager
384=ARNS - A Remote Network Server System
385=IBM-APP - IBM Application 386=ASA - ASA Message Router Object Def.
387=AURP - Appletalk Update-Based Routing Pro.
388=UNIDATA-LDM - Unidata LDM Version 4
389=LDAP - Lightweight Directory Access Protocol
390=UIS - UIS
391=SYNOTICS-RELAY - SynOptics SNMP Relay Port
392=SYNOTICS-BROKER - SynOptics Port Broker Port
393=DIS - Data Interpretation System
394=EMBL-NDT - EMBL Nucleic Data Transfer
395=NETCP - NETscout Control Protocol
396=NETWARE-IP - Novell Netware over IP
397=MPTN - Multi Protocol Trans. Net.
398=KRYPTOLAN - Kryptolan
399=ISO-TSAP-C2 - ISO Transport Class 2 Non-Control over TCP
400=WORK-SOL - Workstation Solutions
401=UPS - Uninterruptible Power Supply
402=GENIE - Genie Protocol
403=DECAP - decap
404=NCED - nced
405=NCLD - ncld
406=IMSP - Interactive Mail Support Protocol
407=TIMBUKTU - Timbuktu
408=PRM-SM - Prospero Resource Manager Sys. Man.
409=PRM-NM - Prospero Resource Manager Node Man.
410=DECLADEBUG - DECLadebug Remote Debug Protocol
411=RMT - Remote MT Protocol
412=SYNOPTICS-TRAP - Trap Convention Port
413=SMSP - SMSP
414=INFOSEEK - InfoSeek
415=BNET - BNet
416=SILVERPLATTER - Silverplatter
417=ONMUX - Onmux
418=HYPER-G - Hyper-G
419=ARIEL1 - Ariel
420=SMPTE - SMPTE
421=ARIEL2 - Ariel
422=ARIEL3 - Ariel
423=OPC-JOB-START - IBM Operations Planning and Control Start
424=OPC-JOB-TRACK - IBM Operations Planning and Control Track
425=ICAD-EL - ICAD
426=SMARTSDP - smartsdp
427=SVRLOC - Server Location
428=OCS_CMU - OCS_CMU
429=OCS_AMU - OCS_AMU
430=UTMPSD - UTMPSD
431=UTMPCD - UTMPCD
432=IASD - IASD
433=NNSP - NNSP
434=MOBILEIP-AGENT - MobileIP-Agent
435=MOBILIP-MN - MobilIP-MN
436=DNA-CML - DNA-CML
437=COMSCM - comscm
438=DSFGW - dsfgw
439=DASP - dasp
440=SGCP - sgcp
441=DECVMS-SYSMGT - decvms-sysmgt
442=CVC_HOSTD - cvc_hostd
443=HTTPS - HTTPS (Hyper Text Transfer Protocol Secure) - SSL (Secure
Socket Layer)
444=SNPP - Simple Network Paging Protocol
445=MICROSOFT-DS - Microsoft-DS
446=DDM-RDB - DDM-RDB
447=DDM-DFM - DDM-RFM
448=DDM-BYTE - DDM-BYTE
449=AS-SERVERMAP - AS Server Mapper
450=TSERVER - TServer
451=SFS-SMP-NET - Cray Network Semaphore server
452=SFS-CONFIG - Cray SFS config server
453=CREATIVESERVER - CreativeServer
454=CONTENTSERVER - ContentServer
455=CREATIVEPARTNR - CreativePartnr
456=MACON-TCP - macon-tcp
457=SCOHELP - scohelp
458=APPLEQTC - Apple Quick Time
459=AMPR-RCMD - ampr-rcmd
460=SKRONK - skronk
461=DATASURFSRV - DataRampSrv
462=DATASURFSRVSEC - DataRampSrvSec
463=ALPES - alpes
464=KPASSWD - kpasswd
465=SSMTP - ssmtp
466=DIGITAL-VRC - digital-vrc
467=MYLEX-MAPD - mylex-mapd
468=PHOTURIS - proturis
469=RCP - Radio Control Protocol
470=SCX-PROXY - scx-proxy
471=MONDEX - Mondex
472=LJK-LOGIN - ljk-login
473=HYBRID-POP - hybrid-pop
474=TN-TL-W1 - tn-tl-w1
475=TCPNETHASPSRV - tcpnethaspsrv
476=TN-TL-FD1 - tn-tl-fd1
477=SS7NS - ss7ns
478=SPSC - spsc
479=IAFSERVER - iafserver
480=IAFDBASE - iafdbase
481=PH - Ph service
482=BGS-NSI - bgs-nsi
483=ULPNET - ulpnet
484=INTEGRA-SME - Integra Software Management Environment
485=POWERBURST - Air Soft Power Burst
486=AVIAN - avian
487=SAFT - saft
488=GSS-HTTP - gss-http
489=NEST-PROTOCOL - nest-protocol
490=MICOM-PFS - micom-pfs
491=GO-LOGIN - go-login
492=TICF-1 - Transport Independent Convergence for FNA
493=TICF-2 - Transport Independent Convergence for FNA
494=POV-RAY - POV-Ray
495=INTECOURIER -
496=PIM-RP-DISC -
497=DANTZ -
498=SIAM -
499=ISO-ILL - ISO ILL Protocol
500=ISAKMP -
501=STMF -
502=ASA-APPL-PROTO -
503=INTRINSA -
504=CITADEL -
505=MAILBOX-LM -
506=OHIMSRV -
507=CRS -
GPRS (General Packet Radio Service) - это новая перспективная технология, стандартизация которой началась в 1993 году в European Telecommunication Standards Institute (http://www.etsi.org/), позволяющая работать в сети Internet, используя обычный мобильный телефон. С помощью GPRS, пользователи могут работать со своей электронной почтой, с обычными Web-серверами (а не со специальными WAP-версиями) и т.д. Основное достоинство GPRS-сетей состоит в том, что пользователь оплачивает только объем передаваемой/получаемой информации, а не время нахождения в сети.
До разработки технологии GPRS (http://www.gsmworld.com/technology/gprs/index.shtml), абонент оплачивал все время соединения независимо от того, использовал он установленный канал передачи данных. Иными словами, ресурсы сети задействованы только во время непосредственной передачи данных от телефона. Во время пауз (например, просмотр полученной электронной почты) ресурсы сети предоставляются в распоряжение других абонентов. Кроме того, технология GPRS является промежуточным этапом при переходе от сетей 2 поколения (GSM) к 3-му (UMTS). В GPRS максимально возможная скорость передачи данных составляет 171,2 Кбит/с - это почти в 12 раз быстрее работы передачи данных в обычных сетях GSM (9,6 Кбит/с). Однако на данный момент скорости не так высоки - обычно 30-40 Кбит/с. В настоящее время три крупнейших сотовых сети России (МТС, БиЛайн, Мегафон) предлагают своим абонентам услуги GPRS. Потенциальное число абонентов технологии GPRS в России - 17,8 миллионов человек, именно такое количество абонентов сотовой связи насчитывалось в России к концу 2002 года. Реальное же число желающих воспользоваться преимуществами этой технологии пока не так велико. В частности, к началу декабря 2002 года в БиЛайне, пионере GPRS в России, насчитывалось всего 25000 абонентов.
Архитектура GPRS
Если не вдаваться в глубокие технические подробности, то технология работы GPRS выглядит следующим образом. Архитектура GPRS расширяет стандартные компоненты GSM новыми или обновленными элементами. В целом, таких элементов всего 4, из которых только 2 не были известны в технологии GSM.
Мобильная станция
MS (mobile station) - это мобильная станция, в качестве которой может выступать переносной или карманный компьютер, мобильный телефон или иное устройство, поддерживающее технологию GPRS. Функционально данный элемент состоит из 2-х компонентов, которые могут быть выполнены как в виде единого устройства (например, мобильный телефон Sony Ericsson T68i), так и в виде самостоятельных устройств:
терминальное оборудование (terminal equipment, TE), например, переносной компьютер;
мобильный терминал (mobile terminal, MT), например, модем.
В зависимости от типа оборудования и возможностей сети данная станция может работать в одном из 3-х режимов работы:
Класс A - позволяет мобильной станции в одно и то же время передавать как данные, так и голос, т.е. одновременно работать в GSM- и GPRS-сетях.
Класс B - позволяет мобильной станции передавать и данные и голос, но в разные моменты времени, т.е. не одновременно.
Класс C - позволяет мобильной станции работать только в режиме GPRS.
При подключении к сети GPRS, мобильная станция (а точнее элемент TE) получает IP-адрес, который не меняется до момента отключения мобильного терминала (MT); больше того, мобильная станция может даже и не "подозревать" о том, что она является мобильной. Мобильная станция устанавливает соединение с узлом обслуживания абонентов GPRS, описываемым далее.
Базовая станция
BSS (base station system) - это базовая станция, которая принимает радиосигнал от мобильной станции и, в зависимости от того, что передается (голос или данные), транслирует трафик:
на центр коммутации (mobile switching center, MSC), являющийся стандартным элементом сети GSM, или на узел SGSN, отвечающий за обработку входящих/исходящих данных GPRS.
Узел обслуживания абонентов GPRS
Обслуживающий узел (serving GPRS support node, SGSN) является основным компонентом GPRS-сети. Он транслирует IP-пакеты, посылаемые/получаемые мобильной станцией. По своей сути, это такой же центр коммутации, как и MSC в GSM, но в отличие от последнего, он коммутирует пакеты, а не каналы. Как правило, такой узел построен на базе ОС Unix и имеет свой IP-адрес. С точки зрения безопасности, на SGSN возложены функции:
Проверки разрешений абонентов на пользование запрашиваемых услуг (аутентификация). Механизм аутентификации GPRS совпадает с аналогичным механизмом в GSM.
Мониторинг активных абонентов.
Регистрация новых абонентов.
Шифрование данных. Алгоритм шифрования в технологии GPRS (GEA1, GEA2, GEA3) отличаются от алгоритмов шифрования в GSM (A5/1, A5/2, A5/3), но разработаны на их основе.
Узел маршрутизации GPRS
Узел маршрутизации (gateway GPRS support node, GGSN), также является важнейшим элементом технологии GPRS и отвечает за прием/передачу данных из внешних сетей, например, Internet или GPRS-сети другого оператора связи. С точки зрения внешней сети GGSN - это обычный маршрутизатор (как и SGSN, построенный на базе Unix), который принимает данные для всех подписчиков услуг GPRS. Помимо маршрутизации, GGSN отвечает за выдачу IP-адресов и тарификацию услуг.
Другие элементы GPRS-сети
Home Location Register (HLR) - это реестр собственных абонентов сети, которая хранит информацию о каждом человеке, оплатившем услуги оператора GPRS именно данной сети. В частности, HLR хранит информацию о дополнительных услугах, параметрах аутентификации, IP-адресе и т.д. Обмен данной информацией происходит между HLR и SGSN.
Visitor Location Register (VLR) - это реестр перемещений, которая хранит информацию о каждой мобильной станции, находящейся в данный момент в зоне действия SGSN. В VLR хранится та же информация об абоненте, что и в HLR, но только до тех пор, пока абонент не покинет географическую зону, обслуживаемую этим реестром перемещений.
Equipment Identity Register (EIR) - это реестр идентификационных данных оборудования, который содержит информацию, позволяющую блокировать вызовы от украденных, мошеннических или иных неавторизованных устройств.
Механизмы безопасности GPRS
Если посмотреть внимание на рис.1, то можно выделить следующие фрагменты GPRS-сети, на безопасность которых необходимо обратить соответствующее внимание:
безопасность мобильной станции
безопасность соединения между мобильной станцией и узлом обслуживания SGSN
безопасность данных в процессе их передачи по сети GPRS
безопасность данных в процессе их передачи между различными операторами GPRS-услуг
безопасность данных в процессе их передачи в сети открытого доступа, например, Internet.
Безопасность мобильной станции
Наибольший интерес вызывает безопасность мобильного телефона, который в терминах GPRS является мобильной станцией. Его безопасность складывается из двух составляющих:
SIM-карта
сам телефон
SIM-карта (Subscriber Identity Module) - это модуль идентификации абонента. В SIM-карте содержится информация о сервисах, предоставляемых абоненту, независимая от типа используемого мобильного оборудования. Эта карта может вставляться в любой другой GSM терминал, при этом абонент получает возможность использовать этот терминал для получения всех сервисов системы, на которые он подписан. С точки зрения безопасности SIM-карта отвечает за идентификацию абонента и аутентификацию мобильного телефона в GPRS-сети. Она содержит идентификатор IMSI, индивидуальный ключ аутентификации абонента длиной 128 бит Ki, алгоритм генерации ключей шифрования A8 и алгоритм аутентификации A3 и разумеется PIN-код для доступа к функциям карты. Алгоритм A5 наряду с IMEI включен в состав программного обеспечения телефона и обеспечивает его защиту. Каждый абонент в GPRS-сети имеет уникальный международный идентификатор мобильного абонента (IMSI, International Mobile Subscriber Identity), хранимый в SIM-карте. IMSI состоит из 3 элементов:
трехразрядный код страны (для России - 250)
двухразрядный код сети (для МТС - 01, для Билайн - 99, для СМАРТС - 07 и т.д.)
десятиразрядный код абонента (Mobile Subscriber Identity Number, MSIN).
[pagebreak]
Алгоритм A8 отвечает за генерацию ключей шифрования, который, используя случайное число, передаваемое на мобильный терминал в момент соединения с сетью, и ключ Ki генерит 64-битный ключ шифрования трафика. Так как индивидуальный ключ Ki имеется не только у абонента, но и хранится в реестрах HLR и VLR, то и абонент и оборудование сети создают одинаковый ключ шифрования, который и используется для защиты передаваемых данных.
Алгоритм A3, отвечающий за аутентификацию абонента, похож на алгоритм A8 и также использует случайное число, получаемое в момент подключения к сети и индивидуальный ключ абонента. Для доступа к функциям SIM-карты необходимо использовать специальный персональный код (другими словами, пароль) PIN (Personal Identification Number), после 3-х неправильных попыток ввода которого, SIM-карта блокируется.
Безопасность самого телефона, как уже было сказано выше, обеспечивается двумя механизмами:
алгоритмом шифрования A5, который обеспечивает защиту данных, циркулируемых между мобильной станцией и узлом SGSN.
Уникальным 14-тиразрядным международным идентификатором аппаратуры мобильной связи (International Mobile Equipment Identity, IMEI), который однозначно идентифицирует телефон. Узнать этот номер очень просто - достаточно набрать на телефоне комбинацию *#06#. Если высвеченное число не совпадает с тем, что указано на задней крышке телефона, то вероятнее всего вы пользуетесь взломанным аппаратом. Именно эти номера хранятся в реестре EIR. Данный реестр ведет три типа списков IMEI:
"белый" список, содержащий идентификаторы всех разрешенных аппаратов.
"серый" список, содержащий идентификаторы всех незапрещенных аппаратов, но используемых для различных целей, например, тестирования и т.п.
"черный" список, содержащий идентификаторы всех запрещенных аппаратов. Как заявил в одном из интервью вице-президент МТС (http://www.mts.ru/press/speech9.html) Михаил Сусов "Сейчас между операторами (в России - А.Л.) проводятся переговоры о создании единого "черного списка" краденых телефонов".
Надо понимать, что идентификаторы IMEI и IMSI - независимы между собой. Более того - они решают различные задачи: IMEI идентифицирует мобильный терминал, а IMSI - абонента.
Безопасность соединения мобильной станции с узлом SGSN
В процессе подключения мобильной станции, описываемом далее, между ней и узлом SGSN происходит выбор версии используемого в дальнейшем алгоритма шифрования GPRS-A5. В 3-м квартале 2002 года началось внедрение третьей версии этого алгоритма (A5/3), которая может использоваться не только в GSM-, но и в GPRS-, HSCSD- и EDGE-сетях. Данный алгоритм разработан на базе алгоритма "Казуми" (Kasumi), в свою очередь разработанного на базе алгоритма MISTY компании Мицубиси. Как утверждается в пресс-релизе Ассоциации GSM (http://www.gsmworld.com/news/press_2002/press_15.shtml), A5/3 обеспечивает на сегодняшний день практически 100-процентную защиту передаваемых данных. Однако не стоить безоглядно верить этому утверждению. Аналогичные заявления делались и для предыдущих версий алгоритма A5, история которого начинается с 1987 года, однако они были успешно взломаны.
В сетях GPRS используются алгоритмы семейства A5 - GEA1 и GEA2, а после разработки A5/3 - начинается внедрение созданного на его базе алгоритма GEA3.
Безопасность данных в процессе их передачи по сети GPRS
Все данные между узлами поддержки (SGSN и GGSN) передаются с помощью специального протокола GTP (GPRS Tunneling Protocol), который инкапсулирует в себя любые пользовательские протоколы, например, HTTP, Telnet, FTP и т.д. По умолчанию GTP-трафик не шифруется. Кроме того, опорная сеть строится на базе частных IP-адресов, описанных в RFC 1918 (http://www.ietf.org/rfc/rfc1918.txt), что обеспечивает невозможность прямого доступа к сетевому оборудованию из внешних сетей.
Безопасность в процессе взаимодействия с различными операторами GPRS-услуг
Безопасность возлагается на устройства, называемые пограничными шлюзами (border gateway, BG), которые очень похожи на обычные межсетевые экраны, защищающие корпоративные сети от посягательств злоумышленников. В частности, этот шлюз защищает оператора от атак, связанных с подменой адреса (IP Spoofing).
Настройка такого шлюза включает в себя создание правил, разрешающих входящий/исходящий пользовательский трафик, данные биллинговой системы, аутентификацию роуминговых абонентов и т.п. Дополнительно на пограничный шлюз может быть установлено программное обеспечение, организующее VPN между различными GPRS-операторами.
Помимо встроенных в пограничный шлюз защитных механизмов, существует возможность использования продуктов третьих фирм. Первым таким решением стал межсетевой экран Firewall-1 GX компании CheckPoint Software (http://www.checkpoint.com/products/solutions/firewall-1gx.html), который, будучи установлен на пограничном шлюзе или узле GGSN повышает защищенность сети GPRS-оператора от возможных несанкционированных действий.
Безопасность в процессе взаимодействия с Internet
Основные механизмы безопасности реализованы на узле GGSN, в состав которого входит межсетевой экран, который определяет тип входящего и исходящего GPRS-трафика. Задача межсетевого экрана, входящего в состав GGSN, защитить мобильную станцию от атак внешних (из Internet) хакеров. Защита от атак с других мобильных станций возлагается на узел SGSN. Для предотвращения доступа к сетевому оборудованию опорной сети от внешних злоумышленников используется трансляция адресов (network address translation). Все остальные механизмы защиты могут быть взяты из классической практики обеспечения информационной безопасности Internet-сетей и устройств, например, аутентификация при помощи серверов RADIUS или защита трафика с помощью IPSec.
Процедура подключения мобильной станции
Упрощенно процесс подключения абонента, желающего воспользоваться услугами GPRS, выглядит следующим образом: Мобильная станция посылает запрос (Attach Request) на получение доступа к сети, который содержит ряд параметров, в т.ч. и IMSI.
Узел SGSN, получив такой запрос, проверяет наличие аутентифицирующей данного абонента информации в своей базе. Если такая информация отсутствует, то SGSN посылает запрос в реестр HLR, который возвращает т.н. аутентификационный триплет, содержащий:
Случайное число, используемое в алгоритмах A3 и A8 для выработки ключа шифрования и аутентификации абонента.
32-хразрядный ключ аутентификации абонента, который вырабатывается на основе индивидуального ключа, хранящегося как на мобильной станции, так и в реестре HLR.
Ключ шифрования данных, получаемый также на базе индивидуального ключа абонента.
Полученное случайное число передается на мобильную станцию, которая на его основе вырабатывает ключ шифрования и ключ аутентификации. Т.к. индивидуальные ключи, хранящиеся в реестре HLR и на мобильной станции совпадают, то и ключи шифрования и аутентификации также должны совпадать, что и является фактом правомочности запроса данным абонентом оплаченных GPRS-услуг.
После идентификации абонента осуществляется идентификация оборудования, которое посылает на SGSN идентификатор IMEI. Узел SGSN в свою очередь проводит проверку данного оборудования по реестру EIR.
После аутентификации абонента и оборудования происходит процедура определения местоположения абонента (с использованием реестров HLR и VLR), после чего происходит завершение процедуры подключения мобильной станции к сети GPRS. В том случае, если мобильная станция не смогла пройти аутентификацию, то SGSN посылает на нее сообщение Attach Reject.
Заключение
В заключение хочу добавить, что, при создании технологии GPRS (как и при создании многих современных сетевых технологий) вопросам безопасности внимания уделялось недостаточно. Многие аспекты не описаны и отданы на откуп операторам, которые далеко не всегда уделяет безопасности первостепенное внимание, что приводит к печальным последствиям. Специалистами найдено уже немало недостатков технологии GPRS, но это уже тема другой статьи
Говорить о важности сетевых технологий на страницах сетевого издания немного странно, однако мы считаем, что даже среди сетевой публики, многие с трудом знакомы с важностью, особенно в современных условиях, объединения компьютеров в сеть. Статья повествует о важнейших элементах локальной сети, настройки под Windows XP и о наиболее часто задаваемых вопросах, связанных с построением, конфигурированием и администрированием локальных сетей.
Итак, напомним, что сети бывают локальные и глобальные. Локальные сети объединяют некоторое количество компьютеров в пределах одного или нескольких зданий. Такие сети иногда называют интранет. Глобальные сети подразумевают соединение различных локальных сетей в одну общую сеть, называемую Интернет.
Существует мнение, что если ты хоть раз поработал в составе сети, то работа без подключения к сети становиться болезненно тяжело. Да действительно, так, например наши компьютеры объединены в локальную сеть, подключенную с Интернет. Стоит произойти какой-нибудь неприятности с Интернетом, как работать становиться значительно тяжелее. Казалось бы, почему? Ведь по большому счету в сети мы видим просто чужие диски, иногда пользуемся вычислительными ресурсами удаленного процессора. Почему бы ни воспользоваться собственными дисками и мощностью собственного процессора. Все дело в информации. Ведь сегодня сеть это огромная база знаний, созданная усилиями каждого имеющего желание поделиться с другими своими знаниями и умениями. С одной стороны, это превращает сеть в некую «помойку» где из огромного объема информации приходится извлекать полезную информацию, с другой стороны нет ни одного другого электронного или любого off-line источника, способного дать ответ на абсолютно любой вопрос.
Сеть – развращает!
После длительной работы в сети иногда пользователь частично теряет возможность решать многие, простые вопросы обычными средствами. Так, например, поиск какой-либо информации без сети становиться просто невозможной. Единственным, доступным и действенным средством общения является e-mail или Интернет-пейджеры. С одной стороны «жители» сети являются достаточно сильными людьми, однако это касается только сети. В реальной ситуации, «сетевой житель» может быть достаточно слабым и беззащитным существом. Именно поэтому потеря доступа в сеть хотя бы на несколько дней, является достаточно тяжелой потерей для таких людей.
О чем эта статья?
Без сомнения, с точки зрения организации сети Windows XP самая простая операционная система от Microsoft. Точнее сказать, эта операционная система позволяет быстро и эффективно создавать небольшие сети для дома или небольшого офиса.
В этой статье мы расскажем о трех главных составляющих небольшой сети: совместное подключение к Интернет, совместное использование принтера, файлов и каталогов. В первую очередь мы нацеливаем эту статью на людей, только начинающих вникать во все тонкости «жизни» компьютера в сети. Однако и подготовленные пользователи смогут найти для себя не мало интересного.
Несмотря на наличие русской версии Windows XP, мы решили, что все примеры, приведенные в статье, будут для англоязычной версии Windows XP. Это значительно упростит создание сети для неопытных пользователей, использующих англоязычную версию.
Немного истории
Для того, что бы лучше понять превосходство сетевых решений в Windows XP давайте совершим краткий экскурс в историю развития операционных систем Windows. Для некоторых из Вас это отступление может быть раздражающим, однако нам было даже приятно вспомнить, чему мы радовались еще несколько лет назад. Давайте начнем с Windows 3.1.
Операционная система Windows 3.1 имела очень ограниченный инструментарий для организации даже самой простой сети и требовала использование программного обеспечения сторонних разработчиков. Возможно для операционной системы, выпущенной 10-12 лет назад, это было нормально. Специально для рабочих групп Microsoft выпустила Windows 3.11 for Workgroups, которая имела только протокол совместного использования файлов. Позднее в августе 1995 года была выпущена операционная система Windows 95. Несмотря на свою “глючность”, эта операционная система имела более продвинутые сетевые средства, однако по современным меркам все было очень сложно и недостаточно для требований современного пользователя. Через год была выпущена операционная система Windows NT 4.0, с дополнительными патчами и сервис паками. Windows NT 4.0 использовала интерфейс и принципы Windows 95. Главным отличием являлись наличие расширенных особенностей защиты, лучшие средства многозадачности, администрирование пользователей и больший упор на сетевую организацию для бизнес пользователей. Однако реализация сетевых особенностей оказалась еще сложнее, и недоступной для неподготовленного пользователя.
Через 2-3 года после Windows 95 были выпущены операционные системы Windows 98 и Millennium. Windows 98, за исключением NT, была первой настоящей 32-bit версией Windows с полностью 32-bit кодом. В то время как Windows 98 имела некоторые усовершенствование сетевого инструментария и возможностей, они все еще были похожи на Windows 95. Дополнительно Microsoft выпустила “Special Edition” Windows 98, известную как Windows 98 SE, в которой исправлены ошибки в сетевых протоколах. В феврале 2000 Microsoft выпустила Windows 2000. Эта система основана на ядре Windows NT и поэтому ее иногда называют Windows NT 5.0. Windows 2000 имеет очень продвинутые сетевые возможности, однако их реализация пока не проста, и напоминает Windows NT.
И наконец, сегодня мы стали свидетелями выпуска и развития операционной системы Windows XP. Обе версии (Professional и Home) являются очень красивым сочетанием сетевых возможностей NT, 2000 и простого и понятного пользовательского интерфейса.
Теперь, когда мы вспомнили, как развивались сетевые возможности операционной системы Windows, давайте переходить к нашей главной теме.
Физическая установка сети
Для упрощения, предположим, что мы используем в сети три компьютера – два “клиентских компьютера” и один «сервера». Для организации, даже такой маленькой сети нам понадобятся сетевые карты, которые устанавливаются в каждый компьютер, свич или хаб, а так же специальный сетевой кабель, называемый витая пара.
Выбор сетевой карты
В прошлом сетевая карта представляла собой отдельную ISA (для тех, кто не знает это такой старый стандарт слота расширения) или PCI плату. Причем их цена превышала 100$, что несколько ограничивало развития сетей в небольших организациях. Сегодня сетевая карта стала настолько доступной, что частенько ее интегрируют на системную плату. В случае, если Ваша плата не имеет интегрированного сетевого контроллера, то Вам придется воспользоваться внешней PCI платой. Карта должна соответствовать стандарту Realtek 10/100. Она стоит около 10$. Более дорогие карточки имеют множество дополнительных функций, обеспечивающих большую стабильность при передаче данных. Ниже на фотографии показан внешний вид типичной сетевой карты.
При выборе сетевой карты, необходимо обратить внимание на максимальную поддерживаемую скорость передачи 10/100. Это означает, что карта может передавать данные на скорости 10mbps и 100mbps в зависимости от сетевой архитектуры. Дополнительно необходимо, что бы карточка имела разъем RJ-45 (современный стандарт CAT5), поддерживающий скорость передачи 100mbps и обратно совместимый с 10mbps стандартом (именно такой разъем показан на фотографии). Самый последний стандарт “CAT6”, (пока находится в разработке) будет поддерживать скорости от 300mbps до 1gbps. Это означает, что Вы сможете копировать файлы в сети со скоростью 125 мегабайт в секунду. Это быстрее скорости современных жестких дисков. CAT5-E или категория 5 UTP Enhanced так же обратно совместима с 10, 100 и 1000Mbit Ethernet. Использование RJ-45 предпочтительнее, чем RJ-58, или больше известные как BNC. Этот разъем предназначен для подключения на более низких скоростях (ограничена 10mbps) коаксиальным кабелем.
Хаб против свича
Для управления всеми транзакциями (передача блоков информации) в сети используется устройство называемой хаб или свич. В чем отличие между этими двумя устройствами?. Во время передачи пакета данных хаб отправляет их сразу на все компьютеры, что значительно уменьшает пропускную способность канала. Свич, имеет встроенную память, в которой храниться информация о том, к какому порту подключен какой компьютер. Поэтому во время передачи пакета, он отправляется на определенный порт. Кроме того, свич позволяет использовать в сети контроллеры с разной скоростью передачи, при этом общая пропускная способность не будет опускаться до уровня контроллера с минимальной скоростью. Учитывая незначительное ценовое отличие мы настоятельно рекомендуем приобрести именно свич. На сегодняшний день впускаются свичи с 5, 8, 16, 24 или 32 портами. Цена устройства напрямую зависит от количества портов.
802.11a и 802.11b
Говоря об организации сети мы считаем необходимым затронуть вопрос беспроводных сетей, т.е. передающих информацию по радиоканалу. Такие сети становятся все популярнее, т.к. позволяют сделать размещение компьютеров более гибким, а пользователям использующим карманные компьютеры или ноутбуки, получить доступ к сети в любой точке офиса и даже за пределами. На сегодняшний день существует два стандарта 802.11a и 802.11b. Для реализации такого подключения необходимо использовать специальные хабы и сетевые карточки.
Как выбрать свич?
В принципе, любой. Например, мы используем 8-портовый свич от CNET, но другие брэнды, такие как Kingmax, Netgear, Dlink, 3COM так же имеют очень хорошее качество. В общем, в этом вопросе можно довериться компании, которая будет проводить у Вас сеть. Они обычно ставят то, что хорошо работает.
Рекомендации по конфигурированию сервера
Если Ваш сервер не планируется использовать для игр, нет необходимости использовать самый последний процессор Pentium 4 или Athlon XP с большим объемом оперативной памяти и емким жестким диском, а так же с самой последней графической картой GeForce 4. Главное, чего необходимо добиться, это стабильной круглосуточной работой. Так. Как сервер будет использовать Windows XP, он должен быть оснащен минимум 128MB RAM.
В идеале, Вы можете использовать процессор Pentium 2, III или Athlon 500MHz, при этом система будет достаточно хорошо работать в нашей среде.
Конфигурация сети в Windows XP
Установить сетевые параметры в Windows XP Вы можете несколькими способами. Во-первых, вручную. Этот метода предпочтительнее, т.к. позволяет контролировать все настройки. Во-вторых, для тех, кто ничего не понимает в сетевых терминах Microsoft включила мастер установки сети (Network Setup Wizard). Для запуска мастера, необходимо войти в “My Network Places” и нажать на “set up a home or small office network”. Нажмите Next, на втором экране будут описаны некоторые рекомендации по правильной установке. Фактически здесь Вы найдете полное руководство к действию. Нажимаем Next. Теперь для всех клиентских компьютеров Вы должны выбрать вторую опцию (The computer connects to the Internet through another computer on my network or through a residential gateway) и нажмите Next. На следующем экране Вы можете ввести или изменить имя компьютера. Теперь переходим к следующему окну, где мы сможем изменить название рабочей группе. Следующий экран резюмирует сделанные изменения и применяет их. На следующем экране Вам будет предложено создать диск установки сети. Так как мы делаем меленькую домашнюю сеть этот диск можно не создавать. Просто нажмите «Wizard and then Finish».
Мы просим извинить нас за нескончаемые переходы к следующему экрану, однако по другому описать действия мастера невозможно. В дальнейшем мы будем использовать первый, ручной режим.
[pagebreak]
Мастер сетевой идентификации
Теперь необходимо установить имя Вашего компьютера в рабочей группе, к которой он принадлежит. Для этого нажмите Start -> Settings -> Control Panel -> System -> и выберите закладку Computer Name. Сначала нажмите “Network ID”, что позволит активизировать мастер сетевой идентификации (Network Identification Wizard). На первом экране просто нажмите Next. На следующем экране нужно выбрать первую опцию (This computer is part of a business network, and I use it to connect to other computers at work), на следующем экране выберете вторую опцию (My company uses a network without a domain), Это приведет Вас к экрану показанном ниже...
Здесь Вы должны установить название рабочей группы. Эти действия Вы должны повторить на всех компьютерах Вашей сети.
Обращаем Ваше внимание, что некоторые broadband провайдеры используют свою собственную рабочую группу. В этом случае они должны Вас проинструктировать об использовании имени рабочей группы.
IP адресация
Прежде всего вы должны идентифицировать каждый компьютер в сети. Для этого служит так называемая IP (Internet Protocol) адресация. IP адрес – это уникальный номер Вашего компьютера в Вашей сети. IP адрес может быть “статическим” или “динамическим”. В своей внутренней сети Вы можете использовать IP адреса класса C, т.е. в диапазоне 192.168.0.1 до 192.168.0.254. Другими словами в одной рабочей группе может работать до 254 компьютеров. Обычно серверу назначают адрес 192.168.0.1. Когда Вы активизируете совместный доступ к сети (Internet Connection Sharing) по умолчанию Вашему серверу будет автоматически назначен этот адрес.
Конфигурация сервера
Примечание: Под XP и Windows NT для установки сетевых параметров Вы должны войти с правами администратора. OK – установив на все компьютеры сетевые карты, Вам необходимо назначить каждому компьютеру IP адрес. Для этого нажмите Start -> Settings -> Network Connections. Теперь кликните правой кнопкой мышки на “Local Area Connection” и выберите меню Properties. Затем укажите на протокол TCP/IP и нажмите Properties. Перед Вами откроется окно, позволяющее установить все необходимые сетевые параметры...
На скриншоте выше мы показываем настройку IP адреса для сервера. Пока этого достаточно. Ниже мы покажем, как конфигурировать клиентские компьютеры. Для того, что бы Вы лучше понять, как работает сервер в сети, мы приводим примерную схему подключения компьютеров рабочей группы к Интернет, через один компьютер.
Конфигурирование клиентских машин
Выше на скриншоте мы видим, что одному из клиентских компьютеров установлен IP адрес 192.168.0.5. Маска подсети устанавливается автоматически, по этому поводу Вам волноваться не стоит. Обратите внимание, что IP адрес должен быть уникальным, и не может повторяться внутри одной сети. В случае повторного использования IP адреса, Windows сообщит о возникновении проблемы с повторяющимся IP адресом. Ниже на рисунке, показано, что такое клиентский компьютер и его роль в сети.
Совместное использование Интернет
Как мы сказали в начале статьи, современная сеть должна решать три основные задачи: Совместный доступ к Интернет, совместное использование принтера и совместное использование файлов и папок. В принципе, все три задачи уже, так или иначе, решены в некоторых предыдущих версиях Windows. Однако в Windows XP они решены лучше и проще. Итак, в первую очередь давайте рассмотрим реализацию совместного доступа в Интернет. В нашем примере настройки клиентского компьютера мы устанавливаем обращение к серверу с IP адресом 192.168.0.1. Этот адрес указан как адрес шлюза, т.е. компьютера, через который все остальные будут обращаться в Интернет. Тот же адрес мы указываем в качестве первичного DNS (DNS – это сервис который позволяет по символьному имени узла, определить его физический IP адрес). Теперь, зайдите нажмите OK, что вернет Вас в первоначальное меню свойств сетевого соединения. Здесь откройте закладку Advanced и проверьте опцию Internet Connection Firewall. На клиентских машинах эта опция должна быть отключена.
Включение совместного доступа к Интернет
После завершения настройки всех клиентских машин, Вам необходимо активизировать доступ в Интернет на серверной машине. Для этого нужно войти в меню сетевых соединений (Start -> Settings -> Network Connections), выбрать иконку, через которую подключаетесь к провайдеру (по модему или быстрому каналу). В меню свойств учетной записи необходимо выбрать закладку Advanced, где Вы найдете все опции, необходимые для организации совместного доступа …
В первую очередь обратите внимание на включение Internet Connection Firewall для Internet соединения. Firewall – это система защиты, которая работает как защитный щит между внутренней сетью и внешним миром. Internet Connection Firewall (ICF) – это программный продукт, который используется для установки ограничений передачи информации от и к вашей рабочее группе. Мы рекомендуем разрешить эту опцию. В то время как мощность такого программного «щита» не может сравниваться с подобными аппаратными межсетевыми экранами, это сможет в некоторой степени защитить Ваши данные от различных сетевых неприятностей. Теперь обратите внимание на включении опции “Allow other network users to connect through this computer’s Internet connection”, которая позволит другим пользователям входить в Интернет через сервер. Если Вы хотите управлять различными установками учетных записей Интернет с других, клиентских компьютеров, включите опцию “Allow other network users to control or disable the shared Internet connection”. И последняя опция - “Establish a dial-up connection whenever a computer on my network attempts to access the Internet”. Ее включение позволит серверу в случае получения запроса к Интернет с любого клиентского компьютера автоматически установить соединение. Теперь нажмите OK для применения всех сделанных изменений. В принципе, Windows XP не требует перезагрузки при изменении сетевых настроек, однако мы настоятельно рекомендуем это сделать не только на сервере, но и на всех клиентских компьютерах. Теперь, Вы можете попробовать войти в Интернет с любого компьютера в Вашей сети, причем в случае с Windows XP Вы можете спокойно, без необходимости делать дополнительные настройки, использовать программы, подобные ICQ.
В случае если доступа к сети нет, попробуйте сначала проветрить правильность подключения всех кабелей, и включение концентратора или свича. Если все сделано правильно то при подключении сетевого кабеля к Вашей сетевой карте, на экране в tray области (рядом с часами, появиться сообщение о подключении сетевого кабеля на скорости 100 или 10Mb). В случае если этого не происходит, необходимо проверить включение опции отображения индикатора в сетевых настройках и проверить правильность и целостность кабеля. Далее попробуйте в окне DOS набрать команду ping 192.168.0.1, которая проверит соединение с серверной машиной. Если пинг не прошел, необходимо проверить работоспособность и настройку сетевых карт и свича. Кроме того, одной из причин имеющихся проблем может быть установка Windows XP поверх другой операционной системы имеющей настроенную сеть, либо компьютер использовал собственное подключение к Интернет. После неоднократной установки различных, предлагаемых на рынке, версий и вариаций Windows XP, мы пришли к выводу, что для полной работоспособности необходимо устанавливать новую ОС на чистый диск, или раздел.
Статус Интернет соединения
Теперь необходимо коснуться вопроса контроля состояние подключения к Интернет. Особенно это касается случая использования операционных систем отличных от Windows XP. Для доступа к этой опции нажмите Start -> Network Connections. Как Вы можете видеть Windows XP достаточно подробно показывает параметры соединения, такие как скорость соединения и трафик на Вашей клиентской машине. Кроме того, здесь Вы можете отключить Интернет соединение.
Совместное использование принтера
Теперь, когда Вы установили ICS, пришло время настроить принтер для совместного использования в рабочей группе. Эта возможность очень полезна для небольших компаний или отделов. Установив совместный доступ к одному или нескольким принтерам, Вы сможете значительно сэкономить не только на принтерах, но и на времени. Если на Вашем сервере еще не установлен принтер, сделать это можно с помощью меню Printers and Faxes, открыть которое можно так: Start -> Settings -> Printers and Faxes. Как только принтер будет установлен, кликните по его иконке правой клавишей мышки и выберете пункт Sharing...
В открывшемся окне просто нажмите “Share this printer” и наберите имя, под которым принтер будет виден в сети.
Совместное использование и доступ к файлам
И наконец, мы переходим к последнему наиболее частому использованию сети – совместному использования файлов и папок. Эта особенность позволит создавать в компании библиотеку документов, шаблонов и т.д. Открывать и ограничивать доступ к документам различных сотрудников. В общем, полностью организовать документооборот в компании. Честно сказать, с полным документооборотом мы преувеличили. На самом деле для этого необходимо использовать специальные продукты, способные индексировать и архивировать документы, осуществлять быстрый поиск и т.д. Однако Windows XP частично позволяет решить эти задачи, и позволяет сэкономить на приобретении программ третьи разработчиков.
Для того, что бы разрешить сетевой доступ к файлам и папкам нужно в My Computer выбрать диск, к которому нужно открыть доступ, и правой кнопкой войти в свойства диска, где выберите закладку Sharing как показано ниже...
В целом здесь все понятно, однако необходимо обратить внимание, на то, что в случае включения опции “Allow network users to change my files” Вы даете им полный доступ к своим файлам, т.е. не только редактирование, но и удаление. В случае совместной работы с Windows 2000 и NT с точки зрения защиты Вы можете отключить простой режим совместного использования файлов через меню View->Folder Options->[X]Use Simple File Sharing.
Добавление сетевых дисков
Для упрощения доступа к часто используемым сетевым дискам, ВЫ можете добавить их в свое окно My Computer и использовать как обычный диск на Вашем компьютере. Для этого Вам необходимо правой кнопкой мышки кликнуть на сетевое окружение, и в открывшемся контекстном меню выбрать “Map Network Drive...” .
Здесь выберите букву для нового диска, и укажите путь к нему. Если Вы не знаете точного пути, то можете воспользоваться кнопкой “Brouse…”.
Заключение
Конечно же эта статья не может претендовать на звание энциклопедии сетевых возможностей Windows, однако она позволила решить две важные задачи. Те кто достаточно хорошо разбирается в сетях, наверное смогли найти для себя некоторые дополнительные особенности, которые было просто лень искать самостоятельно без особой надобности. Те, кто вообще не разбирается в сетях, смогли понять, что для реализации достаточно эффективной сети вполне достаточно использовать Windows XP.
Однако, для реализации сети в Вашем офисе мы настоятельно рекомендуем обратиться к специалистам. Поверьте нашему опыту, что как только «технический специалист» Вашей компании начинает делать сеть, это становиться в непрекращающийся ремонт в квартире. Постоянно, что-то доделывается, возникают различные «подводные камни» и т.д. Лучше всего обратиться к сетевым специалистам. Причем совсем необязательно обращаться к большим сетевым интеграторам, привыкшим работать в масштабе большого предприятия, использующего несколько сотен компьютеров с различными серверами. Вполне достаточно обратиться к компаниям, имеющим опыт создания небольших сетей, имеющих монтажников, программистов, настройщиков и, что самое главное, службу сервиса. Такая группа специалистов кроме установки сети, подключения к Интернет, сможет решить проблему с установками сетевых версий программ (например, бухгалтерских, дизайнерских, инженерных продуктов). В конце концов, каждый должен заниматься своим делом.
Случалось ли вам переустанавливать Windows? Те кто сталкивался с этим, знают сколько времени уходит на то чтобы установить все необходимые драйвера, программное обеспечение и настроить систему. Но если позаботиться заранее, восстановление полностью рабочей системы займет не более получаса.
ASR (Automated System Recovery) - это механизм, позволяющий восстановить всю информацию системного раздела в случае серьезного сбоя, когда другие методы восстановления уже не могут помочь. ASR заменил механизм ERD (Emergency Repair Disk), который использовался в предыдущих версиях Windows. В отличие от ERD, восстанавливавшего только системные настройки, ASR способен восстанавливать весь системный раздел, включая программное обеспечение, драйвера, документы пользователя, системные настройки на момент создания набора ASR.
Создание набора ASR.
Для того чтобы воспользоваться возможностью механизма ASR, необходимо создать набор ASR, состоящий из 2-х частей: непосредственно архива с данными, который может быть размещен на записываемом CD, магнитной ленте, несистемном разделе жесткого диска или другом жестком диске и дискеты, на которую записываются данные, необходимые для восстановления системы. Создавать наборы ASR могут пользователи с правами администратора.
Чтобы создать набор ASR, запустите программу 'Архивация данных' ('Пуск - Все программы - Стандартные - Служебные - Архивация данных' или наберите ntbackup.exe из меню 'Пуск - Выполнить'). Перейдите в расширенный режим. По умолчанию не все файлы включаются в создаваемый архив. Поэтому перед созданием набора ASR стоит посмотреть список исключенных файлов. Для этого перейдите на вкладку 'Сервис - Параметры - Исключение файлов'. По умолчанию в этом списке находятся: файл подкачки (pagefile.sys), файл создаваемый при использовании спящего режима (hiberfil.sys), контрольные точки восстановления, временные файлы и некоторые файлы журналов. Но в зависимости от установленного программного обеспечения и ранее внесенных изменений этот список может быть больше или меньше. Например, при установленном Norton Antivirus в список исключенных файлов попадает база описаний вирусов, и при восстановлении системы вам придется или скачивать новую базу описаний из интернет, или переустанавливать Norton Antivirus. Внимательно проверьте весь список, при необходимости внесите в него изменения. После этого можно запустить мастер подготовки аварийного восстановления для создания набора ASR - выберите 'Сервис - Мастер аварийного восстановления системы'. Укажите путь для создаваемого архива. Не указывайте в качестве пути системный раздел вашего жесткого диска. После сбора необходимой информации начнется процесс архивации. Если вы размещаете архив на разделе жесткого диска с файловой системой FAT32, обратите внимание на информационную строку 'Ожидалось, байт' - если размер создаваемого архива оценен более чем в 4 Гб, следует прервать процесс архивации и уменьшить размер архива путем исключения из него некоторых несистемных файлов, которые можно сохранить в отдельном архиве, иначе создание набора ASR не будет завершено должным образом. После этого вновь запустите мастер подготовки аварийного восстановления. После создания архива вам будет предложено вставить дискету для записи на нее параметров восстановления. На этом создание набора ASR закончено.
Восстановление системы с помощью набора ASR.
Для восстановления системы потребуется набор ASR (архив+дискета) и загрузочный диск Windows XP. Загрузитесь с помощью загрузочного диска, выберите установку Windows XP. При появлении в строке состояния приглашения нажмите клавишу F2 - появится сообщение 'Вставьте диск под названием Диск автоматического восстановления системы Windows в дисковод для гибких дисков'. После считывания с дискеты необходимых для восстановления данных и загрузки основных драйверов будет произведено форматирование системного раздела и начальная установка Windows XP. Далее будет запущен мастер аварийного восстановления системы и произведено восстановление файлов из архива набора ASR. После восстановления файлов будет произведена перезагрузка и вы получите Windows XP со всеми установленными программами, документами и системными настройками на момент создания набора ASR.
А что делать, если по каким-то причинам диcкета с параметрами восстановления утрачена? Можно переписать на дискету файлы asr.sif и asrpnp.sif из каталога ..\Windows\repair\ , но только в том случае, если вы после создания набора ASR не запускали мастер создания набора ASR. Другой вариант - это восстановление файлов asr.sif и asrpnp.sif непосредственно из созданного архива. Для этого запустите программу 'Архивация данных' в расширенном режиме, перейдите на вкладку 'Восстановление и управление носителем'. В левой части окна выберите нужный архив, если его нет в списке, добавьте его, воспользовавшись пунктом 'Сервис - Каталогизировать архивный файл'. В левой части окна выделите папку ..\Windows\repair\, а в правой установите флажки для файлов asr.sif и asrpnp.sif. В меню 'Восстановить файлы в...' выберите 'Одну папку', в качестве пути укажите дисковод со вставленной дискетой, и нажмите кнопку 'Восстановить'.
Используйте восстановление системы с помощью ASR только в том случае, если другие способы восстановления, такие как средства консоли восстановления или загрузка последней удачной конфигурации не могут помочь, если утерян ключ на вход в систему установленный с помощью программы syskey или произошел серьезный сбой в файловой системе. Помните, что механизм ASR восстанавливает состояние системного раздела на момент создания набора ASR, все изменения внесенные в систему после создания набора ASR, будут утрачены.
Для целей создания образа всего жесткого диска или системного раздела существуют также программы сторонних разработчиков, такие как Acronis True Image, PowerQwest Drive Image, Paragon Drive Backup, Norton Ghost и другие.
Многие начинающие создатели своих собственных страничек и маленьких сайтов часто заблуждаются, думая, что как только они создадут и разместят свои творения на веб-сервере, к ним тут же ринутся волны посетителей, желающих прочитать об авторе и что-то скачать с сайта. Это далеко не так.
Обычные обитатели Интернета с большим интересом заглянут не к вам, а на какой-нибудь информационный портал. И действительно, нам куда больше хочется узнать что-либо о наших кумирах, нежели о каких-то обычных людях.
Правда, сейчас многие люди приобретают известность именно в виртуальном мире. Например, популярные авторы различных электронных изданий или рассылок, владельцы широко известных сайтов различной тематики. Многие компьютерные авторитеты приобрели значимость в сетевом мире благодаря своим публикациям на сайтах или активной переписке в различных форумах. Вы, конечно же, можете повторить такой путь, но, увы, для этого надо много работать и многому научиться, и здесь я вам никак не смогу помочь своим советом, так как дело это требует оригинального творческого подхода и не терпит повторений.
В процессе разработки сайта важно понимать, что вы создаёте своё собственное произведение. Не ровняйтесь ни на кого. Можно лишь почерпнуть идеи относительно дизайна, концепции, но содержание ваших страниц должно быть плодом вашего собственного умственного труда. Вы не должны публиковать на своём сайте чужие мысли, пусть они находятся у других. Вам нужно писать всё самостоятельно, ведь это важно не только для посетителей, но и для вас, так как именно практикуясь передавать другим информацию от себя, вы приобретаете столь ценный опыт. И не важно насколько хорошо у вас будет получаться, со временем вы научитесь и будете работать более профессионально. Для начала ознакомьтесь со схожими по тематике работами других людей. Вы можете многое для себя открыть. Узнав что-либо новое, не спешите всё это выдать посетителям, вначале сами всё осмыслите и разберитесь в новой информации, ведь вам могут задать вопросы, на которые будет стыдно не ответить.
Если вам вдруг понравятся некоторые материалы, и вы захотите выложить это добро на своём сайте, то заранее следует спросить об этом автора. Это поможет вам избежать в дальнейшем многих проблем. Например, у меня был такой случай, когда один ушлый паренёк из родного города Владивостока просто-напросто украл мою статью. Дело-то нехитрое. Просто убрал из работы все мои ссылки и сам назвался автором. Таким образом он обманом попытался наполнить свой сайт чужой информацией за что и был наказан. Не скажу, что я сделал, но статья быстро исчезла с сайта злоумышленника, а сам он был явно напуган. Не допускайте этого. Всегда и везде старайтесь соблюдать авторские права, тем более что, спросив у человека разрешение на использование его материалов, вы тем самым можете приобрести в его лице хорошего друга и единомышленника.
Важную роль перед раскруткой сайта играет степень его информационной ценности. Вся информация должна быть специальным образом распределена по тематическим подразделам. Не следует сразу на главной странице давать ссылки на все ваши странички. Лучше распределить всё содержание так, чтобы вашим посетителям было удобно смотреть интересующие его страницы без существенных затрат времени на поиск нужной ему информации. Не создавайте пустых разделов. Если вам нечего пока выложить, лучше не запутывайте читателей. Всё это плохо скажется на отношении к вам. Характерным признаком непрофессионализма является наличие страничек с коронной надписью "Under Construction". А рядом ещё могут поставить какую-нибудь анимированную картинку, взятую из заурядной графической библиотеки. Зачем создавать такие странички? Сайт должен содержать полезную информацию, чем полезнее она будет, тем легче будет впоследствии перейти к его раскрутке и дальнейшему расширению.
На стадии создания сайта также полезно знать, что постепенное наполнение информацией намного эффективнее нерегулярных обновлений в плане удержания аудитории. Постоянное добавление новых полезных и бесполезных :) материалов очень полезно. Особенно полезно это в начальной стадии развития сайта. Допустим, к вам на сайт пришёл посетитель. Куда он двинется вначале? Правильно! Смотреть ваши новости. Именно на стадии ознакомления с новостями сайта посетитель обычно делает вывод о том, насколько актуальна информация, предложенная ему на данном сервере.
Увидев, что вчера на вашем сайте появились свежие странички или другие интересные штучки, посетитель первым делом направится туда чтобы оценить вашу работу. Если вы достаточно часто обновляете свой веб-сайт, то могу вам с уверенностью сказать, что у вас будет формироваться постоянное ядро аудитории, состоящее из повторных посетителей. Люди будут регулярно посещать ваш сайт просто чтобы проверить не появилось ли на нём что-то новенькое. Такие посетители для вас самые ценные, берегите их. При обновлении сайта обязательно давайте знать об этом вашим читателям.
Продвижение сайта в интернете - дело нелёгкое. Всю работу по раскрутке можно разделить на несколько этапов. Разумеется, все эти этапы взаимосвязаны и могут укладываться в одни и те же временные рамки. Я бы выделил три основных этапа: первоначальное привлечение посетителей, удержание аудитории и дальнейшее продвижение.
Самый важный этап в развитии любого сайта заключается в первоначальном привлечении на него посетителей. На данном этапе вы заявляете на весь мир, что ваш сайт появился и содержит массу полезной информации. Вся работа заключается в регистрации сайта в различных поисковых системах и каталогах. Трудно заранее предсказать, откуда приток будущих посетителей будет больше. Тут всё зависит от тематики сайта и от организации того или иного каталога или поисковой машины. На своём примере скажу, что основная масса новых людей приходит на мой сайт с Yandex (http://yandex.ru/) и с Google (http://google.com/).
Данный факт распространяется не только на этот сайт , так как общий объём страниц огромен и весьма разнообразен по своему содержанию. Поисковые машины с лёгкостью выводят такие сайты на первых страницах результатов поиска. Но, увы, такая перспектива светит только сайтам, где содержится действительно полезная информация. Но что делать, например, если ваш сайт предлагает посетителям галерею ваших графических работ? Ну не фиксируют современные поисковики графические файлы. Обидно. В таких случаях советую под каждым изображением давать краткое описание. Это позволит посетителям находить ваши работы даже при помощи поисковых машин.
Другое дело - каталоги. Тут можно разгуляться вволю. Каталоги отличаются от поисковых машин тем, что информация о ресурсах вводится вручную в отличие от автоматических роботов поисковых машин. Поисковые машины легко обмануть, людей трудно. Обычно каталоги ресурсов обслуживаются людьми. Регистрируясь, вы заполняете предложенные поля, где соблюдая правила даёте информацию о своём сайте (Название, описание, ключевые слова для поиска, адрес, имя автора и так далее). Далее за работу берутся модераторы каталога.
Модератор - человек занимающийся регистрацией сайтов, следящий за актуальностью информации и работоспособностью ссылок. Также модераторы осуществляют роль цензоров. Именно они решают быть или не быть вашему сайту в каталоге. Поэтому никогда не передавайте им ложную информацию! Кстати, многие каталоги имеют свои собственные требования к регистрируемым ресурсам. Некоторые не берут сайты, располагающиеся на бесплатных серверах или содержащие информацию эротического характера. Но таких строгих каталогов немного, и вы с лёгкостью сможете зарегистрироваться в огромном количестве их менее требовательных коллег. Это правда не относится к каталогу сайтов РМП "ProtoPlex", куда попасть вообще сложно.
Прописаться в огромном количестве каталогов и поисковых машин нам помогают специальные программы и онлайновые службы. Есть такие сайты, которые абсолютно бесплатно предоставят вам возможность быстрой регистрации. Обычно всё происходит довольно быстро, на это может уйти менее часа при хорошей производительности. Все инструкции по использованию таких служб можно найти непосредственно на их серверах. Различные компьютерные программы-регистраторы также удобны при регистрации. Принцип их действия весьма прост и незатейлив. В основном всё сводится к копированию данных из буфера обмена в поля форм веб-сайтов. Примером такой программы может стать Allsubmitter.
Привлекая посетителей на сайт, можно воспользоваться услугами многочисленных виртуальных досок объявлений или попросту форумов. При этом информацию о вашем ресурсе важно подать грамотно, иначе результат будет обратным. Не публикуйте ваше объявление многократно, это может вызвать раздражение со стороны других обитателей сети. Засорение форумов, чатов, гостевых книг однообразной информацией называется на сетевом жаргоне "флудом". Не занимайтесь этим. Даже заманив посетителей таким образом, вы не добьетесь от них внимания и тем более заинтересованности в вашей информации. Более правильным подходом будет размещение объявлений в нескольких форумах, нежели размещение нескольких одинаковых объявлений в одном.
СПАМ - метод привлечения аудитории за счёт массовой непрошеной рассылки почтовых сообщений рекламного характера. Я категорически против этого. Это лёгкий путь. Эффективность данного метода резко падает, несмотря на всю изобретательность спаммеров. Очень грубый метод, который может привести к плачевным результатам. Можно лишиться почтового ящика, нажить врагов и даже выслушать грубые слова от своего провайдера. В последнем случае вы можете лишиться и провайдера.
Все вышеперечисленные методы увеличения аудитории являются самыми простыми и к тому же бесплатными. На халяву обычно слетается очень много желающих, вы можете утонуть в их потоке. Поэтому можно использовать более продвинутые способы. Я не буду говорить о платном размещении вашей рекламы на других сайтах. Это довольно дорогое и абсолютно ненужное удовольствие для начинающих. Стоит рассказать о методах, использованных в своё время мной.
Размещение своих авторских статей на других сайтах предусматривает размещение ссылки на сайт при указании авторских прав. Вы можете этим воспользоваться и предлагать свои материалы различным информационным сайтам, электронным издательствам и так далее. На практике можно увидеть хороший приток посетителей с таких ссылок. И это не требует от вас каких-либо действий в дальнейшем. Размещая свои собственные материалы у других, вы тем самым приобретаете известность, на вас легко могут выйти другие и попросить разрешение на публикацию ваших материалов. Это в свою очередь ускорит процесс раскрутки сайта.
Также можно открыть рассылку новостей вашего сайта посредством электронной почты. При этом приток посетителей можно получить от самих служб рассылок. Наиболее популярны сейчас Служба рассылок Городского Кота (http://subscribe.ru/), Контент (http://content.ru/) и MailList (http://maillist.ru/). Первая - самая старая и самая вредная. Новичкам тут трудно. Причин этого множество. Начиная с того, что информацию о вашей рассылке будет трудно найти в общем каталоге для новичков, и заканчивая требованиями администрации к качеству и содержанию рассылок.
Самым оптимальным вариантом я считаю Контент.Ру. Их политика весьма лояльна к новичкам и непрофессионалам. Служба очень удобна и, что самое главное, очень грамотно относится к привлечению подписчиков к новым рассылкам. Всё это и многое другое позволяют новичкам иметь более трёхсот подписчиков уже в первые дни существования рассылки. Но одно дело создать рассылку, другое дело её вести. Я не говорю, что это достаточно сложно и к чему-то вас обязывает. Я вам это утверждаю.
Для программистов существуют специальные каталоги программного обеспечения. Размещая на таких сайтах ссылки на свои программы, вы приобретаете не только аудиторию, но и фанатов. Различные сайты, посвящённые компьютерной графике и анимации имеют обширные галереи работ со ссылками на авторов. Поэты могут публиковать свои произведения на литературных сайтах и так далее.
Таким образом, существует очень много разных методов первоначальной раскрутки сайтов. Секрет успеха заключается в правильном использовании этих методов и, конечно-же, в постоянном совершенствовании вашего веб-узла. Ведь вы же хотите, чтобы ваш сайт был самым интересным и популярным?
К примеру, решили обратиться хостинг-компанию для размещения собственного веб-сайта. У вас уже есть зарегистрированное доменное имя или вы его вскоре планируете зарегистрировать. Ведь какой толк от хостинга без домена? Но выбор хостинга и конкретного тарифного плана не такая простая штука, как кажется на первый взгляд.
Очень важно прочитать отзывы о нескольких хостерах на форумах, проверить аптайм их серверов и внимательно ознакомиться с техническими возможностями хостинга.
1. Техподдержка
В наше время существует очень много хостинг-провайдеров, список которых можно найти в любом поисковике. Остановимся на вопросе о быстроте работы службы техподдержки. Некоторые из них отвечают своим клиентам быстро, а ответа от некоторых приходится ждать часами, а то и днями.
Нередки случаи, когда после 6 вечера и до самого утра вообще никого нет, не говоря уже о праздничных днях. Но ведь оборудование и программное обеспечение вещь ненадежная – возьмет и сгорит блок питания, отпадет проводок или повиснет база данных – “ну у вас и запросы, сказала база данных и повисла”.
От таких хостеров нужно бежать поскорее и подальше, даже не ведитесь на то, что у них цены ниже, зато проблем будет больше. Вообще есть универсальное правило – если вам не ответят в течение часа, это говорит о некачественной работе службы техподдержки.
2. Оборудование, программное обеспечение, скорость каналов, бэкапы
Сервера составляют основу инфраструктуры любого хостинг-провайдера. Ясное дело, что они имеют свои характеристики, такие как тип и производительность процессора, объем оперативной памяти, размер жесткого диска, версии программного обеспечения (операционная система – Linux, FreeBSD, сервер баз данных - MySQL, сам сервер - apache).
Немаловажно, чтобы раз в сутки производился бэкап всего вашего сайта (с БД), был резервный канал данных и подвода электричества.
3. Финансовое положение и доходность хостера
Очень важно знать хотя бы приблизительно, в каком финансовом положении находится ваш хостинг-провайдер. Естественно, о убытках или прибыльности компании вам никто просто так не скажет. Но есть моменты, которые говорят сами за себя.
К примеру, посмотрите характеристики серверного оборудования и ширину каналов у ведущих и авторитетных хостеров. Потом сравните ее с вашим предполагаемым будущим хостером. Если технические характеристики процессоров, типа и емкости оперативной памяти значительно устарели, то видимо не все у них гладко с деньгами или же они попросту экономят на своих клиентах. Тоже самое можно сказать о ширине канала и наличии собственного дата-центра.
К примеру, на одном сервере хостятся 50 сайтов (виртуальный хостинг), всем хватает ресурсов процессора и оперативной памяти, БД не виснет от большого количества запросов в единицу времени. Но если еще добавить на этот сайт 10-20 сайтов и не увеличить производительность оборудования, то проблемы с работоспособностью будут у всех сайтов.
4. Виды услуг, предоставляемых хостингом
Что именно поставщик услуг хостинга собирается вам предложить? В зависимости от ваших требований, он должен быть в состоянии предоставить все, что вам необходимо для работы вашего сайта.
Ведь если вы собираетесь делать лишь домашнюю страничку или сайт-визитку на 10 страниц без использования скриптов, то вам совсем необязательно брать 1 гигабайт дискового пространства, 10 баз данных, и десятки гигабайт трафика.
Другое дело, когда вы собираетесь делать сайт с использованием технологий PHP, asp.net и Java вплоть до скриптов, форумов, покупательских тележек, plesk, CMS и систем электронной коммерции.
Важно, чтобы все необходимые вам технологии поддерживались хостингом в полной мере. Если вы планируете сделать по-настоящему интерактивным по своему содержанию сайт, в том числе в форме видео, потокового медиа, блогов, чатов и многое другое, Вы должны убедиться, что ваш поставщик услуг может предоставить вам все это.
5. Какие гарантии дает ваш провайдер в плане надежности и гарантию по времени доступности сервера (аптайм)?
Поинтересуйтесь у провайдера, какой у них аптайм сервером. Желательно, чтобы была не просто указана цифра на сайте, а был линк на независимый сервис мониторинга аптайма серверов.
Приемлемой величиной аптайма является от 99% до 99,9%. Если эта величина хотя бы за один отчетный период (день, неделю, месяц) ниже, лучше поискать другого хостера.