Обратная связь:

 

 

Оптимизируй это!

или как нам обустроить компьютер

Главная Часть I Часть II Часть III Часть IV Часть V

 

Часть III

Брандмауэр

Все мы помним, как Тиль Уленшпигель бежал по улице, крича во всё горло: «Т’брандт! Т’брандт!». «Пожар!», то есть, по-нашему.

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

Меня, как и многих других пользователей, вполне устраивает «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 до 200 спамерских посланий ежедневно. Понятно, что выгребать из этого хлама нормальные письма трудновато. Вручную разгребать всё это барахло через web-интерфейс мне лениво. Хочется нажать кнопку в почтовике, принять всю почту, да ещё что бы зёрна от плевел самостоятельно отделились, да ещё кто бы спинку почесал… В-общем, нужен персональный антиспам.

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

Снёс. Удалил базу. Поставил заново. Через пару месяцев – та же история. Удалил к чёртовой бабушке. Брандмауэр у них отличный…

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

К тому же, через пару дней использования этот «продукт» стал валить в папку спама вообще все мои письма, невзирая ни на что.

Снёс, дрожа от нетерпения. Так и вспоминается фраза японца из анекдота: «Дети у вас хорошие. Но всё, что вы делаете руками…».

Очередным кандидатом в помощники был «SPAMfighter». Продукт великолепный, ложных срабатываний очень мало, настраивается чувствительность, поддаётся обучению, интерфейс и статистика – выше всяких похвал. Вы ещё не побежали на их сайт вприпрыжку?

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

Я не против, конечно, пусть их… Но я сын своего времени и своего народа. При нашей-то страсти к халяве мне предлагают такое! Снёс.

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

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

 

рис. 1

рис. 2

рис. 3

Всё готовенькое

 

Чтобы вдохновить читателя на подвиги, сообщу, что в природе существует собранный мною дистрибутив nnCron, обладающий многими достоинствами:

·         nnCron устанавливается со всеми необходимыми плагинами и параметрами, его не придётся настраивать вручную

·         в состав дистрибутива уже входят все скрипты, описанные в данном цикле статей

·         устанавливается уже зарегистрированным. Это не наносит ущерба автору – как уже упоминалось, для жителей б.СССР это удовольствие бесплатное

·         также дистрибутив содержит утилиты Wget и Pkunzip, которые будут инсталлированы вместе с nnCron

·         дистрибутив выполняет некоторую оптимизацию Windows: создаёт папку для временных файлов с коротким именем «C:\TEMP»; отключает общиe ресурсы «Admin$», «С$», и т.д.; отключает встроенный отладчик «Dr.Watson»; запрещает выгружать ядро системы в файл свопинга, чем отсекает потенциальные «тормоза», просит Windows выгружать из памяти неиспользуемые приложениями библиотеки: это гораздо практичнее использования всяких левых «оптимизаторов оперативной памяти»

·         инсталлирует бесплатный дефрагментатор «JkDefrag», работающий в режиме экранной заставки

·         Наконец, размер этого дистрибутива поменьше «родного» - 854 Кб

 

Вся эта благодать стоит 1 000 рублей. Не имея целью навязать сей продукт, замечу, что дело это стоящее, сбережёт вам массу времени и нервов.


Главная Часть I Часть II Часть III Часть IV Часть V

Главная | Часть I | Часть II | Часть III | Часть IV | Часть V

По вопросам, связанным с этим веб-узлом, обращайтесь по адресу
© ASK Software, 2004. Все права защищены.
Последнее изменение: 24.10.2008.