@fipini9428

Как на линуксе настроить redsocks и iptables, чтобы в DNS отображались только родные DNS от SOCKS5?

Всем привет. Прошу помощи от сетевых спецов. На винде есть программа Proxifier с настройкой "Resolve hostnames through proxy". При ее включении и проверке DNS на https://browserleaks.com/dns выдает только родные DNS от прокси:
623702910da66194673045.jpeg
Я пытаюсь настроить также на роутере с прошивкой OpenWrt.
redsocks.conf:
spoiler
base {
        log_debug = on;
        log_info = on;
        log = "syslog:local7";
        daemon = on;
        redirector = iptables;
}
redsocks {
        local_ip = 0.0.0.0; local_port = 12345;
        ip = xxx.xxx.xxx.xxx; port = xxxx; - SOCKS5
        type = socks5;
}
redudp {
        local_ip = 0.0.0.0; local_port = 10053;
        ip = xxx.xxx.xxx.xxx; port = xxxx; - SOCKS5
        dest_ip = 1.1.1.1; dest_port = 53;
        udp_timeout = 30;
        udp_timeout_stream = 180;
}
dnstc {
        local_ip = 127.0.0.1;
        local_port = 5300;
}

Пробовал три варианта:
1. redsocks и редирект DNS на порт redudp 10053 (в настройках redudp DNS cloudflare)
spoiler
iptables -t nat -D REDSOCKS
iptables -t nat -D REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -D REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -D REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -D REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -D REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -D REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -D REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -D REDSOCKS -d 240.0.0.0/4 -j RETURN
iptables -t nat -D REDSOCKS -d 123.8.141.173 -j RETURN
iptables -t nat -D REDSOCKS -p tcp -j REDIRECT --to-ports 12345
iptables -t nat -D PREROUTING -p tcp -j REDSOCKS
iptables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 10053
iptables -t nat -D OUTPUT -p tcp -j REDSOCKS
iptables -t nat -D OUTPUT -p udp -j REDSOCKS

Итог: отображаются DNS cloudflare и DNS прокси:

623702d703b39456655283.jpeg
2. redsocks и редирект DNS на порт сервера pdnsd 1111 (в настройках pdnsd DNS google)
spoiler
iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 1111
iptables -t nat -N REDSOCKS
iptables -t nat -N REDSOCKS_FILTER
iptables -t nat -I REDSOCKS_FILTER -o lo -j RETURN
iptables -t nat -A REDSOCKS_FILTER -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS_FILTER -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS_FILTER -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS_FILTER -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS_FILTER -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS_FILTER -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS_FILTER -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS_FILTER -d 240.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS_FILTER -d 123.8.141.173 -j RETURN
iptables -t nat -A REDSOCKS_FILTER -j REDSOCKS
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-port 12345
iptables -t nat -A OUTPUT -p tcp -j REDSOCKS_FILTER
iptables -t nat -A PREROUTING -p tcp -j REDSOCKS_FILTER

Итог: отображаются DNS google и DNS прокси
623706ffb91ab132330586.jpeg

Подскажите пожалуйста, что прописать или установить, чтобы отображались только родные DNS как на первой картинке?
  • Вопрос задан
  • 1166 просмотров
Пригласить эксперта
Ответы на вопрос 1
@leohab75
я конечно не эксперт, но сначала тебе нужно установить клиент cloudflared а в /etc/redsocks.conf дописать
spoiler
base {
log_debug = off;
log_info = off;
//log = "file:/var/log/redsocks.log";
daemon = on;
redirector = iptables;
}

redsocks {
local_ip = 0.0.0.0; //здесь крутится сам
local_port = 8123; //redsocks

ip = 127.0.0.1; //здесь, какой-то прокси
port = 2323; //на этом порту
//Если есть авторизация
//login = "";
//password = "";
type = socks5;
}

dnstc {
local_ip = 127.0.0.1;
local_port = 5153;
}
у меня там на 127.0.0.1:2323 snowflake/tor и если ты настроишь cloudflared-proxy на 127.0.0.1:53 (по инструкции), то в правилах редсокса проводи его на 127.0.0.1:5153 iptables -t nat -A REDSOCKS -p tcp --dport 53 -j REDIRECT --to-ports 5153
spoiler
#!/bin/bash

IPTABLES="iptables"
REDSOCKS="redsocks"
REDSOCKSCFG="/etc/redsocks.conf"

if [ "$1" = "start" ]; then
echo '(Re)starting redsocks...'
pkill -U $USER redsocks 2>/dev/null
sleep 1
$REDSOCKS -c $REDSOCKSCFG

iptables -t nat -N REDSOCKS
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN

#cloudflared
iptables -t nat -A REDSOCKS -p tcp --dport 53 -j REDIRECT --to-ports 5153
iptables -t nat -A REDSOCKS -p udp --dport 53 -j REDIRECT --to-ports 5153


#all tcp/udp to REDSOCKS
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 8123
iptables -t nat -A REDSOCKS -p udp -j REDIRECT --to-ports 8123

#for web standart
#iptables -t nat -A REDSOCKS -p tcp --dport 80 -j REDIRECT --to-ports 8123
#iptables -t nat -A REDSOCKS -p tcp --dport 8080 -j REDIRECT --to-ports 8123
#iptables -t nat -A REDSOCKS -p tcp --dport 443 -j REDIRECT --to-ports 8123

iptables -t nat -A OUTPUT -p tcp -j REDSOCKS

iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDSOCKS
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDSOCKS
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDSOCKS

echo IPtables reconfigured.
exit 0;
elif [ "$1" = "stop" ]; then
$IPTABLES -t nat -F
$IPTABLES -t nat -X
killall redsocks
exit 0;
echo All be back
else
exit 1;
fi
и будет тебе счастье

в общем, я над этим уже неделю краплю )) вот результат Да, хотел на github залить, но там ограничение 100мб.. так что, если есть желание, милости прошу. Там правда тестовая версия, но куда копать ты поймеш ..
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы