Доступ к ICQ в корпоративной сети
АрхивИнтернетКогда в корпоративной сети закрыт доступ к "аське" или "Живому Журналу", и вроде бы ничего нельзя сделать, есть неожиданное решение: использовать GPRS, причем только для ICQ- или LiveJournal-трафика.
Когда в корпоративной сети закрыт доступ к "аське" или "Живому Журналу", и вроде бы ничего нельзя сделать, есть неожиданное решение: использовать GPRS, причем только для ICQ- или LiveJournal-трафика. Для этого необходимо сделать так, чтобы пакеты, адресованные к ICQ-серверу, отправлялись по GPRS, а все прочие - в локальную сеть. И эта задача легко решается стандартными средствами Windows, а именно - настройкой TCP/IP-роутинга.
Итак. Подключаем телефон к компьютеру и создаем в Windows GPRS-соединение. Имя соединения должно содержать слово "GPRS" (оно нам понадобится позже, при автоматизации). Теперь необходимо запретить передачу через это соединение непредназначенного для него трафика. Для этого идем в свойства созданного соединения, на вкладку "Сеть".
Там выбираем строчку "Протокол интернета (TCP/IP) и затем нажимаем кнопку "Свойства". Там жмем кнопку "Дополнительно..." и идем на вкладку "Общие".
Тут надо снять галку на пункте "Использовать основной шлюз в удалённой сети"1.
Теперь устанавливаем GPRS-соединение и идем в консоль (Пуск -> Выполнить -> CMD)2.
Узнаем, какой IP-адрес был выдан подключению GPRS. Набираем в консоле команду IPCONFIG. Будет выдан список установленных сетевых интерфейсов - локальная сеть (Ethernet) и GPRS.
Нас интересует IP-адрес для GPRS-соединения, запоминаем его.
Теперь, будем строить таблицу роутинга на сеть ICQ. Сервер ICQ имеет и использует две сети - 64.12.0.0/16 и 205.188.0.0/16. Чтобы Windows отправляла ICQ-пакеты на GPRS, надо ввести в консоли следующие команды (на месте IP-АДРЕС-GPRS потребуется указать тот IP-адрес GPRS, который мы ранее посмотрели):
ROUTE ADD 64.12.0.0 MASK 255.255.0.0 IP-АДРЕС-GPRS
ROUTE ADD 205.188.0.0 MASK 255.255.0.0 IP-АДРЕС-GPRS
Готово. Теперь можно запускать ICQ (лучше альтернативного клиента, чтобы не тратить трафик на ICQ-баннеры, например, Miranda) и она будет работать через GPRS, а не через сеть. Также в настройках ICQ-клиента нужно запретить прямые соединения между любыми пользователями.
Однако, в корпоративной сети служба DNS может не найти имя ICQ-сервера - login.icq.com, для решения этой проблемы в настройках ICQ вместо имени сервера укажите его IP-адрес. Узнать адрес можно, введя в консоли команду PING login.icq.com и посмотрев указанный в первой строке (в квадратных скобках) IP-адрес. Например, 64.12.200.89.
Аналогичным образом можно сделать роутинг и к каким-нибудь заблокированным в корпоративной сети сайтам, например, livejournal.com. Для этого надо выяснить IP-адрес сайта (через PING) - 66.150.15.150 и написать еще одну команду ROUTE:
ROUTE ADD 66.150.15.150 MASK 255.255.255.255 IP-АДРЕС-GPRS
Чтобы на сайт можно было заходить без обращения к DNS, откройте в "Блокноте" файл C:\WINDOWS\System32\Drivers\etc\hosts и добавьте в него строчку:
66.150.15.150 www.livejournal.com
Важное замечание. В корпоративной сети у вас на компьютере может не быть брандмауэра, поскольку он есть на сервере. Подключение GPRS представляет серьезную угрозу безопасности, как вашего компьютера, так и всей сети. Обязательно используйте брандмауэр для этого подключения.
Поскольку у нас в GPRS IP-адреса обычно динамические (каждый раз разные), то при каждом подключении к GPRS вам придется заново смотреть в IPCONFIG выданный адрес и заново вводить его командой ROUTE. Конечно, можно с этим смирится, но попробуем автоматизировать этот процесс, используя встроенный в Windows интерпретатор Windows Script Host.
Идея проста. Нам надо узнать назначенный IP и вставить его в команду ROUTE. Как известно, указав после команды знак ">" и имя файла, ответ команды будет выведен не на экран, а записан в файл. Таким образом, мы получим в текстовом виде ответ команды IPCONFIG. Далее, средствами Windows Script Host по ключевым словам найдем в тексте сначала абзац с описанием GPRS, а потом в нем - строку с назначенным IP-адресом. Затем вставим эту строчку в параметры команды ROUTE и выполним ее.
Итак, открываем "Блокнот" и пишем в нем такой сценарий (строчки со знаком ' пустые и их можно не писать)3:
'используемые объекты
set fso = CreateObject("Scripting.FileSystemObject")
set sh = WScript.CreateObject("WScript.Shell")
'временный файл
r = "c:\set_gprs_route.tmp"
'запись в файл отчёта команды IPCONFIG
sh.Run "CMD /C IPCONFIG >"+r,8,1
'Обработка отчёта IPCONFIG.
set f = fso.OpenTextFile(r, 1)
Dim IpAdr
'сначала найдём строку "GPRS" - с неё
'начинается информация о нужном адаптере.
Do While f.AtEndOfLine <> True
t = f.ReadLine
if (InStr(1, t, "GPRS", 1)) Then
'Теперь найдём строчку со словом "IP"
Do While f.AtEndOfLine <> True
t = f.ReadLine
if (InStr(1, t, "IP", 1)) Then
'В самом конце строчки - IP-адрес, его и возьмем
IpAdr = Right(t, Len(t) - InStrRev(t," "))
Exit Do
End If
Loop
Exit Do
End If
Loop
'удалим временный файл
f.Close
fso.DeleteFile(r)
'Зарегистрируем маршруты роутинга на адрес GPRS
sh.Run "ROUTE ADD 64.12.0.0 MASK 255.255.0.0 "+IpAdr,8,1
sh.Run "ROUTE ADD 205.188.0.0 MASK 255.255.0.0 "+IpAdr,8,1
'Это просто для наглядности сообщение,
'можно эту строчку удалить
WScript.Echo("Выданный GPRS IP-адрес: "+IpAdr)
'Завершение сценария.
WScript.Quit(0)
Сохраняем это в файл с расширением VBS, допустим, Set_Gprs_Route.vbs. Теперь, подключившись к интернету через GPRS, достаточно запустить этот сценарий и роутинг к серверу ICQ будет автоматически настроен через GPRS.
1. Для Windows ME эта опция находится в другом месте: "Свойства" соединения -> вкладка "Сеть" -> кнопка "Настройка TCP/IP" -> снять галку на "Использовать стандартный шлюз для удаленной сети". [вернуться]
2. Для Windows ME следует использовать вместо команды CMD команду COMMAND. [вернуться]
3. Приведенный пример сценария предназначен для Windows 2000 и выше, для Windows ME в него следует внести некоторые изменения: команду CMD заменить на COMMAND, а имя соединения искать не по строке "GPRS", а по строке "1 Ethernet". [вернуться]