Меню

Настройка squid на vps



Блог Zyxmon’а

ПРИВЕТСТВУЕТ ВАС

Устанавливаем анонимный proxy на VPS

В прошлой заметке я рассказал, как «обустроил» свой бюджетный VPS сервер. В одном из комментариев был упомянут анонимный прокси. Расскажу зачем такой proxy нужен. Всё очень просто, например, у Вас VPS в Америке, теперь Вы сможете покупать в американских интернет магазинах, которые не доступны иностранцам (правда все равно нужен будет посредник для пересылки домой) и использовать сервисы, не доступные у нас. Можно для этого использовать Openvpn, о котором я писал ранее. В некоторых случаях проще и удобнее использовать анонимный proxy. Я первый раз устанавливал прокси-сервер squid. Перед тем, как его установить и настроить я изучил несколько инструкций. Перескажу, свои действия, на авторство не претендую:

  • Устанавливаем сам сервер: apt-get install squid.
  • Создаем такой файл конфигурации /etc/squid/squid.conf (для надежности сохраняем тот, что установлен по умолчанию). Вот такой:

# порт доступа
http_port 3128

# авторизация, подробности ниже
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 1
auth_param basic realm Proxy server welcomes you
auth_param basic credentialsttl 2 hours

acl all src all
acl users proxy_auth REQUIRED
# пускать эти ip без пароля
acl worknetw src 1.1.1.1-1.1.1.4

acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT

acl purge method PURGE
acl CONNECT method CONNECT

# доступ только с доверенных ip или по паролю
http_access allow worknetw
http_access allow users

# остальных “шлём лесом”
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
icp_access deny all

# превращаем squid в анонимный прокси
forwarded_for off
header_access From deny all
header_access Server deny all
header_access User-Agent deny all
header_access WWW-Authenticate deny all
header_access Link deny all
header_access X-Forwarded-For deny all
header_access Via deny all
header_access Cache-Control deny all
# отправять URL источника запроса, многие сайты без него ведут себя некорректно. При параноидальном подходе следует использовать
#header_access Referer deny all

# Отключаем дисковый кэш полностью
cache_mem 8 MB
cache_dir null /tmp
cache deny all
shutdown_lifetime 5 seconds

# обрезаем логи, хранить лишнюю информацию о нас не нужно
access_log none all
cache_store_log none

  • Задаем пароли для доступа к прокси серверу, для тех, кого не прописали в конфиге. Для этого устанавливаем apt-get install apache2-utils , создаем файл touch /etc/squid/passwd и задаем пользователей командами htpasswd /etc/squid/passwd USERn .
  • Перестартуем squid: /etc/init.d/squid restart, и проверяем свою анонимность, настроив любимый браузер на использование proxy. Например, тут — http://2ip.ru/proxycheck/. Наслаждаемся результатом.

Теперь все сайты, на которые вы будете заходить, будут считать, что Ваш ip — американский (точнее тот, что у Вашего VPS сервера).

Источник

Установка и настройка 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-адреса.

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

Читайте также:  Настройка на lenovo a3500

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 6

2: Установка Squid

yum -y install squid
chkconfig squid on

3: Настройка ограничений доступа

Теперь нужно ограничить доступ на Squid, так как изначально он позволяет любому пользователю подключиться с помощью IP-адреса данного сервера.

Бесплатный динамический IP-адрес можно зарегистрировать на таких сервисах как noip.com

Чтобы использовать прокси-сервер Squid на телефоне, нужно установить обновленный динамический DNS-клиент.

Для этого можно использовать такие приложения как Dynamic DNS Client для Android или FreeDynPro для iOS.

Когда имя хоста с динамическим DNS и IP-адресом зарегистрировано, можно обновить его с помощью роутера, мобильного устройства или API call.

Это имя хоста нужно внести в /etc/squid/squid.conf. Отредактируйте файл и внесите имя хоста (в данном случае это nyproxy1.no-ip.org):

acl localnet src nyproxy1.no-ip.org

Настройте crontab, перезагружающий Squid каждый час, на случай если IP-адрес изменится:

echo 0 */1 * * * service squid reload >> /var/spool/cron/root

4: Настройка прокси-сервера Squid

По умолчанию Squid прослушивает порт 3128. Чтобы изменить порт, отредактируйте /etc/squid/squid.conf.

Чтобы просмотреть данный прокси Squid, не обнаруживая его как прокси, необходимо установить анонимные настройки, добавив следующие строки в /etc/squid/squid.conf:

