VPS на Ubuntu. Часть 4 — прокси-сервер Squid.

Изображение для статьи VPS на Ubuntu. Чаcть 4 - прокси-сервер Squid

В этой части мы установим и настроим на нашем VPS на Ubuntu прокси-сервер Squid, который, в современных условиях, часто необходим для просмотра заблокированных ресурсов. Итак, давайте приступим.

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

Устанавливаем squid следующей командой:

sudo apt-get install squid -y

Во-первых, для удобства мы сделаем резервную копию файла squid.conf просто переименовав его в squid.conf.dist. А во-вторых, создадим файл конфигурации, убрав все комментарии и пустые строки. Для удобства все наши дальнейшие действия будем выполнять с правами root.

sudo -i
mv /etc/squid/squid.conf /etc/squid/squid.conf.dist
cat /etc/squid/squid.conf.dist | grep -v ^$ | grep -v ^# > /etc/squid/squid.conf

После установки наш прокси-сервер принимает входящие соединения с любых адресов на порту 3128 без какой-либо аутентификации и авторизации.

Наша задача настроить сервер таким образом, чтобы им могли пользоваться только те, кому мы дадим к нему доступ. Для этого в начало файла /etc/squid/squid.conf вставьте следующие строки:

auth_param digest program /usr/lib/squid/digest_file_auth -c /etc/squid/users
auth_param digest children 5 startup=1 idle=1
auth_param digest realm myproxy
acl auth_users proxy_auth REQUIRED

В этот же файл добавьте правило доступа:

http_access allow auth_users

сразу выше строки http_access deny all.

В конечном итоге у вас должно получиться примерно следующее содержимое squid.conf:

auth_param digest program /usr/lib/squid/digest_file_auth -c /etc/squid/users
auth_param digest children 5 startup=1 idle=1
auth_param digest realm proxy
acl auth_users proxy_auth REQUIRED
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 localhost
http_access allow auth_users
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 (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .		0	20%	4320

Настройка пользователей

После этого нужно создать файл, содержащий имена пользователей и хэши их паролей. Для этого можно воспользоваться утилитой htdigest из пакета apache2-utils или следующим скриптом:

#/usr/bin/env bash
user=$1
realm=$2
password=$3
if [ -z "$1" -o -z "$2" ]; then
    echo "Usage $0 user realm [password]"
    exit 1
fi
if [ -z "$3" ]; then
    echo -n Password: 
    read -s password
    echo
fi
digest=$(echo -n "$user:$realm:$password"|md5sum|cut -f1 -d' ')
echo "$user:$realm:$digest"

Сохраните его в папку /etc/squid под именем genpasswd. Не забудьте изменить права:

chmod +x /etc/squid/genpasswd

А сейчас, с помощью нашего скрипта, создадим файл с единственным, пока, пользователем:

/etc/squid/genpasswd myuser myproxy > /etc/squid/users

Скрипт запросит у вас пароль и запишет строку с аутентификационными данными пользователя myuser в файл /etc/squid/users. Если нужно, вы можете добавить еще одного:

/etc/squid/genpasswd otheruser myproxy >> /etc/squid/users

В Ubuntu 18.04 демон squid запускает программу аутентификации digest_file_auth от имени пользователя proxy, который создается в процессе установки. Поэтому нам надо изменить атрибуты нашего файла с пользователями:

chmod 640 /etc/squid/users
chgrp proxy /etc/squid/users

После всех наших действий перезапустим сервис следующей командой:

systemctl restart squid.service

Но перед этим желательно проверить правильность файла настроек при помощи:

squid -k check

Настройка браузера

Сейчас сервис готов к проверке прав пользователей на доступ. Осталось лишь настроить браузер на использование нашего прокси-сервера. Я расскажу об этом на примере Firefox, но практически также можно настроить Chrome.

Для автоматического изменения настроек прокси-сервера в зависимости от ресурса, который вы посещаете, есть замечательное расширение Proxy SwitchyOmega. После установки этого расширения вы можете добавить профиль своего сервера:

Добавление профиля прокси-сервера в расширении Proxy SwitchyOmega
Добавление профиля прокси-сервера

затем ввести адрес, порт

Настройка адреса и порта прокси-сервера в расширении Proxy SwitchyOmega
Настройка адреса и порта прокси-сервера

и данные пользователя

Настройка пользователя и пароля прокси-сервера в расширении Proxy SwitchyOmega
Настройка пользователя и пароля прокси-сервера

После этого вы можете настраивать правила автоматического переключения профилей или просто выбрать ваш прокси-сервер для всех соединений.

На этом настройка Squid на нашем VPS на Ubuntu завершена. Жду ваших вопросов и замечаний в комментариях.

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

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