Ник
Пост
Дата
ShiGhost(ShiGhost) Здравствуйте. Подскажите как это можно сделать на своём antizapret.
Сделал удаление CNAME из ответа на A-запрос и перезапись домена CNAME’а на запрашиваемый домен.
Может, поможет, а может и не решит проблему полностью, так как в случае CNAME’а при других запросах (не-A) он не убирается, и умный кеширующий резолвер, наверное, может всё равно продолжать его использовать.
Однако, как я полагаю, резолвер делает только A/AAAA/HTTPS-запросы при типичном браузинге сайтов, а все эти случаи должны работать корректно.
2024-07-12T14:28:33.938Z ValdikSS Примерно так:
root@antizapret-vpn:~/dnsmap# diff -u proxy.py_ proxy.py
--- proxy.py_ 2022-04-19 01:36:20.007487333 +0200
+++ proxy.py 2023-05-20 23:47:00.743846804 +0200
@@ -94,16 +94,26 @@
tcp=True,timeout=self.timeout)
reply = DNSRecord.parse(proxy_r)
- if request.q.qtype == QTYPE.AAAA:
- print('GOT AAAA')
+ if request.q.qtype == QTYPE.AAAA or request.q.qtype == QTYPE.HTTPS:
+ print('GOT AAAA or HTTPS')
reply = request.reply()
return reply
-
+
if request.q.qtype == QTYPE.A:
print('GOT A')
+
+ newrr = []
+ for record in reply.rr:
+ if record.rtype == QTYPE.CNAME:
+ continue
+ newrr.append(record)
+ reply.rr = newrr
+
for record in reply.rr:
if record.rtype != QTYPE.A:
continue
+
+ print("Got RECORD:", record)
#print(dir(record))
#print(type(record.rdata))
@@ -118,6 +128,7 @@
return reply
record.rdata = A(fake_addr)
+ record.rname = request.q.qname
record.ttl = 300
#print(a.rdata)
return reply
2024-07-12T14:36:29.848Z ShiGhost(ShiGhost) В итоге получил это
nslookup yt3.ggpht.com
Address: 192.168.1.1
Не заслуживающий доверия ответ:
╚ь : photos-ugc.l.googleusercontent.com
Address: 142.250.74.33
Aliases: yt3.ggpht.com
Не то что я хотел, он возвращает ip адрес photos-ugc.l.googleusercontent.com , хотел чтобы из ответа пропал CNAME и возвращал ip адрес для проксирования, так как этот домен заблокирован.
2024-07-12T18:57:03.639Z ValdikSS Да вроде не должен, самая последняя строка перезаписывает домен. Вы точно применили патч, перезапустили dnsmap и очистили кэш? Я так понимаю, у вас еще и промежуточный резолвер, его кэш вы также очистили?
2024-07-12T20:05:55.074Z ShiGhost(ShiGhost) Кэш везде почистил. Как перезапустить dnsmap?
2024-07-12T20:39:41.733Z ValdikSS systemctl restart dnsmap
2024-07-12T21:06:02.394Z ShiGhost(ShiGhost) Теперь все заблокированные домены не работают.
nslookup yt3.ggpht.com
╤хЁтхЁ: UnKnown
Address: 192.168.1.1
DNS request timed out.
timeout was 2 seconds.
*** UnKnown не удалось найти yt3.ggpht.com : Query refused
systemctl status dnsmap пишет что активен, но нету логов, которые были до изменения.
proxy.py (9,1 КБ)
2024-07-12T21:12:44.307Z ShiGhost(ShiGhost) Логи не появлялись потому что в systemd не было параметра запуска python3 -u. В итоге имеем такие логи:
Jul 13 07:00:24 fb380a5377b3 python3[116]: Request: [127.0.0.1:45683] (udp) / ‘yT3.gGphT.COm .’ (AAAA)
Jul 13 07:00:24 fb380a5377b3 python3[116]: Invalid Request: [127.0.0.1:50178] (udp) :: QTYPE: Invalid reverse lookup: [HTTPS]
Jul 13 07:00:24 fb380a5377b3 python3[116]: GOT AAAA or HTTPS
Jul 13 07:00:24 fb380a5377b3 python3[116]: Reply: [127.0.0.1:45683] (udp) / ‘yT3.gGphT.COm .’ (AAAA) / RRs:
Jul 13 07:00:25 fb380a5377b3 python3[116]: Request: [127.0.0.1:44505] (udp) / ‘I.InsTaGRaM.COm .’ (A)
Jul 13 07:00:25 fb380a5377b3 python3[116]: Invalid Request: [127.0.0.1:44505] (udp) :: QTYPE: Invalid reverse lookup: [HTTPS]
Jul 13 07:00:26 fb380a5377b3 python3[116]: Request: [127.0.0.1:56641] (udp) / ‘Yt3.GGPht.cOm .’ (A)
Jul 13 07:00:26 fb380a5377b3 python3[116]: Invalid Request: [127.0.0.1:56641] (udp) :: QTYPE: Invalid reverse lookup: [HTTPS]
Jul 13 07:00:27 fb380a5377b3 python3[116]: Request: [127.0.0.1:36188] (udp) / ‘i.INStAgRaM.COM .’ (A)
Jul 13 07:00:27 fb380a5377b3 python3[116]: Invalid Request: [127.0.0.1:36188] (udp) :: QTYPE: Invalid reverse lookup: [HTTPS]
2024-07-13T07:04:35.390Z ShiGhost(ShiGhost) @ValdikSS может были ещё какие то патчи? Почему может не работать?
2024-07-13T17:14:47.833Z ValdikSS Не в курсе. На серверах АнтиЗапрета файл один-в-один как у вас.
2024-07-13T18:33:04.548Z ValdikSS apt remove python3-dnslib && apt -y install python3-pip
pip3 install dnslib
2024-07-13T18:34:24.931Z ShiGhost(ShiGhost) Получилось. Огромное спасибо Вам.
2024-07-13T19:11:23.340Z