Лайфхаки

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

Настройка прокси-сервера на Windows и Ubuntu. Настройка локальной сети

03.07.2022 в 01:37

Настройка прокси-сервера на Windows и Ubuntu. Настройка локальной сети

Прежде чем переходить к установке и настройке прокси-сервера Squid, необходимо настроить локальную сеть. Для этого на проксируещем сервере должно быть как минимум два сетевых интерфейса - первый осуществляет взаимодействие с Интернетом, в то время как ко второму будут подключаться компьютеры локальной сети. Все настройки и команды приводится на примере дистрибутива Ubuntu.

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

nano /etc/network/interfaces

Приведём его к следующему виду:

auto eth0 iface eth0 inet dhcp #для автоматичесокго получения настроек от провайдера по dhcp auto eth1 iface eth1 inet static address 192.168.0.1 #ip-адрес netmask 255.255.255.0 #маска подсети

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

service networking restart

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

ifconfig

Полученные данные будут иметь примерно следующий вид:

eth0 Link encap:Ethernet HWaddr 00:16:3c:fc:93:a6 inet addr:185.22.174.75 Bcast:185.22.174.255 Mask:255.255.255.0 inet6 addr: 2a00:1838:36:1c3::7385/64 Scope:Global inet6 addr: fe80::216:3cff:fefc:93a6/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7576291 errors:0 dropped:0 overruns:0 frame:0 TX packets:65851 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:628650171 (628.6 MB) TX bytes:10778431 (10.7 MB)
eth1 Link encap:Ethernet HWaddr 0a:19:bc:0d:00:9d inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::819:bcff:fe0d:9d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:12581 errors:0 dropped:0 overruns:0 frame:0 TX packets:8484 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:1884987 (1.8 MB) TX bytes:1123251 (1.1 MB)

По этим данным ясно, что у сервера имеется два сетевых интерфейса, eth0 и eth1 , с IP-адресами 185.22.174.75 для eth0 и 192.168.0.1 для eth1. К адаптеру eth0 подключен кабель интернет-провайдера, а к адаптеру eth1 будут подключены компьютеры локальной сети.

Как настроить прокси-сервер на линукс. Режимы работы прокси-сервера Squid

Прокси-сервер Squid может работать в следующих трех основных режимах:

Прозрачный режим

В этом режиме HTTP соединение осуществляемое клиентами перенаправляется на прокси-сервер без их ведома или явной конфигурации. В этом режиме не требуется настройка клиентов.  Недостатки данного способа : необходима конфигурация NAT и перенаправления трафика, аутентификация клиентов не работает, не перенаправляются FTP и HTTPS запросы.

Аутентифицирующий режим

Для работы в этом режиме клиенты должны быть настроены для работы с прокси-сервером (в настройках соединения должен быть прописан адрес прокси-сервера). Может выполняться аутентификация и авторизация клиентов через Kerberos, Ldap, NTLM, IP и Radius. Возможно построение взаимодействия с серверами Microsoft Active Directory путем аутентификации клиентов – членов домена, используя протокол Kerberos, и последующей авторизации членов групп домена используя LDAP в прозрачном режиме (пользователь вводит свой пароль только при регистрации в домене). Для авторизированных групп возможно применение различных настроек контроля доступа и QoS (delay pools).

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

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

  • Использование кэширования, которое снижает нагрузку на HTTP сервера;
  • Распределение нагрузки между HTTP серверами;
  • Маскировку HTTP серверов и их характеристик;
  • Предотвращение web атак на сервера.

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

Обновлено:

Тематические термины:  3proxy , Ubuntu , прокси-сервер , SOCKS .

Настройка брандмауэра

По умолчанию, в Ubuntu брандмауэр разрешает все подключения. Однако, если у нас настроен фаервол для запрета лишних соединений, необходимо открыть порт для прокси.

а) если используем Iptables.

iptables -I INPUT 1 -p tcp —dport 3128 -j ACCEPT

netfilter-persistent save

* если система вернет ошибку при вводе команды для сохранения правил, устанавливаем пакет командой  apt-get install iptables-persistent .

б) если у нас firewalld.

firewall-cmd —permanent —add-port=3128/tcp

