LINUX.ORG.RU
ФорумAdmin

Проблемы с непонятным локальным прокси.

 ,


0

2

Началось всё с заигрывания на proxmox в lxc с apt-cacher-ng и установкой squid-deb-proxy-client + avahi-daemon на «клиентских» lxc. Всё началось хорошо, работало, обновлялось. Но в какой-то момент перестали работать нормально обновления, странно повела себя система. В итоге на любой wget, curl или apt выдаётся ошибка или 302 перенаправление на https://debian.org. Происходит примерно следующее:

root@S3:~# curl -I ya.ru
HTTP/1.1 301 Moved Permanently
Server: openresty
Date: Mon, 28 Oct 2024 12:14:10 GMT
Content-Type: text/html
Content-Length: 166
Connection: keep-alive
Location: https://debian.org

И так с любым адресом. apt –purge remove avahi-daemon && apt –purge remove squid-deb-proxy-client && rm /etc/apt/apt.conf.d/02aptproxy , reboot никак не помогают. $http_proxy и $https_proxy пустые, пинги и трассировка идут нормально. Файл environment пустой.

root@S3:/etc/network# cat interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
root@S3:/etc/network# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.25  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::be24:11ff:fe26:8cee  prefixlen 64  scopeid 0x20<link>
        ether bc:24:11:26:8c:ee  txqueuelen 1000  (Ethernet)
        RX packets 7083  bytes 1319328 (1.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 271  bytes 31335 (30.6 KiB)
        TX errors 0  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
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 15  bytes 1988 (1.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 15  bytes 1988 (1.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
root@S3:/etc# cat resolv.conf 
domain home
search home
nameserver 10.0.0.1

Такое ощущение, что засел какой-то странный прозрачный прокси, следов которого я не могу найти.

Остановка lxc с apt-cacher-ng никак не меняет картины. Судя по всему, что-то засело локально и отправляет 302 на debian.org. Роутер (10.0.0.1) mikrotik, никаких mangle нет, web-proxy выключен. Пробовал другой адрес давать, не помогает. И такое происходит с несколькими lxc, на которых всё это ставилось.

Уже голову сломал, больше нет идей, куда можно копать. Помогите советом! Что еще можно посмотреть?


В итоге на любой wget

Где лог?

Прокси тут ни при чём, у тебя скорее всего с днс проблемы, но твой любимый курл нормальные логи по умолчанию не пишет. Покажи wget.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

Я бы начал с простого в lxc-контейнерах

Что выдает «host ya.ru» ? Например 5.255.255.242

Что выдает «ip ro get 5.255.255.242» ? 10.0.0.1?

Что выдает трассировка «traceroute -T -p 80 ya.ru» ?

На каждом шаге нужно понять на сколько полученый результат соответствует ожидаемому.

vel ★★★★★
()
Ответ на: комментарий от firkax

Я тоже так думал. Но разве DNS может отправить 302? Мне кажется, это в header ответа http сервера. Еще были мысли копнуть в сторону mDNS, возможно, эта вся кухня притянула за собой, но смущает именно то, что ответ же не от DNS.

root@S3:/home# wget ya.ru
--2024-10-28 14:31:05--  http://ya.ru/
Resolving ya.ru (ya.ru)... 77.88.44.242, 77.88.55.242, 5.255.255.242, ...
Connecting to ya.ru (ya.ru)|77.88.44.242|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://debian.org [following]
--2024-10-28 14:31:05--  https://debian.org/
Resolving debian.org (debian.org)... 151.101.2.132, 151.101.130.132, 151.101.66.132, ...
Connecting to debian.org (debian.org)|151.101.2.132|:443... connected.
GnuTLS: A TLS fatal alert has been received.
GnuTLS: received alert [112]: The server name sent was not recognized
Unable to establish SSL connection.
ra1qcw
() автор топика
Ответ на: комментарий от vel
root@S3:/home# host ya.ru
ya.ru has address 77.88.55.242
ya.ru has address 5.255.255.242
ya.ru has address 77.88.44.242
ya.ru has IPv6 address 2a02:6b8::2:242
ya.ru mail is handled by 10 mx.yandex.ru.
root@S3:/home# ip ro get 5.255.255.242
5.255.255.242 via 10.0.0.1 dev eth0 src 10.0.0.25 uid 0 
    cache 
root@S3:/home# traceroute -T -p 80 ya.ru
traceroute to ya.ru (5.255.255.242), 30 hops max, 60 byte packets
 1  ya.ru (5.255.255.242)  0.024 ms  0.004 ms  0.003 ms
 2  ya.ru (5.255.255.242)  0.021 ms  0.008 ms  0.007 ms

Всё же нормально. Чертовщина какая-то ( Может еще телнетом подключиться на 80 порт по dns имени попробовать. Или nmap’ом прошуршать. Но пока не знаю, как. Читаю…

ra1qcw
() автор топика
Ответ на: комментарий от vel

Вот то, что что-то заворачивает, куда больше похоже на правду. Только вот вопрос — что и куда. Что-то же отвечает 302 и пытается послать меня на debian.org. Только вот нет iptables и ufw.

root@S3:/etc/iproute2# iptables
bash: iptables: command not found
root@S3:/etc/iproute2# ufw
bash: ufw: command not found
root@S3:/etc/iproute2# 

Естественно есть на хосте, но там никакого криминала, просто заворачивает трафик внутрь на nginx без IP в LAN, на виртуальном бридже. Зачем-то сделал так когда-то, а переделывать уже лень. Да и работает же. Просто nginx висит на IP хоста.

Я всё думаю, что это как-то связано с squid-deb-proxy-client или avahi. Удалились, но что-то осталось. Странный сквид клиент. Но за при удалении, как мне показалось, всё подчистилось. Он просто avahi дёргал, который искал запущенный в сетке apt кэшер. А что-то еще может заворачивать трафик?

ra1qcw
() автор топика
Ответ на: комментарий от ra1qcw

А nft там нет?

«ip ru» показывает обычные 3 строки про local/main/default ?

Вначале была подсказка

# curl -I ya.ru
HTTP/1.1 301 Moved Permanently
Server: openresty

Где у тебя openresty? (nginx+lua+...)

Ну и посмотри, кто у тебя в контейнере слушает tcp-порты.

Я всегда обходил стороной поделку под названием avahi, т.ч. с ним я тебе ничем не помогу.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel

nft,как оказалось, есть, но там пусто:

root@S3:/etc# nft list ruleset
table inet filter {
        chain input {
                type filter hook input priority filter; policy accept;
        }

        chain forward {
                type filter hook forward priority filter; policy accept;
        }

        chain output {
                type filter hook output priority filter; policy accept;
        }
}
root@S3:/etc# ip ru
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default
root@S3:/etc# ss -tulp
Netid   State    Recv-Q   Send-Q     Local Address:Port         Peer Address:Port   Process                                     
udp     UNCONN   0        0          127.0.0.53%lo:domain            0.0.0.0:*       users:(("systemd-resolve",pid=94,fd=17))   
udp     UNCONN   0        0                0.0.0.0:bootpc            0.0.0.0:*       users:(("dhclient",pid=80,fd=9))           
udp     UNCONN   0        0                0.0.0.0:5355              0.0.0.0:*       users:(("systemd-resolve",pid=94,fd=11))   
udp     UNCONN   0        0                   [::]:5355                 [::]:*       users:(("systemd-resolve",pid=94,fd=13))   
tcp     LISTEN   0        100            127.0.0.1:smtp              0.0.0.0:*       users:(("master",pid=315,fd=13))           
tcp     LISTEN   0        4096             0.0.0.0:5355              0.0.0.0:*       users:(("systemd-resolve",pid=94,fd=12))   
tcp     LISTEN   0        4096           127.0.0.1:9000              0.0.0.0:*       users:(("minio",pid=143,fd=8))             
tcp     LISTEN   0        4096       127.0.0.53%lo:domain            0.0.0.0:*       users:(("systemd-resolve",pid=94,fd=18))   
tcp     LISTEN   0        4096                   *:9001                    *:*       users:(("minio",pid=143,fd=3))             
tcp     LISTEN   0        4096                   *:9000                    *:*       users:(("minio",pid=143,fd=9))             
tcp     LISTEN   0        4096                [::]:5355                 [::]:*       users:(("systemd-resolve",pid=94,fd=14))   
tcp     LISTEN   0        4096                   *:ssh                     *:*       users:(("systemd",pid=1,fd=57))            
tcp     LISTEN   0        4096               [::1]:9000                 [::]:*       users:(("minio",pid=143,fd=10))            
tcp     LISTEN   0        100                [::1]:smtp                 [::]:*       users:(("master",pid=315,fd=14))      

И опять никакого криминала. openresty нигде нет, да и не было необходимости. Едва ли мог такое поставить случайно. Попробовал через torch на mikrotik посмотреть трафик от lxc больного, трафика нет. Получается, он не выходит за пределы сети. От здорового lxc трафик просвечивается. Значит, или перехватывает что-то локальное на lxc, или что-то внутри локалки. Пытался посмотреть через iftop, но толку мало. В общем, беда. Попробовал подрубиться через телнет

root@S3:/_tmp# telnet ya.ru 80
Trying 77.88.44.242...
Connected to ya.ru.
Escape character is '^]'.
GET
HTTP/1.1 400 Bad Request
Server: openresty
Date: Mon, 28 Oct 2024 20:39:40 GMT
Content-Type: text/html
Content-Length: 154
Connection: close

<html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>openresty</center>
</body>
</html>
Connection closed by foreign host.

Спросил «GET», в ответ на меня выругались и выгнали. А можно что-то такое спросить, чтобы получить IP адрес того, кто подло перехватил запрос?

ra1qcw
() автор топика
Ответ на: комментарий от vel

Блин. Погасил ради теста lxc с nginx proxy manager и получилось вот так:

root@S3:/_tmp# curl -I ya.ru
curl: (7) Failed to connect to ya.ru port 80: No route to host
root@S3:/_tmp# ping ya.ru
PING ya.ru (5.255.255.242) 56(84) bytes of data.
64 bytes from ya.ru (5.255.255.242): icmp_seq=1 ttl=53 time=23.2 ms
64 bytes from ya.ru (5.255.255.242): icmp_seq=2 ttl=53 time=23.2 ms
64 bytes from ya.ru (5.255.255.242): icmp_seq=3 ttl=53 time=23.1 ms
^C
--- ya.ru ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 23.068/23.141/23.199/0.054 ms

Похоже, что-то съехало внутри хоста и трафик как-то рандомно побрел на lxc c NPM. Видимо, нужно разгребать iptables внутри хоста. Или заканчивать с «экономией» IP адресов и выводить NPM в локалку, убирать NAT и прочие завороты внутри хоста. Вот я лох… Сейчас уже спать, завтра буду разгребать. Всем спасибо! Реально помогли. Узнал много нового. Есть куда стремиться, чему учиться.

ra1qcw
() автор топика