Openwrt настройка firewall через web интерфейс

Обновлено: 06.07.2024

Сокращение UCI значит Unified Configuration Interface и направлен на централизованную настройку OpenWrt. Настройка должна быть простой, понятной и документированной.

Многие программы имеют собственный конфигурационный файл, например /etc/network/interfaces или /etc/exports или /etc/dnsmasq.conf /etc/samba/samba.conf и иногда они используют несколько отличающуюся структуру синтаксиса. В OpenWRT вам не нужно мучиться с ними, мы только заменяем файлы настроек UCI!

Вам не нужно перезагружать свою систему для изменения настроек! Перейдите по ссылке command.line.utility:,чтобы знать как это делается. И, пожалуйста, не забывайте, что некоторые демоны уже имеются в системе, но по умолчанию они отключены! К примеру, демон cron отключён по умолчанию, следовательно, редактирование crontab не даст результата. Вам необходимо либо запустить демона при помощи /etc/init.d/cron start или включить его /etc/init.d/cron enable . Вы можете disable (отключить), stop (остановить) и restart (перезапустить) большинство демонов. Возможно документация по notuci.config поможет вам.

Общие принципы

Централизованная конфигурация OpenWrt находится в нескольких файлах, расположенных в каталоге /etc/config/ . Каждый файл относится к части системы, который он настраивает. Вы можете редактировать файлы конфигурации в текстовом редакторе или с помощью утилиты командной строки uci , или через различные интерфейсы программирования (например, Shell, Lua и C).

Конфигурационные Файлы

Синтакс Файлов

Конфигурационные файлы uci обычно содержат одно или более конфигурационных определений , которые также называются секциями, в которых содержатся одна или более опций определений, определяющих фактические значения.

Ниже приведен пример простого конфигурационного файла:

В строках начинающихся с дескриптора list определены опции с множественными значениями. Все определения list , которые используют одинаковое имя ( collection в нашем примере), будут объединены в один список значений в том порядке, в котором они были в конфигурационном файле. Наличие отступов в строчках с определениями option и list является соглашением для улучшения читаемости конфигурационного файла, но синтаксически не обязательно.

Все приведенные ниже примеры являются синтаксически корректными в uci:

В противовес, следующий пример синтаксически неверен:

option example some value with space (кавычки отсутствуют вокруг значения)

Важно знать, что идентификаторы UCI и имена конфигурационных файлов могут содержать только символы a-z , 0-9 и _ . Значения опций могут содержать любые символы (пока они в кавычках).

Утилита Командной Строки (UCI)

Использование awk и grep для парсинга конфигурационных файлов OpenWrt является избыточным, неумным и неэффективным. Вместо этого используйте утилиту uci для получения того что Вам нужно.

Ниже приведено описание, а также некоторые полезные примеры использования этой мощной утилиты. Запомните, друзья не позволяют друзьям парсить собственные конфигурационные файлы!

Использование

Команда Цель Описание
commit [<config>] Сохраняет изменения данного конфигурационного файла, либо, если он не указан, всех конфигурационных файлов в файловую систему. Все команды “uci set”, “uci add”, “uci rename” и “uci delete” сохраняют результаты во временное хранилище и сохраняются сразу скопом во флэш-память с помощью “uci commit”. Это не нужно делать после редактирования конфигурационного файла в текстовом редакторе, но необходимо для скриптов, GUI и других программ работающих непосредственно с UCI файлами.
batch - Запускает многострочный UCI скрипт, который обычно выполнен в форме here-документа).
export [<config>] Экспорт конфигурации в машино-читаемый формат. Используется внутренне для преобразования конфигурационных файлов в shell-скрипты.
import [<config>] Импорт конфигурационных файлов в синтаксисе UCI.
changes [<config>] Список зарезервированных (пер. но еще не сохраненных) изменений данного конфигурационного файла или, если файл не указан, всех конфигурационных файлов.
add <config> <section-type> Добавить анонимную секцию типа section-type в данную конфигурацию.
add_list <config>.<section>.<option>=<string> Добавить данную строку в существующий список опций.
show [<config>[.<section>[.<option>]]] Отобразить данную опцию, секцию или конфигурацию в компактном виде.
get <config>.<section>[.<option>] Получить значение данной опции или тип данной секции.
set <config>.<section>[.<option>]=<value> Установить значение данной опции, или добавить новую секцию с типом равным указанному значению.
delete <config>[.<section[.<option>]] Удалить данную секцию или опцию.
rename <config>.<section>[.<option>]=<name> Переименовать данную секцию или опцию.
revert <config>[.<section>[.<option>]] Отменить изменения данной опции, секции или конфигурационного файла.

Примеры:

Нет необходимости рестарта всей системы

Все сделано. Перезагрузка не требуется.

Экспорт всей конфигурации

Отобразить в древовидном виде данную конфигурацию


Всем привет!
Давеча возникла необходимость упрятать некоторый сервис в DMZ. Сервис этот крутится в W2K3, и мне не хотелось чтобы машина с OS Windows смотрела в интернет и в локальную сеть ни чем незащищенная(«виндовые» фаерволы просто идут лесом).
Помянуя успешный опыт работы с Asus WL 520GU и DD-WRT, решил пойти по проторенной дороге, но в качестве прошивки для роутера выбрал OpenWRT.
Схему работы связки можно увидеть на рисунке.

Итак, от слов перейдем к делу.

В комментариях было замечанно некоторое недопонимание термина DMZ.
В связи с чем приведу цитату из Википедии.(для противников подобного цитирования могу заметить, что данный материал практически идентичен тому, что написано в книге Полный справочник по Cisco)

ДМЗ (демилитаризованная зона, DMZ) — технология обеспечения защиты информационного периметра, при которой серверы, отвечающие на запросы из внешней сети, находятся в особом сегменте сети (который и называется ДМЗ) и ограничены в доступе к основным сегментам сети с помощью межсетевого экрана (файрвола), с целью минимизировать ущерб, при взломе одного из общедоступных сервисов находящихся в ДМЗ.

Прошиваем роутер.

На этом с web интерфейсом закончим, дальнейшая настройка будет протекать уже из консоли.

В Asus WL 520GU наличествует 5 портов, WAN порт и 4 LAN порта. WAN будет смотреть на провайдера, LAN1-3 в локальную сеть, а LAN4 я выделю в отдельный VLAN и направлю в DMZ.

Подключаемся к маршрутизатору

BusyBox v1.15.3 (2010-11-12 00:01:06 PST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
Backfire (10.03.1-rc4, r24045) --------------------
* 1/3 shot Kahlua In a shot glass, layer Kahlua
* 1/3 shot Bailey's on the bottom, then Bailey's,
* 1/3 shot Vodka then Vodka.
---------------------------------------------------
root@OpenWrt:

Нам необходимо изменить несколько конфигурационных файлов.

1. /etc/config/network, в этом файле задаются настройки интерфейсов.
root@OpenWrt:

int_if="br-lan"
int_ip="192.168.0.30"
LAN="192.168.0.0/24"

dmz_if="eth0.2"
dmz_ip="192.168.100.1"
dmz_server="192.168.100.2"

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

$IPTABLES -N bad_tcp_packets
$IPTABLES -N icmp_packets

За сим закончу, поставленные задачи выполнены, трафик бегает так как мне нужно.
В заключении стоит отметить, что данное решение весьма бюджетно и вряд ли может рассматриваться при больших объемах трафика.
При тестировании iperf'ом были получены следующие результаты:
сервер iperf запущен в dmz, клиент в локалке =

36Mb/s
сервер iperf запущен в dmz, клиент в Internet =

26Mb/s
Для меня этого вполне достаточно, провайдер дает нам 4Mb/s, а из локальной сети в DMZ трафик весьма не велик.

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

Приведу здесь шаги для улучшения работы, безопасности и удобства использования маршрутизатора после установки чистой версии OpenWRT. Да-да, есть еще готовые сборки с настроенным софтом, сервисами, разгоном проца и куртизанками, но под конкретную модель роутера. Их можно найти на 4pda и схожих ресурсах.

Изменить порт SSH можно через web-интерфейс перейдя System-Administration или через редактирование файла /etc/config/dropbear.
Перезапуск демона производится командой
/etc/init.d/dropbear restart
Дополнительно обрати внимание, чтоб telnet был отключен, а ssh доступен только из зоны LAN.
Все это проделывается для того, чтоб сбить с толку злоумышленника или зловредное ПО. Ведь роутер может использоваться не только в домашней сети, состоящей из телевизора и двух смартфонов.

3. Русификация
Ставим пакет luci-i18n-base-ru и жмакаем F5.

4. Установка скинов
Ставим пакет luci-theme-material и luci-theme-freifunk-generic и каждый раз жмакаем F5 для просмотра новой темы.

7. Меняем MAC снаружи и MAC Wi-Fi
Зачем нам менять МАС? Для того, чтоб обмануть злоумышленника или вредонос. Приведу пример, допустим у тебя стоит TP-Link, который имеет непропатченую производителем уязвимость и по MAC адресу интерфейса можно определить, какой у тебя производитель маршрутизатора и поискать уязвимости. Поэтому мы будем маскироваться под что-то другое, допустим под D-Link.
Физический адрес интерфейса меняется в файлах:
/etc/config/wireless
/etc/config/network
или руками через web-интерфейс.

9. Настраиваем iperf3 на маршрутизаторе
Для автоматического запуска iperf3 в виде демона ставим сам iperf3, а далее идем в вебморду роутера Система-Загрузка и туда вписываем
/usr/bin/iperf3 -f Mbits -B 192.168.100.1 -D -s &
или вписываем строку в /etc/rc.local.

OpenWrt. Установка и первоначальная настройка из командной строки

Сегодня обойдемся без предисловий и перейдем сразу к делу. Итак, наверняка многие слышали что помимо прошивки от производителя устройства, существуют и альтернативные. Наиболее раскрученная и на слуху - это, наверное, DD-WRT. Про неё я уже рассказывал когда делал wi-fi повторитель на базе D-Link DIR-300.

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

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

С аппаратной точки зрения у Linksys EA4500 огромный потенциал, который никак не используется штатной прошивкой, а мне крайне необходимо было выжать из этого "железа" больше. Самое главное нужен был полноценный firewall, с возможностью создавать свои правила (в штатной прошивке вместо него было какое-то недоразумение) и наличие vpn-сервера (в идеале openvpn). OpenWrt для этих целей подходила как нельзя лучше - по сути, это полноценный Linux-сервер с кучей всевозможных "плюшек", позволяющих делать невероятные, для обычных роутеров, вещи, вплоть до запуска прокси-сервера Squid или ip-телефонии Аsterisk. Вдумайтесь, это на обычном роутере(!)

Прошивка OpenWrt на Linksys EA4500 / E4200 v2

Страничка с прошивкой для Linksys EA4500 / E4200 v2, где находим ссылку на саму прошивку, в моём случае это openwrt-kirkwood-linksys-viper-squashfs-factory.bin

Собственно, в самом процессе перепрошивки, ничего сложного нет, всё делается штатными средствами через web-интерфейс вашего роутера, указываем путь к скачанному файлу прошивки и в путь. Единственное что хотелось отметить, прошиваться желательно не по wi-fi, а подключившись проводом к роутеру в обычный LAN-порт.

По идее, предполагается что дальнейшие настройки будут производиться через web-интерфейс уже новой прошивки (адрес по умолчанию 192.168.1.1, логин root c пустым паролем). Но не в моем случае. на указанной выше страничке Linksys EA4500, английским по белому написано что никакого web-интерфейса у меня не будет и нужно сперва установить этот самый web-интерфейс LuCI.

Поднимаем WAN и web-интерфейс из командной строки OpenWrt

Итак, web-интерфейса у нас нет. Чтобы его установить (ссылка на инструкцию приведена чуть выше) нам понадобиться сконфигурировать WAN-интерфейс для соединения с интернет. Для этого подключаемся к нашему роутеру по ssh (этот интерфейс включен по умолчанию): ssh root@192.168.1.1

Как помните, у нас сейчас нет пароля, сразу и зададим свой пароль командой passwd:

Теперь перейдем непосредственно к настройке wan-интерфейса. В моем случае провайдер выдал статический адрес, потому пример будет со статикой (больше примеров можно посмотреть в официальной документации Network configuration). Тут всё как в обычном Linux, с помощью консольного текстового редактора vi вносим изменения в файл конфигурации /etc/config/network

После того как внесли изменения и сохранили файл, осталось перезапустить сеть для применения изменений:

Интернет появился. Теперь уже можно спокойно установить web-интрефейс luci и производить дальнейшие настройки уже в графическом режиме из браузера:

Яндекс.Дзен и узнавайте первыми о новых материалах, опубликованных на сайте.

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Сборка ядра FreeBSD. Если что-то пошло не так. Самостоятельный ремонт LCD мониторов Samsung UbuntuDDE: когда Deepin Linux победил Годнота с AliExpress: новое поколение недорогих цифровых мультиметров ANENG 620A Долгожданный тест внешнего NVMe SSD накопителя с Aliexpress Вскрытие новинки Dell XPS 13: внутри так же хорошо, как снаружи?

Комментариев: 15

такая проблема: прошивал роутер Е3500, прошивка встала, но сразу после этого провайдер начал техработы по завершении которых "сдох" WAN порт на роутере, соответственно не могу установить веб интерфейс. есть ли выход из положения или я получил кирпич?

Очень круто что вы сделали обзор как прошить этот роутер под опенврт, так как я давно ждал такой инструкции! Но у меня появилась проблема. Не получается пройти всю Вашу инструкцию до конца. после прошивки, я захожу по ssh устанавливаю пароль, затем подключаю инет-кабель в ван-порт и у меня интет на комп через провод сразу подается, так как мне не нужен статик ip, а инет распределяется по dhcp.

проблема у меня появляется при попытке установить web-интерфейс. Вот что у меня получается:

А если выполнить opkg install luci то:

Так у вас скорее всего интернет не настроен на роутере. в первом случае вам говориться что пакет не может быть уставлен, так как не удалось установить соединение с источником. А далее, собственно, результат — вы пытаетесь установить пакет которого нет.

Добрый день, подскажите, если установить данную прошивку на это устройство, то появится ли возможность подключить к нему usb модем e3372H от "хувея", и если да, то можно ли увидеть такую же полноценную инструкцию по настройке сего чуда, заранее благодарен за помощь.

lede-project уже с графическим интерфейсом и версия ядра 4.4.71

Подскажите пожалуйста а как обстоят дела с Wi-Fi ? Просто на сайте написано что там доступно только 5 каналов.

Note: Due to the unfortunate lack of DFS support in the current mwl8k driver, there are only four available channels in the 5GHz radio:
5180 MHz [36] (20.0 dBm)
5200 MHz [40] (20.0 dBm)
5220 MHz [44] (20.0 dBm)
5240 MHz [48] (20.0 dBm)

Честно говоря я бы оставил родную прошивку, так как Linksys EA4500 с прошивкой OpenWrt реально подтупливает. Во всяком случае при установке OpenVPN (ради чего всё и задумывалось) всё становилось как-то печально в плане производительности. По этой же причине длительных тестов Wi-Fi не проводилось.

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

Спасибо за ответ))) Меня он устраивает и на стоке. Но хотелось поменять канал для wi-fi(много соседей). А так сам смотрю в строну связки Pfsense и UniFi

Астер можно только для дома думаю (даже уверен что максимум 2 линии сможет переварить) одновремянно

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

Alexandr, ну это целая тема. В своё время, изучение vi было правилом хорошего тона. Если кратко, то в редакторе есть несколько режимов работы: командный, режим ввода и режим последний строки.

Отрывая редактор вы попадаете в командный режим. Вот команды, о которых вы спрашивали:

:q — выйти из редактора

:wq — выйти с сохранением

Перейти в режим ввода текста можно нажав «i» (Esc — вернёт вас в командный режим). А так, в сети полно инструкций по редактору vi.

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

Alexandr, согласен. vi моя душа не принимает. по этому делаю сразу opkg install nano.

Когда то давно делал так с DIR-320 торренты качал на него, веб-сервер поднимал, куча устройств по usb было подключено. Сейчас проще на малинке или апельсинке все это делать.

Доброго времени суток, может быть кто-то знает, как на роутере linksys wrt1900acs v2 откатить прошивку с openwrt до заводской. При перепрошивки версии с оф. сайта роутер не загружается.

Читайте также: