Архивы: proxy

cntlm — локальный прокси-сервер с поддержкой NTLM авторизации

Если Ваш компьютер находится в сети Windows и отделен от внешнего мира прокси-сервером с авторизацией по протоколу NTLM, есть простое решение, позволяющее настроить выход в интернет для приложений, не поддерживающих NTLM авторизацию.

Я для этих целей использую локальный прокси-сервер cntlm, который доступен как для платформы Windows, так и Linux.

Он осуществляет всю работу по авторизации, открывая локальный порт в системе, через который можно настроить выход в сеть для любых приложений.

Для начала работы необходимо отредактировать файл конфигурации. Достаточно изменить следующие параметры:

Username        user_name     # Имя пользователя для доступа к прокси-серверу
Domain          DOMAIN     # Имя домена в сети
Password        passwd    # Пароль для доступа к прокси-серверу

Proxy           10.50.1.8:8080    # Адрес прокси-сервера и порт
#Proxy          10.217.112.42:8080    # Еще прокси, если их несколько

#Listen         3128    # Локальный прослушиваемый порт, по умолчанию 3128

Все, теперь можно запускать демона cntlm (в Linux) или сервис (в Windows).

/etc> sudo /etc/init.d/cntlm start

Пакет cntlm доступен в репозиториях всех популярных дистрибутивов Linux, по крайней мере в Ubuntu и openSUSE точно есть. Для Windows платформы можно скачать на сайте разработчиков.

Настройка же приложений сводится к указанию адреса 127.0.0.1 и порта 3128 (или другого, в зависимости от Ваших настроек) в качестве адреса прокси-сервера, без авторизации.

Использование SSH туннеля для HTTP-траффика

Некоторое время назад на моей работе резко ужесточили политику безопасности, перекрыв доступ ко множеству интернет-ресурсов, в том числе ко всем известным почтовым системам.

Т.к. моя почта находится на GMail, я, также, однажды утром не смог отрыть свой почтовый ящик.

Но, как водится, на каждый лом найдется другой лом покрепче. Так исторически сложилось, что у меня дома установлен сервер, работающий круглосуточно, который выполняет разные полезные функции, как то:

  • Веб-сервер;
  • Скачивание и раздача torrent-ов;
  • Сетевое файловое хранилище;
  • SVN-сервер для моих проектов;
  • Backup для остальных компьютеров и много других мелких задач.

Сам сервер не представляет особого интереса — это старенький компьютер, который работает под управлением openSUSE без поддержки графического режима. Мой домашний интернет-провайдер предоставляет каждому клиенту статический «белый» IP-адрес, благодаря чему я могу получить доступ к серверу из любого уголка земного шара.

А теперь по делу. На сервере в числе прочих сервисов настроен SSH-сервер, который до этого я использовал для доступа к командной строке из внешнего мира. Причем, он настроен таким образом, что слушает не стандартный порт, а порт 443, который является единственным портом, который обычно открыт для пользователей.

Протокол SSH, помимо доступа к командной строке удаленного компьютера, позволяет создать TCP -туннель для передачи любой информации (будь то файлы или HTTP траффик).

Для открытия туннеля не нужно никакого дополнительного программного обеспечения, только sshd на серверной стороне и ssh-клиент на клиентском компьютере.

Для соединения с сервером, выполните команду:

ssh -ND localhost:1818 login@remoteserver.ru -p 443

Параметр «-D  localhost:1818″ указывает локальный порт, который будет прослушивать ssh-клиент.

«login@remoteserver.com» указывает имя пользователя на удаленной системе и непосредственно адрес этой системы.

«-p 443″ указывает порт ssh-сервера на удаленной системе.

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

Для запуска ssh в background режиме, можно добавить параметр «-f».

Итак, соединение установлено. Теперь, для того, чтобы воспользоваться созданным туннелем, необходимо в настройках Вашего браузера указать SOCKS прокси-сервер с адресом «localhost» и портом «1818″, который был указан выше.

Вот и все. Теперь весь траффик идет по шифрованному ssh-туннелю через удаленную машину.