firewall-cmd —reload

*  3128  — порт по умолчанию, по которому работает 3proxy в режиме прокси;

Установка и запуск 3proxy

3proxy отсутствует в репозиториях Ubuntu, поэтому для установки сначала необходимо скачать его исходник.

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

apt-get install build-essential

Переходим на официальную страницу загрузки 3proxy и копируем ссылку на версию пакета для Linux:

… используя ссылку, скачиваем пакет:

wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz

* в моем случае будет скачена версия 0.9.3.

3proxy tiny free proxy server

Hot news: 3proxy 0.9.3 released December, 03 2020.
0.9.3

Bugfixes:
Fixed: systemd description file (proxy may fail to start after reboot or via systemctl)
Fixed: group/account creation in installation scripts
Fixed: countall/nocounall do not work in some configurations
Fixed: counters do not work if counter file is not specified
Fixed: counters without rotation (type N) are incorrectly shown in web admin interface
Fixed: %n may be incomplete or missed in long log records
Fixed: connect back functionality does not work
Improvements:
+ Docker builds

0.9.2

Bugfixes:
Fixed: bandwidth limiters (once again)
Fixed: data filtering plugins (PCREPlugin, SSLPlugin). SSLPlugin use on Linux requires to disable splice (-s0)
FIxed: standalone proxies do not react on HUP (Ctrl+C) in Linux/Unix
Fixed: few minor bugs
Improvements:
+ deb for arm platforms (experimental)
+ Openssl 1.1 support for SSLPlugin

0.9.1 - bugfix release

Bugfixes:
Fixed: socket may be closed before all data received/sent
Fixed: bandlimin non-working
Fixed: countall/nocountall
Fixed: few race conditions

0.9 intoduces socket options including interface binding for Linux, connection limits and connection ratelimits, user session binding to IP, zero-copy mode for Linux, multiple IPv6 improvements, preliminary RADIUS support, ARM support for Windows. It's recommended to update to 0.9 branch from any older versions.

0.9 now is a stable branch, 10 is a development branch, security-related fixes will be backported to 0.8 branch.

Ubuntu proxy server. Решение задачи


Был найден неиспользуемый стационарный компьютер с двух-ядерным 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

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

Как сделать прокси-сервер на Ubuntu. Создание и настройка SOCKS5 прокси-сервера в Ubuntu

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

На всех серверах стоит Ubuntu Server 14.04, может где-то и 12.04, но описание должно подойти и для всех остальных систем основанных на Debian.

Есть 2 известных мне способа организации работы SOKS5 сервера:

  1. SOCKS через SSH. Этот способ удобен своей простотой но неудобен при частом использовании, или использовании с разных машин;
  2. Установка SOCKS сервера. При использовании этого способа уйдет чуть больше времени на первоначальную настройку, но потом пользоваться прокси будет быстрее и удобнее.

SOCKS через SSH

Для того чтоб поднять SOCKS5 через SSH нужен только доступ к SSH сервера.

Вводим в терминале или SSH клиенте (PuTTY для Windows)

ssh -D 1080 user@server

Если запросит пароль, то нужно ввести пароль от SSH сервера.

-D – указывает порт по которому будет доступен SOKS5 сервер

Все, после этого вы можете подключиться к SOKS5 серверу по адресу localhost:1080 или 127.0.0.1:1080

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

Установка SOCKS сервера

Я знаю 2 SOCKS сервера 3proxy и Dante . У себя использовал Dante Server его настройку и опишу.

Установить Dante сервер можно с помощью apt-get, по умолчанию устанавливается старая версия (v.1.1). Ниже будут настройки для старой и новой (v.1.4) версий.

Установка новой версии Dante Server

sudo apt-get update sudo apt-get install software-properties-common python-software-properties sudo add-apt-repository ppa:dajhorn/dante sudo apt-get update sudo apt-get install dante-server

После этих действий Dante Server будет установлен, но ругнется и не сможет запуститься, видимо дефолтные настройки имеют ошибку.

Далее нужно отредактировать файл настроек

sudo nano /etc/danted.conf

Приведя его к такому виду

logoutput: syslog /var/log/danted.log internal: eth0 port = 1080 external: eth0 socksmethod: username user.privileged: root user.unprivileged: nobody client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error } socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 command: connect log: error method: username }

Расшифровка конфига:

  • указываем лог файл который будет находиться по адресу /var/log/danted.log;
  • eth0 - сетевой интерфейс на котором висит внешний IP сервера, узнать его можно воспользовавшись командой ifconfig , либо можно просто указать свой внешний IP вместо названия интерфейса;
  • socksmethod - метод авторизации. username - авторизация с указанием логина и пароля системных пользователей. Можно указать none если вы хотите не использовать авторизацию, но не советую оставлять открытым для порт для прокси т.к. сканеры прокси не дремлют, и у меня через открытый порт начали спам рассылать, после чего мне хостер отписал что у моего IP идет спам и надо что-то решать, можно использовать не дефолтный порт а какой-то другой, это позволит отсрочить нахождения вашего прокси сканерами;
  • user.privileged - имя пользователя с расширенными правами;
  • user.unprivileged - имя пользователя с обычными правами (как я понял dante работает от имени этих пользователей в зависимости от того какими правами нужно обладать для выполнения операции).

После сохранения настроек нужно перезагрузить Dante

sudo service danted restart

Все, теперь к SOKS5 прокси можно подключиться с любого устройства, указав IP сервера, порт – 1080, и данные для авторизации (имя и пароль пользователей которые зарегистрированы на сервере).

Я для доступа к прокси создал отдельного пользователя и указываю его данные. Создавал командой

sudo useradd -m soksuser && sudo passwd soksuser

Где soksuser – имя создаваемого пользователя.

Узнать подробнее о создании пользователей в Ubuntu .

Установка старой версии Dante Server

sudo apt-get update sudo apt-get install dante-server

Далее нужно отредактировать файл настроек

sudo nano /etc/danted.conf

Приведя его к такому виду

logoutput: syslog /var/log/danted.log internal: eth0 port = 1085 external: eth0 method: username user.privileged: root user.notprivileged: nobody client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error } pass { from: 0.0.0.0/0 to: 0.0.0.0/0 command: connect log: error method: username }

Дальше все так-же как и в новой версии о которой я писал выше.

    Linux proxy server. How to Install & Configure Squid Linux Proxy Server

    Linux proxy server or proxy server generally is a server that saves the visited web pages for later requests, so if you try to visit the same web page or anyone else, you’ll get the page from the proxy server.

    This is very useful, it makes web surfing much faster and reduces traffic, which means less cost. Caching servers can decrease external traffic to 45%.

    Another main advantage for proxy servers, you can configure the proxy with some settings for access control. For example, you can restrict access to specific websites.

    If you surf the web before from an anonymous proxy, this is a proxy server. You can choose any of the available Linux proxy servers out there like Squid, Varnish, Polipo, TinyProxy, and more. In this post, we will discuss the most common Linux proxy server, which is Squid.

    Install Squid

    Installing squid proxy server is very simple. For Red Hat based distro, you can install it like this:

    $ dnf -y install squid

    Or if you are using Debian based distro, you can install it like this:

    $ apt-get -y install squid

    Now you can start squid service and enable it at startup:

    $ systemctl start squid $ systemctl enable squid

    To squid proxy server, you can check the configuration file in

    /etc/squid/squid.conf

    Before we dig into the configuration, let’s see the proxy server in action.

    Just change the proxy setting on your browser to the IP address of the proxy and the port 3128 since this is the squid default port. You can change the default port by changing the http_port  option in the configuration file.

    As shown in the image, I’ve pointed my browser to my Linux proxy server, and I can browse the web without any problems.

    If you are using the iptables firewall , don’t forget to open the squid server port.

    Allow IP address range

    If you open the configuration file /etc/squid/squid.conf , you will see the rules that allow IP addresses to connect to the proxy server like this:

    acl localnet src 192.168.0.0/16

    However, you can add a new ACL entry to allow a range of IP addresses to connect to your proxy server:

    acl localnet src 212.80.113.0/16

    Then save the file and restart squid service:

    $ systemctl restart squid

    Very easy, right?

    Also, if you remove any ACL from the file, all IP addresses from that range will not be able to connect to the proxy server.