2. Пример для роутера на базе Atheros c установленной flash в Ext4.
2.1 Настройки для подключения данной flash стандартны описывать не буду
- в разделе Mount this Partition to /opt нужно прописать UUID от данной flash
- запуск основного скрипта можно не писать, потому что пока не работает, выход в starup скрипт
Code:
sleep 10;
/opt/etc/init.d/rc.unslung start;
2.2 Любым доступным способом включить сервис для того чтоб можно было записать файл инсталляции на роутер в данном случае это "generic.sh" в каталог /opt.
- с помощью FTP/Samba/SSHd и установить права на запуск (опять же любым доступным способом, например ввести команду "chmod 755 /opt/generic.sh"
3. Запустить файл "/opt/generic.sh"
И так что получаем
Code:
root@My:/opt# df
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 30592 30592 0 100% /
/dev/root 30592 30592 0 100% /
/dev/sda1 939223 20040 864758 2% /opt
/dev/sda1 939223 20040 864758 2% /tmp/mnt/sda1
root@My:/opt# mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro,relatime)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
ramfs on /tmp type ramfs (rw,relatime)
none on /dev type tmpfs (rw,relatime,size=512K)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
devpts on /proc/bus/usb type usbfs (rw,relatime)
/dev/sda1 on /opt type ext4 (rw,relatime,data=ordered)
/dev/sda1 on /tmp/mnt/sda1 type ext4 (rw,relatime,data=ordered)
root@My:/opt# uname -a
Linux My 3.10.108-d7 #70139 Thu Dec 20 01:08:51 CET 2018 mips DD-WRT
root@My:/opt# ls -l
-rwxr-xr-x 1 root root 2198 Jan 11 13:42 generic.sh
drwx------ 2 root root 1024 Jan 11 2019 lost+found
root@My:/opt# ./generic.sh
Info: Checking for prerequisites and creating folders...
Warning: Folder /opt exists!
Info: Opkg package manager deployment...
Connecting to bin.entware.net (81.4.123.217:80)
opkg 100% |*************************************************************************************************************| 143k 0:00:00 ETA
Connecting to bin.entware.net (81.4.123.217:80)
opkg.conf 100% |*************************************************************************************************************| 144 0:00:00 ETA
Connecting to bin.entware.net (81.4.123.217:80)
ld-2.27.so 100% |*************************************************************************************************************| 155k 0:00:00 ETA
Connecting to bin.entware.net (81.4.123.217:80)
libc-2.27.so 100% |*************************************************************************************************************| 1613k 0:00:00 ETA
Connecting to bin.entware.net (81.4.123.217:80)
libgcc_s.so.1 100% |*************************************************************************************************************| 95448 0:00:00 ETA
Connecting to bin.entware.net (81.4.123.217:80)
libpthread-2.27.so 100% |*************************************************************************************************************| 116k 0:00:00 ETA
Info: Basic packages installation...
Downloading http://bin.entware.net/mipssf-k3.4/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/entware
Installing entware-opt (227000-3) to root...
Downloading http://bin.entware.net/mipssf-k3.4/entware-opt_227000-3_all.ipk
Installing libc (2.27-8) to root...
Downloading http://bin.entware.net/mipssf-k3.4/libc_2.27-8_mips-3.4.ipk
Installing libgcc (7.3.0-8) to root...
Downloading http://bin.entware.net/mipssf-k3.4/libgcc_7.3.0-8_mips-3.4.ipk
Installing libssp (7.3.0-8) to root...
Downloading http://bin.entware.net/mipssf-k3.4/libssp_7.3.0-8_mips-3.4.ipk
Installing librt (2.27-8) to root...
Downloading http://bin.entware.net/mipssf-k3.4/librt_2.27-8_mips-3.4.ipk
Installing libpthread (2.27-8) to root...
Downloading http://bin.entware.net/mipssf-k3.4/libpthread_2.27-8_mips-3.4.ipk
Installing libstdcpp (7.3.0-8) to root...
Downloading http://bin.entware.net/mipssf-k3.4/libstdcpp_7.3.0-8_mips-3.4.ipk
Installing entware-release (1.0-2) to root...
Downloading http://bin.entware.net/mipssf-k3.4/entware-release_1.0-2_all.ipk
Installing zoneinfo-asia (2018g-1) to root...
Downloading http://bin.entware.net/mipssf-k3.4/zoneinfo-asia_2018g-1_mips-3.4.ipk
Installing zoneinfo-europe (2018g-1) to root...
Downloading http://bin.entware.net/mipssf-k3.4/zoneinfo-europe_2018g-1_mips-3.4.ipk
Installing findutils (4.6.0-1) to root...
Downloading http://bin.entware.net/mipssf-k3.4/findutils_4.6.0-1_mips-3.4.ipk
Installing terminfo (6.1-1) to root...
Downloading http://bin.entware.net/mipssf-k3.4/terminfo_6.1-1_mips-3.4.ipk
Installing locales (2.27-8) to root...
Downloading http://bin.entware.net/mipssf-k3.4/locales_2.27-8_mips-3.4.ipk
Installing grep (3.1-1) to root...
Downloading http://bin.entware.net/mipssf-k3.4/grep_3.1-1_mips-3.4.ipk
Installing libpcre (8.42-1) to root...
Downloading http://bin.entware.net/mipssf-k3.4/libpcre_8.42-1_mips-3.4.ipk
Installing opkg (2011-04-08-9c97d5ec-17c) to root...
Downloading http://bin.entware.net/mipssf-k3.4/opkg_2011-04-08-9c97d5ec-17c_mips-3.4.ipk
Installing entware-upgrade (1.0-1) to root...
Downloading http://bin.entware.net/mipssf-k3.4/entware-upgrade_1.0-1_all.ipk
Configuring libgcc.
Configuring libc.
Configuring libssp.
Configuring libpthread.
Configuring librt.
Configuring terminfo.
Configuring libpcre.
Configuring grep.
Configuring locales.
Entware uses separate locale-archive file independent from main system
Creating locale archive - /opt/usr/lib/locale/locale-archive
Adding en_EN.UTF-8
Killed
Adding ru_RU.UTF-8
Killed
locale-archive file was not created, not enough memory? Downloading...
checking endianess....
Byte Order: big endian.
BE detected
Connecting to pkg.entware.net (81.4.123.217:80)
locale-archive 100% |*************************************************************************************************************| 2863k 0:00:00 ETA
You can download locale sources from http://pkg.entware.net/sources/i18n_glib227.tar.gz
You can add new locales to Entware using /opt/bin/localedef.new
Configuring entware-upgrade.
Upgrade operations are not required
Configuring opkg.
Configuring zoneinfo-europe.
Configuring zoneinfo-asia.
Configuring libstdcpp.
Configuring entware-release.
Configuring findutils.
Configuring entware-opt.
Info: Congratulations!
Info: If there are no errors above then Entware was successfully initialized.
Info: Add /opt/bin & /opt/sbin to your PATH variable
Info: Add '/opt/etc/init.d/rc.unslung start' to startup script for Entware services to start
Info: Found a Bug? Please report at https://github.com/Entware/Entware/issues
root@My:/opt#
Примечание
- пути PATH в порядке
- "/opt/etc/init.d/rc.unslung start" как писал выше будем запускать по старинке
Примечание при установки спросит указать сервер из списка например
Code:
1) adguard-dns-family-ns1 ("Adguard DNS Family Protection 1")
2) adguard-dns-family-ns2 ("Adguard DNS Family Protection 2")
3) adguard-dns-ns1 ("Adguard DNS 1")
4) adguard-dns-ns2 ("Adguard DNS 2")
поставив цифру 1.
Для удобства работы установленную утилиту "netstat" из Entware переименуем в "netstat_o" так как в прошивке уже есть, но она урезанная по функционалу, а нам нужно по более
Code:
cd /opt/bin
mv netstat netstat_o
2. Настроим связку текущего DnsMasq (который отвечает за работу DNS и DHCP сервера) + dnscrypt-proxy
Скрины DnsMasq ниже.
- Что нужно добавить в секцию "Additional DNSMasq Options"
127.0.0.1:65030 = работать на данном порту
-l /opt/var/log/dnscrypt-proxy.65030.log = вести лог, после отладки можно убрать, а чтоб не забыть как это делается если нужно будет вернуться то
сервис dnsmasq на нужных портах 53 и IP, серевис dnscryp-proxy так же на выбранном нами порту и IP
Так же можно посмотреть на log (которые у нас были включены в конфигах, для отладки)
Code:
cd /opt/var/log
cat dnscrypt-proxy.65030.log
Sat Jan 12 12:54:54 2019 [NOTICE] Starting dnscrypt-proxy 1.9.5
Sat Jan 12 12:54:54 2019 [INFO] Generating a new session key pair
Sat Jan 12 12:54:54 2019 [INFO] Done
Sat Jan 12 12:54:54 2019 [INFO] Server certificate with serial #1542717057 received
Sat Jan 12 12:54:54 2019 [INFO] This certificate is valid
Sat Jan 12 12:54:54 2019 [INFO] Chosen certificate #1542717057 is valid from [2018-11-20] to [2019-11-20]
Sat Jan 12 12:54:54 2019 [INFO] The key rotation period for this server may exceed the recommended value. This is bad for forward secrecy.
Sat Jan 12 12:54:54 2019 [INFO] Server key fingerprint is 3215:..............:B406
Sat Jan 12 12:54:54 2019 [NOTICE] Proxying from 127.0.0.1:65030 to 176.103.130.132:5443
где 176.103.130.132:5443 адрес и порт выбранного нами сервера
cat dnsmasq.log
...
Jan 12 12:18:30 dnsmasq[1538]: using nameserver 127.0.0.1#65030
...
Jan 12 12:18:30 dnsmasq[1538]: read /opt/tmp/anti_webm.hosts - 366 addresses
Jan 12 12:18:34 dnsmasq[1538]: read /opt/tmp/StevenBlack - 76647 addresses
Jan 12 12:19:03 dnsmasq[1538]: query[A] suggest.yandex.ru from 192.168.130.100
Jan 12 12:19:03 dnsmasq[1538]: forwarded suggest.yandex.ru to 127.0.0.1
Jan 12 12:19:03 dnsmasq[1538]: reply suggest.yandex.ru is <CNAME>
...
опять же видим использование "using nameserver 127.0.0.1#65030" в запрос нашего dnscryp-proxy
Более продвинутый dnscrypt-proxy2 (релиз 2) запускался но отказывался работать на настроенном порту, т.е. его там просто не было.