Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ограниченное пространство в размере 88КБ #402

Open
dwnmf opened this issue Sep 17, 2024 · 5 comments
Open

Comments

@dwnmf
Copy link

dwnmf commented Sep 17, 2024

Я можно сказать в безвыходной ситуации и zapret на wr841nd ver9.2 не уместится
Скажите вот этот кусок букв сможет ли заменить какой-либо функционал? Благодарю за любые комментарии.
#!/bin/ash

Функция для обработки DNS-запросов

handle_dns() {
while read -r req; do
echo "$req" | od -t x1 -A n | tr -d ' \n' |
xxd -r -p | nc -u 1.1.1.1 53 | od -t x1 -A n | tr -d ' \n' |
xxd -r -p
done < /dev/udp/5353 > /dev/udp/5353
}

Функция для модификации TLS Client Hello

modify_tls() {
while read p; do
if echo "$p" | grep -q "^\x16\3\1"; then
echo "$p" | dd bs=1 count=51 2>/dev/null
dd if=/dev/urandom bs=1 count=32 2>/dev/null
echo "$p" | dd bs=1 skip=83 2>/dev/null
else
echo "$p"
fi
done
}

Функция для модификации HTTP-заголовков

modify_http() {
while IFS= read -r line; do
if echo "$line" | grep -qi "^server:"; then
echo "Server: Apache"
elif echo "$line" | grep -qi "^user-agent:"; then
echo "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
else
echo "$line"
fi
done
}

Настройка iptables

setup_iptables() {

Очистка существующих правил

iptables -F
iptables -t nat -F
iptables -t mangle -F

Настройка PREROUTING

iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-port 5353
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443

Настройка POSTROUTING

iptables -t mangle -A POSTROUTING -p tcp -j TCPMSS --set-mss 1300
iptables -t mangle -A POSTROUTING -j TTL --ttl-set $(od -An -N2 -i /dev/urandom)
}

Основная функция

main() {

Настройка iptables

setup_iptables

Запуск обработчиков

handle_dns &
nc -l -p 8080 | modify_http | nc 127.0.0.1 80 &
nc -l -p 8443 | modify_tls | nc 127.0.0.1 443 &

Ожидание завершения (которое не должно произойти)

wait
}

Запуск основной функции

main

Инструкции по установке:

1. Сохраните этот скрипт как /root/dpi_bypass.sh на вашем роутере с OpenWRT.

2. Установите необходимые пакеты:

opkg update

opkg install iptables-mod-nfqueue

3. Сделайте скрипт исполняемым:

chmod +x /root/dpi_bypass.sh

4. Добавьте скрипт в автозагрузку, добавив следующую строку в /etc/rc.local перед "exit 0":

/root/dpi_bypass.sh &

5. Перезагрузите роутер или запустите скрипт вручную:

/root/dpi_bypass.sh

@ptipti23
Copy link

ptipti23 commented Sep 17, 2024

ООО, поздравляю вас с устройством, у которого 4 мегабайта флешка. В своё время, мне туда даже PHP не получилось установить. Ладно, не будем умничать. Места там реально очень мало. Официально написано, что последняя версия OpenWRT 15... https://openwrt.org/ru/toh/tp-link/tl-wr841nd
Реально последняя версия, которое поддерживает 32/4 - 19. Но надо смотреть и собирать самому. Почитайте про Image Builder и минимальный набор нужных пакетов. Но там будет только "чёрное". И максимум 700 Кб. Наверное, даже просто nfqws не встанет. Лично мне с него удалось добиться 1.1 мегабайта свободного места, но там нет вообще ничего, он только является точкой доступа Wi-Fi даже без DHCP.

Если ищете маршрутизатор, сейчас появились Archer A6 - это точная копия Archer C6 V2. Стоят не очень дорого. Новые C6 стали V4 и это полный шлак.

@dwnmf
Copy link
Author

dwnmf commented Sep 17, 2024

Но что же попробую, то что вы предложили. Благодарю за совет

@JasperRus
Copy link

JasperRus commented Sep 18, 2024

Но что же это за эксперимент, то, что вы предложили. Благодарю за совет

Могу еще посоветовать роутер xiaomi mi 4c, стоит копейки. Там 9мб свободного пространства. После установки zapret остается около 5,5мб.

@ValdikSS
Copy link

Напишите скрипт, который скачивает nfqws/tpws (что вам нужно) в /tmp при каждом запуске, и всё.

@ptipti23
Copy link

на 16 метрах ОЗУ... Фантастика...

Напишите скрипт, который скачивает nfqws/tpws (что вам нужно) в /tmp при каждом запуске, и всё.

на 16 метрах ОЗУ... Фантастика...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants