Установка и настройка прокси-сервера 3proxy на Debian/Ubuntu
Определения VPN и прокси-сервера
Как VPN, так и прокси-серверы обеспечивают конфиденциальность за счет того, что позволяют различными способами скрывать IP-адрес. Однако используемые способы и набор дополнительных функций конфиденциальности значительно различаются.
Что такое прокси-сервер?
Обычно при просмотре веб-страниц компьютер подключается напрямую к веб-сайту и начинает загружать страницы для чтения – это довольно простой процесс. При использовании прокси-сервера компьютер сначала отправляет весь веб-трафик на прокси-сервер, затем прокси-сервер перенаправляет запрос на целевой веб-сайт, загружает информацию и передает ее обратно.
Таким образом прокси-серверы маскируют IP-адреса и позволяют пользователям обходить ограничения на контент и мониторинг. Например, пользователи могут просматривать контент с географическими ограничениями: подписчик Netflix из Великобритании, подключающийся к прокси-серверу в США, может получить доступ к контенту Netflix для США.
Что такое VPN?
VPN – это виртуальная частная сеть (Virtual Private Network). VPN создает зашифрованный туннель для передачи данных, защищает личность в интернете, скрывая IP-адрес, и позволяет безопасно использовать публичные точки доступа Wi-Fi. Более подробно VPN описан в этой статье «Лаборатории Касперского».
VPN работает на уровне операционной системы, осуществляя перенаправление трафика, поступающего из браузера или приложения, а также шифруя трафик между интернетом и устройством пользователя. В результате интернет-провайдер не может отслеживать действия пользователя в сети, он видит, только подключение к VPN-серверу. Такой вид шифрования защищает от отслеживания посещаемых веб-сайтов, правительственного контроля и злоумышленников, которые могут попытаться шпионить за устройством.
Введение
Мы не зарабатываем на Вас. Просто подпишитесь на наш канал ТГ и получайте эксклюзивную информацию о нодах и не только, раньше всех! Вокруг Крипты и Youtube👍
В этой статье мы расскажем, как установить и настроить прокси-сервер. Прокси-сервер (от англ. proxy — «представитель, уполномоченный») выступает в роли посредника в коммуникациях между вашим ПК/мобильным и интернетом.
Причин использовать его может быть множество, включая:
- обход ограничений доступа к определенным веб-ресурсам установленным администратором локальной сети;
- обход региональных ограничений доступа у определенных веб-ресурсов;
- анонимный доступ к веб-ресурсам путем сокрытия реального IP-адреса.
Среди всего многообразия прокси-серверов остановим свой выбор на открытом бесплатном кроссплатформенном сервере 3proxy, опубликованном под BSD-подобной лицензией. Официальный сайт — http://3proxy.ru/.
Исходный код на GitHub — https://github.com/z3APA3A/3proxy
3proxy включает в себя:
- 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 (версии с 9 по 11) или Ubuntu (версии с 18.04 по 21.10) любой разрядности (32/64 бита).
- Пользователь с привилегиями root (как вариант доступ через sudo).
Шаг 1. Подготавливаем инструментарий
В связи с тем что он отсутствует в официальных репозиториях Debian и Ubuntu, мы будем устанавливать его из исходников. Но перед этим установим все необходимое для дальнейшей работы.
sudo apt-get update
sudo apt-get install -y build-essential
Шаг 2. Скачиваем и распаковываем исходники
Последняя версия 0.9.3 (на момент написания руководства). Узнать последнюю версию можно на официальном сайте, при необходимости просто замените цифры на необходимые в следующих командах:
cd ~
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar xzf 0.9.3.tar.gz
Шаг 3. Компилируем
cd ~/3proxy-0.9.3
sudo make -f Makefile.Linux
Шаг 4. Устанавливаем
Копируем получившийся бинарный файл:
sudo mkdir /etc/3proxy
cd ~/3proxy-0.9.3/bin
sudo cp 3proxy /usr/bin/
Создадим отдельного системного пользователя proxy3, от имени которого и будет работать сервер:
sudo adduser --system --no-create-home --disabled-login --group proxy3
Узнаем UID и GID пользователя командой:
id proxy3
uid=109(proxy3) gid=115(proxy3) groups=115(proxy3)
sudo nano /etc/3proxy/3proxy.cfg
Вставляем в него следующий код:
# Запускаем сервер от пользователя proxy3 # (возможно в вашей ОС uid и gid пользователя proxy3 # будут другими. Для их определения воспользуйтесь командой id proxy3) setgid 115 setuid 109 # # Пропишите правильные серверы имен посмотрев их # на своем сервере в /etc/resolv.conf nserver 188.93.16.19 nserver 188.93.17.19 # # Оставьте размер кэша для запросов DNS по умолчанию nscache 65536 # # Равно как и таймауты timeouts 1 5 30 60 180 1800 15 60 # # Если несколько IP на одном сервере, указываем тот, # через который будем ходить во внешний мир. # Иначе эту строку игнорируем #external <YOURSERVERIP> # Тоже самое, только указываем IP, который надо слушать # Если проигнорировать, то прокси слушает все адреса на сервере #internal <YOURSERVERIP> # # Указываем на расположение файла с пользователями и паролями users $/etc/3proxy/.proxyauth # # укажите режим запуска как deamon daemon # # путь к логам и формат лога, к имени лога будет добавляться дата создания log /var/log/3proxy/3proxy.log D logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T" # # Включаем авторизацию по логинам и паролям auth cache strong # # Конфигурация http(s) proxy # Запускаем анонимный (-a) HTTP-proxy на порту (-p) 3128 и # c отключенной NTLM-авторизацией (-n) proxy -n -p3128 -a
Комментарии начинаются со знака # и допустимы только с начала строки. Рекомендуется также использовать другой порт вместо стандартного 3128 для прокси серверов, лучше всего из диапазона 49152–65535.
Пример с другой конфигурацией
nano ~/3proxy-0.9.3/cfg/3proxy.cfg.sample
nano ~/3proxy-0.9.3/doc/ru/example1.txt
или же в одном из следующих руководств, на которые ссылается официальный сайт:
- https://3proxy.ru/doc/man3/3proxy.cfg.3.html
- https://3proxy.ru/doc/3proxy_for_dummies.rtf
- https://3proxy.ru/howtor.asp
- https://3proxy.ru/howtoe.asp
Вот пример конфигурации без ведения логов:
setgid 115 setuid 109 nserver 8.8.8.8 nserver 77.88.8.8 nscache 65536 timeouts 1 5 30 60 180 1800 15 60 users $/etc/3proxy/.proxyauth daemon auth cache strong proxy -n -p3128 -a
Создаем файл с пользователями и паролями:
sudo nano /etc/3proxy/.proxyauth
Вставляем в него следующий код:
## addusers in this format: #user:CL:password ##see for documentation: http://www.3proxy.ru/howtoe.asp#USERS username:CL:strongpassword
Где логин username и пароль strongpassword следует изменить на свои. Каждый новый пользователь указывается с новой строки. Выставляем права доступа к файлам прокси-сервера:
sudo chown proxy3:proxy3 -R /etc/3proxy
sudo chown proxy3:proxy3 /usr/bin/3proxy
sudo chmod 444 /etc/3proxy/3proxy.cfg
sudo chmod 400 /etc/3proxy/.proxyauth
Создаем папку для ведения логов и назначаем права на нее:
sudo mkdir /var/log/3proxy
sudo chown proxy3:proxy3 /var/log/3proxy
В случае наличия IPv6 на сервере, рекомендуем запускать прокси со следующей строкой в /etc/3proxy/3proxy.cfg:
proxy -46 -n -p3128 -a -i95.213.255.16 -e95.213.255.16 -e2002:5fd5:ff010::1
Для сервера с IPv4:95.213.255.16 и IPv6:2002:5fd5:ff010::1 у вас же они будут иные. В таком случае будет поддержка IPv6 на выходе с прокси, например, https://yandex.ru/internet отобразит оба адреса.
Шаг 5. Добавляем в автозагрузку и запускаем прокси-сервер
Создаем файл-инициализации для systemd:
sudo nano/etc/systemd/system/3proxy.service
Вставляем в него следующий код:
[Unit] Description=3proxy Proxy Server After=network.target [Service] Type=simple ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg ExecStop=/bin/kill `/usr/bin/pgrep -u proxy3` RemainAfterExit=yes Restart=on-failure [Install] WantedBy=multi-user.target
Еще один вариант скрипта инициализации:
nano ~/3proxy-0.9.3/scripts/3proxy.service
Теперь нужно обновить конфигурацию systemd:
sudo systemctl daemon-reload
sudo systemctl enable 3proxy
sudo systemctl start 3proxy
Если с первого раза сервис не запустился, проверьте наличие ошибок:
systemctl status 3proxy.service
Проблемы с запуском чаще всего связаны с файлом /etc/3proxy/3proxy.cfg. При возникновении ошибки обычно указан порядковый номер проблемной строки.
Также мы увидим его в списке запущенных процессов в ответе на команду:
ps -ela | grep "3proxy"
Шаг 6. Открываем порт
Открываем порт (3128/tcp) на сервере. Либо указываем свой, который указан в файле /etc/3proxy/3proxy.cfg.
При использовании Uncomplicated Firewall (UFW):
sudo ufw allow 3128/tcp
sudo ufw enable
sudo iptables -I INPUT -p tcp -m tcp --dport 3128 -j ACCEPT
Шаг 7. Настраиваем окружение
Множество программ (включая веб-браузеры) поддерживают работу через прокси по умолчанию. Интерфейс настроек у каждой свой.
Если же программа не поддерживает, то возможна настройка работы всех соединений через прокси в параметрах используемой вами операционной системы.
Либо использование программы проксификатора.
Для подключения к сети Google Chrome использует системные настройки прокси-сервера.
В случае Microsoft Windows это настройки можно также найти в Internet Explorer / MS Edge.
Настройки для браузера Mozilla Firefox, настройки для Opera и Safari.
Форма с предложением ввода логина и пароля (username:strongpassword) появится, после первой попытки открытия любой веб-страницы.
Затем любые сервисы по проверки IP-адреса, например, такие как:
сообщат IP-адрес вашего сервера вместо текущего.
Шаг 8. Удаляем временные файлы
rm ~/0.9.3.tar.gz
sudo rm -r ~/3proxy-0.9.3
Шаг 9. Удаляем 3Proxy (опционально)
Так как установка осуществлялась из исходников, то пакетный менеджер операционной системы бесполезен. Для удаления выполните следующие команды:
sudo systemctl stop 3proxy.service
sudo rm /etc/systemd/system/3proxy.service
sudo rm -rf /etc/3proxy
sudo rm -rf /var/log/3proxy
sudo rm /usr/bin/3proxy
sudo systemctl daemon-reload
Заключение
Мы рассмотрели установку и базовую настройку 3proxy. Безусловно у данного прокси-сервера есть еще множество настроек, которые мы не затронули, в том числе настройку SOCKS-прокси, построение цепочек соединений, управление доступом, ограничение ширины потребляемого канала, ограничение трафика по времени, но это тема уже для отдельного руководства.
Таким образом, после выполненных действий вы получаете свой собственный прокси-сервер, который более безопасен для вас, так как ваш трафик заведомо не будет перехвачен и проанализирован третьими лицами, от чего вы не застрахованы при использовании сторонних решений. Хотя с этой точки зрения более эффективна настройка VPN-туннеля с шифрованием.
3proxy может выступать в роли высоко анонимного прокси-сервера. Признаком использования подобного может быть лишь принадлежность выходного IP-адреса сервера к пулу адресов, закрепленных за хостинговой компанией при просмотре WHOIS-данных и PTR-записи. В целом он хорош тем, что является маленьким и простым, но в то же время функциональным.
Спасибо за прочтение! Пожалуйста, поделитесь своим отзывом в комментариях и подпишитесь на меня в социальных сетях, если вам понравилась статья. Я также создал сообщество Telegram, где мы можем собираться и обсуждать интересные темы, связанные с криптовалютой. Вы можете присоединиться к нам и принять участие в обсуждении → Telegram: Contact @razgules