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

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

Мануал

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

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

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

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

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

dnf update

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

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

dnf install squid
Dependencies resolved.
============================================================================================================================================================================
 Package                                 Architecture                 Version                                                         Repository                       Size
============================================================================================================================================================================
Installing:
 squid                                   x86_64                       7:4.11-4.module+el8.4.0+404+316a0dc5.2                          appstream                       3.6 M
Installing dependencies:
 libecap                                 x86_64                       1.0.1-2.module+el8.4.0+404+316a0dc5                             appstream                        28 k
 perl-DBI                                x86_64                       1.641-3.module+el8.4.0+509+59a8d9b3                             appstream                       739 k
 perl-Digest-SHA                         x86_64                       1:6.02-1.el8                                                    appstream                        65 k
 perl-Math-BigInt                        noarch                       1:1.9998.11-7.el8                                               baseos                          194 k
 perl-Math-Complex                       noarch                       1.59-419.el8_4.1                                                baseos                          108 k
Enabling module streams:
 perl-DBI                                                             1.641                                                                                                
 squid                                                                4                                                                                                    

Transaction Summary
============================================================================================================================================================================
Install  6 Packages

Total download size: 4.7 M
Installed size: 14 M
Is this ok [y/N]: y

Запуск 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
acl localnet src 0.0.0.1-0.255.255.255	# RFC 1122 "this" network (LAN)
acl localnet src 10.0.0.0/8		# RFC 1918 local private network (LAN)
acl localnet src 100.64.0.0/10		# RFC 6598 shared address space (CGN)
acl localnet src 169.254.0.0/16 	# RFC 3927 link-local (directly plugged) machines
acl localnet src 172.16.0.0/12		# RFC 1918 local private network (LAN)
acl localnet src 192.168.0.0/16		# RFC 1918 local private network (LAN)
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 в соответствии с вашими потребностями, создайте резервную копию файла конфигурации.

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 читает конфигурацию сверху вниз, поэтому порядок опций конфигурации важен.

🖧 Как использовать wget за прокси

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

...
### Добавление пользовательского ACL#######
acl mylocalnet src 192.168.60.0/24
http_access allow mylocalnet
#
#acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)
#acl localnet src 10.0.0.0/8            # RFC 1918 local private network (LAN)
#acl localnet src 100.64.0.0/10         # RFC 6598 shared address space (CGN)
#acl localnet src 169.254.0.0/16        # RFC 3927 link-local (directly plugged) machines
#acl localnet src 172.16.0.0/12         # RFC 1918 local private network (LAN)
#acl localnet src 192.168.0.0/16                # RFC 1918 local private network (LAN)
#acl localnet src fc00::/7              # RFC 4193 local private network range
#acl localnet src fe80::/10             # RFC 4291 link-local (directly plugged) machines
...

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

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

...
acl mylocalnet src 192.168.60.0/24

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 mylocalnet src 192.168.100.0/24

acl blockedsites dstdomain "/etc/squid/restricted-sites.squid"
acl keyword-ban url_regex "/etc/squid/keyword-ban.squid"

http_access deny blockedsites
http_access deny keyword-ban
http_access allow mylocalnet 
...

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

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

#http_access allow localnet

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

Чтобы предотвратить возможность раскрытия прокси-серверами ваших IP-адресов в исходящих HTTP-запросах, включите следующие директивы в конец вашего конфигурационного файла 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
# Anonymize Traffic
via off
forwarded_for off

request_header_access From deny all
request_header_access Server deny all
request_header_access WWW-Authenticate deny all
request_header_access Link deny all
request_header_access Cache-Control deny all
request_header_access Proxy-Connection deny all
request_header_access X-Cache deny all
request_header_access X-Cache-Lookup deny all
request_header_access Via deny all
request_header_access X-Forwarded-For deny all
request_header_access Pragma deny all
request_header_access Keep-Alive deny all

См. также:

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий