Как установить прокси-сервер Squid на Ubuntu 20.04
На этой странице
- Предпосылки
- Начало работы
- Установить прокси-сервер Squid
- Настройка аутентификации на основе IP
- Настройка аутентификации на основе пользователей
- Настройка комбинированной аутентификации
- Настройте Squid для анонимизации трафика
- Проверка прокси-сервера Squid
- Заключение
Squid — это полнофункциональное прокси-приложение на базе Linux, которое в основном используется для фильтрации трафика, безопасности и поиска DNS. Он также используется для повышения производительности веб-сервера за счет кэширования ресурсов. Проще говоря, сервер Squid — это компьютер, выступающий в качестве посредника между настольным компьютером и Интернетом, который перенаправляет входящие клиентские запросы на сервер, где данные хранятся для облегчения поиска. Он поддерживает несколько протоколов, включая HTTP, FTP, TLS, SSL, Internet Gopher и HTTPS.
В этом руководстве мы покажем вам, как установить и настроить прокси-сервер Squid на сервере Ubuntu 20.04.
Предпосылки
- Сервер под управлением Ubuntu 20.04.
- Пароль root настраивается на сервере.
Начиная
Перед запуском вам необходимо обновить системные пакеты до последней версии. Вы можете обновить их с помощью следующей команды:
apt-get update -y
После обновления всех пакетов перезагрузите систему, чтобы изменения вступили в силу.
Установить прокси-сервер Squid
По умолчанию пакет Squid доступен в стандартном репозитории Ubuntu 20.04. Вы можете установить его с помощью следующей команды:
apt-get install squid -y
После установки Squid вы можете проверить статус службы Squid с помощью следующей команды:
systemctl status squid
Вы должны получить следующий результат:
? squid.service - Squid Web Proxy Server Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-08-23 12:00:24 UTC; 11s ago Docs: man:squid(8) Process: 49265 ExecStartPre=/usr/sbin/squid --foreground -z (code=exited, status=0/SUCCESS) Process: 49282 ExecStart=/usr/sbin/squid -sYC (code=exited, status=0/SUCCESS) Main PID: 49283 (squid) Tasks: 4 (limit: 2353) Memory: 16.4M CGroup: /system.slice/squid.service ??49283 /usr/sbin/squid -sYC ??49285 (squid-1) --kid squid-1 -sYC ??49287 (logfile-daemon) /var/log/squid/access.log ??49288 (pinger) Aug 23 12:00:24 ubunt4 squid[49285]: Max Swap size: 0 KB Aug 23 12:00:24 ubunt4 squid[49285]: Using Least Load store dir selection Aug 23 12:00:24 ubunt4 squid[49285]: Set Current Directory to /var/spool/squid Aug 23 12:00:24 ubunt4 squid[49285]: Finished loading MIME types and icons. Aug 23 12:00:24 ubunt4 squid[49285]: HTCP Disabled. Aug 23 12:00:24 ubunt4 squid[49285]: Pinger socket opened on FD 14 Aug 23 12:00:24 ubunt4 squid[49285]: Squid plugin modules loaded: 0 Aug 23 12:00:24 ubunt4 squid[49285]: Adaptation support is off. Aug 23 12:00:24 ubunt4 squid[49285]: Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 12 flags=9 Aug 23 12:00:25 ubunt4 squid[49285]: storeLateRelease: released 0 objects
По умолчанию Squid прослушивает порт 3128. Вы можете проверить это с помощью следующей команды:
netstat -plunt | grep 3128
Вы должны увидеть следующий вывод:
tcp6 0 0 :::3128 :::* LISTEN 50017/(squid-1)
Как только вы закончите, вы можете перейти к следующему шагу.
Настройка аутентификации на основе IP
Есть несколько способов ограничить клиенту доступ в Интернет. В этом разделе мы настроим Squid для аутентификации на основе IP-адреса клиента.
Вы можете сделать это, отредактировав файл конфигурации Squid по умолчанию:
nano /etc/squid/squid.conf
Добавьте следующую строку в начало файла:
acl client1 src 192.168.10.10 acl client2 src 192.168.10.11 http_access allow client1 client2
Сохраните и закройте файл, когда закончите. Затем перезапустите службу Squid, чтобы изменения вступили в силу:
systemctl restart squid
Где:
- client1 и client2 — это имена, идентифицирующие клиентские компьютеры.
- 192.168.10.10 и 192.168.10.11 — это IP-адрес клиентского компьютера.
Теперь только компьютеры с IP-адресами 192.168.10.10 и 192.168.10.11 могут получить доступ к Интернету.
Настройка аутентификации на основе пользователя
Вы также можете настроить Squid для аутентификации на основе пользователя и пароля. Для этого вам необходимо установить пакет Apache utils в вашей системе.
Выполните следующую команду, чтобы установить пакет утилит Apache:
apt install apache2-utils -y
После установки создайте первого пользователя с помощью следующей команды:
htpasswd /etc/squid/passwd client1
Вам будет предложено установить пароль, как показано ниже:
New password: Re-type new password: Adding password for user client1
Затем создайте второго пользователя с помощью следующей команды:
htpasswd /etc/squid/passwd client2
Установите пароль, как показано ниже:
New password: Re-type new password: Adding password for user client2
Затем вы можете проверить обоих пользователей, используя следующую команду:
cat /etc/squid/passwd
Вы должны получить следующий результат:
client1:$apr1$CPlx8eVt$NJq3CT/hzfDCnAZRypIq5/ client2:$apr1$XYxQ2npc$IW0Nqjp15O5WYCo/wCFlB0
Затем откройте файл конфигурации Squid по умолчанию:
nano /etc/squid/squid.conf
Удалите первые три строки, которые вы добавили в предыдущем разделе, и добавьте следующие строки в начало файла:
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users
Сохраните и закройте файл. Затем перезапустите прокси-службу Squid, чтобы изменения вступили в силу:
systemctl restart squid
Теперь вам нужно будет указать имя пользователя и пароль для доступа в Интернет.
Настройка комбинированной аутентификации
Вы также можете настроить Squid для аутентификации клиента на основе IP-адреса и имени пользователя/пароля.
Откройте файл конфигурации Squid по умолчанию:
nano /etc/squid/squid.conf
Найдите следующие строки, которые вы добавили в предыдущем разделе:
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users
И замените их следующими строками:
acl client1 src 192.168.10.10 acl client2 src 192.168.10.11 auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd acl ncsa_users proxy_auth REQUIRED http_access allow client1 client2 ncsa_users
Сохраните и закройте файл, когда закончите, затем перезапустите службу Squid, чтобы изменения вступили в силу:
systemctl restart squid
Настройте Squid для анонимизации трафика
Далее вам нужно будет добавить некоторые правила для маскировки IP-адресов клиентов от серверов, которые получают трафик от вашего HTTP-прокси Squid.
Вы можете сделать это, отредактировав файл конфигурации Squid по умолчанию:
nano /etc/squid/squid.conf
Добавьте в начало файла следующие строки:
forwarded_for off request_header_access Allow allow all request_header_access Authorization allow all request_header_access WWW-Authenticate allow all request_header_access Proxy-Authorization allow all request_header_access Proxy-Authenticate allow all request_header_access Cache-Control allow all request_header_access Content-Encoding allow all request_header_access Content-Length allow all request_header_access Content-Type allow all request_header_access Date allow all request_header_access Expires allow all request_header_access Host allow all request_header_access If-Modified-Since allow all request_header_access Last-Modified allow all request_header_access Location allow all request_header_access Pragma allow all request_header_access Accept allow all request_header_access Accept-Charset allow all request_header_access Accept-Encoding allow all request_header_access Accept-Language allow all request_header_access Content-Language allow all request_header_access Mime-Version allow all request_header_access Retry-After allow all request_header_access Title allow all request_header_access Connection allow all request_header_access Proxy-Connection allow all request_header_access User-Agent allow all request_header_access Cookie allow all request_header_access All deny all
Сохраните и закройте файл, когда закончите, затем перезапустите службу Squid, чтобы изменения вступили в силу:
systemctl restart squid
Проверить прокси-сервер Squid
Далее вам нужно будет определить ваш прокси-сервер в веб-браузере Mozilla.
Перейдите в клиентскую систему, откройте веб-браузер Mozilla и нажмите «Правка» => «Настройки», как показано ниже:
Нажмите на раздел «Настройки сети» и нажмите «Настройки». Вы должны увидеть следующую страницу:
Выберите переключатель «Ручная настройка прокси-сервера», введите IP-адрес вашего Squid-сервера в поле «Хост HTTP» и 3128 в поле «Порт», установите флажок «Использовать этот прокси-сервер для всех протоколов» и нажмите кнопку «ОК», чтобы сохранить настройки.
Теперь ваш браузер настроен на работу в Интернете через прокси-сервер Squid.
Чтобы проверить это, введите URL-адрес https://www.whatismyip.com/. Вам будет предложено ввести имя пользователя и пароль, как показано ниже:
Укажите имя пользователя и пароль прокси-сервера Squid, которые вы создали ранее, и нажмите кнопку «ОК». Вы должны увидеть следующую страницу:
На приведенной выше странице вы должны увидеть IP-адрес вашего сервера Squid вместо IP-адреса вашего клиентского компьютера.
Заключение
Поздравляем! вы успешно установили и настроили прокси-сервер Squid на сервере Ubuntu 20.04. Вы также можете настроить прокси-сервер Squid для ограничения определенного веб-сайта на основе слова, домена и IP-адресов. Для получения дополнительной информации посетите официальную документацию Squid.