LINUX.ORG.RU
ФорумAdmin

HTTPS->OpenVPN->Privoxy->TOR (через iptables) не работает

 , ,


0

1

Доброго дня завсегдатаям и знатокам :)

Потратил уже не один день, но просторы интернета оказались бессильны, может кто-то сможет помочь.

Есть OpenVPN сервер, выполняющий функцию шлюза до нескольких порталов с ограничением по IP, пытаюсь добавить туда также маршруты для HTTP и HTTPS через TOR на конкретный перечень адресов через push «route ***» (чтобы не поднимать несколько openvpn клиентов на пользовательских устройствах) - HTTP отрабатывает как надо, а HTTPS встает в пермоментном ожидании

Конфиг OpenVPN сервера

dev tun
proto udp
port 1194
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/key.crt
key /etc/openvpn/pki/private/key.key
dh none
ecdh-curve prime256v1
topology subnet
server 10.8.0.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"
push "route 34.117.59.81 255.255.255.255"
keepalive 15 120
remote-cert-tls client
tls-version-min 1.2
tls-crypt /etc/openvpn/easy-rsa/pki/ta.key
cipher AES-256-CBC
auth SHA256
user openvpn
group openvpn
persist-key
persist-tun
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
syslog
verb 3

Интерфейсы:

ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.13  netmask 255.255.255.0  broadcast 192.168.10.255
        ether dc:a6:32:6c:6f:8e  txqueuelen 1000  (Ethernet)
        RX packets 249261264  bytes 1918826500 (1.7 GiB)
        RX errors 1  dropped 1  overruns 0  frame 0
        TX packets 531542794  bytes 487561350 (464.9 MiB)
        TX errors 6  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 989383  bytes 189308264 (180.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 989383  bytes 189308264 (180.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1432
        inet 10.12.0.11  netmask 255.255.255.255  destination 10.12.0.1
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 37  bytes 3484 (3.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 53984  bytes 18886414 (18.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.8.0.1  netmask 255.255.255.0  destination 10.8.0.1
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 28386  bytes 1820324 (1.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 26537  bytes 17613911 (16.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Вот какие маршруты прописаны на шлюзе:

sudo iptables -t nat -L -n -v --line-numbers

Chain PREROUTING (policy ACCEPT 578K packets, 89M bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       11   704 REDIRECT   tcp  --  tun0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8118
2       10   652 REDIRECT   tcp  --  tun0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 redir ports 8118

Chain INPUT (policy ACCEPT 429K packets, 60M bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 865K packets, 70M bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1    11672  816K MASQUERADE  all  --  *      eth0    10.8.0.0/24          0.0.0.0/0            /* openvpn-nat-rule */
2      196 61544 MASQUERADE  all  --  *      ppp0    0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 875K packets, 73M bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1      828 49680 REDIRECT   tcp  --  *      *       0.0.0.0/0            195.82.146.120/29    tcp dpt:80 redir ports 8118
2        0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            37.1.204.184         tcp dpt:80 redir ports 8118
3        0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            37.1.202.134         tcp dpt:80 redir ports 8118

При этом следующие запросы проходят нормально (с OpenVPN клиента): curl http://ipecho.net/plain curl –proxy 127.0.0.1:8118 https://ipecho.net/plain

А запрос вида: curl https://ipecho.net/plain подвисает, в конце выдает только

  • TLSv1.2 (OUT), TLS handshake, Client hello (1):
  • Operation timed out

При этом когда на самом шлюзе прописывал маршруты OUTPUT 80->8118 и 443->8118, то проблема была идентичной (при curl с шлюза)

Вопрос: возможно ли с помощью ipconfig завернуть HTTPS трафик в Privoxy?

PS Заранее благодарность всем небезразличным :)

ТС, я только спустя сутки понял, что ты имел в виду.

Со стороны LAN клиентов:

- некоторые сайты: клиент>шлюз>privoxy>tor>сайт
- остальные сайты: клиент>шлюз>интернет

?????

В любом случае, вот это :

1 11 704 REDIRECT tcp  — tun0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8118
2 10 652 REDIRECT tcp  — tun0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 redir ports 8118

т.е. ты редиректишь порты HTTP и HTTPS на один и тот же листенер прозрачного прокси?
Естестенно HTTPS не работает, оно хочет чтоб принимающая сторона умела TLS.
Сделай отдельный HTTPS listener и редиректи HTTPS туда.

Bers666 ★★★★★ ()