Установка и настройка Squid прокси на Rocky Linux

Thank you for reading this post, don't forget to subscribe!

Squid – это пол­но­функ­ци­о­наль­ный веб-прок­си-сер­вер, кото­рый предо­став­ля­ет услу­ги прок­си и кэши­ро­ва­ния для HTTP, FTP, SSL-запро­сов и DNS lookup.

Он так­же выпол­ня­ет про­зрач­ное кэши­ро­ва­ние, кото­рое сни­жа­ет про­пуск­ную спо­соб­ность и улуч­ша­ет вре­мя откли­ка за счет кэши­ро­ва­ния и повтор­но­го исполь­зо­ва­ния часто запра­ши­ва­е­мых веб-страниц.

Установка и настройка Squid на Rocky Linux

Запу­сти­те обнов­ле­ние системы

Обно­ви­те кэш систем­ных пакетов:

dnf update

Установка Squid в cистеме Rocky Linux

Squid proxy досту­пен в репо­зи­то­ри­ях Rocky Linux 8 по умол­ча­нию и может быть уста­нов­лен путем выпол­не­ния команды;

dnf install squid

Запуск Squid на Rocky Linux 8

После завер­ше­ния уста­нов­ки запу­сти­те и вклю­чи­те Squid для запус­ка при загруз­ке системы.

systemctl enable --now squid

Настройка Squid Proxy в Rocky Linux 8

/etc/squid/squid.conf – это файл кон­фи­гу­ра­ции Squid Proxy по умолчанию.

Он постав­ля­ет­ся с реко­мен­ду­е­мы­ми мини­маль­ны­ми настрой­ка­ми конфигурации.

Ниже при­ве­де­но содер­жи­мое это­го фай­ла с уда­лен­ны­ми стро­ка­ми комментариев;

grep -vE "^#|^$" /etc/squid/squid.conf

Преж­де чем при­сту­пить к настрой­ке кон­фи­гу­ра­ции Squid в соот­вет­ствии с ваши­ми потреб­но­стя­ми, создай­те резерв­ную копию фай­ла конфигурации.

cp /etc/squid/squid.conf{,.bak}

Настройка политик доступа Squid

Создай­те спи­сок кон­тро­ля досту­па, что­бы опре­де­лить локаль­ные сети, кото­рые долж­ны исполь­зо­вать Squid в каче­стве прокси-сервера.

Каж­дый ACL состо­ит из име­ни, типа и зна­че­ния и зада­ет­ся с помо­щью опции acl.

Напри­мер, что­бы настро­ить хосты в сети 192.168.60.0/24 на исполь­зо­ва­ние Squid в каче­стве прок­си-сер­ве­ра, мож­но исполь­зо­вать ACL сле­ду­ю­ще­го вида;

acl mylocalnet src 192.168.60.0/24

Прок­си созда­ет ACL под назва­ни­ем mylocalnet, кото­рый опре­де­ля­ет хосты в ука­зан­ной сети.

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

Напри­мер, исполь­зуй­те http_access, что­бы раз­ре­шить или запре­тить веб-бра­у­зе­рам доступ к веб-кэшу;

http_access allow mylocalnet

Squid чита­ет кон­фи­гу­ра­цию свер­ху вниз, поэто­му поря­док опций кон­фи­гу­ра­ции важен.

Вы може­те заком­мен­ти­ро­вать суще­ству­ю­щие сете­вые ACLS, доба­вив хэш (#) в нача­ле этих строк, и доба­вить свои соб­ствен­ные ACL

### Добав­ле­ние поль­зо­ва­тель­ско­го ACL####### 

acl mylocalnet src 192.168.60.0/24
http_access allow mylocalnet

Блокирование определенных веб-сайтов

Squid proxy мож­но исполь­зо­вать для огра­ни­че­ния досту­па к опре­де­лен­ным веб-сайтам.

Напри­мер, что­бы забло­ки­ро­вать доступ к youtube, facebook, netflix, необ­хо­ди­мо создать файл, опре­де­ля­ю­щий доме­ны этих сай­тов, как пока­за­но ниже;

vim /etc/squid/restricted-sites.squid
.youtube.com

.facebook.com

.netflix.com

После это­го создай­те ACL для огра­ни­чен­ных выше сай­тов в кон­фи­гу­ра­ци­он­ном фай­ле squid и уста­но­ви­те пра­ви­ло запре­та для опре­де­лен­но­го ACL.

… ### Adding Custom ACL ####### acl mylocalnet src 192.168.60.0/24 ## Adding Sites to Block access to ###
acl blockedsites dstdomain “/etc/squid/restricted-sites.squid”

http_access deny blockedsites http_access allow mylocalnet 

Вме­сто того что­бы исполь­зо­вать файл для опре­де­ле­ния сай­тов для бло­ки­ро­ва­ния, вы може­те поме­стить доме­ны в про­стран­ство фай­ла squid.conf, раз­де­лен­ное на опе­ра­то­ры ACL.

acl blockedsites dstdomain youtube.com facebook.com netflix.com

Блокирование сайтов по определенным ключевым словам

Вы так­же може­те огра­ни­чить доступ к сай­ту по клю­че­во­му слову.

Создай­те файл с опре­де­лен­ны­ми клю­че­вы­ми сло­ва­ми, как пока­за­но ниже;

vim /etc/squid/banned-keywords.squid

porn

ads

movie

gamble

Вне­си­те необ­хо­ди­мые изме­не­ния в кон­фи­гу­ра­ци­он­ный файл squid.

Заком­мен­ти­руй­те стро­ку ниже, посколь­ку мы заком­мен­ти­ро­ва­ли ACL сети localnet.

Так­же заком­мен­ти­руй­те пра­ви­ло досту­па для localnet.

#http_access allow localnet

Маскировка исходящего трафика

Что­бы предот­вра­тить воз­мож­ность рас­кры­тия прок­си-сер­ве­ра­ми ваших IP-адре­сов в исхо­дя­щих HTTP-запро­сах, вклю­чи­те сле­ду­ю­щие дирек­ти­вы в конец ваше­го кон­фи­гу­ра­ци­он­но­го фай­ла squid.