16+
ComputerPrice
НА ГЛАВНУЮ СТАТЬИ НОВОСТИ О НАС




Яндекс цитирования


Версия для печати

Модуль поиска не установлен.

Оптимизируй это! Часть III

09.09.2008

Все мы помним, как Тиль Уленшпигель бежал по улице, крича во все горло: «Т’брандт! Т’брандт!». «Пожар!» то есть, по-нашему. Каждый пожарный обязан знать, где находится брандмауэр. Этим словом немцы называли сплошную каменную стену без проемов, разделяющую части здания, подобно переборкам в трюме корабля, чтобы огонь не охватил весь дом в случае пожара. Есть и английский аналог этого понятия, куда ж без него. Файрволл – «огненная стена».

Брандмауэр

О вкусах не спорят, есть тысяча мнений… Меня, как и многих других пользователей, вполне устраивает «Agnitum Outpost» (www.agnitum.ru). Помимо множества бесспорных достоинств, подкупает модульность этого брандмауэра и возможность управлять его запуском и остановкой из командной строки, а не только вручную.

Модульность дает вполне реальный выигрыш, позволяя запускать лишь те компоненты ПО, которые нам необходимы, и только тогда, когда в них есть нужда. «Agnitum Outpost» можно разделить на следующие модули: собственно брандмауэр (служба «Agnitum Client Security Service»), интерфейс к нему и приложение, ответственное за обновление продукта и связь пользователей с разработчиками (feedback).

После обычной установки Outpost нам потребуется немножечко его подкрутить, чтобы сделать более сговорчивым в плане управляемости. Для этого:

во-первых, те, кто не желает, чтобы в Agnitum автоматически отправлялись сведения с их компьютеров, могут отключить автоматический запуск процесса «feedback» (с помощью «Пуск/Выполнить/msconfig/Автозагрузка») – это уже упомянутый компонент обратной связи;

во-вторых, там же следует отключить запуск процесса «op_mon» – интерфейс к службе брандмауэра – мы намерены запускать его не при запуске Windows, а по необходимости;

в-третьих, Outpost будет сопротивляться тому, чтобы его отключали, и это понятно: Agnitum заботится о нашей безопасности. Вот только мы уже не дети и вполне в состоянии позаботиться о себе сами, поэтому все же укажем брандмауэру, что нуждаемся в его услугах, а не опеке. На рис. 1 выделены параметры, которым надо установить именно те значения, что показаны;

в-четвертых, службу «Agnitum Client Security Service» следует перевести в ручной режим запуска – см. рис. 2.

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

Первое задание (листинг 1) запускает брандмауэр. Запускать интерфейс (значок со щитом в трее) или нет – личное дело каждого, и регулируется этот вопрос в задании «outpost_start» одною из двух строк:

START-APP: "C:\Program Files\Agnitum\Outpost Firewall Pro\op_mon.exe" /tray

\ START-APP: net start "Agnitum Client Security Service"

Первая из них запустит как службу, так и интерфейс к ней, вторая – только службу. По умолчанию, работает первый вариант запуска, второй закомментирован.

Второе задание (листинг 2) останавливает брандмауэр в два приема. Сначала останавливается служба, затем «срубается» интерфейс управления. Как мы помним, это отдельное приложение, и после вдумчивой настройки файрволла его, в принципе, можно и не запускать. Мы живем в свободной стране. Реализуем свободу выбора: возможность быстрого запуска или убивания интерфейса к брандмауэру вручную. Повесим это дело на горячую кнопку «Ctrl-O» – см. листинг 3.

 

#( outpost_start

NoLog

NoDel

AsLoggedUser

LoadProfile

Time: 41 16 18 10 * 2007

Action:

SWHide    NormalPriority

 

    PROC-EXIST: "acs.exe" NOT

   IF

      FILE-EXIST: "C:\Program Files\Agnitum\Outpost Firewall Pro\op_mon.exe"

      IF

        START-APP: "C:\Program Files\Agnitum\Outpost Firewall Pro\op_mon.exe" /tray

        \ START-APP: net start "Agnitum Client Security Service"

      THEN

    THEN

)#

Листинг 1

 

#( outpost_stop

NoLog

RunOnce

Time: 41 16 18 10 * 2007

NoDel

AsLoggedUser

LoadProfile

Action:

SWHide   NormalPriority

 

 PROC-EXIST: "acs.exe"

 IF

    START-APP: net stop "Agnitum Client Security Service"

 THEN

 

 PROC-EXIST: "op_mon.exe"

 IF

    KILL: "op_mon.exe"

 THEN

 

 PAUSE: 100

 TRAY-REFRESH

)#

Листинг 2

 

#( opmon

NoLog

NoDel

AsLoggedUser

LoadProfile

WatchHotKey: "^@o"

Action:

ShowMinimized    NormalPriority

 

 PROC-EXIST: "op_mon.exe"

 IF

    KILL: "op_mon.exe"

    PAUSE: 100

    TRAY-REFRESH

 ELSE

    START-APP: "C:\Program Files\Agnitum\Outpost Firewall Pro\op_mon.exe" /tray

 THEN

)#

Листинг 3

 

Несмотря на усталость, продолжаем – стрижка только начата. В листинге 4 приведено задание для nnCron, которое будет возводить все нужные нам защитные редуты в момент соединения с Интернетом. Как видно из текста, будет запущен брандмауэр, антивирусный файловый монитор (DrWeb Spider NT) и, если почтовый клиент работает, почтовый монитор (DrWeb Spider Mail).

Мы все учились понемногу, чему-нибудь и как-нибудь. Встречая на вечеринке стоматолога, мы понимаем, что давно уже пора заняться своими зубами. Познакомившись со слесарем-водопроводчиком, вспоминаем, что неплохо бы заменить прокладки в кранах. А когда шапочные знакомцы узнают, что мы что-то смыслим в компьютерах, они стараются залучить нас к себе домой – помочь в их сложных и порой неоднозначных отношениях с железным другом. Ничего не попишешь, карма такая. Слава умельца бежит впереди нас.

Мастер отличается от простого смертного тем, что в его багаже есть как зарекомендовавшие себя методы, так и инструменты, их реализующие. Чтобы хоть как-то разгрузить свою насыщенную жизнь от проблем полузнакомцев, удобно использовать удаленное управление их компьютерами. Утилита «rAdmin» – как раз из этой серии. В процессе «окучивания» компьютера очередного клиента я устанавливаю на нем серверную часть rAdmin’а. После установки rAdmin службу его, «rAdmin server», перевожу в ручной режим запуска с тем, чтобы она не болталась в памяти и не отнимала ее у очень важных приложений типа «Counter Strike». А вот при соединении с Интернетом пусть запускается, а уж мы, при необходимости, удаленно, попивая дома кофеек, разберемся с ведомым компьютером.

Естественно, при разрыве соединения служба будет остановлена. Два соответствующих задания приведены в листинге 5.

Последние закомментированные строки в задании «OnBeginConnect» запускают менеджер закачек «ReGet», если очередь закачек не пустая. Тот же самый финт несложно проделать и с любым другим менеджером.

 

#( OnBeginConnect

NoLog

AsLoggedUser

WatchWinCreate: "Установка связи*"

Action:

SWHide   NormalPriority

 

 outpost_start RUN

 spidernt_start RUN

 

 PROC-EXIST: "OUTLOOK.EXE"

 IF

    spiderml_start RUN

 THEN

 

 \ rAdmin_start RUN

 

 \ ShowNormal NormalPriority

 \

 \ \ Если очередь закачек не пустая, запустить ReGet

 \ 2300. FILE-SIZE: "C:\Program Files\ReGet Software\ReGet Deluxe\Queue.wjr" D<

 \ IF

 \   START-APP: "C:\Program Files\ReGet Software\ReGet Deluxe\ReGetDx.exe"

 \ THEN

)#

Листинг 4

 

#( rAdmin_start

NoLog

NoDel

AsLoggedUser

LoadProfile

RunOnce

Time: 41 16 18 10 * 2007

Action:

SWHide   NormalPriority

 

 \ Если rAdmin еще не запущен,

 PROC-EXIST: "rserver3.exe" NOT

 IF

    \ и он, собственно, установлен на компе,

    FILE-EXIST: "C:\WINDOWS\system32\rserver30\newtstop.ini"

    IF

      \ Приказать ему спрятать иконку

      S" C:\WINDOWS\system32\rserver30\newtstop.ini" INI-FILENAME

      S" options" INI-SECTION

      S" hide_tray_icon" S" 1" INI-SET-VALUE

   

      \ Запустить службу "rAdmin server"

      START-APP: net start "Radmin Server V3"

    THEN

 THEN

)#

 

#( rAdmin_stop

NoLog

NoDel

AsLoggedUser

LoadProfile

RunOnce

Time: 41 16 18 10 * 2007

Action:

SWHide   NormalPriority

 

 \ Если rAdmin запущен

 PROC-EXIST: "rserver3.exe"

 IF

    \ Остановить службу "rAdmin server"

    START-APP: net stop "Radmin Server V3"

 THEN

)#

Листинг 5

 

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

