Лайфхаки

Маленькие, полезные хитрости

Прокси-сервер в Ubuntu 18.04: как настроить общесистемный прокси

18.09.2024 в 02:41

Прокси-сервер в Ubuntu 18.04: как настроить общесистемный прокси


Был найден неиспользуемый стационарный компьютер с двух-ядерным Intel-ом, 1 Гб ОЗУ и жестким на 80 Gb.Для решения будет сделано следующее:
  1. Установлена Linux Ubuntu Server 18.04 LTS
  2. На сервер установлен и настроен прозрачный Proxy Squid, собранный из исходных кодов с поддержкой HTTPS.
  3. Интеграция сервера в подсеть, путем перенаправления запросов на Proxy или альтернативным вариантом (в самом конце)
Начнем.

3.1. Установка и настройка Ubuntu 18.04

Процесс установки прост. Качаем дистрибутив Ubuntu Server 18.04 с официального сайта. Рекомендую качать со старым установщиком, так как новый, лично у меня, ушел в бесконечную загрузку во время установки. Записываем образ на флешку/диск любым удобным способом. Для записи на флешку рекомендую использовать Rufus и в начале записи выбрать «Запись DD-образа». Далее, следуя информации на экране, устанавливаем систему. Остановимся только на выборе компонентов, где можно выбрать сразу OpenSSH и всё. Нам много не нужно, а что нужно, установим сами.Итак, Ubuntu установлена. Сеть, если у вас DHCP, уже настроена. Войдем в режим суперпользователя, чтобы каждый раз не добавлять sudo к командам.

sudo -s

Введем свой пароль и обновим систему.

apt-get update apt-get upgrade

Установим текстовый редактор и файловый менеджер.

apt-get install nano mc

Чтобы сохранить файл в nano , необходимо нажать Ctrl+O и следом Y . Выход из редактора осуществляется нажатием Ctrl+X . Можно сохранить файл сразу перед выходом, нажав Ctrl+X и следом Y .Чтобы открыть файловый менеджер, введите mc . Откроется типичный DOS-овский NortonCommander или в Windows TotalCommander/FAR с двумя панелями. Хотя я привык работать с консолью, файловый менеджер тоже иногда помогает, например, найти нужный файл быстрее.Если же у вас не DHCP или вы хотите отдельный IP-адрес для своего сервера, как этого захотел я, то перейдем к настройке.

Настройка статического IP-адреса

В отличии от предыдущих версий Ubuntu, в новой 18.04 сеть настраивается уже не в привычном всем нам /etc/network/interfaces , а через netplan в файле /etc/netplan/*.yaml . Файл может называться по разному, но он там один. Сам же /etc/network/interfaces пишет нам следующее:
Также, если вы захотите обновиться с версии старше до 18.04, настройки сети останутся там, где и были. Netplan актуален только для чистой установки 18.04.
Приступим, все-таки, к настройке сети.
Для начала посмотрим название сетевого интерфейса, присвоенное ОС, и запомним его.

ifconfig

Теперь откроем файл с настройками.

nano /etc/netplan/*.yaml

В нем уже должна быть настройка DHCP. Приведем файл к следующему виду.

# This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: название сетевого интерфейса: dhcp4: no dhcp6: no addresses: gateway4: шлюз nameservers: addresses:

Вписываем свои интерфейс, адрес и шлюз. DNS рекомендую оставить эти — Яндекс.DNS Детский будет как дополнительная защита. Такой же DNS настроен у меня в роутере. В любом случае, необходимо указывать тот DNS, который раздает роутер.
Здесь необходимо обратить внимание на пробелы (именно пробелы, а не табуляция). Каждый, своего рода, пункт отделяется от предыдущего пробелом. К примеру, если после nameservers строку addresses не отделить пробелом, а выровнять со строкой выше, то, при попытке применения настроек, netplan выдаст ошибку.
Применим настройки.

netplan apply

Перезагрузим сервер, на всякий случай.

Связанные вопросы и ответы:

Вопрос 1: Что такое общесистемный прокси

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

Вопрос 2: Как настроить общесистемный прокси в Ubuntu 18.04

Чтобы настроить общесистемный прокси в Ubuntu 18.04, вам нужно открыть файл конфигурации прокси-сервера. Это можно сделать, открыв терминал и введя команду "sudo nano /etc/environment". Затем найдите строку, которая начинается с "http_proxy=" и измените ее на "http_proxy=http://ваш_прокси_сервер:порт". После этого сохраните изменения и закройте файл. Затем выполните команду "source /etc/environment", чтобы применить изменения. Теперь все приложения в вашей системе будут использовать установленный прокси-сервер.

Вопрос 3: Как узнать свой IP-адрес

Чтобы узнать свой IP-адрес, откройте терминал и введите команду "hostname -I". Эта команда выведет список IP-адресов вашего компьютера. Если вы хотите узнать свой внешний IP-адрес, вы можете посетить веб-сайт, такой как "whatismyip.com".

Вопрос 4: Как изменить порт прокси-сервера

Чтобы изменить порт прокси-сервера, вам нужно открыть файл конфигурации прокси-сервера. Это можно сделать, открыв терминал и введя команду "sudo nano /etc/environment". Затем найдите строку, которая начинается с "http_proxy=" и измените порт на нужный вам. После этого сохраните изменения и закройте файл. Затем выполните команду "source /etc/environment", чтобы применить изменения. Теперь все приложения в вашей системе будут использовать установленный прокси-сервер с измененным портом.

Вопрос 5: Как отключить общесистемный прокси

Чтобы отключить общесистемный прокси, вам нужно открыть файл конфигурации прокси-сервера. Это можно сделать, открыв терминал и введя команду "sudo nano /etc/environment". Затем найдите строку, которая начинается с "http_proxy=" и удалите ее. После этого сохраните изменения и закройте файл. Затем выполните команду "source /etc/environment", чтобы применить изменения. Теперь все приложения в вашей системе будут использовать прямой выход в интернет без прокси-сервера.

Вопрос 6: Как настроить прокси-сервер для определенного приложения

Чтобы настроить прокси-сервер для определенного приложения, вам нужно открыть настройки этого приложения и найти раздел, где можно настроить прокси-сервер. Вы можете ввести IP-адрес и порт вашего прокси-сервера, а также выбрать необходимый тип прокси-сервера. После этого сохраните изменения и закройте настройки. Теперь это приложение будет использовать установленный прокси-сервер для выхода в интернет.

Вопрос 7: Как узнать, использует ли приложение прокси-сервер

Чтобы узнать, использует ли приложение прокси-сервер, вам нужно открыть терминал и ввести команду "netstat -plantu". Эта команда выведет список всех активных сетевых соединений на вашем компьютере. Затем вы можете искать строки, которые содержат IP-адрес и порт вашего прокси-сервера. Если такие строки присутствуют, то приложение использует прокси-сервер. Если таких строк нет, то приложение использует прямой выход в интернет без прокси-сервера.

Что такое общесистемный прокси

В этой статье мы рассмотрим простую, но полезную утилиту командной строки ProxyMan . Как следует из названия, программа помогает легко и быстро применять и управлять настройками прокси в системе. Используя ProxyMan, мы можем автоматически устанавливать или сбрасывать настройки прокси в нескольких точках, без необходимости настраивать их вручную одну за другой. Это также позволяет сохранить настройки для последующего использования. Короче говоря, ProxyMan упрощает задачу настройки параметров прокси всей системы с помощью одной команды. Это бесплатная утилита с открытым исходным кодом, написанная на Bash и стандартными инструментами POSIX, не требующая зависимости. ProxyMan может быть полезен, если вы находитесь за прокси-сервером и хотите применить настройки прокси для всей системы за один раз.

Установка ProxyMan

Загрузим последнюю версию ProxyMan со страницы релизов . Он доступен в виде файлов zip и tar. Мы скачаем zip-файл.

$ wget https://github.com/himanshub16/ProxyMan/archive/v3.1.1.zip

Распакуем загруженный файл архива:

$ unzip v3.1.1.zip

Приведенная выше команда извлечет содержимое в папку с именем «ProxyMan-3.1.1» в нашем текущем рабочем каталоге. Перейдем в эту папку и установим ProxyMan, как показано ниже:

$ cd ProxyMan-3.1.1/ $ ./install

Если вы видите сообщение “Installed successfully”, поздравляем! ProxyMan установлен.

Переходим к настройкам параметров прокси.

Настройка общесистемного прокси

Использование ProxyMan довольно простое и понятное. Он позволяет нам устанавливать/отменять настройки прокси, выводить список текущих настроек прокси и доступных конфигураций, сохранять настройки в профиле и загружать профиль позже. В настоящее время Proxyman позволяет управлять настройками прокси для GNOME, bash, apt, dnf, git, npm и Dropbox.

Установка настроек прокси

Чтобы установить параметры прокси для всей системы, просто запустите:

$ proxyman set

Вам будет предложено ответить на ряд простых вопросов, таких как,

    IP-адрес HTTP-прокси,

    Порт HTTP-прокси,

    Использование аутентификацию по имени пользователя/паролю,

    Использование тех же настроек для HTTPS иFTP,

    Сохранение профиля для последующего использования,

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

Какие преимущества имеет использование общесистемного прокси

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

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

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

Прокси с SSL. При его использовании создается только одно TCP-соединение. Это отличает его от HTTP-прокси, который создает два соединения: одно от клиента к прокси, другое от прокси к веб-серверу. Когда пользователь инициирует веб-запрос, он посылает запрос CONNECT на веб-сервер и создает TCP-канал, по которому проходит запрос.

Одним из преимуществ SSL-прокси перед HTTP-прокси является то, что их можно использовать для доступа к ресурсам как HTTPS-, так и HTTP-серверов. Этого нельзя сделать с HTTP-прокси, который можно использовать только для доступа к ресурсам HTTP-сайтов. Если пользователь попытается получить доступ к HTTPS-сайту с помощью HTTP-прокси, соединение с сайтом не будет считаться безопасным.

CGI-прокси. Прокси Common Gateway Interface (CGI) извлекает веб-контент из интернета от имени клиента. Он используется через веб-браузер и выглядит как обычный веб-сайт. Чтобы воспользоваться им, достаточно ввести URL-адрес назначения, и CGI отобразит результаты, как если бы он был отправителем запроса. CGI-прокси работает через зашифрованную веб-форму, встроенную в другую веб-страницу с использованием SSL.

SOCKS-прокси (SOCKets Secure). Протокол SOCKS расшифровывается как SOCKet Secure и обычно используется для задач с интенсивным трафиком, таких как потоковая передача контента или обмен P2P.

SOCKS использует соединение TCP, которое предназначено для отправки и получения пакетов данных через интернет, а также для гарантии успешной доставки ресурсов по сети. При использовании SOCKS-прокси интернет-трафик направляется через прокси-сервер по TCP-соединению от имени клиента. Как и большинство других типов прокси, SOCKS скрывают IP-адрес клиента, обеспечивая анонимность.

Как установить общесистемный прокси в Ubuntu 18.04

Apache и Nginx– популярные веб-серверы с открытым исходным кодом, которые часто используются для работы с PHP. Их можно использовать на одной виртуальной машине для поддержки нескольких веб-сайтов с разными требованиями. Обычно два веб-сервера в одной системе используют для работы с несколькими IP-адресами или различными портами.

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

Данный мануал поможет настроить Nginx как веб-сервер и прокси-сервер для Apache на одном сервере Ubuntu 18.04.

При этом может понадобиться изменить код приложения, чтобы включить поддержку обратного прокси в Apache (особенно это касается сайтов с SSL). Чтобы избежать этого, можно установить специальный модуль Apache, mod_rpaf, который переопределяет некоторые переменные среды, благодаря чему Apache может напрямую обслуживать запросы клиентов.

В мануале показано, как разместить четыре домена на одном сервере. Два из них будут обслуживаться Nginx: example.com (стандартный виртуальный хост) и sample.org. Другие два – Apache: foobar.net и test.io. Мы также настроим Apache для поддержки PHP-приложений по PHP-FPM, что обеспечивает лучшую производительность по сравнению с mod_php.

Требования

  • Новый сервер Ubuntu 18.04, настроенный по этому мануалу .
  • 4 домена, направленные на IP-адрес вашего сервера. Читайте мануал Как настроить имя хоста , чтобы создать необходимые записи А.

1: Установка Apache и PHP-FPM

Сначала нужно установить Apache и PHP-FPM. Также для работы понадобится модуль Apache для PHP FastCGI под названием libapache2-mod-fastcgi.

Обновите индекс пакетов:

sudo apt update

Установите необходимые программы:

sudo apt install apache2 php-fpm

Модуль Apache FastCGI недоступен в репозитории Ubuntu, поэтому загрузите его с kernel.org и установите с помощью команды dpkg.

wget https://mirrors.edge.kernel.org/ubuntu/pool/multiverse/liba/libapache-mod-fastcgi/libapache2-mod-fastcgi_2.4.7~0910052141-1.2_amd64.deb
sudo dpkg -i libapache2-mod-fastcgi_2.4.7~0910052141-1.2_amd64.deb

2: Настройка Apache и PHP-FPM

Теперь нужно настроить порт Apache (8080) и подготовить веб-сервер к работе с PHP-FPM с помощью модуля mod_fastcgi. Переименуйте конфигурационный файл Apache ports.conf:

sudo mv /etc/apache2/ports.conf /etc/apache2/ports.conf.default

Создайте новый файл ports.conf и укажите в нем порт 8080.

echo "Listen 8080" | sudo tee /etc/apache2/ports.conf

Примечание : Обычно 127.0.0.1:8080 прослушивают прокси-серверы, но это позволит установить loopback IP-адрес в качестве значения переменной окружения РНР server_addr вместо внешнего IP-адреса сервера. В данном случае целью является такая настройка Apache, при которой веб-сайты, поддерживаемые Apache, не увидят обратного прокси-сервера. Таким образом, Apache нужно настроить для прослушивания порта 8080 на всех IP-адресах.

После этого нужно отредактировать стандартный виртуальный хост Apache. Директива в этом файле обслуживает сайты только на порт 80, это нужно изменить.

Отключите стандартный файл:

sudo a2dissite 000-default

Создайте новый виртуальный хост на основе стандартного файла:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/001-default.conf

Откройте новый файл:

sudo nano /etc/apache2/sites-available/001-default.conf

Измените прослушиваемый порт на 8080:

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

Сохраните и закройте файл. Включите новый файл:

sudo a2ensite 001-default

Перезапустите Apache.

sudo systemctl reload apache2

Убедитесь, что порт изменился:

sudo netstat -tlpn

Вывод должен выглядеть так:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address     Foreign Address      State    PID/Program name
tcp        0      0 0.0.0.0:22        0.0.0.0:*            LISTEN   1086/sshd
tcp6       0      0 :::8080           :::*                 LISTEN   4678/apache2
tcp6       0      0 :::22             :::*                 LISTEN   1086/sshd

3: Настройка модуля mod_fastcgi

По умолчанию Apache обслуживает PHP-страницы с помощью модуля mod_php. Но в данном случае нужен дополнительный модуль для PHP-FPM.

Примечание : Если вы выполняете мануал на сервере со стеком LAMP и включенным модулем mod_php, сначала отключите модуль:

sudo a2dismod php7.2.

Как настроить параметры общесистемного прокси в Ubuntu 18.04

Squid — это полнофункциональный прокси-сервер для кеширования, поддерживающий популярные сетевые протоколы, такие как HTTP, HTTPS, FTP и другие. Squid в основном используется для повышения производительности веб-сервера путем кэширования повторяющихся запросов, фильтрации веб-трафика и доступа к контенту с географическим ограничением.

Это руководство проведет вас через процесс настройки прокси-сервера Squid в Ubuntu 18.04 и настройки веб-браузеров Firefox и Google Chrome для его использования.

Установка Squid на Ubuntu

Пакет Squid включен в репозитории Ubuntu 18.04 по умолчанию. Чтобы установить его, введите следующие команды от имени:

sudo apt updatesudo apt install squid

После завершения установки служба Squid запустится автоматически.

Чтобы убедиться, что установка прошла успешно и служба Squid запущена, введите следующую команду, которая распечатает статус службы:

sudo systemctl status squid

● squid.service - LSB: Squid HTTP Proxy version 3.x Loaded: loaded (/etc/init.d/squid; generated) Active: active (running) since Thu 2019-06-27 11:45:17 UTC …

Настройка Squid

Squid можно настроить, отредактировав файл/etc/squid/squid.conf. Вы также можете использовать отдельные файлы с параметрами конфигурации, которые можно включить с помощью директивы «include».

Как проверить работу общесистемного прокси в Ubuntu 18.04

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

  • Порт 25 заблокирован.
  • У них нет статического IP-адреса.
  • Они не могут создать запись PTR.

Если порт 25 заблокирован, вы не сможете отправлять электронные письма напрямую получателям. А если у вас нет статического IP-адреса или записи PTR, ваши электронные письма, скорее всего, будут отклонены или попадут в папку со спамом. Если вы находитесь в такой ситуации, вы можете запустить VPS (виртуальный частный сервер) в центре обработки данных и использовать его в качестве прокси-сервера для вашего почтового сервера. VPS имеет статический IP-адрес, и вы можете создать запись PTR для этого IP-адреса. Другие почтовые серверы будут думать, что VPS запускает вашу почтовую службу, и когда вы отправляете электронное письмо, они будут думать, что электронное письмо пришло с вашего VPS.

Да, вы также можете использовать службы ретрансляции SMTP, такие как Sendinblue, для решения этих проблем, но существует ограничение на количество электронных писем, которые вы можете отправлять каждый день и каждый месяц. Если вы перейдете на платную учетную запись Mailjet, это будет стоить не менее 25 долларов в месяц. Чем больше писем вы отправите, тем выше будет ваша ежемесячная стоимость. Если вы используете VPS и настроили почтовый прокси, это будет стоить около 4 долларов в месяц, независимо от того, сколько писем вы собираетесь отправлять.

Если вы используете почтовый сервер для большого количества людей, вам может потребоваться настроить почтовый прокси для балансировки нагрузки и обеспечения высокой доступности. В этой статье я настрою прокси-сервер SMTP и IMAP с помощью HAProxy, который представляет собой бесплатный балансировщик нагрузки высокой доступности с открытым исходным кодом и прокси-сервер для приложений на основе TCP и HTTP.