OpenWRT - andyceo/documentation GitHub Wiki
Здесь описывается установка OpenWRT версий Backfire, Attitude Adjustment и Barrier Breaker.
OpenWRT wiki: D-Link DIR-615
Ставил версию Backfire, потом обновлял до Attitude Adjustment и Barrier Breaker.
- Воткнуть провод от интернета в роутер. Подключить роутер к компьютеру по кабелю. Настроить компьютер на использование статического IP-адреса
192.168.0.2
- Перевести роутер в сервисный режим. Для этого: выключить роутер; нажать и удерживать кнопку резет; при нажатой кнопке резет включить у роутера питание; примерно через 10-20 секунд удерживания резета, индикатор включения будет мигать оранжевым - то что надо.
- Зайти в браузере на адрес
192.168.0.1
и залить заранее приготовленную прошивку. Нормально, если роутер перезагрузится, когда счетчик на странице еще не дойдет до 100% - После перезагрузки роутера, поставить динамическую настройку ip-адреса в сетевом соединении.
- Войти по telnet на роутер по адресу
192.168.1.1
и задать пароль root-пользователю. Это отключит дальнейший доступ по telnet и включит доступ по ssh. Выйти из телнет. - Войти на роутер по ssh. войти на роутер по web-интерфейсу и настроить интернет.
- После, обновить список пакетов в ssh:
opkg update
или через web-интерфейс. - Настроить беспроводную сеть. Собственно, все...
OpenWRT wiki: TP-Link TL-WDR4300
Ставил версию Attitude Adjustment, потом обновлял до Barrier Breaker.
- Скачать нужную прошивку
- Прошить ее через стандартный заводской интерфейс
-
Настройка для провайдера 2KOM. В разделе
Network -> DHCP and DNS
, возможно, нужно будет снять галочкуRebind protection
или задать исключения (у провайдера 2KOM иначе не работают ресурсы dc.2com.net, radio.2kom.ru и т.п. Также как обходной путь, можно узнать IP-адрес этих узлов на роутере, зайдя на него по ssh, и затем прописав этим доменам узнанный таким образом ip в разделеNetwork -> Hostnames
. Источник: http://forum.2kom.ru/viewtopic.php?f=27&t=23686) -
Настройка доступа к роутеру по ключу
-
Вариант 1. Зайти на страницу
/admin/system/admin
и там в разделеSSH Access
, в подразделеSSH-Keys
добавить публичный ключ того компьютера, с которого планируется заходить на роутер. -
Вариант 2. Документация доступна на странице Dropbear public-key authentication HowTo
ssh root@openwrt "echo $(cat ~/.ssh/id_rsa.pub) >>/etc/dropbear/authorized_keys;chmod 0600 /etc/dropbear/authorized_keys"
-
-
Настройка удаленного доступа по SSH
-
Сначала настраиваем сам демон SSH (в случае OpenWRT это dropbear): на странице
/admin/system/admin/
устанавливаем следующие значения:--Dropbear Instance-- Interface: unspecified Port:22 Password authentication: Enabled Allow root logins with password: Enabled Gateway ports: Enabled --SSH-Keys-- ENTER-YOUR-SSH-KEYS
Нажимаем Save&Apply.
-
Затем нужно открыть порт для удаленного доступа по SSH: на странице
/admin/network/firewall/rules/
создаем правило для удаленного доступа к SSH-демону, чтобы файервол пропускал трафик к демону. СоздаемNew forward rule
:--New forward rule-- Name: SSH Source zone: wan Destination zone: lan
Жмем
Add&Edit
. Далее:Name: SSH Restrict to address family: IPv4 only Protocol: TCP Match ICMP type: any Source zone: wan Source MAC address: any Source address: any Source port: any Destination zone: Device (input) Destination address: any Destination port: 22 Action: accept
-
-
Настройка удаленного доступа по WEB
-
Устанавливаем пакет
luci-ssl
для поддержки SSL на странице управления пакетами/admin/system/packages/
, или делаем это через консоль под рутом:opkg install luci-ssl
-
Открываем порт 443 для доступа к LUCI через Web: на странице
/admin/network/firewall/rules/
создаем правило для удаленного доступа к WEB-интерфейсу, чтобы файервол пропускал трафик к LUCI. СоздаемNew forward rule
:--New forward rule-- Name: WEB LUCI Source zone: wan Destination zone: lan
Жмем
Add&Edit
. Далее:Name: WEB LUCI Restrict to address family: IPv4 only Protocol: TCP Match ICMP type: any Source zone: wan Source MAC address: any Source address: any Source port: any Destination zone: Device (input) Destination address: any Destination port: 443 Action: accept
-
-
Настройка удаленной файловой системы (@todo). Пока смотри https://forum.openwrt.org/viewtopic.php?id=36994 http://flux242.blogspot.de/2012/06/mount-webdav-resources-with-davfs-and.html http://www.3open.org/d/openwrt/mount_opt_on_a_remote_filesystem
-
Защита внешних портов (22-SSH, 443-HTTPS), от атак
-
Устанавливаем пакет
iptables-mod-tarpit
(чтобы работал tarpit) иiptables-mod-conntrack-extra
(чтобы работал match (-m) recent в правилах) на странице управления пакетами/admin/system/packages/
, или делаем это через консоль под рутом:opkg install iptables-mod-tarpit iptables-mod-conntrack-extra
-
Добавляем собственные правила для iptables на странице
/admin/network/firewall/custom/
:################ TARPIT secure the SSH 22 port: START ################ # see https://forum.openwrt.org/viewtopic.php?id=35154 # see https://github.com/andyceo/documentation/wiki/OpenWRT iptables -N ssh_flood iptables -A ssh_flood -i eth1 -j RETURN iptables -A ssh_flood -p tcp -m recent --name SSH --update --seconds 300 --hitcount 1 -j TARPIT iptables -A ssh_flood -p tcp -m recent --name SSH --set iptables -I zone_wan_forward -p tcp -m tcp --dport 22 -m state --state NEW -j ssh_flood ################# TARPIT secure the SSH 22 port: END ################# ############## TARPIT secure the HTTPS 443 port: START ############### # see https://forum.openwrt.org/viewtopic.php?id=35154 # see https://github.com/andyceo/documentation/wiki/OpenWRT iptables -N https_flood iptables -A https_flood -i eth1 -j RETURN iptables -A https_flood -p tcp -m recent --name HTTPS --update --seconds 300 --hitcount 1 -j TARPIT iptables -A https_flood -p tcp -m recent --name HTTPS --set iptables -I zone_wan_forward -p tcp -m tcp --dport 443 -m state --state NEW -j https_flood ############### TARPIT secure the HTTPS 443 port: END ################
Необходимо перезапустить сеть после внесенных изменений, или просто перезагрузить роутер.
-
-
Настройка VPN (@todo)
-
Настройка Dynamic DNS (На примере сервиса dyndns.org)
- В разделе
Software
обновить список софта - Поставить пакет
luci-app-ddns
. Этот пакет дополнительно поставит основной пакетddns-scripts
, его настройки лежат в/etc/config/ddns
. После настройки через графический интерфейс можно удалить пакетluci-app-ddns
(а можно было его и вообще не устанавливать - это просто интерфейс для удобной записи конфига дляddns-scripts
, который и делает всю работу) - Начиная с пакета
ddns-scripts
версии 1.0.0-23 (а если вы ставите Barrier Braker 14.07, то там будет именно эта версия пакета) необходимо вручную включать сервис на странице "System" - "Startup", либо вручную запускать скрипт. Просто установка пакета и прописывание настроек ничего не запустят сами.
- В разделе
-
Установка и настройка различных полезных утилит
-
htop
- В разделе
Software
обновить список софта - Поставить пакет
htop
.
- В разделе
-
htop
- http://wiki.openwrt.org/ru/doc/uci/firewall
- https://forum.openwrt.org/viewtopic.php?id=35154
- https://forum.openwrt.org/viewtopic.php?id=10417
- https://forum.openwrt.org/viewtopic.php?id=27766 - вроде работает совет, но ничего не логирует: https://forum.openwrt.org/viewtopic.php?pid=131675#p131675
- https://forum.openwrt.org/viewtopic.php?id=32685
- https://forum.openwrt.org/viewtopic.php?id=7493
-
Установить следующие пакеты:
- kmod-usb-storage - для поддержки USB-накопителей (флешки)
- kmod-fs-ext4 - для поддержки на внешнем накопителе файловой системы ext4
- block-mount - для монтирования, поддержки fstab, hotplug
-
Приготовить флешку
-
Вставить в компьютер. Если флешка примонтируется, то пусть ей будет присвоено имя
/dev/sdc
, и на ней один раздел:/dev/sdc1
-
Отмонтировать флешку:
umount /dev/sdc1
-
Отформатировать флешку в ext4 формате:
mkfs.ext4 /dev/sdc1
-
-
Вставить флешку в роутер. Пусть она там определится как
/dev/sda
-
Создать файл
/etc/config/fstab
и заполнить его текущей конфигурацией:block detect > /etc/config/fstab
-
В секции
config 'mount'
нужно поправить параметрtarget
на/mnt/sda1
, если вы хотите, чтобы флешка просто монтировалась куда-то на файловую систему, или на/
, чтобы перенести корневую файловую систему на эту флешку. Также, нужно поправить параметрenabled '1'
, чтобы флешка монтировалась при перезагрузке системы.
Ссылки:
-
Документирование программ и настроек, которые нужно будет установить после обновления
-
Выбор правильного образа для обновления
-
Обновление через веб-интерфейс
- luci-app-ddns
- diffutils
- htop
- luci-ssl
- http://we.easyelectronics.ru/Lifelover/prevraschaem-nedorogoy-router-v-domashniy-server.html
- http://autohome.org.ua/12-openwrt/14-otkrytie-dostupa-na-openwrt-iz-interneta
- https://forum.openwrt.org/viewtopic.php?id=35154
- TP-Link WDR4300
- Оптимизация кеша SquashFS на OpenWRT
-
Периодический разрыв связи в сети 2,4 ГГц:
config wifi-iface ... disassoc_low_ack=0 ...
См. https://forum.openwrt.org/viewtopic.php?id=4188 Все это все равно не помогло, надо обновляться на Barrier Breaker.
-
Не работает аппаратный NAT. Причина - нет open-source драйверов на AR8327N или они требуют хаков в ядро. См. https://dev.openwrt.org/ticket/11779
Подготавливаем флешку (3 раздела, overlay - 200 Mb, swap - 200 Mb, data - остатки) 2 раздела - overlay на почти весь диск, и swap - 200 Mb для swap Потом:
ls /dev/sda* - убеждаемся, что есть наша флешка sda, и что есть на ней разделы: sda1, sda2
mount /dev/sda1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt
block detect > /etc/config/fstab ; vi /etc/config/fstab
Правим /etc/config/fstab, а также не забываем добавить:
config mount option target /mnt/overlay-boot option device /dev/mtdblock3 option fstype jffs2 option options rw,sync option enabled 1 option enabled_fsck 0
Затем позволяем opkg ставить пакеты больше чем rom:
echo option force_space >> /etc/opkg.conf
Источник: http://wiki.openwrt.org/doc/howto/extroot
Ставим mysql: mysql-server libmysqlclient
Меняем параметры в /etc/config/my.cnf Потом mysql_install_db --force Потом меняем пароль для root: /usr/bin/mysqladmin -u root password 'new-password' Также не забыть поменять пароль root для других хостов!
Ставим php: php5-mod-pdo-mysql
Ставим git
http://wiki.openwrt.org/doc/howto/secure.access
Обновление Dir-615 с Barrier Braker на Chaos Calmer
Package: libc Package: opkg Package: busybox Package: odhcpd Package: swconfig Package: base-files Package: netifd Package: uboot-envtools Package: dnsmasq Package: firewall Package: odhcp6c Package: fstools Package: kmod-ath9k Package: uci Package: wpad-mini Package: dropbear Package: mtd Package: libgcc Package: ppp Package: kmod-gpio-button-hotplug Package: iptables Package: kmod-ipt-nathelper Package: ip6tables Package: luci Package: kernel Package: ppp-mod-pppoe
-
Сбросить настройки wifi:
rm -f /etc/config/wireless wifi detect > /etc/config/wireless
-
Правка файлов конфигурации в
/etc/config
не даст эффекта, нужно делать как-то так:uci set wireless.radio0.htmode=HT20 uci commit wireless
или править конфигурацию в web-интерфейса. Подробнее: UCI
-
Смена внутреннего (локального) ip-адреса можно сделать из админки: Network / Interfaces / LAN(edit)
-
Проброс SSH-туннеля с роутера на какой-либо сервер возможно сделать командой в кроне:
* * * * * /usr/bin/pgrep -f "/usr/bin/dbclient -f -N -R 23022:localhost:22 -i /etc/dropbear/dropbear_rsa_host_key [email protected]" > /dev/null 2>&1 || /usr/bin/dbclient -f -N -R 23022:localhost:22 -i /etc/dropbear/dropbear_rsa_host_key [email protected]
однако, конструкция
||
в кроне OpenWRT версии Chaos Calmer почему-то не действует, и потому пришлось создать скрипт/root/sshtunnel.sh
, в котором лежит указанная команда, а сам скрипт запускается в кроне.* * * * * /root/sshtunnel.sh
или, можно воспользоваться пакетом
sshtunnel
. Однако, этот пакет требует установки полноценного ssh-сервера, и не может довольствоваться предустановленнымdropbear
. Иными словами, он может не влезть на роутер.
В результате скачивания файликов с разных направлений (с/от сервера), выяснилось, что проблема существует только в одном направлении, а именно при скачивании чего-либо с роутера на сервер, в локальной сети.
- Finding the Physical port of an Ethernet device - OPENWRT
- Switch Documentation
-
Software I Install Right After Flashing A Bleading Edge OpenWrt trunk Version - из этой инструкции, в основном требуется ethtool для диагностирования проблем с физическим портом:
ethtool -S eth0
. - Команды операционной системы OpenWRT Здесь может потребоваться установка дополнительного софта.
- Slow network transferring in one direction
- Extremely slow network transfers in one direction
- VERY slow file copy over network with 14.04
- Why is this network connection so slow?