Comment on page
Установка Squid Proxy на CentOS 7
По своей сути, прокси-сервер находится между двумя устройствами (Вашим компьютером и конечным серверов) и работает как промежуточный слой, обеспечивая тем самым контроль доступа, фильтрацию, кэширование, ну и, конечно же, сокрытие IP-адреса Вашего компьютера.
Squid является открытым программным обеспечением для кэширования и фильтрации веб-запросов, он поддерживает множество протоколов и позволяет сократить время загрузки страниц, а также управлять доступом к сайтам.
Squid не требует какого-либо специального оборудования и его можно установить на любой виртуальный или выделенный сервер с Linux.
В данной статье мы рассмотрим установку на CentOS 7, поэтому Вы должны иметь сервер с этой ОС, а также root доступ к этому серверу.
Перед установкой любых пакетов рекомендуется обновить программное обеспечение системы и список пакетов, это можно сделать командой:
yum -y update
Далее, установим репозиторий EPEL, в которой содержится большинство дополнительного ПО:
yum -y install epel-release
Далее вновь обовим список пакетов:
yum -y update
Теперь можно приступать к установка Squid:
yum -y install squid
После завершения установки нужно запустить Squid и включить автоматический запуск при загрузке системы:
systemctl enable squid
systemctl start squid
Убедиться в правильности установки Squid можно, например, проверив его версию командой:
squid -v
Вы должны увидеть что-то вроде этого:
Squid Cache: Version 3.3.8
configure options: '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-strict-error-checking' '--exec_prefix=/usr' '--libexecdir=/usr/lib64/squid' '--localstatedir=/var' '--datadir=/usr/share/squid' '--sysconfdir=/etc/squid' '--with-logdir=$(localstatedir)/log/squid' '--with-pidfile=$(localstatedir)/run/squid.pid' '--disable-dependency-tracking' '--enable-eui' '--enable-follow-x-forwarded-for' '--enable-auth' '--enable-auth-basic=DB,LDAP,MSNT,MSNT-multi-domain,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB,getpwnam' '--enable-auth-ntlm=smb_lm,fake' '--enable-auth-digest=file,LDAP,eDirectory' '--enable-auth-negotiate=kerberos' '--enable-external-acl-helpers=file_userip,LDAP_group,time_quota,session,unix_group,wbinfo_group' '--enable-cache-digests' '--enable-cachemgr-hostname=localhost' '--enable-delay-pools' '--enable-epoll' '--enable-icap-client' '--enable-ident-lookups' '--enable-linux-netfilter' '--enable-removal-policies=heap,lru' '--enable-snmp' '--enable-ssl' '--enable-ssl-crtd' '--enable-storeio=aufs,diskd,ufs' '--enable-wccpv2' '--enable-esi' '--enable-ecap' '--with-aio' '--with-default-user=squid' '--with-filedescriptors=16384' '--with-dl' '--with-openssl' '--with-pthreads' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fpie' 'LDFLAGS=-Wl,-z,relro -pie -Wl,-z,relro -Wl,-z,now' 'CXXFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fpie' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'
Вывод примерный, вывод на разных серверах может отличаться.
Базовый файл конфигурации находится по пути: /etc/squid/squid.conf. Вы можете просмотреть е го через любой текстовый редактор, например, nano или же mcedit.
По умолчанию Squid настроен на подключения только через локальную сеть. Поэтому первое, что нужно сделать - настроить подключения с любого иного компьютера по логину и паролю.
Откроем файл конфигурации через nano:
nano /etc/squid/squid.conf
В файле уже будут параметры конфигурации для доступа из локальной сети. Они выглядят таким образом:
/etc/squid/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) machinesacl SSL_ports port 443
Нам нужно разрешить доступ с нашего IP-адреса. Для этого нужно добавить аналогичную ACL-запись в файл конфигурации.
Squid поддерживает как конкретные IP-адреса, так и сети по маске.
Предположим, что Вашим IP-адресом является адрес 50.0.1.5. Для того, чтобы разрешить доступ только с этого внешнего адреса, нужно добавить строку:
/etc/squid/squid.conf
acl localnet src 50.0.1.5/32
Далее сохраните изменения в файле и перезапустите Squid командой:
systemctl restart squid
Важно настроить доступ к прокси-серверу только по логину и паролю. Важно это из-за того, что при свободном доступе злоумышленники могут использовать Ваш прокси-сервер для незаконных действий, тем самым подменяя свой реальный IP-адрес на адрес Вашего сервера.
Для настройки доступа нужно сначала установить пакет, позволяющий создавать файлы с паролями:
yum -y install httpd-tools
Теперь создадим файл с паролем:
touch /etc/squid/passwd
chown squid /etc/squid/passwd
Теперь нужно поместить в файл связку логина и пароля (в данном случае
squiduser
буд ет логином):htpasswd /etc/squid/passwd squiduser
Программа запросит ввод пароля, который Вы хотите установить:
New password:
По умолчанию htpasswd использует шифрование паролей методом MD5, поэтому нам нужно разрешить такое шифрование в файле конфигурации Squid.
Откроем файл конфигурации:
nano /etc/squid/squid.conf
Далее добавим следующие строки в файл конфигурации:
/etc/squid/squid.conf
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
Для подключения к прокси-серверу перейдите в соответствующее меню настроек в Вашем любимом браузере.
В качестве IP-адреса прокси-сервера введите IP-адрес сервера, на который Вы уст ановили Squid. В качестве порта - 3128.
После применения настроек браузер запросит логин и пароль от прокси-сервера.
Для изменения порта Squid в файле конфигурации нужно изменить значение параметра
http_port
.
Например, для изменения порта на 8765
нужно привести конфигурацию в такой вид:/etc/squid/squid.conf
http_port 8765
Last modified 3yr ago