Openwrt upnp: How to Enable UpNp with the LuCI interface? : openwrt

Конфигурационные файлы OpenWRT — SpecialistOff.NET

/etc/config/dhcpКонфигурация Dnsmasq и установки DHCP
/etc/config/dropbearОпции SSH сервера
/etc/config/firewallNAT, пакетная фильтрация, перенаправление портов, и т.д.
/etc/config/networkКонфигурация коммутатора, интерфейсов и маршрутизатора
/etc/config/systemДоп. системные настройки
/etc/config/timeserverСписок серверов времени для rdate
/etc/config/wirelessНастройки беспроводного подключения и сети wifi
IPv6
/etc/config/ahcpdAd-Hoc Configuration Protocol (AHCP) server and forwarder configuration
/etc/config/aiccuAICCU client configuration
/etc/config/dhcp6cWIDE-DHCPv6 client
/etc/config/dhcp6sWIDE-DHCPv6 server
/etc/config/gw6cGW6c client configuration
/etc/config/radvdRouter Advertisement (radvd) configuration
Другое
/etc/config/bbstoredКонфигурация сервера резервного копирования BoxBackup
/etc/config/etherwakeWake-on-Lan: etherwake
/etc/config/fstabТочки монтирования и раздел подкачки
/etc/config/hd-idleAnother idle-daemon for attached hard drives
/etc/config/httpdУстановки веб-серввера (Busybox httpd, устарело)
/etc/config/luciОсновные настройки LuCI
/etc/config/luci_statisticsНастройка пакета статистики
/etc/config/mini_snmpdНастройки SNMP демона mini_snmpd
/etc/config/minidlnaНастройки MiniDLNA
/etc/config/mjpg-streamerНастройки потокового вещания для Linux-UVC совместимых веб-камер
/etc/config/mountdНастройки демона автомонтирования OpenWrt
/etc/config/mrouteКонфигурационные файлы для маршрутов мульти-WAN
/etc/config/multiwanКонфигурация простого мульти-WAN
/etc/config/ntpclientНастройки NTP клиента синхронизации времени
/etc/config/p910ndНастройки для без-буферного демона печати p910nd. server
/etc/config/pure-ftpdКонфигурация сервера Pure-FTPd
/etc/config/qosРеализация QoS для upload
/etc/config/racoonНастройки сервиса IPsec racoon
/etc/config/sambaНастройки сервера SAMBA для шаринга файлов и принтеров сетей Microsoft
/etc/config/snmpdНастройки SNMP демона SNMPd
/etc/config/sshtunnelУстановки пакета sshtunnel
/etc/config/stundНастройки сервера STUN
/etc/config/transmissionНастройки BitTorrent
/etc/config/uhttpdНастройки веб-сервера (uHTTPd)
/etc/config/upnpdНастройки UPnP сервера miniupnpd
/etc/config/usersБаза данных пользователей для различных сервисов
/etc/config/ushareНастройки сервера UPnP uShare
/etc/config/vbladevblade userspace AOE target
/etc/config/vnstatvnstat downloader settings
/etc/config/wifitoggleСкрипт для вкл. WiFi кнопкой
/etc/config/wolWake-on-Lan: wol
/etc/config/wshaperwondershaper qos script settings
/etc/config/zncZNC bouncer configuration

Усиление OpenWrt — База мыслей Остина

:: {networking} :: #openwrt #router #security #hardening

Содержание

По нескольким причинам я снова упал в дыру OpenWrt поздно.

Работая над некоторыми пользовательскими сборками, я заметил некоторые области, в которых я мог бы значительно улучшить безопасность своих устройств. Честно говоря, я немного удивлен, что OpenWrt не делает некоторые из них по умолчанию.

Мы рассмотрим различные методы, которые большинство людей может использовать для защиты своей установки OpenWrt.

В этом руководстве предполагается, что вы знаете, как подключиться к маршрутизатору по SSH или получить доступ к веб-интерфейсу Luci, а также установить пакеты с помощью opkg или меню System -> Software . Если вы не знаете, как это сделать, просто прочитайте краткое руководство по OpenWrt.

