WrSpy: Анализатор логов WinRoute и не только




О бедном WR 4.X замолвите слово... (часть 1)

Существует огромное количество прокси серверов и Интенет шлюзов, но старенький WinRoute Pro 4.X (далее WR) все еще в состоянии потягаться со многими из них. К его достоинтствам следует отнести крайнюю простоту и надежность, нетребовательность к операционной системе и оборудованию. Чрезвычайно сложно найти что-то, что могло бы годами функционировать на W9X на слабенькой машине, практически без глюков и падений. При этом раздавать Инет полусотне пользователей и держать сотню почтовых ящиков. Достаточно взглянуть на объем инсталятора (около 1М), чтобы убедится в этом. Мало того, это очень надежная защита локальной сети от внешних вторжений. Пока не известны факты взлома сетей, защищенных правильно настроеным WR.
Так вот, к вопросу о настройке... Очень многое можно настроить используя механизм администрирования WrAdmin, но не все. Некоторые вещи возможно сделать только манипулируя ключами реестра. Вот начала несколько очень полезных ключей.
Все значения имеют текстовый тип.

HKEY_LOCAL_MACHINE\Software\TinySoftware\WinRoute
HKEY_LOCAL_MACHINE\Software\Kerio\WinRoute

AdminUserAdded
0 - пользователь admin отсутствует
1 - пользователь admin добавлен
Полезен для удаления администраторского аккаунта при потере пароля.

LogBuffSize
Размер буфера для хранения лога. По исчерпанию, сбрасывается на диск.

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

MailRelayPassword
Пароль для внешнего SMTP сервера

MailRelayUser
Логин для внешнего SMTP сервера

NatPortAllocBegin
Номер порта с которого выделяется область портов, используемая для трансляции механизмом NAT

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

ParentProxyUser
Логин на родительском прокси-сервере

POP3DELE
0 - оставлять сообщения на внешнем POP3 сервере
1 - удалять сообщения на внешнем POP3 сервере

VarListenPort
Номер порта, используемого WrAdmin

Ключи имееют очень прозрачные имена, явно говорящие об их предназначении. Все изменения в реестре нужно производить ТОЛЬКО с остановленным движком WR.

Пара примеров использования.

Восстановление пароля администратора (широко известный метод).
1. Устанавливаем AdminUserAdded="0"
2. Просматриваем ветку \User
Во вложеных ветках находим ключик name со значением admin
Обычно это ветка \User\0
Удаляем ее
3. После рестарта движка WR будет заведен новый администратор с пустым паролем.

А вот метод менее известный
1. Находим в ветке \User старого администратора, обычно это \User\0 и копируем ключик rights
Если не нашли или он уже уничтожен, то принимаем значение rights="4294967295"
2. Выбираем любого пользователя, для которого известны логин и пароль.
Находим его запись в ветке \User
3. Меняем для него значение ключика rights
4. Новый администратор готов.

"Максимальная защита".
Сколько копий сломано по поводу настройки пакетного фильтра для входящих на внешнем интерфейсе. На самом деле все очень просто. Если в WR поднят NAT на внешнем интерфейсе, то все пакеты, идущие через WR во внешний мир отправляются с портов лежащих в диапазоне от NatPortAllocBegin до 65535. Где NatPortAllocBegin ключик реестра. Обычно он имеет значение, равное "61000". Таким образом все порты лежащие ниже этого значения никоим образом не используются (исключение составляет проброс портов посредством портмаппинга для выставленых наружу серверов). Поэтому в правилах для внешних входящих достаточно указать:

Tcp Any host any port => Any host port > (NatPortAllocBegin-1) permit
UDP Any host any port => Any host port > (NatPortAllocBegin-1) permit
IP Any host any port => Any host any port drop

И мы в танке...

Перенос настроек на другую систему
Наиболее просто это производится если количество и назначение сетевых интерфейсов остается без изменения. Операционная платформа роли не играет.
1. Экспортируем всю ветку реестра со старой системы в reg файл.
2. На новой системе устанавливаем WR и лицензируем его.
3. Экспортируем всю ветку реестра с новой системы в reg файл.
4. Открываем старый и новый reg файлы для редактирования.
5. Смотрим ветку \Iface\0 в новом reg файле и копируем в буфер значение ключика Id
6. Находим в старом reg файле ветку, соответствующую этому интерфейсу и изменяем ему значение ключика Id
7. Повторяем пп. 5 и 6 для всех интерфейсов.
8. Импортируем на новой системе СТАРЫЙ отредактированый reg файл.
Если не проделать эту процедуру и просто импортировать старый reg файл, то количество обслуживаемых интерфейсов WR удвоится и правила пакетного фильтра окажутся примененными к несуществующим интерфейсам.

А сколько возможностей для автоматизации управления доступом к ресурсам Интернет дают ветки \Acl \Group \Sacl \Urlac \User
Но это отдельный разговор ...