Если вы пользуетесь модемным соединением (dial-up), то при начале соединения, когда модем хрипит и пищит, на экране появляется окошко с заголовком «Установка связи…» и индикатором процесса. Вот на это окошко и реагирует наш планировщик, запуская задание «OnBeginConnect».

Если же вы счастливый обладатель выделенки, то при подключении к Интернету через локальную сеть появится окошко с заголовком «Подключение по локальной…». Умница nnCron и на него среагирует благодаря заданию «OnNetConnect» из листинга 6.

Наконец, если вы вчера выключили компьютер, не отсоединившись от Сети, то при сегодняшнем включении соединение будет активным, и нам нельзя оставить этот факт без внимания. Надо запустить все те же защитные механизмы при старте системы, иначе мы рискуем подцепить что-то нехорошее… За этим следит задание OnLogon.

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

 

#( OnNetConnect

NoLog

AsLoggedUser

LoadProfile

WatchWinCreate: "Подключение по локальной*"

Action:

SWHide   NormalPriority

 

 OnBeginConnect RUN

)#

 

#( OnLogon

NoLog

AsLoggedUser

LoadProfile

WatchLogon: "*"

Action:

SWHide   NormalPriority

 

 \ Если вставлена флешка, содержащая файл кэша для eBoostr

 FILE-EXIST: "%eBoostr_Letter%:\eboostr.dat"

 IF eBoostr_start RUN THEN

 

 HOST-EXIST: "rbc.ru"

 IF

    \ Если защиты нет, включить ее

    PROC-EXIST: "acs.exe" NOT

    IF

      OnBeginConnect RUN

    THEN

 THEN

)#

Листинг 6

 

Вспомним термины из предыдущей статьи. «Манипуляторы» – задания для планировщика, что-то запускающие и выполняющие. «Нервные импульсы», управляющие «манипуляторами» – задания, реагирующие на происходящие в системе события и заставляющие компьютер шевелить клешнями, то бишь, «манипуляторами».

В соответствии с этой классификацией, задания «rAdmin_start» и «rAdmin_stop» являются манипуляторами, «OnBeginConnect» сочетает в себе признаки как «манипулятора», так и «нервного импульса» (реагирует на событие «старт соединения через dial-up»), а «OnNetConnect», «OnLogon» – однозначно «импульсы», чистая идея, так сказать.

Итак, с запуском защиты мы разобрались. Займемся ее остановкой. Импульс-манипулятор «OnDisConnect» из седьмого листинга реагирует на разрыв модемного соединения. Он останавливает и выгружает из памяти все, что можно: брандмауэр, все модули антивируса, менеджер закачек, rAdmin.

А вот установление/разрыв связи через локальную сеть обнаружить не так легко, как в случае с dial-up. У nnCron просто отсутствуют обработчики соответствующих событий, поэтому придется изощряться. В листинге 8 приведено задание «Ежеминутно»; в нем организован цикл, в теле которого и выполняется вся работа. Таким образом, на самом деле nnCron выполняет это задание каждые 10 секунд. Вполне достаточно для оперативного реагирования на изменение ситуации со связью.

Если выход в большой мир есть (доступен сайт www.rbc.ru; можно использовать любой другой, например, mail.ru), а защиты нет, компьютер быстренько исправит оплошность, запустив все, что требуется.

Напротив, если связи нет и нет процесса ее установления (соответствующих окошек), запускается «OnDisconnect», возвращающий все ресурсы компьютера сидящему за ним хозяину.

Таким образом, наш компьютер, как мы и планировали, становится все более разумным и услужливым, предоставляя всю свою мощь пользователю и не снижая при этом степени защищенности.

 

#( OnDisconnect

NoLog

AsLoggedUser

LoadProfile

WatchDisconnect

VARIABLE DISCONN

Action:

SWHide   NormalPriority

 

 DISCONN GET

    FILE-EXIST: "%TEMP%\connected.ok"

    IF

      FILE-DELETE: "%TEMP%\connected.ok"

      PLAY-SOUND: "Windows XP – извлечение оборудования.wav"

    THEN

   

    PROC-EXIST: "ftp.exe"

    IF

      KILL: ftp.exe

    THEN

   

    spiderml_stop RUN

    spidernt_stop RUN

    outpost_stop RUN

   

    PROC-EXIST: "ReGetDx.exe"

    IF

     KILL: "ReGetDx.exe"

     TRAY-REFRESH

    THEN

   

    \ rAdmin_stop   RUN

 DISCONN RELEASE

)#

Листинг 7

 

#( Ежеминутно

NoLog

NoDel

AsLoggedUser

LoadProfile

VARIABLE EVERY_MIN

Action:

SWHide   NormalPriority

 

 \ 6 итераций цикла с паузой в 10 секунд

 6 0 DO

    EVERY_MIN GET

      \ Если флешка с еБустером "отвалилась", остановить службу

      FILE-EXIST: "%eBoostr_Letter%:\eboostr.dat" NOT

      IF

        eBoostr_stop RUN

      THEN

     

   

      \ Если связь с Интернетом есть

      HOST-EXIST: "rbc.ru"

      IF

       \ Если защиты нет, включить ее

       PROC-EXIST: "acs.exe" NOT

       IF

         OnBeginConnect RUN

       THEN

      ELSE

       WIN-EXIST: "Установка связи*"

       IF

       ELSE

        WIN-EXIST: "Подключение по локальной*"

        IF

        ELSE

         OnDisconnect RUN

        THEN

       THEN

      THEN

     

      PAUSE: 10000

    EVERY_MIN RELEASE

 LOOP

)#

Листинг 8

 

Под занавес позволю себе порассуждать об антивирусах и брандмауэрах.

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

В последнее время стало модным все пихать «в один флакон». Флаконная экономика, так сказать… Производители антивирусов клепают монстров, включающих антивирус, антиспам, брандмауэр, планировщик. Производители брандмауэров проснулись и кинулись вдогонку давно ушедшему поезду, спешно лепя антивирусы. Интересно, как у них со службой мониторинга обстоит?

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

Антиспам

Пару слов о спаме. Имея свой сайт, я получаю от 20 до 90 спамерских посланий ежедневно. Понятно, что выгребать из этого хлама нормальные письма трудновато. Вручную разгребать все это барахло через web-интерфейс мне лениво. Хочется нажать кнопку в почтовике, принять всю почту, и чтобы зерна от плевел самостоятельно отделились, да еще спинку кто бы почесал… В общем, нужен персональный антиспам.

Начал с бесплатного продукта «Agnitum Spam Terrier». Вроде бы все опрятно и прилично, интерфейс радует, можно задавать как уровень реагирования, так и указывать «терьеру», что является спамом, а что нет, – «натаскивать» его. Запускал его только при старте MS Outlook, при закрытии Outlook выгружал и «терьера». Все шло хорошо. Месяца два-три. А потом что-то в нем переглючило, и при очередном старте «терьерчик», пытаясь переиндексировать свою базочку, занимал все 100% процессорного времени. И конца-края этому не было видно. Снес. Удалил базу. Поставил заново. Через пару месяцев – та же история. Удалил к чертовой бабушке. Брандмауэр у них отличный…

Следующим кандидатом был «DrWeb» – версия, включающая в себя модуль антиспама. Ну, это что-то! Это чудо принципиально необучаемое, ему даже не подскажешь, что письмо-таки легитимное. Повлиять на правильность распознавания можно, только переслав письмо, на котором DrWeb-антиспам ложно сработал, даниловским ребятам и попросив их учесть это в дальнейшем. Как вы думаете, учтут?

К тому же, через пару дней использования этот «продукт» стал валить в папку спама вообще все письма, невзирая ни на что. Снес. Так и вспоминается фраза японца из анекдота: «Дети у вас хорошие. Но все, что вы делаете руками…». Ну и как после этого сомневаться в библейском «оставьте богу богово, а кесарю – кесарево»?

Очередным кандидатом в помощники был «SPAMfighter». Продукт великолепный, ложных срабатываний очень мало, настраивается чувствительность, поддается обучению, интерфейс и статистика – выше всяких похвал. Вы еще не побежали на их сайт вприпрыжку? Конечно же, к этой бочке меда полагается своя ложка дегтя. Ребята хотят денег. По завершении триального периода снижается функциональность и в отправляемые вами письма добавляются глупые рекламные фразочки. Пусть их, конечно… Но я сын своего времени и своего народа. При нашей-то страсти к халяве мне предлагают такое! Снес.

Наверное, многие из вас могут порекомендовать свой любимый продукт, но у меня на тот момент желание «бороться и искать, найти и не сдаваться» упало ниже плинтуса. Обратил взгляд на родные свойства MS Outlook. Оказалось, что все не так уж плохо. Достаточно заблокировать нежелательные кодировки и домены типа азиатских (см. рис. 3), и дышать становится значительно легче. Плюс вдумчивое создание полутора десятков правил в MS Outlook, отфильтровывающих всякую галиматью по формальным признакам.

В общем, остановился пока на этом варианте. Процентов 90-95 спама отсеивается, 3-5 процентов легитимных писем ошибочно валятся в спам-папку, но не удаляются бесследно, их можно оттуда выудить.



статьи
статьи
 / 
новости
новости
 / 
контакты
контакты