How-to-configure-http-proxy-server-on-CentOS-7

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

Proxy

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

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

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

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

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

 

 

Что такое Squid Proxy?

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

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

 

 

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

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

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

# yum -y update

 

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

# yum -y install squid
# systemctl start squid
# systemctl enable squid

 

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

# systemctl status squid

 

Образец вывода:

● squid.service - Squid caching proxy
Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2018-09-20 10:07:23 UTC; 5min ago
Main PID: 2005 (squid)
CGroup: /system.slice/squid.service
├─2005 /usr/sbin/squid -f /etc/squid/squid.conf
├─2007 (squid-1) -f /etc/squid/squid.conf
└─2008 (logfile-daemon) /var/log/squid/access.log

Sep 20 10:07:23 tecmint systemd[1]: Starting Squid caching proxy...
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: will start 1 kids
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: (squid-1) process 2007 started
Sep 20 10:07:23 tecmint systemd[1]: Started Squid caching proxy.

 

 

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

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

 

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

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
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 CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

 

 

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

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

 

 

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

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

# vim /etc/squid/squid.conf

 

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

acl localnet src XX.XX.XX.XX

 

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

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

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

# systemctl restart squid

 

 

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

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

acl Safe_ports port XXX

 

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

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

# systemctl restart squid

 

 

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

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

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

# yum -y install httpd-tools

 

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

# touch /etc/squid/passwd
# chown squid: /etc/squid/passwd

 

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

# htpasswd /etc/squid/passwd proxyclient

New password:
Re-type new password:
Adding password for user proxyclient

 

 

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

# vim /etc/squid/squid.conf

 

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

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

 

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

# systemctl restart squid

 

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

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

# touch /etc/squid/blacklisted_sites.acl

 

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

.badsite1.com
.badsite2.com

 

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

 

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

# vim /etc/squid/squid.conf

 

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

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

 

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

# systemctl restart squid

 

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

 

Итоги

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

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

 

 

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

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

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

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасности от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Proxy

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню