Доработка старого роутера DLINK DIR-300b7

Все началось с того что флешка всего 4 мегабайта !)

Нужен программатор !

Берем 25q64bv и прошиваем breed-rt5350-blank-r1163.bin

Собираем Padavan, для сборки под 8 мегабайт надо изменить /padavan-ng/trunk/configs/boards/DLINK/DIR-300B7/partitions.config

{
name: "Bootloader",
offset: 0x0,
size: 0x30000,
}, {
name: "Config",
offset: 0x30000,
size: 0x10000,
}, {
name: "Factory",
offset: 0x40000,
size: 0x10000,
}, {
name: "Firmware",
offset: 0x50000,
size: 0x790000,
}, {
name: "Storage",
offset: 0x7E0000,
size: 0x20000,
}

Собираем и прошиваем в breed

Проблема с лампочками, они все светятся)

Компиляция модулей DSM 6.2

OS для сборки Debian 9

Обновить репы и пакеты.

apt update && apt upgrade

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

apt install mc make gcc build-essential kernel-wedge libncurses5 libncurses5-dev libelf-dev binutils-dev kexec-tools makedumpfile fakeroot lzma

Создаем рабочую папку.

mkdir /dsmsrc
cd /dsmsrc

Скачать source и Tool Chains.

wget https://netcologne.dl.sourceforge.net/project/dsgpl/Synology%20NAS%20GPL%20Source/22259branch/bromolow-source/linux-3.10.x.txz
wget https://netcologne.dl.sourceforge.net/project/dsgpl/DSM%206.2%20Tool%20Chains/Intel%20x86%20linux%203.10.102%20%28Bromolow%29/bromolow-gcc493_glibc220_linaro_x86_64-GPL.txz

Распаковать архивы.

tar xvf linux-3.10.x.txz
tar xvf bromolow-gcc493_glibc220_linaro_x86_64-GPL.txz

Дать ссылку на Tool Chains.

alias dsm6make='make ARCH=x86_64 CROSS_COMPILE=/dsmsrc/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-'

Перейти в папку linux-3.10.x.

cd linux-3.10.x

Скопировать эталонный конфиг.

cp synoconfigs/bromolow .config

Запуск конфига и выбор модулей драйверов.

dsm6make menuconfig

Выбрать модули, пометить их M для сборки модуля. Двойной ESC для возврата. Сохраните конфиг.

Запустите сборку модулей (драйверов).

dsm6make modules

После завершения компиляции *.ko файлы будут в папках /dsmsrc/linux-3.10.x/ .
Собрать все *.ko файлы в одной директории:

mkdir /dsmsrc/newmodules
find /dsmsrc/linux-3.10.x/ -iname "*.ko" -type f -exec cp -p {} /dsmsrc/newmodules/ \;

 

Обход блокировок РКН (Antizapret+Padavan)

Роутер Xiaomi Mi WiFi Router 3G (или другой поддерживаемый Padavan c памятью от 8мб) с прошивкой Padavan можно настроить на прозрачный обход блокировок РКН используя VPN от сервиса АнтиЗапрет .

Прошивка должна быть собрана с такими опциями:

Скачать OVPN файл .

Настроить роутер.

Соединение OpenVPN:

Настроить ключи из файла antizapret-tcp.ovpn

Настройка dnsmasq:

 

Обход блокировок РКН (Padavan) БЕЗ VPN

Проверяем прошивку, есть ли xt_string в ядре:

lsmod

Если есть переходим к последнему пункту

Если нет проверяем есть ли модуль в прошивке

modprobe -l | grep xt_

Если нет такой строки kernel/net/netfilter/xt_string.ko, значит нет и модуля и прошивку надо собрать самому.

Прошивку сробираем скриптом PROMETHEUS из git Linaro1985/padavan-ng
Переходим в конфиг ядра mir3g (в примере роутер Xiaomi Mi WiFi Router 3G)

nano ~/padavan-ng/trunk/configs/boards/XIAOMI/MI-R3G/kernel-3.4.x.config

Ищем CTRL+W # CONFIG_NETFILTER_XT_MATCH_STRING is not set
Добавляем в ядро CONFIG_NETFILTER_XT_MATCH_STRING=y
Добавляем модулем CONFIG_NETFILTER_XT_MATCH_STRING=m
Сохраняем и собираем стандартно проршивку )

Устанавливаем прошивку

Проверяем если модулем то modprobe -l | grep xt_, в ядро lsmod

Если собирали модулем делаем следующее:
В роутере переходим и правим скрипт Выполнить перед инициализацией маршрутизатора, добавляем

### PKH
modprobe xt_string
modprobe xt_connbytes

Для любого варианта сборки:
В роутере переходим и правим скрипт Выполнить после перезапуска правил брандмауэра, добавляем:

### PKH
iptables -t raw -I PREROUTING -p tcp --sport 80 -m string --hex-string 'Location: http://warning.rt.ru' --algo bm --from 50 --to 200 -j DROP
iptables -t mangle -I PREROUTING -p tcp --sport 443 -m connbytes --connbytes 1:4 --connbytes-mode packets --connbytes-dir reply -m u32 --u32 "0x4=0x10000 && 0x1E&0xffff=0x5004" -j DROP

P.S.
Этот вариант для Ростелекома, другие варианты можно посмотреть тут

Загрузка процессора mikrotik 100%

Как распознать ?
Tools > Profile > Start.

Частый виновник DNS служба в новых прошивках !

> /ip firewall filter add action=drop chain=input comment="block DNS" in-interface=ваш интерфейс WAN protocol=udp src-address-list="dns spoofing"
> /ip firewall filter add action=add-src-to-address-list address-list="dns spoofing" address-list-timeout=1h chain=input in-interface=ваш интерфейс WAN protocol=udp

Увеличение производительности RouterOS

Версия прошивки RouterOS должна быть 6.29 или выше.
В таблице firewall filter rulles правила должны быть первыми.

> /ip firewall filter add chain=forward comment="default configuration" action=fasttrack-connection connection-state=established,related
> /ip firewall filter add chain=forward comment="accept established and related connections" action=accept connection-state=established,related

Решаем проблему DHCP, получение адресов только от своего mikrotik (для EoIP туннелей) RouterOS

> /interface bridge filter 
> add action=drop chain=forward comment="Drop all DHCP requests over EoIP bridge" dst-port=67 ip-protocol=udp mac-protocol=ip disabled=no

Простая защита от DDoS RouterOS

> /ip firewall filter
> add action=jump chain=forward comment="drop ddos" connection-state=new jump-target=block-ddos
> add action=drop chain=forward connection-state=new dst-address-list=ddosed log=yes log-prefix=ddos src-address-list=ddoser
> add action=return chain=block-ddos dst-limit=50,50,src-and-dst-addresses/10s
> add action=add-dst-to-address-list address-list=ddosed address-list-timeout=10m chain=block-ddos
> add action=add-src-to-address-list address-list=ddoser address-list-timeout=10m chain=block-ddos