Да в продолжение темы обхода блокировок обновлений WordPress – установка и запуск прокси сервера squid используя docker на vps c ubuntu на немецком хостинге:

По умолчанию последняя версия Docker не включена в репозиторий Ubuntu по умолчанию. Поэтому вам нужно будет добавить официальный репозиторий Docker CE в APT.

Сначала установите все необходимые зависимости с помощью следующей команды:

apt install apt-transport-https ca-certificates curl software-properties-common -y

После установки всех зависимостей загрузите и добавьте ключ Docker CE GPG со следующей командой:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

Затем добавьте репозиторий Docker CE с помощью следующей команды:

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

Затем проверьте добавленный репозиторий с помощью следующей команды:

apt-cache policy docker-ce

Вы получите следующий вывод:

docker-ce:
Installed: (none)
Candidate: 5:20.10.17~3-0~ubuntu-focal
Version table:
   5:20.10.17~3-0~ubuntu-focal 500
      500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
   5:20.10.16~3-0~ubuntu-focal 500
      500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
   5:20.10.15~3-0~ubuntu-focal 500
      500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
   5:20.10.14~3-0~ubuntu-focal 500
      500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
   5:20.10.13~3-0~ubuntu-focal 500
      500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
   5:20.10.12~3-0~ubuntu-focal 500
      500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages

Установите Docker и Docker Compose

Теперь установите пакет Docker, выполнив следующую команду:

apt install docker-ce -y

После установки Docker проверьте состояние Docker, используя следующую команду:

systemctl status docker

Вы получите следующий вывод:

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-04 16:04:27 UTC; 13s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 3264 (dockerd)
      Tasks: 7
     Memory: 29.8M
     CGroup: /system.slice/docker.service
             └─3264 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.555173170Z" level=warning msg="Your kernel does not support CPU realtime >
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.555196177Z" level=warning msg="Your kernel does not support cgroup blkio >
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.555270124Z" level=warning msg="Your kernel does not support cgroup blkio >
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.555772301Z" level=info msg="Loading containers: start."
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.719676988Z" level=info msg="Default bridge (docker0) is assigned with an >
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.804973724Z" level=info msg="Loading containers: done."
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.834543443Z" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=>
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.834895532Z" level=info msg="Daemon has completed initialization"
Sep 04 16:04:27 ubuntu2004 systemd[1]: Started Docker Application Container Engine.
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.878373838Z" level=info msg="API listen on /run/docker.sock"

Затем проверьте информацию о версии Docker с помощью следующей команды:

docker --version

Вы должны получить следующий вывод:

Docker version 20.10.17, build 100c701

Затем установите пакет Docker Compose с помощью следующей команды:

apt install docker-compose -y

После завершения установки проверьте версию Docker Compose, используя следующую команду:

docker-compose --version

Вы должны получить следующий вывод:

docker-compose version 1.25.0, build unknown

Создайте файл Squid Docker Compose

В этом разделе мы создадим файл компоновки Docker, файл конфигурации Squid и файл паролей для развертывания Squid в контейнере Docker.

Сначала создайте каталог для хранения всех файлов конфигурации:

mkdir squid

Затем перейдите в каталог Squid и создайте docker-compose.файл yaml с помощью следующей команды:

cd squid
nano docker-compose.yaml

Добавьте следующие конфигурации:

version: "3"
services:
  proxy:
    image: ubuntu/squid
    ports:
      - "8080:3128"
    volumes:
      - ./squid.conf:/etc/squid/squid.conf
      - ./passwords:/etc/squid/passwords
    restart: always

Сохраните и закройте файл, затем создайте файл конфигурации Squid:

nano 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) 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

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm my-proxy-name
acl authenticated proxy_auth REQUIRED

http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

# Only allow cachemgr access from localhost
http_access allow all manager
http_access deny manager

# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
http_access deny to_localhost

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#

# And finally deny all other access to this proxy
http_access allow authenticated

# Squid normally listens to port 3128
http_port 3128


# Uncomment and adjust the following to add a disk cache directory.
cache_dir null /tmp

#Default:
# access_log daemon:/var/log/squid/access.log squid
access_log none

# cache_log /var/log/squid/cache.log
cache_log /dev/null


# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

# store_id_bypass on
cache deny all
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

Сохраните и закройте файл, затем создайте файл пароля с помощью следующей команды:

nano passwords

Запустите контейнер Squid Docker

Теперь вы можете выполнить следующую команду для запуска контейнера Squid docker.

docker-compose up -d

Вы получите следующий вывод:

Creating network "root_default" with the default driver
Pulling proxy (ubuntu/squid:)...
latest: Pulling from datadog/squid
34667c7e4631: Pull complete
d18d76a881a4: Pull complete
119c7358fbfc: Pull complete
2aaf13f3eff0: Pull complete
79e968cb80d4: Pull complete
db64bf0038f3: Pull complete
1cc62688a80c: Pull complete
c02b5501b9fd: Pull complete
Digest: sha256:f7d19d5e3f4163771291d91de393ce667f2327a3e080c39b9b7ea9e19f91488f
Status: Downloaded newer image for ubuntu/squid:latest
Creating network "squid_default" with the default driver
Creating squid_proxy_1 ... done

После запуска контейнера Squid вы можете проверить его с помощью следующей команды:

docker ps

Если все в порядке, вы должны увидеть контейнер Squid running в следующем выводе:

CONTAINER ID   IMAGE           COMMAND                 CREATED          STATUS          PORTS                                       NAMES
5f9f1705ffa8   ubuntu/squid   "https://вашсервер/sbin/entrypoint.sh"   56 seconds ago   Up 55 seconds   0.0.0.0:8080->312

Задать логин и пароль первому пользователю:

sudo htpasswd -c passwords

Последующим sudo htpasswd passwords

В вордпресс в wp-confiig.php добавить

define(WP_PROXY_HOST, 'localhost'); // ваш адрес
define(WP_PROXY_PORT, 3128); // ваш порт

И еще две, если прокси требует авторизацию:

define(WP_PROXY_USERNAME, 'username');
define(WP_PROXY_PASSWORD, 'password');

Так же укажем обход адресов:

define('WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com');
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии