Установить его можно, конечно, очень легко:
add-apt-repository ppa:anton+/dnscrypt
apt-get update
apt-get install dnscrypt-proxy
и он сразу заработает на адресе 127.0.0.2
Причесать можно в файле конфигурации
/etc/default/dnscrypt-proxy
Но я для надёжности хочу две копии процесса на разные DNSCrypt-сервера.
Поэтому пойдём более сложным путём.
Установка
Для работы dnscrypt-proxy нужна библиотека
Sodium crypto, установим её предварительно:
Установка LIBSODIUM
Установка расписана в документации
В таких делах, разумеется, лучше перебздеть и установить крайнюю версию.
git clone https://github.com/jedisct1/dnscrypt-proxy.git
cd dnscrypt-proxy
./autogen.sh
./configure && make -j2
make install
Но у меня не получилось с GitHub-а, тогда можно, как вариант, зная желаемую версию, установить вот так:
wget http://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.6.1.tar.gz -O - | tar -xz
cd dnscrypt-proxy-1.6.1/
./configure && make -j2
make install
>>>???>>> cp dnscrypt.conf /etc/init/
cd ..
rm -rf dnscrypt-proxy*
В попытках запустить две копии с разными конфигами всякое непотребное
творил. Приходилось полностью удалять установленные пакеты:
dpkg --purge --force-depends dnscrypt-proxy
Запуск
Пробуем запустить:
/usr/local/sbin/dnscrypt-proxy -R 4armed --local-address=127.0.0.1:40 --daemonize --pidfile=/run/dnscrypt-proxy40.pid
Задать можно и другие
опции.
При этом,
dnscrypt-proxy подсматривает в файл:
/usr/local/share/dnscrypt-proxy/dnscrypt-resolvers.csv
/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv
где сопоставлены имена серверов с их адресами и портами, ключами и всё такое -
БД.
Это сделано для нашего удобства! В качестве аргумента даём просто имя.
Но и не забываем оберегать этот файл от изменений злыдней.
Запускается, сообщает радостные вести, но не демонизируется.
[INFO] + DNS Security Extensions are supported
[INFO] + Provider supposedly doesn't keep logs
DNSCrypt-Loader
Тыркался и нашёл
DNSCrypt-Loader
Установка и запуск расписаны там.
Но при попытке запуска с заданным резолвером ошибка:
Loading failed.
Конфиги в директории
/etc/dnscrypt-loader/ пустые.
Из исходников стало ясно, что конфиги сохраняются, если процесс запущен и работает. А из текстово-графического интерфейса стало понятно, что
dnscrypt-loader не может грамотно распарсить файл
/usr/local/share/dnscrypt-proxy/dnscrypt-resolvers.csv
Пришлось открыть вопрос
#5
Наткнулся
ещё на предупреждение, что
Please note that on Linux systems (kernel >= 3.9), multiples instances of
dnscrypt-wrapper
can run at the same time. Therefore, in order to
switch to a new configuration, one can start a new daemon without
killing the previous instance, and only kill the previous instance
after the new one started.
И понял, что
устал от Ubuntu и решил, что пора перебираться на
ванильный Дебиан, пожертвовав графикой.
Установил Ванильный и всё заработало.
Всяческие проверки
Список открытых портов:
netstat -lntu
netstat -anp | grep dnscrypt-proxy
Посмотрим на зашифрованный запрос
tcpdump -i eth0 port 443
Косяки
1. При запуске
dnscrypt-proxy получаем ошибку:
loading shared libraries: libsodium.so.4: cannot open shared object file: No such file or directory
Решение (via):
Если libsodium был установлен без ошибок, но проблема возникает, то выполняем:
# ./configure --libdir=/usr/local/lib
Если проблема остается то выполняем:
# ln -s /usr/local/lib/libsodium.so.4 /usr/lib/libsodium.so.4
2. При выполнении
service dnscrypt start получаем:
# service dnscrypt start
dnscrypt stop/waiting
Скрипт dnscrypt-proxy находится в
/usr/local/sbin/dnscrypt-proxy, а скрипт его ищет в
/usr/sbin/dnscrypt-proxy.
Решение (via):
# ln -s /usr/local/sbin/dnscrypt-proxy /usr/sbin/dnscrypt-proxy