Proxy сервер с bol-van/zapret в Docker
Данный проект является оберткой над bol-van/zapret
Цель проекта — упростить развёртывание собственного прокси-сервера на удалённом сервере или на вашем собственном устройстве.
- Быстрое развёртывание готового контейнера.
- DNSCrypt.
- Прокси с авторизацией.
- Проброс / блокирование локальной сети.
- (
⚠️ реализовано частично) Автоматическая генерация конфигурационных файлов для zapret. - Лёгкость использования без необходимости глубокого понимания сетевых технологий.
Примечание: Я не являюсь сетевым специалистом, поэтому не смогу помочь с тонкой настройкой zapret. Однако, при необходимости, могу добавить новый функционал. Если Вам нужна помощь с настройкой zapret или Вы обнаружили проблему, связанную конкретно с zapret, то ищите решеение в оригинальном репозитории bol-van/zapret.
Для быстрого запуска выполните следующие шаги:
-
Установите
docker
иdocker-compose
на сервер:sudo apt-get update && sudo apt-get install docker docker-compose
После установки необходимо добавить текущего пользователя в группу
docker
и перезапустить систему -
Убедитесь, что
docker
настроен верно в вашей системе:docker run hello-world
В случае ошибки прав доступа, добавьте текущего пользователя в группу
docker
и перезапустите систему -
Клонируйте репозиторий на сервер:
git clone https://github.com/8hrsk/zapret-docker-proxy.git cd zapret-docker-proxy
-
Запустите скрипт
quickstart.sh
:./quickstart.sh
Этот скрипт автоматически развернёт проект в системе, используя дефолтный конфигурационный файл.
Если вы знаете какие параметры подходят для вашего провайдера, укажите их в
NFQWS_OPT
в файле config
и пересобирите контейнер при помощи скрипта ./start.sh
Помочь в определении параметров может скрипт ./blockcheck.sh
. Запустите его:
./blockcheck.sh
и дождитесь окончания анализа. Результат выполнения будет сохранён в файл configuration/blockcheck.log
Проанализируйте раздел * SUMMARY
и выберите подходящие для Вас параметры. Укажите их в
NFQWS_OPT
в файле config
и пересобирите контейнер при помощи скрипта ./start.sh
⚠️ Автоматическая генерация конфиг-файла реализована частично
Если требуется сгенерировать новый конфигурационный файл автоматически, выполните следующие шаги:
-
Запустите скрипт
generate_config.sh
:./generate_config.sh
-
Скрипт выполнит поиск подходящих параметров для zapret и создаст новый конфигурационный файл. При этом старый конфигурационный файл будет сохранён для резервного использования.
Вы можете разрешить / запретить доступ к локальной сети через прокси. Для этого:
-
Укажите шлюз и маску подсети в файле
configs/squid.conf
на строкеacl to_localnet dst
-
Замените строку
http_access deny to_localnet
на
http_access allow to_localnet
чтобы разрешить доступ к локальной сети, и наоборот
-
Пересоберите и запустите контейнер:
./start.sh
Для настройки прокси с авторизацией, в начале необходимо отредактировать файл configs/squid.conf
-
Закомментируйте строки
http_access allow all
и
http_access allow sitewhitelist
-
Раскомментируйте все строки начиная с
auth_param basic program ... ...
-
Пересоберите и запустите контейнер:
./start.sh
-
Запустите скрипт создания пользователя:
docker exec -it zapret-proxy /etc/squid/add_user.sh
⚠️ В качестве имени пользователя допускается только стандартный формат имён пользователей Linux (латинские буквы a-z в нижнем регистре + цифры от 0 до 9)
-
Для удаления пользователя запустите скрипт:
docker exec -it zapret-proxy /etc/squid/delete_user.sh
-
Для остановки, запустите скрипт
stop.sh
:./stop.sh
Если вы обнаружили проблему или у вас есть идеи для улучшения функционала, создайте Issue или Pull Request в репозитории