- Установка и настройка 3proxy на CentOS 7
- Подготовка сервера
- Установка
- Базовая настройка
- Настройка аутентификации
- SOCKS
- Дополнительные настройки
- Настройка портов и прокси-интерфейсов
- Ограничение пропускной способности
- Ограничения доступа
- Установка и настройка Squid на CentOS
- Подготовка CentOS
- Установка и настройка Squid
- Проверка
- Прозрачный прокси
- Squid + HTTPS
- Авторизация по логину и паролю
- Исходящий сетевой интерфейс
- Контроль доступа к сайтам
- Разрешаем все, кроме определенного списка
- Запретить все, кроме некоторых сайтов
- Как установить прокси-сервер Squid на CentOS 8
- Как установить прокси-сервер Squid на CentOS 8
- Установка Squid Proxy на CentOS 8
- Шаг 1. Сначала давайте начнем с проверки актуальности вашей системы.
- Шаг 2. Установка прокси-сервера Squid на CentOS 8.
- Шаг 3. Настройка прокси-сервера Squid.
- Шаг 4. Настройте брандмауэр для Squid.
Установка и настройка 3proxy на CentOS 7
Подготовка сервера
Настраиваем правило для брандмауэра:
firewall-cmd —permanent —add-port=3128/tcp
firewall-cmd —permanent —add-port=1080/tcp
* 3128 — порт по умолчанию, по которому работает 3proxy в режиме прокси; 1080 — порт по умолчанию для SOCKS.
Установка
Сначала устанавливаем расширенный репозиторий epel:
yum install epel-release
После устанавливаем сам 3proxy:
yum install 3proxy
Для автоматического запуска разрешаем сервис:
systemctl enable 3proxy
И запускаем его:
systemctl start 3proxy
Базовая настройка
Открываем конфигурационный файл 3proxy:
1. Прописываем серверы NS:
nserver 77.88.8.8
nserver 8.8.8.8
* в данном примере, мы используем публичные DNS Яндекса (77.88.8.8) и Google (8.8.8.8). Можно также использовать свои собственные или от провайдера.
2. Задаем IP-адрес внешнего интерфейса:
* где 192.168.0.23 — адрес интерфейса, через который осуществляется выход в Интернет. Это может быть, как внутренний адрес локальной сети, так и внешний при непосредственном подключении сервера к сети Интернет.
3. Указываем адрес внутреннего интерфейса:
* в случае использования одного интерфейса, внутренний и внешний IP-адреса будут совпадать.
systemctl restart 3proxy
Открываем браузер и прописываем в качестве прокси наш сервер. Пробуем открыть любой сайт, будет запрошен логин и пароль — вводим логин 3APA3A и пароль 3apa3a.
Настройка аутентификации
По умолчанию, 3proxy настроен на использование логина 3APA3A и пароля 3apa3a. Для редактирования настроек открываем конфигурационный файл:
Находим опцию users и добавляем пользователей:
#users 3APA3A:CL:3apa3a «test:CR:$1$qwer$CHFTUFGqkjue9HyhcMHEe1»
users dmosk1:CL:password
users «dmosk2:CR:$1$UsbY5l$ufEATFfFVL3xZieuMtmqC0»
* в данном примере мы закомментировали пользователей по умолчанию и добавили 2-х новых: dmosk1 с открытым паролем password и dmosk2 с паролем dmosk2 в виде md5 и солью UsbY5l (Для получения хэша пароля можно воспользоваться командой openssl passwd -1 -salt UsbY5l, где в качестве соли можно использовать любую комбинацию).
* обратите внимание, при использовании знака $, строчка пишется в кавычках.
* возможные типы паролей:
- CL — текстовый пароль
- CR — зашифрованный пароль (md5)
- NT — пароль в формате NT.
Чтобы отключить запрос логина, необходимо задать значение для опции auth в none. Однако, опций auth в конфигурационном файле несколько. Нужно найти ту, что отвечает за авторизацию службы proxy:
auth none
# We want to protect internal interface
deny * * 127.0.0.1,192.168.1.1
# and llow HTTP and HTTPS traffic.
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
proxy -n
* в данном примере, мы поменяли auth на none, чтобы отключить запрос пароля.
* возможные варианты для auth:
- none — без авторизации.
- iponly — авторизация по IP-адресу клиента.
- nbname — по Netbios имени.
- strong — по логину и паролю.
Также можно использовать двойную авторизацию, например:
auth nbname strong
После внесения изменений, перезапускаем службу:
systemctl restart 3proxy
SOCKS
Для прозрачного прохождения пакетов через прокси можно настроить SOCKS5. В конфигурационном файле добавляем:
* запускаем socks на порту 8083.
socks -p8083 -i192.168.1.23 -e111.111.111.111
* запускаем socks на порту 8083; внутренний интерфейс — 192.168.1.23, внешний — 111.111.111.111.
auth none
# We want to protect internal interface
deny * * 127.0.0.1,192.168.1.1
# and llow HTTP and HTTPS traffic.
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
proxy -n
socks
* в данном примере мы настроили 3proxy, который не будет требовать аутентификации, и будет работать в режиме прокси на порту 3128 (порт прокси по умолчанию) и по SOCKS на порту 1080 (порт socks по умолчанию).
Дополнительные настройки
Настройки, которые могут не понадобиться. Но они позволят настроить дополнительные возможности прокси-сервера.
Настройка портов и прокси-интерфейсов
При необходимости, можно настроить 3proxy на использование разных интерфейсов на разных портах:
proxy -n -a -p3128 -i192.168.0.23 -e222.222.222.222
proxy -n -a -p8080 -i192.168.1.23 -e111.111.111.111
* 3proxy будет слушать на порту 3128 с внутреннего интерфейса 192.168.0.23 и направлять пакеты в сеть Интернет через внешний интерфейс 222.222.222.222, а также, на порту 8080 для внутреннего и внешнего интерфейсов 192.168.1.23 и 111.111.111.111 соответственно.
* не забываем также настраивать брандмауэр (вначале инструкции мы открывали только 3128 порт).
systemctl restart 3proxy
Ограничение пропускной способности
При необходимости, можно ограничить скорость.
bandlimin 1000000 user1,user3
bandlimin 5000000 user2,user4
* в данном примере пользователям user1 и user3 установлено ограничение в 1000000 бит/сек (1 мбит); для user2 и user4 — 5 мбит/сек.
systemctl restart 3proxy
Ограничения доступа
Можно ограничить доступ и разрешить только для определенных портов, сетей и пользователей.
- userlist — список пользователей через запятую.
- sourcelist — сети клиентов через запятую.
- targetlist — сети назначения через запятую.
- targetportlist — порты назначения через запятую.
- commandlist — команды, к которым применяется правило.
- weekdays — в какие дни недели работает правило. 0 — 6 — Пн — Вс, 7 — тоже Вс.
- timeperiodslist — время, когда работает правило. Указываются диапазоны.
allow * * * 80 HTTP
allow * * * 443,8443 HTTPS
allow * * * 21 FTP
* в данном примере пользователям user1 и user3 установлено ограничение в 1000000 бит/сек (1 мбит); для user2 и user4 — 5 мбит/сек.
Также, ограничить доступ можно по количеству одновременных соединений для каждой службы:
maxconn 700
proxy -n -a -p3128 -i192.168.0.23 -e222.222.222.222
proxy -n -a -p8080 -i192.168.1.23 -e111.111.111.111
* таким образом, мы установим 700 максимальных соединений для прокси на порту 3128 и 700 — для proxy на порту 8080.
Источник
Установка и настройка Squid на CentOS
В данной инструкции рассмотрена установка Squid на систему Linux CentOS 7 или 8.
Подготовка CentOS
1. Обновляем систему:
2. Добавляем правило в firewalld:
firewall-cmd —permanent —add-port=3128/tcp
* где 3128 — порт, на котором будет настроен наш прокси-сервер.
и перезапускаем firewalld:
3. Настраиваем время. Для этого сначала задаем корректный часовой пояс:
timedatectl set-timezone Europe/Moscow
После ставим утилиту для синхронизации времени:
yum install chrony
И запускаем ее для работы в качестве сервиса:
systemctl enable chronyd —now
Установка и настройка Squid
Устанавливаем прокси-сервер следующей командой:
yum install squid
И открываем на редактирование конфигурационный файл:
Если сеть клиентских компьютеров отличается от стандартной (192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8), необходимо ее добавить в acl, например:
acl localnet src 217.66.157.0/24
acl localnet src «/etc/squid/acl_localnet»
* кавычки обязательны
** после необходимо создать файл /etc/squid/acl_localnet и с каждой строчки перечислить разрешенные IP-адреса.
Чтобы разрешить весь трафик, добавляем следующую строчку:
http_access allow all
* важно, чтобы она была выше запрещающей — http_access deny all
Настраиваем директорию для кэша:
cache_dir ufs /var/spool/squid 4096 32 256
* где ufs — файловая система (ufs для SQUID является самой подходящей); /var/spool/squid — директория хранения кэша; 4096 — объем пространства в мегабайтах, которое будет выделено под кэш; 32 — количество каталого первого уровня, которое будет создано для размещение кэша; 256 — количество каталого второго уровня, которое будет создано для размещение кэша.
Теперь создаем структуру папок под кэш следующей командой:
И уже можно запускать squid:
systemctl enable squid —now
Проверка
Заходим в настройки браузера и настраиваем использование прокси-сервера. Например, в Mozilla Firefox настройки нужно выставить такими:
* где 192.168.163.166 — IP-адрес моего прокси-сервера.
Теперь открываем сайт 2ip.ru. После его загрузки мы увидем внешний IP-адрес — он должен соответствовать той сети, от которой работает настроенный SQUID.
Прозрачный прокси
Прозрачный прокси позволяет автоматически использовать прокси-сервер, не настраивая при этом браузер компьютера. Пользователи могут даже не знать, что трафик идет через squid.
Открываем конфигурационный файл:
И приводим ее к следующему виду:
http_port 3128 transparent
И перезагружаем squid:
systemctl restart squid
Squid + HTTPS
Специально настраивать https для squid в CentOS мне не пришлось — все заработало по умолчанию.
Авторизация по логину и паролю
Открываем конфигурационный файл:
auth_param basic program /usr/lib64/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
acl auth_users proxy_auth REQUIRED
* где /usr/lib64/squid/basic_ncsa_auth — расположение ncsa_auth (в зависимости от системы может находиться в другом каталоге); /etc/squid/auth_users — файл с логинами и паролями; children 25 разрешает 25 одновременных подключений; SQUID PROXY — произвольная фраза для приветствия; credentialsttl 3 hours будет держать сессию 3 часа, после потребуется повторный ввод логина и пароля.
http_access deny !Safe_ports
http_access allow auth_users
Создаем файл с пользователями и создаем первую пару логина и пароля:
htpasswd -c /etc/squid/auth_users user1
* если система вернет ошибку «bash: htpasswd: command not found» установим htpasswd командой yum install httpd-tools
Создаем второго пользователя:
htpasswd /etc/squid/auth_users user2
И перезагружаем squid:
systemctl restart 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 мы можем разрешать и запрещать доступ к определенным сайтам. Рассмотрим два сценария — запретить определенные сайты или разрешить только конкретные сайты.
Разрешаем все, кроме определенного списка
Открываем конфигурационный файл:
В разделе с acl добавим строку:
acl BLOCKED url_regex -i «/etc/squid/denysite»
* в данном примере мы создаем acl с названием BLOCKED — по сути, список, который будет читаться из файла /etc/squid/denysite.
Выше разрешающих правил добавляем строку:
http_access deny BLOCKED
.
http_access allow localnet
http_access allow localhost
* данная строка указывает прокси-серверу на блокироку acl с названием BLOCKED.
Создаем файл со списком запрещенных сайтов:
web\.whatsapp\.com
facebook\.com
^(www\.)?vk\.com
* в данном примере мы запретили доступ к сайтам web.whatsapp.com, facebook.com и всем их поддоменам, а также к vk.com (поддомены vk.com разрешены).
systemctl reload squid
Запретить все, кроме некоторых сайтов
Теперь рассмотрим обратную ситуацию — мы запретим заходить на все сайты, а разрешим только для нескольких. Для этого открываем конфигурационный файл:
В разделе с acl добавим строку:
acl ALLOWED url_regex -i «/etc/squid/allowsite»
* в данном примере мы создаем acl с названием ALLOWED — список, который будет читаться из файла /etc/squid/allowsite.
Комментируем все разрешающие правила и добавляем строку с ALLOWED:
.
#http_access allow localnet
#http_access allow localhost
http_access allow ALLOWED
* в нашей конфигурации используется только эти разрешающие правила на пользователей, но в вашей конфигурации их может быть больше.
Создаем файл со списком разрешенных сайтов:
dmosk\.ru
mail\.ru
^fonts\.googleapis\.com/*
Источник
Как установить прокси-сервер Squid на CentOS 8
Как установить прокси-сервер Squid на CentOS 8
В этом руководстве мы покажем вам, как установить Squid Proxy на CentOS 8. Для тех из вас, кто не знал, Squid — это кэширующий прокси для Интернета, поддерживающий HTTP, HTTPS, FTP и другие. Прокси-сервер Squid используется различными организациями и интернет-провайдерами для уменьшения пропускной способности и увеличения времени отклика.
В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить sudo к командам для получения привилегий root. Я покажу вам пошаговую установку Squid на сервере CentOS 8.
Установка Squid Proxy на CentOS 8
Шаг 1. Сначала давайте начнем с проверки актуальности вашей системы.
Шаг 2. Установка прокси-сервера Squid на CentOS 8.
Прокси-сервер Squid доступен в репозиториях CentOS 8 по умолчанию и может быть установлен с помощью команды:
После завершения установки запустите и включите ее при запуске системы, используя следующие команды:
Шаг 3. Настройка прокси-сервера Squid.
Прежде чем вы сможете приступить к настройке конфигурации Squid в соответствии с вашими потребностями, создайте резервную копию файла конфигурации:
Теперь мы открываем основной файл конфигурации squid и добавляем / редактируем следующее:
Затем создайте наш файл аутентификации, который Squid может использовать для проверки аутентификации пользователей:
Шаг 4. Настройте брандмауэр для Squid.
Если брандмауэр включен, разрешите порт Squid. Замените порт, если вы изменили значение по умолчанию:
Наконец, завершена часть настройки шага. Теперь пора протестировать просмотр с указанием IP-адреса squid и порта по умолчанию в браузере клиента. В Firefox настройте его для подключения к внешней сети через сервер Squid. Предпочтения> Общие> Параметры сети> Настройка прокси вручную. Установите флажок Использовать этот прокси-сервер для всех протоколов.
Поздравления! Вы успешно установили squid . Благодарим за использование этого руководства по установке прокси-сервера Squid в системе CentOS 8. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт Squid .
Источник