via off
forwarded_for off
request_header_access Allow allow all
request_header_access Authorization allow all
request_header_access WWW-Authenticate allow all
request_header_access Proxy-Authorization allow all
request_header_access Proxy-Authenticate allow all
request_header_access Cache-Control allow all
request_header_access Content-Encoding allow all
request_header_access Content-Length allow all
request_header_access Content-Type allow all
request_header_access Date allow all
request_header_access Expires allow all
request_header_access Host allow all
request_header_access If-Modified-Since allow all
request_header_access Last-Modified allow all
request_header_access Location allow all
request_header_access Pragma allow all
request_header_access Accept allow all
request_header_access Accept-Charset allow all
request_header_access Accept-Encoding allow all
request_header_access Accept-Language allow all
request_header_access Content-Language allow all
request_header_access Mime-Version allow all
request_header_access Retry-After allow all
request_header_access Title allow all
request_header_access Connection allow all
request_header_access Proxy-Connection allow all
request_header_access User-Agent allow all
request_header_access Cookie allow all
request_header_access All deny all

5: Запуск прокси-сервера Squid

service squid start

6: Изменение настроек прокси в браузере

Добавьте IP-адрес сервера и порт в настройки прокси в браузере.

Источник

Как настроить http прокси сервер на CentOS 7

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

  • Интернет-анонимность.
  • Улучшение безопасности в Интернете.
  • Уменьшение времени загрузки страниц.
  • Блокировка вредоносного трафика.
  • Регистрация онлайн-активности.
  • Обход региональных ограничений.
  • В некоторых случаях — уменьшение полосы пропускания.

Как работает прокси-сервер

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

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

Что такое Squid Proxy?

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

Для этой статьи я буду устанавливать Squid на Linode CentOS 7 VPS и использовать его в качестве прокси-сервера HTTP.

Как установить Squid на CentOS 7?

Прежде чем мы начнем, вы должны знать, что Squid не имеет никаких минимальных требований для своей работы, но объем использования ОЗУ может варьироваться в зависимости от количества клиентов, находящихся в Интернете через прокси-сервер.

Читайте также:  Настройка оперативной памяти sql

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

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

В этот момент ваш веб-прокси Squid уже будет запущен, и вы можете проверить его статус работы службы.

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

  • Файл конфигурации Squid: /etc/squid/squid.conf
  • Журнал доступа Squid: /var/log/squid/access.log
  • Журнал кэширования Squid: /var/log/squid/cache.log

Файл конфигурации squid.conf (без комментариев в нём) выглядит так:

Как настроить Squid как HTTP прокси

Теперь мы покажем вам, как настроить squid как HTTPпрокси, используя только IP-адрес клиента для аутентификации.

Добавим ACL (список контроля доступа) Squid

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

Строка, которую вы должны добавить:

Где XX.XX.XX.XX — это фактический IP-адрес клиента, который вы хотите добавить. Строку следует добавить в начале файла, в котором определены списки ACL. Рекомендую добавить комментарий рядом с ACL, который будет описывать, кто использует этот IP-адрес.

Важно отметить, что если Squid находится за пределами вашей локальной сети, вы должны добавить общедоступный IP-адрес клиента.

Вам нужно будет перезапустить Squid, чтобы новые изменения вступили в силу.

Открытие прокси-портов Squid

Как вы могли заметить в файле конфигурации, для подключения разрешены только определенные порты. Вы можете это изменить, просто отредактировав файл конфигурации.

Где XXX — фактический порт, который вы хотите открыть. Опять же, неплохо бы оставить комментарий рядом, с описанием того, для чего будет использоваться данный порт.

Чтобы изменения вступили в силу, вам нужно снова перезапустить squid.

Аутентификация клиента прокси-сервера Squid

Скорее всего, вы захотите, чтобы ваши пользователи прошли аутентификацию перед использованием прокси. С этой целью вы можете включить базовую HTTP-аутентификацию. Её можно настроить легко и быстро:

Сначала вам понадобятся httpd-tools.

Теперь давайте создадим файл, который позже сохранит имя пользователя для аутентификации. Squid будет работать с пользователем «squid», поэтому файл должен принадлежать этому пользователю.

Теперь мы создадим нового пользователя под названием «proxyclient» и настроим его пароль.

Теперь, чтобы настроить аутентификацию, откройте файл конфигурации.

После того, ACL портов добавят следующие строки:

Сохраните файл и перезапустите squid, чтобы новые изменения вступили в силу:

Блокировка веб-сайтов в Squid Proxy

Теперь, мы создадим ACL, который поможет нам заблокировать нежелательные сайты. Сначала создайте файл, в котором будут храниться сайты которые вы хотите добавить в черный список.

Вы можете добавить некоторые домены, которые хотите заблокировать. Например:

Точка в начале указывает squid, чтобы необходимо блокировать все ссылки на эти сайты, включая www.badsite1, subsite.badsite1.com и т.д.

Теперь откройте файл конфигурации Squid.

После того, как ACL портов добавят следующие две строки:

Сохраните файл и перезапустите squid:

Если всё настроено правильно, то теперь вы можете настроить свой браузер и сетевые настройки операционной системы, чтобы использовать прокси-сервер HTTP-squid.

Итоги

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

Если вы хотите увеличить свою продуктивность на работе, вы даже можете настроить Squid для блокировки некоторых веб-сайтов на рабочем ПК (чтобы предотвратить отвлекающие факторы).

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Источник

Adblock
detector