Меню Рубрики

Установка proxy сервера debian

Установка и настройка прокси-сервера 3proxy на Debian/Ubuntu

Введение

В этой статье мы расскажем, как установить и настроить прокси-сервер.

Прокси-сервер (от англ. proxy — «представитель, уполномоченный»)
выступает в роли посредника в коммуникациях между вашим ПК/мобильным и Интернетом.

Причин использовать его может быть множество, включая:

  • Обход ограничений доступа к определенным веб-ресурсам установленным администратором локальной сети.
  • Обход региональных ограничений доступа у определённых веб-ресурсов.
  • Анонимный доступ к веб-ресурсам путём сокрытия реального IP-адреса.

Среди всего многообразия прокси-серверов остановим свой выбор на открытом бесплатном кроссплатформенном сервере от Владимира ‘3APA3A’ Дубровина — 3proxy опубликованный под BSD-подобной лицензией. Текст лицензии.

Среди альтернатив можно выделить Squid, но он:

  • Сложен в настройках.
  • Потребляет больше ресурсов.
  • Не скомпилирован с поддержкой SSL по умолчанию и сложен для компиляции.

Также внимание заслуживает tinyproxy.

Преимущества и недостатки:

Он включает в себя:

  • HTTP прокси с поддержкой HTTPS и FTP.
  • SOCKSv4/SOCKSv4.5/SOCKSv5 прокси.
  • POP3 прокси.
  • SMTP прокси.
  • AIM/ICQ прокси.
  • MSN messenger / Live messenger прокси.
  • FTP прокси.
  • Кэширующий DNS прокси.
  • TCP и UDP портмапперы.

Так же доступны дополнительные возможности, такие как:

  • Управление доступом.
  • Ограничение ширины потребляемого канала.
  • Ограничение трафика на день, неделю и месяц.
  • Перенаправление соединений.
  • Построение цепочек соединений.
  • Ротация лог-файлов.
  • Ведение журналов через ODBC и syslog.
  • Поддержка IPv6.
  • и ряд других.

К недостаткам можно отнести:

  • Отсутствие поддержки кеширования веб-страниц.
  • Отсутствие в официальных репозиториях некоторых linux-дистрибутивов (включая Debian и Ubuntu), но в репозиториях Gentoo, RedHat, Alt Linux присутствует.

Технические требования

  • Операционная система Debian GNU/Linux (версии с 7 по 9) или Ubuntu (версии с 14.04 по 17.04) любой разрядности (32/64 бита).
  • Пользователь с привилегиями root (как вариант доступ через sudo).

Шаг 1. Подготавливаем инструментарий

В связи с тем что он отсутствует в официальных репозиториях Debian и Ubuntu, мы будем устанавливать его из исходников.

Но перед этим установим всё необходимое для дальнейшей работы.

Шаг 2. Скачиваем и распаковываем исходники

Последняя версия 0.8.10 (на момент написания руководства).
Узнать последнюю версию можно на официальном сайте, при необходимости просто замените цифры на необходимые в следующих парах команд:

Шаг 3. Компилируем

Шаг 4. Устанавливаем

Копируем получившийся бинарный файл:

Создадим отдельного системного пользователя proxy3 от имени которого и будет работать сервер:

Узнаём UID и GID пользователя командой:

Вставляем в него следующий код:

(вставка из буфера обмена возможна по клику правой кнопки мыши или Ctrl+U или F10)

(Для сохранения и закрытия нажмите CTRL+X затем Y)

Комментарии начинаются со знака # и допустимы только с начала строки.
Рекомендуется вообще удалить комментарии для более стабильной работы 3proxy.
Рекомендуется также использовать другой порт вместо стандартного 3128 для прокси серверов, лучше всего из диапазона 49152—65535.

Другие примеры настроек можно посмотреть командами:

или же в одном из следующих руководств на которые ссылается официальный сайт:

Вот пример конфигурации без ведения логов:

Создаём файл с пользователями и паролями:

Вставляем в него следующий код:

(вставка из буфера обмена возможна по клику правой кнопки мыши или Ctrl+U или F10)

(Для сохранения и закрытия нажмите CTRL+X затем Y)

Где логин: username и пароль: strongpassword следует изменить на свои.

Каждый новый пользователь указывается с новой строки.

Выставляем права доступа к файлам прокси-сервера:

Создаём папку для ведения логов и назначаем права на неё:

В случае наличия IPv6 на сервере,
рекомендуем запускать прокси со следующей строкой в /etc/3proxy/3proxy.cfg:

для сервера с IPv4:95.213.255.16 и IPv6:2002:5fd5:ff010::1 у вас же они будут иные.
В таком случае будет поддержка IPv6 на выходе с прокси,
например https://yandex.ru/internet отобразит оба адреса.

Шаг 5. Добавляем в автозагрузку и запускаем прокси-сервер

Вставляем в него следующий код:

(вставка из буфера обмена возможна по клику правой кнопки мыши или Ctrl+U или F10)

(Для сохранения и закрытия нажмите CTRL+X затем Y)

Ещё один вариант скрипта инициализации:

В консоли мы увидим сообщение:

Проблемы с запуском чаще всего связаны с файлом /etc/3proxy/3proxy.cfg
в т.ч. к последней строке файла. При возникновении ошибки обычно указан порядковый номер проблемной строки.

Также мы увидим его в списке запущенных процессов в ответе на команду:

Шаг 6. Открываем порт

Открываем порт (3128/tcp) на сервере.
Либо указываем свой, который указан в файле /etc/3proxy/3proxy.cfg

При использовании iptables:

Шаг 7. Настраиваем окружение

Множество программ (включая веб-браузеры) поддерживают работу через прокси по умолчанию. Интерфейс настроек у каждой свой.

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

Либо использование программы проксификатора.
Например такой как:

Читайте также:  Установка люка на chevrolet lacetti

Настройки для браузера Google Chrome:
Для подключения к сети Google Chrome использует системные настройки прокси-сервера.
В случае Microsoft Windows это настройки можно также найти в Internet Explorer / MS Edge.

Форма с предложением ввода логина и пароля (username:strongpassword) появится, после первой попытки открытия любой веб-страницы.

Затем любые сервисы по проверки IP-адреса,
например, такие как:

сообщат IP-адрес вашего Vscale-сервера вместо текущего.

Шаг 8. Удаляем временные файлы

Шаг 9. (ОПЦИОНАЛЬНО) Удаляем 3Proxy

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

Заключение

Мы рассмотрели установку и базовую настройку 3proxy. Безусловно у данного прокси-сервера есть еще множество настроек, которые мы не затронули, в том числе настройку SOCKS-прокси, построение цепочек соединений, управление доступом, ограничение ширины потребляемого канала, ограничение трафика по времени, но это тема уже для отдельного руководства.

Таким образом после выполненных действий вы получаете свой собственный прокси-сервер, который более безопасен для вас, так как ваш трафик заведомо не будет перехвачен и проанализирован третьими лицами, от чего вы не застрахованы при использовании сторонних решений. Хотя с этой точки зрения более эффективна настройка VPN-туннеля с шифрованием.

3proxy может выступать в роли высоко-анонимного прокси-сервера. Признаком использования подобного может быть лишь принадлежность выходного IP-адреса сервера к пулу адресов закреплённых за хостинговой компанией при просмотре WHOIS-данных и PTR-записи. В целом он хорош тем, что является маленьким и простым, но в то же время функциональным.

Комментарии

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

Danil Walk, в руководстве есть не меньше чем 3 ссылки на разные документации по данному прокси-серверу но расскажу как и SOCKS поднять. Документация в целом достаточно полная, по непонятным вопросом всегда можно вежливо спросить ведущего разработчика по email, или на том же Тостере как люди так и разработчик активно отвечают. Он кстати просматривал данную статью. Дал несколько советов по конфигам, совет по IPv6. Заметил что в шаге 5 не самый удачный пример скрипта-инициализации, но рабочий.

Должен предупредить: на данный момент обходить блокировки РКН с серверов расположенных на территории РФ — не лучшая идея. Особенности блокировок на стороне дата-центров я намеренно обсуждать здесь не хочу. Но сам лично наблюдал блокировки/заглушки web-страниц с серверов расположенных в МСК, СПБ. При подробном разборе ситуации, просмотре логов, трассировок и т.д. выяснялось что зачастую причиной были блокировки на стороне крупных транзитных операторов связи таких как ТрансТелеКом. На блокировки на стороне ТТК натыкаются порой и жители стран СНГ, некоторые хоть и имеют свои национальные аналоги РКН, но там блокировки именно российские проскакивают.

SOCKS-прокси

SOCKS-прокси имеют несколько версий протокола (SOCKSv4/SOCKSv4.5/SOCKSv5) и ряд особенностей.
Подробнее описано тут — https://3proxy.ru/howtor.asp

Например SOCKSv4 не поддерживает IPv6 на уровне протокола, в SOCKSv5 есть поддержка IPv6 с помощью отдельного вида запроса, который должен быть реализован в клиентском приложении или соксификаторе. Авторизации по паролю поддерживаются в SOCKS так же как и через HTTP-прокси. SOCKSv5 имеет поддержку UDP.

В шаге-4 в конфиге /etc/3proxy/3proxy.cfg
вместо последней строчки, а можно одновременную работы с HTTP-прокси настроить — тогда просто добавить в конец строку:

Параметр (-p1080) это номер порта. Можно другой указать, но этот стандартный.

В шаге-6 при использовании Uncomplicated Firewall (UFW):

источник

Прокси-сервер на базе Linux (Debian)

В результате выполнения данной инструкции у вас будет полностью рабочий прокси-сервер с установленными пакетами:

Lightsquid — служит для сбора статистики работы пользователей, основываясь на логах прокси-сервера Squid;

Sqstat — скрипт, который позволяет смотреть активные соединения, загрузку канала и среднюю загрузку канала;

Ipcad — это программа для учета трафика, которая может вести подсчет несколькими механизмами, например через интерфейсы BPF, libpcap и iptables ULOG;

Webmin — это графический web интерфейс для управления сервером на базе Unix подобных операционных систем. То есть установив Webmin вы можете удалённо конфигурировать и управлять Linux сервер в удобном графическом интерфейсе на русском языке через браузер.

Везде, где написано your_server_ip — подставляете ip адрес интерфейса своего прокси-сервера, который смотрит во внутреннюю сеть.

Открываем доступ к интернету для компьютеров в локальной сети

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

Читайте также:  Установка вебасто плюсы и минусы

Создадим файл с настройками

Внесем в этот фал следующее:

Сохраним файл и присвоим ему права на выполнение:

Добавим запуск NATа (строку post-up /etc/nat) в файл с сетевыми настройками:

ваш файл должен выглядеть так:

Сохраняем, закрываем и перезагружаем сервер:

В таком виде, все готово для раздачи интернета компьютерам в сети. Если интернет появился, двигаемся дальше, если нет, проверяем что сделали не так.

Устанавливаем веб-сервер Apache:

Установка и настройка Squid3

Теперь нам нужно установить Squid3 – сам прокси сервер. В статье описаны базовые настройки, для более углубленной настройки, советую почитать документацию по squid.

Обновляемся и создаем каталог squid3

После чего скачиваем и распаковываем в созданный каталог последнюю версию squid (на момент написания инструкции 4.07.2017 это была версия 3.5.26)

Выставляем рекурсивно права 755 пользователю и группе www-data на каталог и его содержимое

После установки откроем файл /etc/squid3/squid.conf

В первую очередь найдем строку http_port 3128 и добавим к ней значение intercept и IP адрес сервера, чтобы получилось вот так:

Это делается для того, чтобы в последующем нам не приходилось настраивать прокси сервер на всех клиентских машинах (прокси будет прозрачным).

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

разрешаем доступ к прокси из внутренней сети, расскомментировав строки

Теперь настроим кэширование. Нужно раскомментировать и поменять значения на такие:

Далее расскомментируем строку

тем самым укажем максимальный размер кэшируемого объекта.

тем самым указываем максимальный объем кэшированного объекта в памяти.

и заменим значение с 256 на 1024, тем самым указываем допустимый объем памяти.

Вот мы и настроили кэширование. Кэширование должно снизить нагрузку на канал и увеличить скорость открытия страниц. Кэш очищается при перезагрузке сервера.

Теперь включим ведение логов, для этого раскомментируем строку

и раскомментируем ниже logfile_rotate 31 (файлы логов будут храниться 31 день, после будут перезаписываться самые старые).

На этом базовую настройку squid3 можно завершить.

Остальные параметры оставляем без изменений, сохраняем файл настроек.

Перед тем как перезапускать службу выполним проверку файла конфигурации:

Если команда отрабатывает без вывода — ошибок нет, в противном случае изучаем вывод и исправляем допущенные ошибки. После этого перезапустим службу, чтобы применить внесенные изменения.

В том случае, когда были изменены параметры кэша следует его перестроить:

Если вы сделали все как написано в статье, значит у вас будет полностью рабочий прокси сервер.

Это утилита для сбора и анализа трафика прокси-сервера Squid. Она служит для сбора статистики работы пользователей, основываясь на логах прокси-сервера Squid и представляет собой набор из нескольких скриптов написанных на языке программирования perl.

Перед тем как начать установку и конфигурирование lightsquid, необходимо проверить, что на сервере были установлены и корректно работали Squid и Apache2.

Создаём каталог, где будет установлен lightsquid.

После чего скачиваем и распаковываем в созданный каталог последнюю версию lightsquid

Выставляем рекурсивно права 755 пользователю и группе www-data на каталог и его содержимое

(если не получается – то можно зайти в графическом интерфейсе и вручную изменить свойства папки owner 755 и access control – 3 позиции anyone)

Делаем скрипты программы исполняемыми

Ставим зависимые пакеты, без которых программа работать не будет

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

Теперь настало время объяснить почему в переменной $lang конфигурационного файла lightsquid.cfg у нас указано значение ru-utf8, хотя в поставке LightSquid нет такого языкового файла в каталоге указанном в переменной $langpath (/var/www/lightsquid/lang/). Дело в том, что если мы будем использовать любой из предложенных ru*.lng файлов, то можем нарваться на ситуацию когда данные из файла сопоставлений realname.cfg не состыкуются по используемой кодировке с кодировкой языкового файла LightSquid. Так как в нашем случае в системе по умолчанию используется кодировка UTF-8, то и генерируемый файл realname.cfg будет содержать данные в этой кодировке, и чтобы не было разночтений с языковым файлом LightSquid сделаем свой языковой файл, сконвертировав его из уже имеющегося, после чего откроем получившийся файл на редактирование:

Изменим одну строчку в начале файла, указав его кодировку:

Теперь настало время интегрировать LightSquid в ранее установленный веб-сервер Apache2. Для этого к основной конфигурации Apache2 можно подключить конфигурационный модуль /etc/apache2/conf-available/lightsquid.conf. Как всегда сохраним копию и откроем исходный файл на редактирование:

Изменённое содержимое файла будет таким:

Подключаем этот конфигурационный модуль к основной конфигурации веб-сервера:

Читайте также:  Установка времени на плите zanussi

Так как веб-страницы LightSquid формируются cgi-скриптами, для веб-сервера Apache2 потребуется включить модуль обработки CGI (будет создан линк в каталоге /etc/apache2/mods-enabled/):

После завершения установки открываем на редактирование конфигурационный файл сетевых настроек Apache2 /etc/apache2/ports.conf (этот файл включен для обработки по умолчанию в основной конфигурационный файл Apache2 — /etc/apache2/apache2.conf) и меняем настройки параметра Listen таким образом, чтобы порты веб-сервера (80/443) прослушивались только на стороне интерфейса локальной сети:

Затем нужно добавить в конец файла конфигурации апача apache2.conf строки, которые позволят запускать наши скрипты: Сам файл лежит вот тут: /etc/apache2/apache2.conf

Затем прописываем наш скрипт в автозагрузку:

После проделанных изменений перезагружаем конфигурацию веб-сервера Apache2:

Генерация отчетов вручную:

Реальные имена пользователей и группы пользователей:

Открываем файл realname.cfg и прописываем там IP пользователей и их реальные имена, которые будут отображаться в отчётах lightsquid

И в конфиге lightsquid.cfg прописать

При желании получить отчет по группам – редактируем group.cfg

Доступ к статистике по логину и паролю:

Для ограничения доступа к серверу статистики по логину и паролю сделаем следующее:

Допустим, нам нужно сделать пользователя с именем lightsquid. Приводим файл .htaccess к следующему виду:

Затем создаём файл .htpasswd

Дважды вводим пароль и полученный результат добавляем в файл .htpasswd

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

Всё, теперь нам необходимо настроить Squid-cgi и cachemgr.cgi, Ставим:

Сейчас необходимо добавить следующую строчку в /etc/squid/cachemgr.conf

Мы переходим к настройке SqStat:

Нас просят добавить следующий блок в Apache, добавляем:

Вводим в браузере http://your_server_ip/sqstat/sqstat.php и наблюдаем за тем, кто чем занимается в рабочее время.

Сначала устанавливаем пакеты:

Подправляем некоторые файлы:

В headers.h комментируем строки

В файле pps.c добавить инклуды

В файле servers.c добавить инклуд

Конфигурируем и устанавливаем ipcad

Создаем файл ipcad.dump в папке /var/log/ipcad

Сбрасываем данные в ipcad.dump

Запускаем crontab –e и записываем автозапуск ipcad каждый час

Это будет запускать ipcad таким образом, что при загрузке он восстанавливает данные о статистике из dumpfile, уходил в фон, а при выключении сбрасывал все данные в тот же dumpfile. Сама команда для запуска выглядит следующим образом:

Webmin представляет из себя набор cgi-скриптов, написанных на Perl, поэтому надо сначала поставить пакеты необходимые для его работы.

Запускаем терминал и одной командой устанавливаем необходимые пакеты:

Далее, если ещё не установили, я бы порекомендовал поставить SSH сервер, так как удаленно администрировать намного проще:

Осталось скачать самую свежую версию Webmin. Это можно сделать двумя способами.

Скачать deb пакет Webmin c официального сайта программы и установить его. Либо скачать и установить Webmin используя терминал:

Добавляем репозиторий Webmin, редактируем файл /etc/apt/sources.list:

В самом конце добавляем строку:

Сохраняем изменения и закрываем редактор.

Устанавливаем Webmin, для этого вводим команду:

Запустить Webmin можно через браузер для этого введите следующий адресу в строку url:

Резервное копирование (вручную)

Архивный файл, который мы собираемся создать, будет храниться в папке «backup», в домашнем каталоге. После создания резервной копии вашей системы вы можете переместить её в любое другое место на ваш выбор: жёсткий диск или в «облаке» (Ubuntu One, Dropbox и т.д.).

Откройте терминал (Ctrl + Alt + T) и выполните следующую команду, чтобы создать папку, в которую мы хотим сохранить файл резервной копии:

Теперь запустим резервное копирование системы, выполнив следующую команду:

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

Восстановить систему можно, выполнив следующую команду:

Или этой командой, где указан полный путь к файлу:

Синхронизация времени по NTP

Ubuntu использует ntpdate и ntpd.

Ubuntu стандартно устанавливается с ntpdate и будет запускать его при каждой загрузке один раз для установки времени по NTP серверу Ubuntu.

Сервис NTP ntpd вычисляет уход ваших системных часов и постоянно подправляет их, благодаря чему не происходит сильных изменений, что может приводить к непоследовательности в журналах. Ценой этому небольшое расходование мощности процессора и оперативной памяти, но для современного сервера это несущественно.

Для установки ntpd из терминала введите:

Отредактируйте /etc/ntp.conf для добавления/удаления серверов. По умолчанию эти сервера такие:

Для Белоруссии они будут такие:

После изменений конфигурационного файла вам надо перезапустить ntpd:

Bonus — пути к файлам конфигурации

Файл конфигурации sqstat /var/www/sqstat/config.inc.php

Файл конфигурации squid /etc/squid3/squid.conf

Файл конфигурации lightsquid /var/www/lightsquid/lightsquid.conf

Файл конфигурации apache2 /etc/apache2/apache2.conf

источник

Добавить комментарий

Adblock
detector