При установке приложений Luci (любой пакет с именем, начинающимся с luci-app-) вам может потребоваться выйти из системы и снова войти в нее, если ожидаемые пункты меню не отображаются сначала.

Ограничить доступ SSH к локальной сети (LAN)§

Прежде всего, давайте заблокируем сервер SSH (по умолчанию OpenWrt использует «dropbear»), чтобы он прослушивал только локальную сеть. По умолчанию он прослушивает все интерфейсы, включая и интерфейс WAN/интернет. Это означает, что любой человек в Интернете потенциально может войти в ваш маршрутизатор, если он знает ваш IP-адрес. Скорее всего, им придется подобрать ваш пароль администратора (вы , правильно его установили?), если только вы не заблокировали SSH-сервер для использования аутентификации с открытым ключом.

Тем не менее, я не хочу, чтобы общедоступный Интернет мог войти в мое устройство. У меня нет личной потребности в доступе к моему маршрутизатору, когда я нахожусь вдали от дома, поэтому давайте полностью отключим его.

Примечание. Брандмауэр OpenWrt по умолчанию не открывает порты SSH в зоне WAN, поэтому риск здесь низкий. Но этот дополнительный уровень безопасности никогда не помешает.

Метод 1 (uci)§

  1. SSH к вашему маршрутизатору (вероятно, что-то вроде ssh [email protected] )
  2. Введите следующее, чтобы настроить dropbear для прослушивания только в локальной сети:
 uci set dropbear.@dropbear[0].Interface="lan"
uci совершить падение медведя
перезапуск сервиса dropbear
 

Способ 2 (Luci)§

  1. Войдите в Luci (откройте браузер и перейдите по адресу http://192.168.1.1 , введите свой пароль)
  2. Перейдите к System -> Administration -> SSH Access .
  3. Выберите LAN из интерфейса меню.
  4. Нажмите Сохранить и применить .
  5. Перейдите в System -> Startup и нажмите кнопку Restart рядом с dropbear.
  6. Примечание: Люси может фактически перезапустить dropbear для нас, так что этот последний шаг может быть излишним.

Ограничить доступ Luci/uhttpd к локальной сети, доступ через HTTPS.§

Как и SSH/dropbear, веб-интерфейс Luci (сервер uhttpd) по умолчанию предоставляет доступ к общедоступной сети.

Предполагая, что вам не нужно входить в свой маршрутизатор, когда вы находитесь вне дома, давайте заблокируем его, чтобы он был доступен только в локальной сети.

Примечание. Брандмауэр OpenWrt по умолчанию не открывает порты HTTP/HTTPS в зоне WAN, поэтому риск здесь низкий. Но этот дополнительный уровень безопасности никогда не помешает.

Ссылка OpenWrt Wiki для «Защиты uHTTPd»

Метод 1 (uci)§

Прослушивание IP-адресов локальной сети и включение переадресации HTTP на HTTPS. f’)» ]; тогда
echo «$ip6 начинается с f»
uci add_list uhttpd.main.listen_http=»[$ip6]:80″
uci add_list uhttpd.main.listen_https=»[$ip6]:443″
фи
Выполнено
# (Необязательно) Убедитесь, что мы всегда используем/перенаправляем на HTTPS
uci установить uhttpd.main.redirect_https=’1′
uci фиксирует uhttpd
перезапуск службы uhttpd
служба uhttpd включить

Примечание. Это также настраивает uhttpd для прослушивания адреса link-local/ULA ​​IPV6. Документация OpenWrt (ссылка выше) предлагает полностью отключить адрес IPV6.

Делайте что хотите. Прослушивание локального адреса IPV6 не кажется мне риском. Прослушивание глобального адреса IPV6 было бы более проблематичным, но здесь мы этим не занимаемся.

Метод 2 (Luci)§

  1. Установите luci-app-uhttpd 9Пакет 0016.
  2. Перейдите на страницу Services -> uHTTPd .
  3. Заполните разделы прослушивателя HTTP и HTTPS адресами IPv4 и IPv6.
    1. Вы можете установить IPv4-адрес просто 192.168.1.1 или любой другой, который вы настроили для IP-адреса локальной сети вашего маршрутизатора.
    2. Обязательно используйте квадратные скобки для заключения адресов IPv6 и добавьте номер порта в конце, например [fd88:38bc:dd39::1]:443 .
  4. (необязательно) Нажмите Перенаправить все HTTP на HTTPS 9Установите флажок 0016, если вы хотите использовать HTTPS с самозаверяющим сертификатом.
  5. Нажмите Сохранить и применить .

BCP38§

Это не столько защита маршрутизатора, сколько предотвращение участия вашей сети в некоторых типах DoS/DDoS-атак.

Для получения дополнительной информации я настоятельно рекомендую информационный веб-сайт BCP38, который довольно хорошо объясняет корневую проблему.

Способ 1 (uci)§

  1. Установите пакет bcp38 .
  2. Запустите следующие команды uci
 uci set bcp38. @bcp38[0].enabled='1'
uci set bcp38.@bcp38[0].interface='wan' # Настройте, чтобы он соответствовал вашему порту WAN - может быть, например, что-то вроде eth0.2.
uci фиксирует bcp38
перезапуск службы bcp38
служба bcp38 включить
 

Метод 2 (Luci)§

  1. Установите пакет luci-app-bcp38 .
  2. Перейдите в Сеть -> Брандмауэр -> BCP38 .
  3. Установите флажок, чтобы включить.
  4. Выберите интерфейсы, относящиеся к вашей глобальной сети (вероятно, помеченные как wan, wan6 ).
  5. Нажмите Сохранить и применить .

banIP§

Настоятельно рекомендуется устанавливать и настраивать banIP с помощью Luci, поскольку базовая конфигурация немного подробна, если выполняется из командной строки. Я говорю это, но я уже некоторое время настраиваю его из командной строки, поэтому не стесняйтесь копировать и вставлять мою конфигурацию ниже - она ​​должна работать хорошо.

Примечание. Этот пакет рекомендует, чтобы ваш маршрутизатор имел не менее 128 МБ ОЗУ.

Страница проекта/документация banIP Тема поддержки banIP

Метод 1 (uci)§

  1. Установите пакет banip .
  2. Включить и настроить основной набор списков блокировки:
 uci set banip.global.ban_enabled='1'
uci set banip.global.ban_trigger='wan' #Настройте правильный интерфейс WAN, например. eth0.2 или wan
uci удалить banip.global.ban_sources
uci add_list banip.global.ban_sources='черный список'
uci add_list banip.global.ban_sources='debl'
uci add_list banip.global.ban_sources='drop'
uci add_list banip.global.ban_sources='feodo'
uci add_list banip.global.ban_sources='firehol1'
uci add_list banip.global.ban_sources='greensnow'
uci add_list banip.global.ban_sources='iblockads'
uci add_list banip.global.ban_sources='iblockspy'
uci add_list banip.global.ban_sources='myip'
uci add_list banip.global.ban_sources='nixspam'
uci add_list banip. global.ban_sources='прокси'
uci add_list banip.global.ban_sources='sslbl'
uci add_list banip.global.ban_sources='талос'
uci add_list banip.global.ban_sources='угроза'
uci add_list banip.global.ban_sources='tor'
uci add_list banip.global.ban_sources='uceprotect1'
uci add_list banip.global.ban_sources='yoyo'
# Разрешить несколько сайтов, которые, как я видел, блокировались ранее.
echo "enro.com" >> /etc/banip/banip.whitelist
эхо "www.reddit.com" >> /etc/banip/banip.whitelist
эхо "yelp.com" >> /etc/banip/banip.whitelist
учи совершить банип
служба банип рестарт
служба банип включить
 

Это включает banIP с набором черных списков, которые я рекомендую. В iblockads и yoyo перечислены специально предназначенные для рекламы объявления, и они могут быть избыточными в зависимости от настроек вашей сети (например, если вы используете PiHole или AdguardHome), но они могут помочь в любом случае. Я видел некоторые ложные срабатывания из iblockads поэтому обязательно используйте функцию белого списка, если вы заметили какие-либо поломки, или просто полностью отключите ее использование.

