Установка прокси dnscrypt с блокировщиком рекламы в Linux

Установка прокси dnscrypt с блокировщиком рекламы в Linux

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение

Как установить прокси-приложение dnscrypt с блокировщиком рекламы / вредоносных программ в операционной системе Linux с WireGuard или OpenVPN? 

DNSCrypt — это протокол для аутентификации и шифрования трафика DNS между вашим устройством и рекурсивными серверами DNS, такими как Google, Cloudflare, серверами ISP/сторонних поставщиков или вашего собственного сервера DoH на основе Nginx + Bind9. 

Dnscrypt-proxy — это бесплатное приложение с открытым исходным кодом, поддерживающее такие протоколы, как DNSCrypt v2 и DNS-over-HTTPS (DoH). 

Он также предотвращает спуфинг DNS. 

Он использует криптографические подписи для проверки того, что ответы исходят от выбранного резолвера DNS и не были подделаны. 

Бесплатные резолверы с поддержкой DNSCrypt доступны во всем мире, включая резолверы с поддержкой DoH:

https://dnscrypt.info/public-servers/

Другими словами, мы используем dnscrypt-proxy для защиты связи между клиентом и резолвером DNS. 

Как установить dnscrypt-proxy 

В этой статье показано, как установить dnscrypt-proxy с блокировщиком рекламы в Linux с сервером OpenVPN / WireGuard VPN для защиты связи в общедоступной/ненадежной сети Wi-Fi. 

Установка прокси dnscrypt на Linux 

Выполните команду в соответствии с вашим дистрибутивом Linux от имени пользователя root: 

 Debian/Ubuntu пользователи используйте apt/apt-get ##
 $ sudo apt install dnscrypt-proxy
 ## Alpine Linux пользователи используйте apk##
 $ sudo apk add dnscrypt-proxy
 ## CentOS / RHEL пользователи:
 ## Добавьте EPEL репозиторий на CentOS 8 или RHEL 8
 ## используйте yum ##
 $ sudo yum install dnscrypt-proxy
 ## Arch Linux используйте pacman ##
 $ sudo pacman -S dnscrypt-proxy
 ## OpenSUSE/SUSE Linux пользователи используйте zypper ##
 $ sudo zypper in dnscrypt-proxy
 ## Fedora пользователи используйте dnf ##
 $ sudo dnf install dnscrypt-proxy

Настройка прокси dnscrypt 

Отредактируйте dnscrypt-proxy.toml в каталоге /etc/dnscrypt-proxy/. 

Например: 

$ ls -l /etc/dnscrypt-proxy/
$ sudo vim /etc/dnscrypt-proxy/dnscrypt-proxy.toml 

Во-первых, нам нужно настроить список используемых серверов.

Давайте использовать и Google, и Cloudflare:

server_names = [ 'google' 'cloudflare'] 

Я тоже могу использовать cloudflare: 

server_names = [ 'cloudflare'] 

Настройте список прослушиваемых локальных адресов и портов:

listen_addresses = ['127.0.0.1:53', '[::1]:53']

Для моего VPN 172.168.0.0/24:

listen_addresses = ['127.0.0.1:53', '172.168.0.1:53' ] 

Если у вас есть подключение по IPv6, используйте серверы, доступные через IPv6 (по умолчанию IPv4):

ipv6_servers = true 

Убедитесь, что мы используем серверы, реализующие протокол DNSCrypt и DoH.

dnscrypt_servers = true
doh_servers = true 

Убедитесь, что мы включили кеш DNS для уменьшения задержки и исходящего трафика: 

cache = true 

Сервер должен поддерживать расширения безопасности DNS (DNSSEC): 

require_dnssec = true 

Списки Adblock состоят из одного шаблона в строке. 

Примеры допустимых шаблонов: 

##                                                                  
##   example.com
##   =example.com
##   ads.*                        
##   ads*.example.*               
##   ads*.example[0-9]*.com 

Путь к файлу правил блокировки:

blacklist_file = '/etc/dnscrypt-proxy/blacklist.txt' 

Сохраните и закройте файл. 

Установка списка adblocker для прокси dnscrypt 

Вот небольшой скрипт bash для загрузки и обновления списка. 

#!/bin/bash
DEST="/etc/dnscrypt-proxy/blacklist.txt"
#
# Blocks both adware + malware 
# See for other lists https://github.com/StevenBlack/hosts
SRC="https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts"
TMP_B_FILE="$(mktemp)"
TMP_B_FILE_SORTED="$(mktemp)"
wget --timeout=10 --tries=5 -qO- "${SRC}" | grep -Ev "(localhost)" | grep -Ev "#" | sed -E "s/(0.0.0.0 |127.0.0.1 |255.255.255.255 )//" >> "${TMP_B_FILE}"
awk '/^[^#]/ { print $1 }' "${TMP_B_FILE}" | sort -u > "${TMP_B_FILE_SORTED}"
cp -f "${TMP_B_FILE_SORTED}" "$DEST"
rm -f "${TMP_B_FILE}" "${TMP_B_FILE_SORTED}" 

Запуск скрипта:

# ./update-adblocker.sh 

Проверка списка:

# more /etc/dnscrypt-proxy/blacklist.txt 

Обязательно запускайте скрипт update-adblocker.sh ежедневно, чтобы получать обновленный список хостов. 

Добавьте новое задание cron следующим образом:

@daily /path/to/update-adblocker.sh 

Помимо рекламы и вредоносных программ, вы можете блокировать поддельные новости, азартные игры, порно, и соцмедиа! 

Как включить прокси-службу dnscrypt 

Используйте команду systemctl, чтобы включить службу dnscrypt-proxy на Linux: 

$ sudo systemctl enable dnscrypt-proxy 

Запуск службы: 

$ sudo systemctl start dnscrypt-proxy 

Проверка сервиса: 

$ sudo systemctl status dnscrypt-proxy 

Статус DNSCrypt: 

● dnscrypt-proxy.service - DNSCrypt-proxy client
   Loaded: loaded (/usr/lib/systemd/system/dnscrypt-proxy.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-10-10 05:44:29 EDT; 4s ago
     Docs: https://github.com/jedisct1/dnscrypt-proxy/wiki
 Main PID: 5108 (dnscrypt-proxy)
    Tasks: 8 (limit: 11328)
   Memory: 13.8M
   CGroup: /system.slice/dnscrypt-proxy.service
           └─5108 /usr/bin/dnscrypt-proxy --config /etc/dnscrypt-proxy/dnscrypt-proxy.toml

Oct 10 05:44:29 centos-8-cloud.sweet.home dnscrypt-proxy[5108]: Wiring systemd TCP socket #1, dnscrypt-proxy.socket, [::1]:53
Oct 10 05:44:29 centos-8-cloud.sweet.home dnscrypt-proxy[5108]: Wiring systemd UDP socket #2, dnscrypt-proxy.socket, 127.0.0.1:53
Oct 10 05:44:29 centos-8-cloud.sweet.home dnscrypt-proxy[5108]: Wiring systemd UDP socket #3, dnscrypt-proxy.socket, [::1]:53
Oct 10 05:44:29 centos-8-cloud.sweet.home dnscrypt-proxy[5108]: Source [public-resolvers] loaded
Oct 10 05:44:29 centos-8-cloud.sweet.home dnscrypt-proxy[5108]: /etc/dnscrypt-proxy/relays.md: open sf-ux5n6prgb5kk4yzf.tmp: read-only file system
Oct 10 05:44:29 centos-8-cloud.sweet.home dnscrypt-proxy[5108]: Source [relays] loaded
Oct 10 05:44:29 centos-8-cloud.sweet.home dnscrypt-proxy[5108]: Firefox workaround initialized
Oct 10 05:44:29 centos-8-cloud.sweet.home dnscrypt-proxy[5108]: [cloudflare] OK (DoH) - rtt: 18ms
Oct 10 05:44:29 centos-8-cloud.sweet.home dnscrypt-proxy[5108]: Server with the lowest initial latency: cloudflare (rtt: 18ms)
Oct 10 05:44:29 centos-8-cloud.sweet.home dnscrypt-proxy[5108]: dnscrypt-proxy is ready - live servers: 1 

Пользователи Alpine Linux должны использовать команду rc-update и команду rc-service: 

$ sudo rc-update add dnscrypt-proxy

$ sudo rc-service dnscrypt-proxy

Источник


Report Page