Настройка веб-прокси на VPS с Ubuntu 22.04/20.04

Данное руководство объясняет процесс настройки собственного веб-прокси на Ubuntu 22.04/20.04. Веб-прокси — это ресурс, позволяющий пользователю вводить URL-адрес для обхода ограничений доступа к сайтам. Существует множество скриптов для создания веб-прокси, и в данном руководстве будут использоваться Glype и PHP-Proxy.

  • Glype — широко используемый скрипт для веб-прокси.
  • PHP-Proxy является отличной альтернативой.

Вы можете выбрать любой из этих вариантов. В ходе моего тестирования PHP-Proxy показал более высокую скорость и стабильную работу с популярными ресурсами, такими как Facebook, Twitter и YouTube, благодаря регулярным обновлениям. Мы обсудим настройку с Apache/Nginx и подключение HTTPS через Let’s Encrypt.

настройте собственный веб-прокси

Обычно я использую прокси Shadowsocks и VPN OpenConnect для обхода интернет-ограничений, но есть риск, что эти два инструмента могут быть заблокированы в моей стране. Веб-прокси выступает хорошей альтернативой, так как не имеет особенностей, присущих SOCKS-прокси и VPN. Для фильтрации интернета он выглядит как обычный HTTPS-трафик. В интернете можно найти тысячи бесплатных веб-прокси. Однако их основной минус в том, что, как только такие публичные веб-прокси становятся популярными, их легко блокируют. Создание собственного частного веб-прокси дает преимущество, так как только вы будете знать о его существовании.

Начальные условия

Чтобы воспользоваться данным руководством, вам понадобится виртуальный выделенный сервер (VPS), имеющий доступ к ресурсам, заблокированным в вашей стране или в рамках системы интернет-цензуры. Я рекомендую VPS от Kamatera, который предоставляет следующие возможности:

  • Бесплатный доступ на 30 дней.
  • Тарифы начиная от $4 в месяц (1 ГБ оперативной памяти).
  • VPS с высокой производительностью, построенный на технологии KVM.
  • Девять дата-центров расположены в различных странах, среди которых США, Канада, Великобритания, Германия, Нидерланды, Гонконг и Израиль.
Читайте также:  Как установить Zend Framework на Ubuntu 16.04

Используйте инструкцию по ссылке ниже, чтобы развернуть свой сервер на Linux в Kamatera.

  • Создание VPS-сервера на платформе Kamatera с использованием Linux.

Когда ваш VPS с Ubuntu 22.04/20.04 будет активирован, следуйте приведённым ниже указаниям.

Для добавления HTTPS-шифрования и обеспечения безопасности вашего веб-трафика вам понадобится доменное имя. Я советую приобретать домены на платформе NameCheap, поскольку там доступные цены, а защита конфиденциальности Whois предоставляется бесплатно на протяжении всего срока.

Настройка веб-сервера и PHP.

Установите SSH-соединение с вашим VPS, работающим на Ubuntu 22.04 или 20.04.

Если вы хотите настроить Nginx в качестве веб-сервера, установите Nginx и PHP8, выполнив следующую команду:

sudo apt install software-properties-common

sudo apt-add-repository ppa

sudo apt обновление

sudo apt install nginx php8.0-fpm php8.0-curl php8.0-mbstring php8.0-xml php8.0-zip

Если вы хотите использовать Apache как веб-сервер, выполните следующее:

sudo apt install software-properties-common

sudo apt-add-repository ppa

sudo apt обновление

sudo apt install apache2 php8.0 libapache2-mod-php8.0 php8.0-curl php8.0-mbstring php8.0-xml php8.0-zip

Скачивание Glype или PHP-Proxy

Glype

Скачайте Glype, используя следующую команду:

wget https://www.php-proxy.com/download/glype-1.4.15.zip

Извлеките его в папку /var/www/proxy/.

sudo apt install unzip

sudo создать каталог - p /var/www/proxy/

sudo unzip glype-1.4.15.zip - d /var/www/proxy/

Установите www-data (пользователя веб-сервера) в качестве владельца директории.

sudo chown www-data:www-data /var/www/proxy/ - R

PHP-Proxy

Чтобы загрузить PHP-Proxy, можно воспользоваться Composer. Установите Composer из репозитория для Ubuntu 22.04/20.04:

sudo apt install composer

После этого перенесите PHP-Proxy в папку /var/www/proxy/.

sudo mkdir - p /var/www/proxy/ /var/www/.composer/

Выполните команду

sudo chown www-data:www-data - R /var/www/proxy/ /var/www/.composer/

для изменения владельца и группы на

www-data

для указанных директорий и их содержимого.

sudo - u www-data composer create-project athlon1600/php-proxy-app:dev-master /var/www/proxy/

Если вам зададут вопрос “Хотите удалить существующую историю VCS (.git,.svn..)? [Y, n]?”, выберите “Да”.

Конфигурация веб-сервера

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

Настройка серверного блока для Nginx.

Установите сервер Nginx для работы с веб-приложениями.

sudo apt install nginx

Создайте серверный блок в директории /etc/nginx/conf.d/.

sudo nano /etc/nginx/conf.d/web-proxy.conf

Вставьте приведённые ниже строки в файл и замените proxy. example.com на ваш действительный домен. Убедитесь, что в вашем DNS-менеджере настроена A-запись.

server < listen 80; server_name proxy. example.com

nginx< try_files $uri $uri/ /index.php; >location ~ \.php$ < fastcgi_pass unix:/run/php/php8.0-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; >>

Сохраните изменения в файле и закройте его, после этого выполните проверку настроек Nginx.

sudo nginx - t

Если тестирование прошло успешно, перезапустите Nginx, чтобы изменения начали действовать.

sudo systemctl reload nginx

Настройка виртуального хоста в Apache

Произведите установку веб-сервера Apache.

sudo apt install apache2

Настройте виртуальный хост Apache в директории /etc/apache2/sites-available/.

sudo nano /etc/apache2/sites-available/web-proxy.conf

Вставьте указанные строки в файл, заменив proxy. example.com на ваше действительное доменное имя. Убедитесь, что вы настроили A-запись в системе управления DNS.

ServerName proxy. example.comDocumentRoot /var/www/proxy
ErrorLog $/proxy. error.log
CustomLog $/proxy. access.log combined

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

sudo a2ensite web-proxy.conf

Для применения изменений перезапустите сервер Apache.

sudo systemctl reload apache2

При использовании PHP-Proxy вы обнаружите активный веб-прокси, который готов к вводу URL.

php-proxy

Теперь давайте активируем HTTPS, используя Let’s Encrypt.

Активация HTTPS с помощью Let’s Encrypt для вашего веб-прокси

Для установки клиента Let’s Encrypt (certbot) выполните следующую команду.

sudo apt install certbot

Пользователи Nginx должны дополнительно установить плагин Certbot для этой веб-серверной программы.

sudo apt install python-certbot-nginx

Активируйте HTTPS с помощью плагина для Nginx.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp - d proxy. example.com --email your-email-address

Пользователям Apache требуется установить плагин Certbot, предназначенный для работы с этим веб-сервером.

sudo apt install python-certbot-apache

Активируйте HTTPS, используя плагин для Apache.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp - d proxy. example.com --email your-email-address

После того как сертификат будет успешно установлен, обновите настройки прокси в вашем веб-браузере для работы с HTTPS.

В случае возникновения ошибок при получении TLS-сертификата, пожалуйста, ознакомьтесь с данной статьей для решения проблем.

  • Как устранить частые проблемы с Let’s Encrypt и Certbot

Размещение веб-прокси в сети CDN.

Существует как минимум три метода, которые интернет-цензура может использовать для блокировки веб-сайта:

  • Ограничение доступа к IP-адресу сайта.
  • Перехват DNS-ответа с целью замены корректного IP-адреса.
  • Блокировка TLS-соединения посредством анализа Server Name Indication (SNI).

Если у вас есть опасения, что ваш веб-прокси может стать жертвой цензуры, вы можете разместить его за CDN (сетью доставки контента), такой как Cloudflare. Это позволит скрыть IP-адрес вашего сервера. В случае, если цензурирующие органы решат заблокировать IP-адрес Cloudflare, это приведет к последствиям, поскольку множество других сайтов также используют этот IP. Таким образом, цензору придется серьезно подумать, прежде чем предпринимать такие действия.

  • Для того чтобы избежать отравления DNS, пользователям рекомендуется использовать DNS, реализованный через TLS или HTTPS.
  • Для защиты от утечки информации SNI веб-сайт должен применять зашифрованный SNI.

Исправление проблем веб-сервера

  • Способы устранения типичных ошибок веб-сервера Nginx.

Заключение

Вот и всё! Надеюсь, этот урок был полезен для вас в создании веб-прокси на Ubuntu 22.04/20.04. Как обычно, если вы считаете этот материал ценным, подписывайтесь на нашу бесплатную рассылку, чтобы получать больше советов и рекомендаций.