Бонус — настройте cronjob для обновления черных списков§

Я рекомендую обновлять черные списки каждые 24 часа. Вот пример того, как настроить запуск cronjob один раз в день:

 crontab - 

ПРИМЕЧАНИЕ. Это ПЕРЕЗАПИСЫВАЕТ ваш существующий crontab. Если у вас уже есть другие задания cron, либо отредактируйте crontab вручную, либо добавьте их в эту команду по мере необходимости.

Способ 2 (Luci)§

  1. Установить luci-app-banip .
  2. Перейдите к Services -> banIP .
  3. Вы можете оставить большинство настроек по умолчанию (автоматическое определение banIP довольно хорошо), но вам нужно будет включить banIP и настроить черные списки напрямую.
  4. Включить banIP — просто установите флажок Включено на вкладке Общие настройки .
  5. Настройка черных списков — перейдите на вкладку Источники черных списков и используйте вкладку Источники , чтобы выбрать нужные списки. Вы можете увидеть пример списков, которые я лично использую в команде, используемой в методе 1 выше.
  6. Нажмите Сохранить и применить .

Включение banIP:

Настройка черных списков:

Бонус - настройка cronjob для обновления черных списков§

Так же, как и Метод 1 , можно настроить cronjob для обновления черных списков.

  1. Нажмите кнопку Refresh Timer на главной странице состояния.
  2. Установите действие на перезагрузка (не "обновить", я знаю, это сбивает с толку...)
  3. Выберите час в диапазоне 0-23, который вам подходит.

Вот пример моей собственной конфигурации:

Отключение или удаление UPNP§

Если вы не используете UPNP (служба для автоматического создания дыр в брандмауэре...), вам следует полностью отключить ее и/ или полностью удалить пакет.

  1. Перейдите к Services -> UPnP .
  2. Снимите флажок Запустить службу UPnP и NAT-PMP .
  3. Сохранить и применить.
  4. (необязательно) Перейдите к System -> Startup и остановите + отключите службу upnp (или miniupnp ).
  5. (необязательно) Полностью удалите пакет с помощью меню System -> Software или opkg --autoremove remove luci-app-upnp

Брандмауэр DROP внешних подключений §

По умолчанию конфигурация брандмауэра OpenWrt довольно «зашумлена» в том, как он отклоняет трафик из глобального Интернета.

Вы можете увидеть это в действии с помощью инструмента ShieldsUP Стива Гибсона. Нажмите кнопку Proceed , а затем используйте кнопки Common Ports или All Service Ports для сканирования всего маршрутизатора. Кнопки плохо видны, я признаю, но они должны быть там.

Давайте настроим брандмауэр так, чтобы он молча отключал все внешние соединения вместо того, чтобы изящно говорить им «нет, спасибо».

Метод 1 (uci)§

 # Примечание: Я ПРЕДПОЛАГАЮ, ЧТО ПОСЛЕДНЯЯ ЗОНА ЯВЛЯЕТСЯ ЗОНОЙ WAN. ЭТО РАЗРЫВАЕТСЯ, ЕСЛИ ЗОНА WAN НАХОДИТСЯ НА ДРУГОМ НОМЕРЕ ЗОНЫ.
# Небольшая проверка безопасности - только попробуйте установить вход DROP на WAN. Пропустить/сохранить, если последний интерфейс не является WAN.
если [ $(uci get firewall.@zone[-1].name) = 'wan' ]; тогда
    echo 'Блокировка брандмауэра'
    uci установить брандмауэр.@zone[-1].input='DROP'
    uci установить брандмауэр.@zone[-1].forward='DROP'
    uci фиксирует брандмауэр
    перезапуск сервисного брандмауэра
фи
 

Способ 2 (Luci)§

  1. Перейдите к сети -> Брандмауэр .
  2. В разделе Zones установите для зоны wan => REJECT значение drop (вместо значения по умолчанию reject ) для Input и Forward с помощью соответствующих раскрывающихся списков.
  3. Нажмите Сохранить и применить .

Заключение§

Надеемся, что это немного поможет защитить ваш домашний маршрутизатор. OpenWrt уже значительно более безопасен, чем стандартная прошивка, поставляемая с завода для большинства маршрутизаторов, но эти настройки должны заблокировать ее в максимальной степени.

Несколько других полезных ссылок:

  1. Безопасный доступ к веб-интерфейсу LuCI — вики OpenWrt
  2. Безопасный доступ к маршрутизаторам — вики OpenWrt

Домашняя страница проекта MiniUPnP

Домашняя страница проекта MiniUPnP

Последнее изменение: 26 мая 2017 г.

Зеркала

Если у вас возникли проблемы с этим веб-сайтом, у вас есть альтернативы:

Предисловие

Проект MiniUPnP предлагает программное обеспечение, поддерживающее
Спецификации устройства шлюза Интернета (IGD) UPnP.
NAT-PMP и
PCP
добавлена ​​поддержка МиниУПнПД .
Для поддержки NAT-PMP на стороне клиента используйте
libnatpmp.
Демон MiniUPnP ( MiniUPnPd ) поддерживает
ОпенБСД,
FreeBSD,
NetBSD,
Драгонфлай БСД,
(Открыть)Солярис и
Mac OS X
в сочетании с пф
или ipfw (ipfirewall)
или IPF
и линукс с
сетевой фильтр.
Клиент MiniUPnP ( MiniUPnPc ) и MiniSSDPd являются переносными и должны работать
в любой системе POSIX. MiniUPnPc также работает под MS Windows и
AmigaOS (версии 3 и 4).

Облегченная библиотека клиента UPnP IGD и демон UPnP IGD

Протокол UPnP поддерживается большинством
домашние адсл/кабельные маршрутизаторы и Microsoft Windows 2K/XP.
Целью проекта MiniUPnP является
предоставить бесплатное программное решение для поддержки «устройства интернет-шлюза».
часть протокола.
Протокол UPnP MediaServer/MediaRenderer
(DLNA) также становится очень
популярны, но здесь речь идет о IGD.
ReadyMedia
(ранее известный как MiniDLNA) — это медиасервер UPnP.
используя некоторый код UPnP от MiniUPnPd.

Linux SDK для устройств UPnP (libupnp)
показался мне слишком тяжелым. Мне нужна самая простая библиотека,
с наименьшими размерами и без зависимостей
к другим библиотекам, таким как синтаксические анализаторы XML или
HTTP-реализации. Весь код чистый ANSI C.

Скомпилированная на ПК с архитектурой x86 клиентская библиотека miniupnp имеет
размер кода менее 50 КБ.
Демон miniUPnP намного меньше любого другого демона IGD
и по этой причине идеально подходит для использования на устройствах с малым объемом памяти.
Он также использует только ОДИН процесс и никакого дополнительного потока, не
используйте любой вызов system() или exec() ,
и, следовательно, сохраняет использование системных ресурсов
очень низкий.

Проект разделен на две основные части:

  • MiniUPnPc, клиентская библиотека, обеспечивающая доступ приложений
    услуги, предоставляемые
    UPnP «устройство интернет-шлюза», присутствующее в сети.
    В терминологии UPnP MiniUPnPc — это точка управления UPnP.
  • MiniUPnPd, демон, предоставляющий эти услуги вашей сети из Linux
    или ящик BSD (или даже Solaris), являющийся шлюзом. Следуя терминологии UPnP,
    MiniUPnPd — это устройство UPnP.

МиниSSDPd
был разработан для совместной работы с MiniUPnPc, MiniUPnPd и другими
совместное программное обеспечение:
MiniSSDPd прослушивает трафик SSDP в сети, поэтому MiniUPnPc или другой
Контрольные точки UPnP не
необходимо выполнить процесс обнаружения и может работать быстрее, чтобы настроить
перенаправление. MiniSSDPd также может отвечать на запросы M-SEARCH SSDP.
от имени MiniUPnPd или другого программного обеспечения сервера UPnP.
Это полезно для размещения нескольких служб UPnP на одном компьютере.
например MiniDLNA
и MediaTomb и MiniUPnPd.
MiniUPnPd изначально использует
MiniSSDPd, если он запущен на том же компьютере, но может потребоваться другое программное обеспечение UPnP.
будет исправлено: читать
Патч MiniSSDPd для MiniDLNA (не требуется для MiniDLNA 1.0.22 и выше)
и патч MiniSSDPd для MediaTomb.

MiniUPnPd был впервые разработан
на OpenBSD 3.0+ с pf.
Вы можете увидеть некоторые работы, которые я сделал для
интегрировать с pf на этой странице
(устаревший).

Поскольку pf также доступен для FreeBSD,
ребята из проекта pfSense
портировали miniupnpd на эту систему. Теперь это должно быть возможно
для компиляции и запуска на каждой платформе, где доступен pf.
Демон теперь также доступен для Linux 2.4.x и 2.6.x с использованием
сетевой фильтр. Это возможно сделать
работать на маршрутизаторах с OpenWRT.

Даррен Рид работал над
Реализация IP-фильтра (ipf).
Боюсь, не сохранилось...
Даррен также добавил поддержку Solaris/OpenSolaris.
Порт ipfw доступен для MacOS X. Должна быть возможность сделать
это работает и на FreeBSD, но я не получил никаких отзывов об этом.

По некоторым причинам это может быть не лучшим решением для вас.
код из проекта MiniUPnP напрямую.
Поскольку код небольшой и простой для понимания, это хорошая база
черпать вдохновение для собственной реализации UPnP.
KTorrent
Хорошим примером является плагин UPnP на C++.

Если вам интересно, какой домашний маршрутизатор работает с клиентом MiniUPnP,
вы можете найти ответ здесь. Фактически,
вы, скорее всего, поможете мне заполнить список, отправив мне электронное письмо 🙂

Полезность клиентской библиотеки MiniUPnP

Использование клиентской библиотеки MiniUPnP полезно
всякий раз, когда приложению необходимо прослушивать входящие соединения.
Примеры: приложения P2P, FTP-клиенты для активного режима,
Приложения IRC (для DCC) или IM, сетевые игры, любое серверное ПО.

Типичное использование возможностей UPnP IGD маршрутизатора — это файл
передача с помощью мессенджера MSN. Программное обеспечение MSN Messenger
использует UPnP API Windows XP для открытия порта для входящего соединения.
Чтобы имитировать программное обеспечение MS, рекомендуется также использовать UPnP.

Я сделал патч для XChat
чтобы показать, как приложение может использовать клиентскую библиотеку miniupnp.

Трансмиссия,
бесплатный клиент BitTorrent использует miniupnpc и libnatpmp.

Полезность демона MiniUPnP

UPnP и NAT-PMP используются для улучшения
подключение к интернету для
устройства за NAT-маршрутизатором. Любое одноранговое сетевое приложение
такие как игры, обмен мгновенными сообщениями и т. д., могут выиграть от маршрутизатора NAT, поддерживающего
UPnP и/или NAT-PMP.

Последнее поколение Microsoft XBOX 360 и Sony Playstation 3
игровые автоматы используют команды UPnP для включения
онлайн-игра с сервисом XBOX Live и Playstation Network.
Сообщалось, что MiniUPnPd корректно работает с двумя
консоли. Однако может потребоваться тонкая настройка конфигурации.
Ищите обсуждения на эту тему в
Форум.

Безопасность

Реализации

UPnP потенциально подвержены нарушениям безопасности.
Плохо реализованные или настроенные UPnP IGD уязвимы.
Исследователь безопасности HD Moore проделал хорошую работу по выявлению уязвимостей
в существующих реализациях: недостатки безопасности в Universal Plug and Play (PDF).
Распространенной проблемой является открытие портов SSDP или HTTP/SOAP для выхода в Интернет:
они должны быть доступны только из локальной сети.

В прошлом в MiniUPnPd было обнаружено несколько уязвимостей,
поэтому очень важно обновить код до последней версии.

История обновлений

Теперь он доступен здесь.

Участвовать

Вы можете скачать исходный код на странице загрузки
или получить исходники на github.

Если у вас возникнут какие-либо проблемы или вы хотите реализовать какую-либо функцию,
пойти в
Форум.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *