Skip to content

ImMALWARE/dns.malw.link

Repository files navigation

dns.malw.link

Здесь 5 веток:

  1. master — описание, файл hosts, mobileconfig
  2. dns-server — DNS сервер
  3. sni-proxy — SNI Proxy
  4. dns-and-sni-proxy — DNS сервер и SNI Proxy для установки на единственный сервер
  5. web — Веб-страницы (info.dns.malw.link)

Запуск DNS и SNI Proxy на одном сервере

  1. Убедитесь, что у вас установлен Docker и Docker Compose. Если не знаете как — спросите у ChatGPT.

  2. Клонируйте репозиторий:

    git clone --single-branch -b dns-and-sni-proxy https://github.com/ImMALWARE/dns.malw.link
    cd dns.malw.link

Если вам нужны DNS over HTTPS и DNS over TLS

  1. Убедитесь, что ваш домен привязан к IP сервера.

  2. Создайте папку certs в корне проекта.

  3. Поместите в неё SSL-сертификаты с именами fullchain.cer и key.key.

    Можете использовать, например, acme.sh для получения сертификатов.

  4. В nginx.conf поменяйте домен dns.malw.link на ваш домен:

    map $ssl_preread_server_name $allowed_domain {
       dns.malw.link 2;
       include /etc/nginx/whitelist_domains.conf;
    

Если вам не нужны DNS over HTTPS и DNS over TLS

  1. В docker-compose.yml закомментируйте строки:

    # - "853:853/tcp"
    # - ./certs:/etc/dnsdist/certs:ro
  2. В dnsdist.conf закомментируйте строки:

    -- addTLSLocal("0.0.0.0:853", "/etc/dnsdist/certs/fullchain.cer", "/etc/dnsdist/certs/key.key")
    -- addDOHLocal("0.0.0.0:8053", "/etc/dnsdist/certs/fullchain.cer", "/etc/dnsdist/certs/key.key", "/dns-query")
    

Дальнейшие действия

В файле dnsdist.conf замените IP-адреса:

addAction(QNameSuffixRule(proxy_with_subdomains), SpoofAction({"2a05:541:104:7f::1", "45.95.233.23", "185.246.223.127"}))
addAction(QNameSetRule(proxy), SpoofAction({"2a05:541:104:7f::1", "45.95.233.23", "185.246.223.127"}))

Замените на IP-адреса текущего сервера. Чтобы его узнать, выполните эти команды:

curl -4 ip.wtf  # IPv4 адрес
curl -6 ip.wtf  # IPv6 адрес

Формат:

{"тут ipv6", "тут ipv4"}

Если IPv6 нет:

{"тут ipv4"}

Для запуска/обновления списка доменов используйте:

./update_domains.sh

Запуск только DNS на сервере

  1. Убедитесь, что у вас установлен Docker и Docker Compose.

  2. Клонируйте нужную ветку:

    git clone --single-branch -b dns-server https://github.com/ImMALWARE/dns.malw.link
    cd dns.malw.link

Если вам нужны DNS over HTTPS и DNS over TLS

  1. Убедитесь, что домен привязан к IP.

  2. Создайте папку certs в корне проекта.

  3. Поместите в неё SSL-сертификаты с именами fullchain.cer и key.key.

    Можете использовать, например, acme.sh для получения сертификатов.

  4. В nginx.conf поменяйте домен dns.malw.link на ваш домен:

    map $ssl_preread_server_name $allowed_domain {
       dns.malw.link 2;
       include /etc/nginx/whitelist_domains.conf;
    

Если вам не нужны DNS over HTTPS и DNS over TLS

  1. В docker-compose.yml закомментируйте:

    # - "853:853/tcp" # DNS over TLS
    # - "443:443/tcp" # DNS over HTTPS
    # - ./certs:/etc/dnsdist/certs:ro
  2. В dnsdist.conf закомментируйте:

    -- addTLSLocal("0.0.0.0:853", "/etc/dnsdist/certs/fullchain.cer", "/etc/dnsdist/certs/key.key")
    -- addDOHLocal("0.0.0.0:443", "/etc/dnsdist/certs/fullchain.cer", "/etc/dnsdist/certs/key.key", "/dns-query")
    

Дальнейшие действия

В dnsdist.conf замените:

addAction(QNameSuffixRule(proxy_with_subdomains), SpoofAction({"2a05:541:104:7f::1", "45.95.233.23", "185.246.223.127"}))
addAction(QNameSetRule(proxy), SpoofAction({"2a05:541:104:7f::1", "45.95.233.23", "185.246.223.127"}))

На IP-адреса вашего сервера SNI Proxy.

Узнать IP-адреса можно командами (выполните на сервере, где запущен SNI Proxy):

curl -4 ip.wtf  # IPv4
curl -6 ip.wtf  # IPv6

Формат:

{"тут ipv6", "тут ipv4"}

Если IPv6 нет:

{"тут ipv4"}

Для запуска/обновления списка доменов используйте:

./update_domains.sh

Запуск только SNI Proxy на сервере

  1. Убедитесь, что у вас установлен Docker и Docker Compose.

  2. Клонируйте ветку:

    git clone --single-branch -b sni-proxy https://github.com/ImMALWARE/dns.malw.link
    cd dns.malw.link
  3. Для запуска/обновления списка доменов используйте:

    ./update_domains.sh

About

DNS-сервер + SNI Proxy обходят IP-блокировки сайтов

Resources

License

Stars

Watchers

Forks

Sponsor this project