- Установка и настройка Squid на Ubuntu
- Установка и базовая настройка
- Проверка
- Прозрачный прокси
- Авторизация по логину и паролю
- Слушаем на определенном интерфейсе
- Исходящий сетевой интерфейс
- Настройка цепочки прокси-серверов
- How to Configure Proxy Settings on Ubuntu 20.04
- Setting Up Proxy with Ubuntu Desktop GUI
- Setting up Proxy With Ubuntu Desktop Terminal
- Setting Up Temporary Proxy for a Single User
- Setting Up Permanent Proxy for a Single User
- Setting Up Permanent Proxy for All Users
- Setting Up Proxy for APT
Установка и настройка Squid на Ubuntu
Обновлено: 11.11.2021 Опубликовано: 30.07.2020
Используемые термины: Squid, Ubuntu. Данную инструкцию можно также применять для установки SQUID на Debian. В качестве клиентов могут использоваться Windows, Linux, Mac OS и любые браузеры.
Установка и базовая настройка
Если сеть клиентских компьютеров отличается от стандартной (192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8), необходимо ее добавить в acl, например:
* кавычки обязательны
** после необходимо создать файл /etc/squid/acl_localnet и с каждой строчки перечислить разрешенные IP-адреса. С точки зрения безопасности, лучше закомментировать все подсети, которые не используются в нашей локальной сети, например:
# TAG: acl
.
#acl localnet src 0.0.0.1-0.255.255.255
#acl localnet src 10.0.0.0/8
#acl localnet src 100.64.0.0/10
#acl localnet src 169.254.0.0/16
#acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
#acl localnet src fc00::/7
#acl localnet src fe80::/10
* в данном примере мы оставили только подсеть 192.168.0.0/16. Разрешаем доступ для локальных сетей, которые заданы опцией acl localnet:
* данную опцию нужно либо раскомментировать, либо вставить выше опции http_access deny all. Настраиваем директорию для кэша:
* где ufs — файловая система (ufs для SQUID является самой подходящей); /var/spool/squid — директория хранения кэша; 4096 — объем пространства в мегабайтах, которое будет выделено под кэш; 32 — количество каталогов первого уровня, которое будет создано для размещение кэша; 256 — количество каталогов второго уровня, которое будет создано для размещение кэша. Останавливаем squid:
Проверка
Заходим в настройки браузера и настраиваем использование прокси-сервера. Например, в Mozilla Firefox настройки нужно выставить такими: * где 192.168.163.166 — IP-адрес моего прокси-сервера. Теперь открываем сайт 2ip.ru. После его загрузки мы увидим внешний IP-адрес — он должен соответствовать той сети, от которой работает настроенный SQUID.
Прозрачный прокси
Прозрачный прокси позволяет автоматически использовать прокси-сервер, не настраивая при этом браузер компьютера. Пользователи могут даже не знать, что трафик идет через squid. Открываем конфигурационный файл:
* порт 3128 будет для прозрачного проксирования. Порт 3129 должен быть указан в качестве прокси. И перезапускаем конфигурацию squid:
Для работы прозрачного проксирования. необходимо, чтобы шлюз перекидывал запросы по нужным портам на наш прокси. Это выполняется разными способами в зависмости от реализации шлюза. Для примера, если нашим шлюзом будет наш сервер со squid, то нужно выполнить команды:
Авторизация по логину и паролю
# TAG: auth_param
.
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/auth_users
auth_param basic children 25
auth_param basic realm SQUID PROXY
auth_param basic credentialsttl 3 hours
* где /usr/lib/squid/basic_ncsa_auth — расположение ncsa_auth (в зависимости от системы может находиться в другом каталоге); /etc/squid/auth_users — файл с логинами и паролями; children 25 разрешает 25 одновременных подключений; SQUID PROXY — произвольная фраза для приветствия; credentialsttl 3 hours будет держать сессию 3 часа, после потребуется повторный ввод логина и пароля. Создаем acl для пользователей, которые прошли регистрацию. Сделаем регистрацию обязательной:
Слушаем на определенном интерфейсе
По умолчанию, squid будет слушать запросы на всех сетевых интерфейсах, которые доступны серверу. Чтобы указать конкретный, добавляем его IP к http_port:
* в данном примере squid будет слушать на адресе 192.168.1.15. И перечитываем конфигурацию squid:
Исходящий сетевой интерфейс
На нашем сервере может быть несколько внешний IP-адресов. По умолчанию, все исходящие запросы будут работать через интерфейс со шлюзом по умолчанию. Чтобы иметь возможность работы со squid через разные интерфейсы в настройку вносим:
acl 217_66_157_33 localip 217.66.157.33
tcp_outgoing_address 217.66.157.33 217_66_157_33
acl 217_66_157_34 localip 217.66.157.34
tcp_outgoing_address 217.66.157.34 217_66_157_34
* в данном примере, при подключении к прокси через IP 217.66.157.33, исходящие пакеты будут от IP 217.66.157.33; аналогично для IP 217.66.157.34. Перечитываем конфигурацию squid:
Настройка цепочки прокси-серверов
- hostname — другой сервер, на который мы будем передавать запрос.
- type — тип «родства» другого сервера. Могут быть варианты:
- parent
- sibling
- multicast
* более подробное описание можно найти в самом конфигурационном файле SQUID.
Если на прокси, к которому мы подключаемся, необходима авторизация, добавляем опцию login:
cache_peer 10.11.12.13 parent 3128 3128 proxy-only login=loginname:password
Запрещаем использование нашего прокси-сервера напрямую (не через cache_peer):
# TAG: never_direct
.
never_direct allow allПеречитываем конфигурацию squid:
How to Configure Proxy Settings on Ubuntu 20.04
Using a proxy server as an internet access intermediary is a common business scenario. However, personal users can also benefit from increased network security, privacy, and speed provided by proxies.
In this tutorial, you will learn how to set up your Ubuntu 20.04 system to work with a proxy server.
- Ubuntu 18.04 or later
- Access to terminal with sudo privileges
- Proxy info (web or IP address, username, and password)
Note: If you wish to set up one of your machines to act as a proxy, refer to How to Set Up & Install Squid Proxy Server on Ubuntu.
Setting Up Proxy with Ubuntu Desktop GUI
1. To access proxy settings using the Ubuntu GUI, open Ubuntu’s main Settings.
2. Select the Network setting in the menu on the left side of the window.
3. Then, click the cog in the Network Proxy section.
4. A Network Proxy dialogue appears. Choose Manual and enter your proxy info into the fields below.
5. Exit the dialogue and Ubuntu will automatically apply the proxy settings.
Setting up Proxy With Ubuntu Desktop Terminal
Use the command line interface for more granular control of proxy settings. This allows you to:
- Make temporary or permanent changes to the configuration.
- Set up proxy for a single user or for all users.
Setting Up Temporary Proxy for a Single User
A temporary proxy connection resets after a system reboot. To establish such a connection for the current user, use the export command.
The syntax for establishing a temporary proxy connection is:
export HTTP_PROXY=[username]:[password]@[proxy-web-or-IP-address]:[port-number] export HTTPS_PROXY=[username]:[password]@[proxy-web-or-IP-address]:[port-number] export FTP_PROXY=[username]:[password]@ [proxy-web-or-IP-address]:[port-number] . export NO_PROXY=localhost,127.0.0.1. 1
Provide the proxy address (web or IP), followed by the port number. If the proxy server requires authentication, add your proxy username and password as the initial values.
This is what the set of commands should look like in terminal:
The purpose of the NO_PROXY line is to tell the system that local traffic should ignore the proxy.
Setting Up Permanent Proxy for a Single User
As stated above, proxy settings configured through a terminal window reset after you reboot your system. To make permanent changes for a single user, edit the .bashrc file.
1. Open the file with a text editor of your choice:
2. Now add the following lines at the bottom of the .bashrc file:
export HTTP_PROXY="[username]:[password]@[proxy-web-or-IP-address]:[port-number]" export HTTPS_PROXY="[username]:[password]@[proxy-web-or-IP-address]:[port-number]" export FTP_PROXY="[username]:[password]@ [proxy-web-or-IP-address]:[port-number]" . export NO_PROXY="localhost,127.0.0.1. 1"
4. Then, run the following command in to apply the new settings to the current session:
Setting Up Permanent Proxy for All Users
To permanently set up proxy access for all users, you have to edit the /etc/environment file.
1. First, open the file in a text editor:
2. Next, update the file with the same information you added to the .bashrc file in the previous scenario:
export HTTP_PROXY="[username]:[password]@[proxy-web-or-IP-address]:[port-number]" export HTTPS_PROXY="[username]:[password]@[proxy-web-or-IP-address]:[port-number]" export FTP_PROXY="[username]:[password]@ [proxy-web-or-IP-address]:[port-number]" . export NO_PROXY="localhost,127.0.0.1. 1"
3. Save the file and exit. The changes will be applied the next time you log in.
Setting Up Proxy for APT
On some systems, the apt command-line utility needs a separate proxy configuration, because it does not use system environment variables.
1. To define proxy settings for apt, create or edit (if it already exists) a file named apt.conf in /etc/apt directory:
2. Add the following lines to the file:
Acquire::http::Proxy "http://[username]:[password]@ [proxy-web-or-IP-address]:[port-number]"; Acquire::https::Proxy "http://[username]:[password]@ [proxy-web-or-IP-address]:[port-number]";
3. Save the file and exit. The configuration will be applied after a reboot.
This tutorial provided instructions on how to set up proxy settings on Ubuntu 20.04. You should now know how to make temporary and permanent changes to your system’s proxy configuration, for a single user or for the entire system.