Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Погрузись в мир куриных перестрелок! Хватай пушку и пусть только перья останутся на месте твоих врагов!

Чикен Страйк

Шутер, Экшены, Для мальчиков

Играть

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Openwrt

С этим тегом используют

Роутер Linux Все
38 постов сначала свежее
xvoland
3 года назад

Сертификат мне тоже нужен для OpenWRT LuCI NET::ERR_CERT_INVALID⁠⁠

Сегодня, понадобился сертификат, для доступа к OpenWRT LuCI т.к. Google Chrome отказывался пускать.

Сложновато везде это описано, а тут в картинках да еще и с объяснением, и с субтитрами на русском/английском.

[моё] Https Openwrt Видеоблог Роутер Интернет Сети Компьютерная помощь Linux Видео
0
12
DarkFox315
DarkFox315
5 лет назад

Настройка OpenWRT, mwan3, adblock, openvpn, IPv6 (6in4) ч.3 заключительная⁠⁠

В этой части привожу конфигурацию маршрутизатора, который занят балансировкой трафика от других маршрутизаторов. Грубо говоря сумматор.


Файл скрипта для NATv6 и маскарадинга IPv6 /etc/firewall.nat6


Приведен пример файлов для таблиц ipset.


Большинство описаний опций я опущу, так как часть из них описана в ч.2.


****************************


/etc/config/network


config interface 'lan'

option ifname 'eth0.1'

option proto 'static'

option ipaddr '192.168.1.1' # адрес балансирующего маршрутизатора

option netmask '255.255.255.0'

option ip6assign '60'

option force_link '0'

option delegate '0'


config device 'wan_eth0_1010_dev'

option name 'eth0.1010'

option macaddr 'хх:хх:хх:хх:хх:хх'


config device 'wan_eth0_1020_dev'

option name 'eth0.1020'

option macaddr 'хх:хх:хх:хх:хх:хх'


config switch

option name 'switch0'

option reset '1'

option enable_vlan '1'


config switch_vlan

option device 'switch0'

option vlan '1'

option ports '5t 0 1 2'


config switch_vlan

option device 'switch0'

option vlan '1020'

option ports '5t 4t'


config switch_vlan

option device 'switch0'

option vlan '1010'

option ports '5t 3t'


config interface 'wan41' # интерфес IPv4 для первого провайдера от вышестоящего маршрутизатора

option proto 'dhcp'

option ifname 'eth0.1010'

option metric '10'

option delegate '0'


config interface 'wan42' # # интерфес IPv4 для второго провайдера от вышестоящего маршрутизатора

option proto 'dhcp'

option ifname 'eth0.1020'

option metric '11'

option delegate '0'


config interface 'wan61' # интерфес IPv6 для первого провайдера от вышестоящего маршрутизатора

option proto 'dhcpv6'

option reqprefix 'auto'

option ifname 'eth0.1010'

option reqaddress 'force'

option metric '20'

option delegate '0'


config interface 'wan62' # интерфес IPv6 для первого провайдера от вышестоящего маршрутизатора

option proto 'dhcpv6'

option reqprefix 'auto'

option ifname 'eth0.1020'

option reqaddress 'force'

option metric '21'

option delegate '0'


config route # маршрут для доступа к самому первому маршрутизатору, подробней описано в первой части

option interface 'wan41'

option gateway '192.168.10.1'

option target '192.168.0.1'


config route # маршрут для доступа к самому первому маршрутизатору, подробней описано в первой части

option interface 'wan42'

option gateway '192.168.20.1'

option target '192.168.0.2'


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


****************************


/etc/config/dhcp


config dnsmasq

option domainneeded '1'

option localise_queries '1'

option local '/lan/'

option domain 'lan'

option expandhosts '1'

option authoritative '1'

option readethers '1'

option leasefile '/tmp/dhcp.leases'

option rebind_protection '0'

option allservers '1'

option localservice '1'

option filterwin2k '1'

option quietdhcp '1'

option ednspacket_max '4096'

option resolvfile '/tmp/resolv.conf.auto'

option cachesize '10000'

option dnsforwardmax '200'

list notinterface 'wan62'

list notinterface 'wan41'

list notinterface 'wan42'

list notinterface 'wan61'


config dhcp 'lan'

option interface 'lan'

option start '100'

option limit '150'

option dhcpv6 'server'

option ra 'server'

option force '1'

option ra_default '1'

option ra_management '1'

option leasetime '5m'


config dhcp 'wan41'

option interface 'wan41'

option ignore '1'


config dhcp 'wan42'

option interface 'wan42'

option ignore '1'


config dhcp 'wan61'

option interface 'wan61'

option ignore '1'


config dhcp 'wan62'

option interface 'wan62'

option ignore '1'


****************************


/etc/config/firewall


config defaults

option input 'ACCEPT'

option output 'ACCEPT'

option syn_flood '1'

option drop_invalid '1'

option flow_offloading '1'

option flow_offloading_hw '1'

option forward 'ACCEPT'


config include 'nat6'

option type 'script'

option path '/etc/firewall.nat6'

option family 'any'

option reload '1'


config zone

option input 'ACCEPT'

option forward 'ACCEPT'

option name 'lan'

option output 'ACCEPT'

option network 'lan'


config zone

option family 'ipv4'

option name 'wan41'

option masq '1'

option masq6 '0'

option masq6_privacy '0'

option output 'ACCEPT'

option input 'ACCEPT'

option network 'wan41'

option forward 'ACCEPT'

option mtu_fix '1'


config zone

option family 'ipv4'

option name 'wan42'

option masq '1'

option masq6 '0'

option masq6_privacy '0'

option output 'ACCEPT'

option input 'ACCEPT'

option network 'wan42'

option forward 'ACCEPT'

option mtu_fix '1'


config zone

option name 'wan61'

option masq '1'

option masq6 '1'

option masq6_privacy '0'

option output 'ACCEPT'

option network 'wan61'

option family 'ipv6'

option input 'ACCEPT'

option forward 'ACCEPT'

option mtu_fix '1'


config zone

option name 'wan62'

option masq '1'

option masq6 '1'

option masq6_privacy '0'

option output 'ACCEPT'

option network 'wan62'

option family 'ipv6'

option input 'ACCEPT'

option forward 'ACCEPT'

option mtu_fix '1'


config rule

option src 'wan41'

option name 'all_wan41'

option family 'ipv4'

option proto 'all'

option dest 'lan'

option device 'eth0.1010'

option direction 'in'

option target 'ACCEPT'


config rule

option src 'wan42'

option name 'all_wan42'

option family 'ipv4'

option proto 'all'

option dest 'lan'

option device 'eth0.1020'

option direction 'in'

option target 'ACCEPT'


config rule

option src 'wan61'

option name 'all_wan61'

option family 'ipv6'

option proto 'all'

option dest 'lan'

option device 'eth0.1010'

option direction 'in'

option target 'ACCEPT'


config rule

option src 'wan62'

option name 'all_wan62'

option family 'ipv6'

option proto 'all'

option dest 'lan'

option device 'eth0.1020'

option direction 'in'

option target 'ACCEPT'


config forwarding

option dest 'wan41'

option src 'lan'


config forwarding

option dest 'wan42'

option src 'lan'


config forwarding

option dest 'wan61'

option src 'lan'

config forwarding

option dest 'wan62'

option src 'lan'


config redirect

option src 'wan41'

option name 'wan41'

option target 'DNAT'

option dest 'lan'

list proto 'all'


config redirect

option src 'wan42'

option name 'wan42'

option target 'DNAT'

option dest 'lan'

list proto 'all'


config redirect

option src 'wan61'

option name 'wan61'

option target 'DNAT'

option dest 'lan'

list proto 'all'


config redirect

option src 'wan62'

option name 'wan62'

option target 'DNAT'

option dest 'lan'

list proto 'all'


****************************


/etc/config/mwan3


config rule 'all_v4'

option proto 'all'

option sticky '0'

option use_policy 'balanced_wan'

option src_ip '192.168.0.0/16'


config rule 'all_v6'

option proto 'all'

option sticky '0'

option use_policy 'balanced_wan6'

option src_ip 'fd00::/8'


config rule 'drop_all'

option src_ip '0.0.0.0/0'

option proto 'all'

option sticky '0'

option use_policy 'unreachable'


config globals 'globals'

option mmx_mask '0x3F00'

option rtmon_interval '2'


config interface 'wan41'

option enabled '1'

list track_ip '8.8.4.4'

option family 'ipv4'

option track_method 'ping'

option count '1'

option size '56'

option max_ttl '60'

option check_quality '0'

option interval '5'

option down '3'

option up '3'

option initial_state 'offline'

option failure_interval '3'

option recovery_interval '3'

option timeout '1'

option reliability '1'

list flush_conntrack 'ifup'

list flush_conntrack 'ifdown'

list flush_conntrack 'connected'

list flush_conntrack 'disconnected'


config interface 'wan42' # аналогично config interface 'wan41'


config interface 'wan61'

option enabled '1'

option family 'ipv6'

option track_method 'ping'

option count '1'

option size '56'

option check_quality '0'

option interval '5'

option down '3'

option up '3'

option initial_state 'offline'

option max_ttl '70'

option failure_interval '3'

option recovery_interval '3'

option timeout '1'

option reliability '1'

list track_ip 'yahoo.com'

list flush_conntrack 'ifup'

list flush_conntrack 'ifdown'

list flush_conntrack 'connected'

list flush_conntrack 'disconnected'


config interface 'wan62' # аналогично config interface 'wan61'


config member 'wan_41'

option interface 'wan41'

option metric '1'

option weight '1'


config member 'wan_42'

option interface 'wan42'

option metric '1'

option weight '1'


config member 'wan_61'

option interface 'wan61'

option weight '1'

option metric '2'


config member 'wan_62'

option interface 'wan62'

option weight '1'

option metric '2'


config policy 'balanced_wan'

option last_resort 'unreachable'

list use_member 'wan_41'

list use_member 'wan_42'


config policy 'balanced_wan6'

list use_member 'wan_61'

list use_member 'wan_62'

option last_resort 'unreachable'


****************************


Вот и вся конфигурация маршрутизатора занятого балансировкой трафика от первых двух


****************************


Файл скрипта реализующего маскарадинг для NATv6 /etc/firewall.nat6


set -eo pipefail

. /lib/functions.sh

. /lib/functions/network.sh

. /usr/share/libubox/jshn.sh

log() {

logger -t nat6 -s "$@"

}

get_ula_prefix() {

uci get network.globals.ula_prefix

}

validate_ula_prefix() {

local ula_prefix="$1"

if [ $(echo "$ula_prefix" | grep -c -E "^([0-9a-fA-F]{4}):([0-9a-fA-F]{0,4}):") -ne 1 ] ; then

log "Fatal error: IPv6 ULA ula_prefix=\"$ula_prefix\" seems invalid. Please verify that a ula_prefix is set and valid."

return 1

fi

}

ip6t() {

ip6tables "$@"

}

ip6t_ensure_append() {

if ! ip6t -C "$@" >/dev/null 2>&1; then

ip6t -A "$@"

fi

}

nat6_init() {

iptables-save -t nat \

| sed -e "/\s[DS]NAT\s/d;/\sMASQUERADE$/d" \

| ip6tables-restore -T nat

}

masq6_network() {

# $config contains the ID of the current section

local network_name="$1"

local device

network_get_device device "$network_name" || return 0

local done_net_dev

for done_net_dev in $DONE_NETWORK_DEVICES; do

if [[ "$done_net_dev" == "$device" ]]; then

log "Already configured device=\"$device\", so leaving as is."

return 0

fi

done

log "Found device=\"$device\" for network_name=\"$network_name\"."

if [ $zone_masq6_privacy -eq 1 ]; then

log "Enabling IPv6 temporary addresses for device=\"$device\"."

log "Accepting router advertisements on $device even if forwarding is enabled (required for temporary addresses)"

echo 2 > "/proc/sys/net/ipv6/conf/$device/accept_ra" \

|| log "Error: Failed to change router advertisements accept policy on $device (required for temporary addresses)"

log "Using temporary addresses for outgoing connections on interface $device"

echo 2 > "/proc/sys/net/ipv6/conf/$device/use_tempaddr" \

|| log "Error: Failed to enable temporary addresses for outgoing connections on interface $device"

fi

append DONE_NETWORK_DEVICES "$device"

}

handle_zone() {

# $config contains the ID of the current section

local config="$1"

local zone_name

config_get zone_name "$config" name

# Enable masquerading via NAT6?

local zone_masq6

config_get_bool zone_masq6 "$config" masq6 0

log "Firewall config=\"$config\" zone=\"$zone_name\" zone_masq6=\"$zone_masq6\"."

if [ $zone_masq6 -eq 0 ]; then

return 0

fi

# IPv6 privacy extensions: Use temporary addrs for outgoing connections?

local zone_masq6_privacy

config_get_bool zone_masq6_privacy "$config" masq6_privacy 1

log "Found firewall zone_name=\"$zone_name\" with zone_masq6=\"$zone_masq6\" zone_masq6_privacy=\"$zone_masq6_privacy\"."

log "Setting up masquerading nat6 for zone_name=\"$zone_name\" with zone_masq6_privacy=\"$zone_masq6_privacy\""

local ula_prefix=$(get_ula_prefix)

validate_ula_prefix "$ula_prefix" || return 1

local postrouting_chain="zone_${zone_name}_postrouting"

log "Ensuring ip6tables chain=\"$postrouting_chain\" contains our MASQUERADE."

if ! ip6t_ensure_append "$postrouting_chain" -t nat -s "$ula_prefix" -j MASQUERADE; then

# Some releases of OpenWrt just leave the nat table empty for some reason (version dependent?)

log "Could not find table=\"$postrouting_chain\", but yolo so adding to POSTROUTING directly."

ip6t_ensure_append "POSTROUTING" -t nat -s "$ula_prefix" -j MASQUERADE

fi

local DONE_NETWORK_DEVICES=""

config_list_foreach "$config" network masq6_network

log "Done setting up nat6 for zone=\"$zone_name\" on devices: $DONE_NETWORK_DEVICES"

}

main() {

nat6_init

config_load firewall

config_foreach handle_zone zone

}

main "$@"


Создайте на компьютере файл без расширения, и присвойте ему имя "firewall.nat6". После чего откройте его программой Notepad++, и вставьте в него описанный выше код. После чего выберете в меню Правка-Формат Конца Строк-Преобразовать в UNIX (LF). Все файлы в юникс системах имеют в качестве окончания строки символ "Перевод на строку", или LF если включить отображение непечатаемых символов. Когда в системах Windows обычно окончание строки имеет два символа "Перевод на строку" и "Возврат каретки", то есть CR LF.


Поместите файл firewall.nat6 в каталог /etc маршрутизатора. Или в любой другой, при этом изменив путь в строке option path '/etc/firewall.nat6' в файле настроек фаервола.


Внимание! Это работоспособная версия скрипта, так сказать сборная солянка, на странице сайта OpenWRT информация устаревшая, код от этого отличается и у меня не заработал.


****************************


Содержимое файлов из опций option loadfile '/etc/namev4' и option loadfile '/etc/namev6', описанных во второй части, в качестве примера.


Файл '/etc/namev4'


ххх.ххх.ххх.ххх/18

ххх.ххх.ххх.ххх/18

ххх.ххх.ххх.ххх/21

ххх.ххх.ххх.ххх/32


В этом файле должны быть только списки подсетей, которые будут маршрутизироваться через VPN. Этот список для ipset таблиц не поддерживает единичные IP в привычном виде, по крайне мере так описано в документации на ipset, при выбранных мной опциях option match 'dest_net' и option storage 'hash'. Поэтому, если все же нужно добавить единичный IP в этот список, то нужно указать сеть размерностью 32, то есть вот так: ххх.ххх.ххх.ххх/32, что допускается в документации RFC 6890.


Файл '/etc/namev6'


хххх:хххх::/48

хххх:хххх::/44

хххх:хххх::/32


С этими файлами, при их создании и сохранении, поступайте точно так как описано для фала /etc/firewall.nat6


****************************


Опишу некоторые баги (или фичи?). Ранее писал, что объясню для чего нужно тегировать трафик гуляющий между маршрутизаторами. Вся проблема в управляемом коммутаторе внутри маршрутизатора, настройка которого при загрузке, и перезагрузке, устанавливается по умолчанию. В этот момент порт который сконфигурирован как WAN превращается в LAN и через этот порт провайдер, или мой промежуточный маршрутизатор, выдает IP на мой ПК. Это приводит к тому что после загрузки маршрутизатора этот IP продолжает "висеть" в сетевой карте, и приходится либо кабель переподключать, либо выключать и включать сетевую карту в ПК. Это известный баг, я писал на форум OpenWRT и тривиального решения к сожалению нет. Но при моей ситуации с кучей маршрутизаторов этот баг решается тем, что я присваиваю тег VLANам, и этот тег не слетает во время перезагрузки, что позволяет не пропускать трафик не совпадающий по тегу. Короче, в итоге, все работает как надо))


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


Для периодического обновления списков блокировок AddBlock создается задача в cron. Для этого в файл /etc/crontabs/root нужно добавить строку "0 * * * * /etc/init.d/adblock reload", без кавычек. Эта строка создает задачу перезапуска блокировщика в начале каждого часа, что тем самым приводит к скачиванию актуальных списков блокировок. В противном случае списки будут обновляться при каждом запуске маршрутизатора, или ручном перезапуске блокировщика.


****************************


Ссылки на использованные материалы:


https://github.com/akatrevorjay/openwrt-masq6 ссылка на проект скрипта для маскарадинга NATv6

https://openwrt.org/docs/guide-user/network/ipv6/ipv6.nat6 инструкция для настройки NAT6 and IPv6 masquerading с официального сайта OpenWRT

https://openwrt.org/docs/guide-user/network/wan/multiwan/mwa... инструкция по настройке mwan3 с официального сайта OpenWRT

https://openwrt.org/docs/guide-user/firewall/firewall_config... настройка фаервола с сайта OpenWRT

https://github.com/openwrt/packages/blob/master/net/adblock/... проект блокировщика рекламы, там самые актуальные настройки

https://openwrt.su/nastrojka/vpn-klient-na-openwrt неплохая инструкция по настройке OpenVPN


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


****************************


По итогу получилось следующее:


Суммарная скорость при тестировании через https://www.speedtest.net/, или при закачке торрентов, составляет сумму скоростей всех каналов. В реальности где-то 181-188 мегабит на прием, и 185-189 мегабит на отдачу.


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


Реализована блокировка рекламы на уровне доменов.


Обход заблокированных сайтов в известной стране.


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

Всего в сумме получается шесть внешних IPv6. Потому, при проверке IPv6 адреса в интернете, например на сайтах https://test-ipv6.com/index.html.ru_RU или https://ipv6-test.com/, я вижу разные свои внешние IP. Два внешних IPv4, и шесть IPv6.


Весь этот огород из маршрутизаторов не делает мне нервы и лишний раз не беспокоит. Вся конфигруация стабильно работает без перебоев. При этом маршрутизаторы выключаются при выключении ПК, и всех остальных потребителей трафика. Например ночью когда все спят. При подаче питания все само запускается и работоспособно через полторы минуты.


Цена за маршрутизаторы составила около 150$.


Все что ставилось в ТЗ все было реализовано ))


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


PS: Пораскинув немного мозгами, пришел к выводу что всю эту кухню можно реализовать при помощи всего одного маршрутизатора и управляемого коммутатора, что бы тегировать VLANы. Но проверять я это конечно же не буду))

Показать полностью
[моё] Openwrt Adblock Openvpn Ipv6 Длиннопост Роутер Локальная сеть Сети Текст
6
16
DarkFox315
DarkFox315
5 лет назад

Настройка OpenWRT, mwan3, adblock, openvpn, IPv6 (6in4) ч.2⁠⁠

В этой части я привожу конфигурацию файлов маршрутизатора для каждого провайдера.


*************************


/etc/config/network

config switch # здесь все по умолчанию

config switch_vlan # настройка управляемого коммутатора

option device 'switch0' # имя коммутатора

option vlan '1010' # тег, или имя виртуальной частной сети.

option ports '5t 0 1 2 3t' # настройка портов для vlan '1010'. 5t - порт смотрящий в "процессор", 3t - порт смотрящий в нижестоящий маршрутизатор


"t" означает что трафик через порт тегируется, если в пакетах трафика тег не совпадает, то трафик через этот порт не проходит. Зачем это нужно, распишу в следующей части.


config switch_vlan

option device 'switch0'

option ports '5t 4' # 4 - порт смотрящий в сторону ISP, без тега.

option vlan '2' # имя виртуальной частной сети.


config globals 'globals' # - по умолчанию


config device 'wan_eth0_2_dev' # настройка конфигурации порта

option name 'eth0.2' # имя порта

option macaddr 'хх:хх:хх:хх:хх:хх' # MAC-адрес порта


config interface 'loopback' # по умолчанию


config interface 'lan' # настройка локальной сети. 'lan' - имя интерфейса

option proto 'static' # тип протокола

option netmask '255.255.255.0' # маска сети

option ipaddr '192.168.10.1' # сетевой адрес маршрутизатора, адрес шлюза для нижестоящего маршрутизатора. По этому адресу можно зайти на этот маршрутизатор.

option ip6assign '60' # длина префикса IPv6 для локальной сети

option force_link '0' # если 1 то подключение всегда есть, независимо от того подключен кабель физически, или нет.

option ifname 'eth0.1010' # интерфейс, или порт через который осуществляется выход в частную сеть

option delegate '0' # отключить встроенный менеджмент IPv6. Если 1, то происходит просто какая-то дичь.


config interface 'wan' # настройка для подключения к ISP. 'wan' - имя интерфейса

option proto 'dhcp' # тип протокола

option peerdns '0' # если 0, то не принимать выдаваемые DNS ISP.

option ifname 'eth0.2' # порт через который подключаемся к провайдеру

option metric '10' # метрика интерфейса, нужна для mwan3

list dns 'ххх.ххх.ххх.ххх' # DNS через которые будут разрешаться имена хостов IPv4. Можно добавить несколько таких строк с разными адресами DNS серверов.

option delegate '0' # отключить встроенный менеджмент IPv6.


config interface 'ipv6' # настройка для подключения к туннельному брокеру. Таких интерфейсов можно создать несколько. 'ipv6' - имя интерфейса туннеля

option proto '6in4' # тип протокола

option peeraddr 'ххх.ххх.ххх.ххх' # IPv4 адрес брокера

list ip6prefix 'хххх:хххх::/48' # можно прописать, но в моей конфигурации я это не использую

option ip6addr 'хххх:хххх::2/64' # IPv6 адрес вашего туннеля который вам выдал брокер

option gateway 'хххх:хххх::1/64' # шлюз, то есть IPv6 адрес туннеля на стороне брокера. Указывать необязательно

option peerdns '0' # если 0, то не принимать выдаваемые DNS ISP. Скорей всего эта опция здесь бесполезна, но я решил добавить.

list dns 'хххх:хххх::х' # DNS через которые будут разрешаться имена хостов IPv6.

option metric '101' # метрика интерфейса, нужна для mwan3

option ttl '250' # время жизни пакетов для интерфейса.

option delegate '0' # отключить встроенный менеджмент IPv6.

option defaultroute '0' # не настраивать это подключение шлюзом по умолчанию. Если не добавить эту опцию, то маршрутизатор, благодаря балансировщику mwan3, будет пытаться направлять свой внутренний трафик на этот интерфейс, или когда используется таблица маршрутизации по умолчанию, без балансировки.


config interface 'vpnv4' # настройка для подключения к OpenVPN по протоколу IPv4

option proto 'none' # тип неуправляемого протокола

option ifname 'tun0' # название интерфейса через который будет подключаться клиент OpenVPN

option ttl '250' # время жизни пакетов для интерфейса.

option metric '201' # метрика интерфейса, нужна для mwan3

option delegate '0' # отключить встроенный менеджмент IPv6.

option defaultroute '0' # не настраивать это подключение шлюзом по умолчанию.


config interface 'vpnv6' # настройка для подключения к OpenVPN по протоколу IPv6. Настройки полностью аналогичны как для IPv4, включая option ifname 'tun0'


*************************


Файл /etc/config/dhcp


config dnsmasq # настройка локального DNS и DHCP серверов

option domainneeded '1' # Не перенаправлять DNS-запросы без DNS-имени

option localise_queries '1' # Локализовать имя хоста в зависимости от запрашиваемой подсети, если доступно несколько IP-адресов

option local '/lan/' # Локальный сервер

option domain 'lan' # Локальный домен

option expandhosts '1' # Добавить локальный суффикс домена для имен из файла хостов (/etc/hosts)

option authoritative '1' # Это единственный DHCP-сервер в локальной сети

option readethers '1' #

option leasefile '/tmp/dhcp.leases' # Файл, где хранятся арендованные DHCP-адреса

option rebind_protection '0' # Защита от DNS Rebinding (выключено)

option allservers '1' # Опрашивать все имеющиеся внешние DNS-серверы, которые указаны для конкретных интерфейсов, или в этом файле конфигурации

option localservice '1' # Только локальный DNS

option filterwin2k '1' # Не перенаправлять обратные DNS-запросы для локальных сетей

option ednspacket_max '4096' # максимальный размер пакета передаваемый DNS.

option resolvfile '/tmp/resolv.conf.auto' # адреса DNS серверов которые собираются со всех интерфейсов если они прописаны в list dns '*****'

option confdir '/tmp/dnsmasq.d' # Здесь находится дополнительный файл настроек DNS. Этот файл создает блокировщик рекламы, туда он пишет запрещенные домены.

option cachesize '10000' # размер кеша адресов DNS сервера

option quietdhcp '1' # Подавить логирование стандартной работы этих протоколов

option dnsforwardmax '200' # Максимально допустимое количество одновременных DNS-запросов

list notinterface 'vpnv4' # Игнорируемые интерфейсы. Эти интерфейсы DNS не прослушивает и не разрешает на них адреса.

list notinterface 'wan' # Игнорируемые интерфейсы. Эти интерфейсы DNS не прослушивает и не разрешает на них адреса.


config dhcp 'lan' # Настройка DHCP для локальной сети

option interface 'lan' # имя интерфейса

option start '100' # с какого адреса начнется раздача IP-адресов

option limit '150' # на каком адресе закончится раздача IP-адресов

option dhcpv6 'server' # Режим работы для DHCPv6

option ra 'server' # Режим работы для DHCPv6

option force '1' #

option ra_default '1' # Объявлять всегда, как маршрутизатор по умолчанию

option ra_management '1' #

option leasetime '5m' # время аренды адресов. Пять минут, так как маршрутизатор после перезагрузки не всегда выдает IP нижестоящему маршрутизатору.


config dhcp 'wan' # Игнорируемые интерфейсы для раздачи адресов через DHCP

option interface 'wan' # Имя игнорируемого интерфейса, можно добавлять несколько.

option ignore '1' # Имя игнорируемого интерфейса, можно добавлять несколько.


*************************


/etc/config/firewall


config defaults # настройка правил по умолчанию

option input 'ACCEPT' # разрешить входящий трафик

option forward 'ACCEPT' # разрешить перенаправление. Внимание! Это скорей всего создает брешь в сетевом экране, почитайте в сети про это подробней.

option output 'ACCEPT' # разрешить исходящий трафик

option drop_invalid '1' # Отбрасывать некорректные пакеты

option syn_flood '1' # Включить защиту от SYN-flood атак

option flow_offloading '1' # Программная реализация offloading для маршрутизации/NAT. Программное ускорение обработки. Внимание! Не все маршрутизаторы это поддерживают.

option flow_offloading_hw '1' # Аппаратный flow offloading. Аппаратное ускорение обработки. Внимание! Не все маршрутизаторы это поддерживают.


config include 'nat6' # добавляем NATv6

option type 'script' #

option path '/etc/firewall.nat6' # путь, где расположен скрипт реализующий NATv6. Нужно вручную его туда поместить, описано в первой части.

option family 'any' #

option reload '1' # перезапускать скрипт при запуске сетевого экрана


config zone # настройка зоны локальной сети

option name 'lan' # имя зоны

option network 'lan' # имя интерфейса для локальной сети. Задается этой опцией: config interface 'lan'

option input 'ACCEPT' # разрешить входящий трафик

option forward 'ACCEPT' # разрешить перенаправление.

option output 'ACCEPT' # разрешить исходящий трафик


config zone # настройка зоны для подключения к ISP

option name 'wan' # имя зоны

option network 'wan' # имя интерфейса смотрящего в сторону ISP. Задается этой опцией: config interface 'wan'

option family 'ipv4' # семейство протоколов. В данном случае IPv4.

option output 'ACCEPT' # разрешить исходящий трафик

option forward 'ACCEPT' # разрешить перенаправление. Внимание! Это скорей всего создает брешь в сетевом экране, почитайте в сети про это подробней.

option input 'ACCEPT' # разрешить входящий трафик

option masq '1' # Разрешить маскарадинг. В двух словах, это технология благодаря которой вся локалка может пользоваться одним внешним IP адресом.

option masq6 '0' # Разрешить маскарадинг для IPv6. Нужно ставить '1' если option family 'ipv6'

option masq6_privacy '0' # у меня это не используется.

option mtu_fix '1' # Ограничение MSS, более продвинутая технология обнаружения длины пакета в TCP/IP.


config zone может быть несколько, для каждого интерфейса. Можно так же объединять несколько интерфейсов в одну зону.


config forwarding # правила следования трафика. В данном случае правило разрешает следовать трафику из локальной сети в глобальную

option src 'lan' # источник трафика. 'lan' - имя интерфейса

option dest 'wan' # приемник трафика. 'wan' - имя интерфейса


config forwarding нужно создать для каждого интерфейса.


config redirect # правило для перенаправления портов

option name 'wan' # имя правила

option src 'wan' # источник, откуда пытаются зайти на порты ПК за NATом

option dest 'lan' # зона назначения. В данном случае локальная сеть

option target 'DNAT' # динамический NAT так как используется маскарадинг на интерфейсе.

list proto 'all' # перенаправлять любой протокол (TCP, UDP, ICMP)


config redirect создается для тех интерфейсов, для которых нужно открыть порты. Можно прописать только конкретные порты и протоколы. Внимание! Правило выше скорей всего создает брешь в сетевом экране, пользуйтесь обдуманно.


config rule # правила для трафика

option src 'wan' # зона источника

option dest 'lan' # зона назначения

option proto 'all' # тип протокола. В данном случае все протоколы

option name 'all_wan' # имя правила

option family 'ipv4' # семейство протоколов. В данном случае IPv4.

option device 'eth0.2' # привязка к интерфейсу

option direction 'in' # означает что устройство входящее

option target 'ACCEPT' # разрешить перенаправляемый трафик


config rule создается для всех интерфейсов. option family 'ipv4' для целей корректной балансировки нужно выбрать только 'ipv4' или 'ipv6'.


config ipset # это список сетей которые будут маршрутизироваться через VPN. Используется балансировщиком mwan3

option name 'namev4' # имя списка

option family 'ipv4' # семейство протоколов. Ipset в одном списке допускает только адреса одного протокола.

option match 'dest_net' # Тип адресов. В данном случае адреса источников, и тип net, то есть работа с подсетями х.х.х.х/0, а не по конкретным IP-адресам

option storage 'hash' # Тип хранилища адресов.

option enabled '1' # разрешить использовать этот список

option loadfile '/etc/namev4' # путь и файл где хранится список. Имеет вид, одна подсеть на строку. Формат файла неважен, формат конца строк как для UNIX систем.


config ipset для IPv6 создается отдельно. Опции которые отличаются от набора для IPv4: option name 'namev6', option family 'ipv6', option loadfile '/etc/namev6' - формат файла точно такой. Только подсети для IPv6 указываются вида abcd:abcd::/0.


*************************


/etc/config/mwan3


Правила config rule 'ххх' выполняются в порядке сверху вниз. Поэтому правила для VPN ставятся выше всех. Иначе весь трафик будет "заворачиваться" на шлюз по умолчанию, то есть непосредственно через ISP, а не через туннель.


config rule 'vpn_ipv4' # правило для трафика IPv4, который маршрутизируется через VPN туннели.

option proto 'all' # разрешить пропускать все протоколы (TCP, UDP, ICMP). Эта опция должна быть во всех правилах. Или можно выбрать только конкретный протокол, например TCP

option src_ip '192.168.0.0/16' # адрес источника который направляется в туннель. В данном случае это локальная сеть IPv4 с диапазоном адресов от 192.168.0.0-192.168.255.255

option ipset 'namev4' # набор адресов (подсетей) которые маршрутизируются через VPN туннели. То есть это IP адреса заблокированных сайтов к которым нужно получить доступ

option use_policy 'balanced_vpnv4' # имя используемой политики при совпадении трафика с этим правилом


config rule 'all_v4' # Это правило разрешает проходить весь остальной трафик IPv4 через ISP

option proto 'all' # разрешить пропускать все протоколы (TCP, UDP, ICMP)

option use_policy 'balanced_wan' # имя используемой политики

option src_ip '192.168.0.0/16' # адрес источника который направляется в туннель. В данном случае это локальная сеть


config rule 'vpn_ipv6' # правило для трафика IPv6, который маршрутизируется через VPN туннели.

option src_ip 'fd00::/8' # адрес источника который направляется в туннель. В данном случае это локальная сеть IPv6

option ipset 'namev6' # набор адресов (подсетей) которые маршрутизируются через VPN туннели.

option use_policy 'balanced_vpnv6' # имя используемой политики при совпадении трафика с этим правилом


config rule 'all_v6' # Это правило разрешает проходить весь остальной трафик IPv6 через ISP

option use_policy 'balanced_wan6' # имя используемой политики при совпадении трафика с этим правилом

option src_ip 'fd00::/8' # адрес источника который направляется в туннель. В данном случае это локальная сеть IPv6


config rule 'drop_all' # правило которое убивает весь трафик, который не попал под правила выше. Нужно что бы сразу после запуска не использовалась основная таблица маршрутизации.

Иначе трафик сразу начинает проходить еще до полной загрузки mwan3

option src_ip '0.0.0.0/0' # в данном случае абсолютно любой адрес. Применимо для IPv4 и IPv6

option use_policy 'unreachable' # политика по умолчанию настроенная в mwan3 для отклонения трафика


Ниже настройки политик "config policy". Политики включают в себя узлы (виртуальные копии интерфейсов которые настроены в /etc/config/network. С дополнительно назначенным весом и метрикой, которые определены в "config member"


config policy 'balanced_wan' # имя политики в которую входит интерфейс IPv4 для подключения к ISP

list use_member 'wan_1' # перечень виртуальных интерфейсов. В данном случае один виртуальный интерфейс подключения к провайдеру интернета

option last_resort 'unreachable' # означает что нужно отбрасывать трафик, если ни один интерфейс в политике не поднят. Эта опция должна быть во всех политиках


config policy 'balanced_wan6' # имя политики в которую входят интерфейсы IPv6 туннельных брокеров

list use_member 'ipv6_1' # имя первого виртуального интерфейса туннельного брокера.

list use_member 'ipv62_1' # имя второго виртуального интерфейса туннельного брокера. Таких интерфейсов можно несколько


config policy 'balanced_vpnv4' # имя политики в которую входит интерфейс IPv4 для подключения через VPN

list use_member 'vpnv4_1' # имя виртуального интерфейса VPN туннеля


config policy 'balanced_vpnv6' # имя политики в которую входит интерфейс IPv6 для подключения через VPN

list use_member 'vpnv6_1' # имя виртуального интерфейса VPN туннеля


config member 'wan_1' # имя виртуального интерфейса IPv4 ISP, который дальше будет использоваться в политиках и правилах mwan3. Имя виртуального интерфейса не должно совпадать с именем интерфейса настроенного в /etc/config/network.

option interface 'wan' # имя интерфейса настроенного в /etc/config/network

option metric '1' # метрика интерфейса. Нужна для определения пула равнозначных интерфейсов

option weight '1' # вес интерфейса. Работает правило пропорции.


config member 'ipv6_1' # имя виртуального интерфейса туннеля IPv6 туннельного брокера

option interface 'ipv6' # имя интерфейса в /etc/config/network

option metric '2' # метрика

option weight '1' # вес


config member у меня три штуки, для каждого туннельного брокера свой, метрика у всех одна — "2", вес так же одинаков — "1".


config member 'vpnv4_1' # имя виртуального интерфейса IPv4 туннеля VPN

option interface 'vpnv4' # имя интерфейса в /etc/config/network

option metric '3' # метрика

option weight '1' # вес


config member 'vpnv6_1' #

option interface 'vpnv6' # имя интерфейса в /etc/config/network

option metric '4' # метрика

option weight '1' # вес


Дальше настройки для интерфейсов в /etc/config/network, которые должны балансироваться через mwan3


config interface 'wan' # имя интерфейса в /etc/config/network

option enabled '1' # разрешить работу этого интерфейса

list track_ip '8.8.4.4' # IPv4 адрес для отслеживания поднят ли интерфейс.

option family 'ipv4' # семейство протоколов. Либо IPv4, либо IPv6. Одновременно оба в mwan3 работать не могут.

option count '1' # Кол-во пинг-запросов, один пинг-запрос

option interval '5' # Интервал пинг-запроса, 5 сек

option down '3' # Если пропал пинг то начинать пинговать каждые 3 сек

option track_method 'ping' # метод отслеживания, здесь при помощи пинга

option size '56' # Размер пинг-запроса

option max_ttl '60' # TTL

option check_quality '0' # проверка качества соединения. Не проверять

option up '3' # Интервал пинг-запроса при сбое восстановления

option initial_state 'offline' # Состояние по умолчанию, до тех пор пока не начались ответы на пинг запросы. Здесь состояние "выкл"

option failure_interval '3' # Интерфейс будет считать отключенным, после данного количества пинг-запросов.

option recovery_interval '3' # Интерфейс будет считаться включенным, после данного количества пинг-запросов.

option timeout '1' # время ожидания пинг-запроса

option reliability '1' # количество хостов, которые должны ответить на пинг-запрос. у меня 1 хост 8.8.4.4

list flush_conntrack 'ifup' # очистка conntrack таблиц по истории интерфейса

list flush_conntrack 'ifdown' # очистка conntrack таблиц по истории интерфейса

list flush_conntrack 'connected' # очистка conntrack таблиц по истории интерфейса

list flush_conntrack 'disconnected' # очистка conntrack таблиц по истории интерфейса


Для остальных интерфейсов IPv4 аналогично. Для интерфейсов IPv6 такие опции: list track_ip 'www.google.com' — нужно указывать домен, просто по IP работает криво, option family 'ipv6'.


Туннели от брокеров IPv6 я не пингую, для них указаны такие опции: option initial_state 'online', опцию list track_ip нужно удалить.


*************************

/etc/config/adblock


config adblock 'global' # собственно конфигурация

option adb_enabled '1' # разрешить работу блокировщика рекламы

option adb_forcedns '0' #

option adb_safesearch '0' # не использовать безопасный поиск предлагаемый поисковиками. Да, я хочу видеть порево и расчлененку в поисковой выдаче

option adb_mail '0' # отправка на почту статистики — отключено

option adb_dns 'dnsmasq' # что используется в качестве сервера DNS на маршрутизаторе

option adb_dnsflush '1' # очистка кеша DNS после обновления списков блокировок

list adb_sources 'adaway' # список блокировок №1

list adb_sources 'adguard' # список блокировок №2 На самом деле у меня их много. Если что, можно выбрать через GUI в LUCI.

option adb_trigger 'wan' # триггер запуска, при поднятии интерфейса для ISP запустится блокировщик

option adb_fetchutil 'wget' # Клиент, которым скачиваются списки блокировок

option adb_debug '1' # предоставить расширенный отчет работы блокировщика.

option adb_dnsfilereset '0' # Не сбрасывать итоговый файл блокировки. Подробно в документации на блокировщик

option adb_dnstimeout '50' # Сколько ждать ответа после перезапуска локального DNS сервера

option adb_repiface 'eth0.1010' # у меня не используется, это интерфейс куда слать отчеты о работе

option adb_report '0' # не слать отчеты о работе блокировщика

option adb_backupdir '/tmp' # папка для резервных копий списков блокировки. В OpenWRT папка /tmp это RAM-диск

option adb_backup '1' # разрешить бекап списков блокировки

option adb_tmpbase '/tmp' # основная папка для работы блокировщика.

option adb_maxqueue '32' # количество параллельно обрабатываемых потоков при обработке списков блокировок. У меня тянет все 32

option adb_triggerdelay '60' # Сколько нужно ждать после срабатывания триггера перед запуском блокировщика


*************************


/etc/config/openvpn


config openvpn 'blokirovkamnet' # название VPN подключения

option config '/etc/openvpn/blokirovkamnet.ovpn' # файл конфигурации OpenVPN

option enabled '1' # разрешить работу этого подключения


Дополнительные опции в файле *.ovpn:

nobind

client

remote xxxx.com # адрес OpenVPN сервера к которому будем подключаться

remote-cert-tls server # эта опция идет по умолчанию в конфиге сервера к которому я подключаюсь

cipher AES-128-CBC # эта опция идет по умолчанию в конфиге сервера к которому я подключаюсь

setenv opt ncp-ciphers AES-128-GCM # эта опция идет по умолчанию в конфиге сервера к которому я подключаюсь

setenv opt block-outside-dns # не направлять запросы на разрешение имен через VPN

dev tun0 # имя интерфейса в /etc/config/network к которому жестко будет привязана данная конфигурация

proto tcp # эта опция идет по умолчанию в конфиге сервера к которому я подключаюсь

sndbuf 0 # если 0, то размер буфера отправки выставляется максимальный который позволяет удаленный сервер.

rcvbuf 0 # если 0, то размер буфера приема выставляется максимальный который позволяет удаленный сервер.

route-nopull # главная опция, не принимать маршруты передаваемые удаленным сервером. Маршруты мы прописываем через свои ipset таблицы


*************************


Для второго провайдера все аналогично, за исключением того что внешние IP адреса другие. Так же отличие заключается в следующих опциях:

option vlan '1020' # это для второго провайдера.

option ipaddr '192.168.20.1' # это для второго провайдера, а так же это локальный адрес второго маршрутизатора.


Конфиг для маршрутизатора балансирующего трафик от первых двух будет короче))


Сегодня реально максималка по количеству текста.


Сегодня снова много текста. Остальное в следующей части.

Показать полностью
[моё] Openwrt Adblock Openvpn Ipv6 Длиннопост Роутер Локальная сеть Сети Текст
1
14
DarkFox315
DarkFox315
5 лет назад

Настройка OpenWRT, mwan3, adblock, openvpn, IPv6 (6in4) ч.1⁠⁠

Приветствую!


Disclaimer.

В ОС семейства Linux я профан, так же как и в компьютерных сетях.

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


ТЗ, или мои хотелки:


1. Реализовать балансировку нагрузки, и отказоустойчивость, между двумя провайдерами (ISP). Каждый провайдер предоставляет безлимитное подключение 100 мегабит по витой паре.

2. Настроить по несколько туннелей IPv6 to IPv4 (6in4) от туннельных брокеров, на каждом провайдере. Реализовать балансировку нагрузки между туннелями.

3. Настроить несколько OpenVPN клиентов, на каждом провайдере, для конкретных адресов (заблокированных сайтов). Настроить балансировку нагрузки между OpenVPN клиентами.

4. Настроить блокировку рекламы (AdBlock) на уровне DNS сервера.

5. Реализация должна быть дешевой и простой. Не имеет значения на чем все будет реализовано.


Для реализации задумки взяты за основу три маршрутизатора Netgear R6300v2, на которые должна устанавливаться ОС OpenWRT. Просто лишь потому что они удачно подвернулись на вторичном рынке.


На сайте проекта OpenWRT заявлена почти полная поддержка этих маршрутизаторов. Единственное, что вообще не будет работать это Wi-Fi 802.11ac (5 ГГц). Wi-Fi 802.11b/g/n (2.4 ГГц) можно сказать что тоже не будет работать. Вся проблема в открытых исходниках от Broadcom Inc, которых попросту нет. Что противоречит концепции проекта OpenWrt.

Для меня это не критично, так как для этих стандартов используется маршрутизатор ASUS RT-AC66U B1 под управлением ОС FreshTomato 2020.2.


Для каждого провайдера используется свой R6300v2, на котором реализуются пункты ТЗ 2-4. На третьем — реализуется первый пункт ТЗ. То есть третий маршрутизатор выступает просто балансировщиком нагрузки между первыми двумя маршрутизаторами.


На момент написания этой статьи на маршрутизаторах установлена ОС OpenWrt 19.07.2


Вкратце опишу процесс "накатывания" прошивки OpenWrt.

Для начала нужно скачать файл прошивки "netgear-r6300v2-webflash.bin" с сайта ftp://ftp.dd-wrt.com/betas/ проекта DD-WRT. Потому что напрямую прошить маршрутизатор OpenWrt не удастся.

После прошивки промежуточной прошивки от DD-WRT, прошиваем файл "openwrt-19.07.0-rc2-bcm53xx-netgear-r6300-v2-squashfs.chk", который можно скачать по адресу https://downloads.openwrt.org/releases/19.07.2/targets/bcm53...

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


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


Так же, если нужно, опишу процесс разгона (overclocking) маршрутизатора R6300v2. Получив частоту ЦП 1200МГц, вместо штатной 800МГц, памяти 800МГц базовой частоты, вместо 533МГц.


На каждом провайдере у меня раньше, и сейчас тоже, стоят самые дешевые Wi-Fi маршрутизаторы Tenda W316R. Достаточно давно именно через них шла раздача Wi-Fi на несколько смартфонов.

Сейчас же они оставлены по одной простой причине — если что-то прилетит по витой паре, например гроза, то в первую очередь выйдут из строя W316R, при этом R6300v2 должны уцелеть.

Да и пока игрался с R6300v2, W316R были просто незаменимы, так как у меня каждый провайдер выдает IP-адреса через DHCP сервер, с привязкой по MAC-адресу. Благодаря чему я мог оперативно переключать кабель в W316R что бы просто получить доступ к сети, если что-то шло не так с R6300v2.

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


Итак подключаем R6300v2 к интернету, и скачиваем пакеты:


6in4 (для создания IPv6 туннелей)


kmod-ipt-nat6 (нужен для NAT IPv6, при балансировке нагрузки между туннелями)


luci-i18n-ttyd-ru (можно запускать терминал из браузера)


luci-i18n-firewall-ru (русификация ПО установленного по умолчанию в OpenWRT)

luci-i18n-base-ru (русификация ПО установленного по умолчанию в OpenWRT)

luci-i18n-opkg-ru (русификация ПО установленного по умолчанию в OpenWRT)


luci-i18n-mwan3-ru (если используется несколько WAN интерфейсов)


luci-i18n-adblock-ru (блокировщик рекламы)

wget (нужен для адблок, утилита для скачивания списков блокировки)

tcpdump-mini (нужен для адблок, утилита для создания отчетов)

coreutils-sort (нужен для адблок)

gawk (поддержка gnu awk в качестве альтернативы умолчанию для busybox)


luci-i18n-openvpn-ru (OpenVPN клиент)

openvpn-openssl (без этого вообще не работает)

openvpn-easy-rsa (нужен для OpenVPN)


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


kmod-ipt-nat6 (нужен для NAT IPv6, при балансировке нагрузки между туннелями)

luci-i18n-ttyd-ru (можно запускать терминал из браузера)

luci-i18n-firewall-ru (русификация ПО установленного по умолчанию в OpenWRT)

luci-i18n-base-ru (русификация ПО установленного по умолчанию в OpenWRT)

luci-i18n-opkg-ru (русификация ПО установленного по умолчанию в OpenWRT)

luci-i18n-mwan3-ru (если используется несколько WAN интерфейсов)


Все что необходимо подтянется автоматом при скачивании перечисленных выше пакетов. Галочку для перезаписи существующих файлов нигде не ставим.


После установки всех пакетов перезагружаем маршрутизатор.


Если нет лишних маршрутизаторов как у меня, и вообще есть проблемы загрузить пакеты через маршрутизатор, то есть один способ. Для этого нужно выкачать содержимое директорий под R6300v2 на сейте OpenWRT, установить простенькую программку HTTP сервера себе на комп, и изменить пути получения пакетов для opkg в маршрутизаторе. Если нужно пишите, создам отдельный подробный пост как это делать. Это особенно полезно если имеется целый парк маршрутизаторов, особенно в изолированной локальной сети.


Теперь можно приступить к созданию необходимой конфигурации. Для этого удобно пользоваться программой WinSCP.exe, можно скачать по этой ссылке: https://winscp.net/eng/download.php

Запускаем программу, выбираем протокол передачи: SCP, в качестве имени хоста вбиваем адрес маршрутизатора, обычно 192.168.1.1, порт: 22, имя пользователя: root. Если вводили пароль, то так же указываем и его, у себя я пароли не использую.


Заходим в папку /etc/config, для редактирования нам понадобятся такие файлы:


/etc/config/network

/etc/config/dhcp

/etc/config/firewall

/etc/config/mwan3

/etc/config/system

/etc/config/adblock

/etc/config/openvpn


Копируем эти файлы в любую папку на компьютере. Для редактирования удобно использовать Notepad++.

Еще потребуется создать файл скрипта /etc/firewall.nat6, атрибуты "firewall.nat6" rw-r--r--. Этот скрипт реализует работу NATv6, позже опишу зачем такое извращение. И создать папку /etc/openvpn/ в которую нужно закинуть файлы конфигурации *.ovpn клиента openvpn. Атрибуты для этой папки должны быть "rwxr-xr-x".


Что-то многовато получилось. Думаю на сегодня хватит.

На очереди статья с описанием и содержимым перечисленных выше файлов конфигураций. И итоги того что получилось.


Если кому-то эта тема интересна, дайте знать стоит ли продолжать? Возможно здесь такое никому не нужно?

Показать полностью
[моё] Openwrt Adblock Openvpn Ipv6 Длиннопост Роутер Локальная сеть Сети Текст
7
ApatiKatt
ApatiKatt
5 лет назад

Роутер TP-Link 842N с прошивкой Openwrt⁠⁠

Доброго вечера! Дело такое, приобрел роутер с прошивкой openwrt, интерфейс Luci. Ситуация такова, что не могу настроить WAN. У моего провайдера статистический адрес, все данные у меня есть.  Ввожу их в настройки и интернета все равно нет. Пишет что кабель подключен, в винде написано что сеть есть, но без доступа в интернет, гугл не особо помог. мучаюсь второй вечер, хотя по идее все должно быть просто. Кто нибудь может доходчиво рассказать/помочь? Можно связаться не только тут, но и в любой соц сети/мессенджере. Благодарю.

[моё] Помощь Openwrt Без рейтинга Компьютер Роутер Интернет Текст
31
26
lipton.lan
lipton.lan
6 лет назад

Сказ о том как мой код за свой выдавали и пытались его продать. Часть III: "Расплата".⁠⁠

первая часть: https://pikabu.ru/story/skaz_o_tom_kak_moy_kod_za_svoy_vyida...
вторая часть: https://pikabu.ru/story/skaz_o_tom_kak_moy_kod_za_svoy_vyida...

По советам из комментариев, я решил не делать пост состоящий на 90% из скриншотов переписки, а изложить суть в тексте, подкрепив минимальным количеством скринов-пруфов.

Итак, наглая ложь Вовы Сергею была раскрыта им на "раз, два":

Сказ о том как мой код за свой выдавали и пытались его продать. Часть III: "Расплата". Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

все написал (Вова), готовь 200 баксов... Написал он, млять... Было одновременно и смешно и обидно, но было доказано однозначно, Сергей не врал что мой код на спор за свой выдают...

Пока "великий комбинатор" лишь догадывался что "хохол" на меня вышел, мы с Сергеем уже думали над планом действий. А придумали мы следующее: Сергей вышел на заказчика напрямую и выслал готовую прошивку, подписав ее sha256, при этом рассказав все как есть. Я со своей стороны выслал Вовану все свои патчи исходников, а так же Серегину прошивку и сказал что продолжу работу только после аванса в 50$... Не, ну вы поняли, да? У заказчика оказался тот же экземпляр прошивки, с той же подписью sha256, только через Вовочку...
Тут мы стали дружно ждать, я аванса и слива Вовы перед заказчиком, Вова тестов от заказчика, Сергей с попкорном развития событий :) Надо сказать, для пущей убедительности я даже переобрезал ту самую прошивку под версию sysupgrade (для тех кто не в теме - это та которая ставится поверх опенврт, а не поверх заводской).

Вова снова сделал ход конем: он не сам прислал деньги, как я предполагал, а попросил заказчика перевести мне аванс))) Хорошо что заказчик был в курсе истории и "не стал обманывать" "проверенного девелопера". В общем, я получил аванс от москвичей и все продолжилось еще более интересно (тут к сожалению без скринов не обойтись)...

Сказ о том как мой код за свой выдавали и пытались его продать. Часть III: "Расплата". Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост
Сказ о том как мой код за свой выдавали и пытались его продать. Часть III: "Расплата". Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост
Сказ о том как мой код за свой выдавали и пытались его продать. Часть III: "Расплата". Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост
Сказ о том как мой код за свой выдавали и пытались его продать. Часть III: "Расплата". Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост
Сказ о том как мой код за свой выдавали и пытались его продать. Часть III: "Расплата". Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

в это же время я написал Володимиру все что думал о ситуации прямым текстом (не стал скринить, чтоб не длинно получилось):


Я думаю пришло время раскрыть карты, Владимир.
В первую очередь со своей стороны я прошу прощения за то что кое чего не
договаривал, все станет ясно в тексте этого сообщения.
Моя ложь оправдывается твоим изначальным обманом, будь ты более правдив,
все закончилось бы более благоприятно для тебя. Обратившись изначально
на 4pda я сразу отказался от полного вовлечения в проект, ввиду того что
у меня не было ни времени, ни прибора, однако ты был настойчив и я все
же начал работу, по причине своей занятости другим проектом. Первое что
меня насторожило, после того как я написал первую альфу с запускающимся
ядром и рабочим радио, это то что ты очень сильно вовлечен в это дело,
для человека у которого есть другой проект и он очень сильно им занят,
позднее ты сам написал что на пенсии и сидишь дома... 16го ноября ты
обратился, 17го получил мою пре альфу и ... и ты стал выдавать мой код
за свое поделие другому разработчику без моего согласия. Я об этом
ничего не знал и не обратил внимания на твои опасения что на меня вышел
некий "хохол" с ником xssa. 20 ноября у себя на почте я действительно
обнаружил письмо от Сергея, с которым я позднее и вышел на связь. В
сообщении было не много, лишь вопрос о споре на 200$ по которому ты
пытался выдать ему мою преальфу за свой продукт, но однако этого хватило
чтобы меня разозлить. Ты же говорил что он просто денег с тебя требовал,
а оказалось что он полностью подготовил продукт и даже выслал тебе логи
удачной загрузки с устранением проблем с эзернетом. Еще больше меня
разозлило что у Сергея на руках был прибор, а я работал на "пальцах". Ты
не знал что gpio можно "прозвонить" только имея прибор на руках? Так
вот, даже если бы я написал поддержку эзернета (а я мог), я бы не смог
"зажечь" леды и сделать поддержку кнопок. Честно говоря я сам прибор
увидел только из фотографий, которые мне отправил Сергей. По скольку я
уже стал в курсе всего, я просто решил проверить, на сколько ты стал
"великим комбинатором", xssa мне выслал рабочую прошивку, которую ранее
уже отправил заказчикам, и я ее переотправил тебе. Единственное что я
сделал - переделал размещение разделов для версии sysupgrade. Деньги я
получил, да. Получил от заказчика, а не от тебя, по доверенности от
Сергея и с его согласия, т.к. продукт не мой, деньги уйдут разработчику.
По скольку у меня нет его кода, я не смогу, да и не стал бы, заканчивать
проект. В данный момент я тебе рекомендую рассказать всю правду
заказчикам, указать все контакты разработчиков (мои и Сергея),
извиниться перед всеми (разработчиками и заказчиком) и больше не
заниматься и не заявлять никому что ты разработчик. Твоя ложь обернулась
против тебя, это эффект бумеранга. Я тебе не желаю ничего плохого,
просто я был одним из тех кто тебя разоблачил. Я искренне надеюсь на то
что ты встанешь на верный путь и нам не придется публиковать какие то
факты и очернять свои имена. Как тебе, наверное, уже написал Сергей,
время для реабилитации у тебя до вторника. Всего доброго, Владимир!

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

Сказ о том как мой код за свой выдавали и пытались его продать. Часть III: "Расплата". Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост
Сказ о том как мой код за свой выдавали и пытались его продать. Часть III: "Расплата". Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

На этом я наверное закончу свой рассказ, т.к. история с eap-115 для меня закончилась именно тогда.
Скажу еще, что даже после этого случая, несмотря на то что он так и не извинился и не признал своих ошибок,  я неоднократно помогал Вове во многих вопросах, связанных с прошивками по доброте душевной, но кроме каках в ответ ничего не видел. Он меня и с 8 Марта поздравлял, и воришкой меня называл, но недавно перегнул палку и я решил поведать эту историю пикабушникам - пусть знают какие бывают люди.


С Сергеем aka xssa мы находимся в дружеских отношениях и до сих пор переписываемся,  возможно (надеюсь на это), когда то пересечемся вживую.


Морали нет - делайте выводы сами.

Всем бобра и котиков ;)

Показать полностью 8
[моё] Разработка Linux Openwrt Разоблачение Обман Длиннопост
13
64
lipton.lan
lipton.lan
6 лет назад

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..."⁠⁠

UPD: по просьбам пикабушников краткое содержание в начале поста:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

первая часть https://pikabu.ru/story/skaz_o_tom_kak_moy_kod_za_svoy_vyida...

Итак, прошивка была почти готова. Пятничным вечером 17.11.17., точнее ночью, Вове срочно понадобилась прошивка с определенным конфигом, для того чтобы отослать ее на тест заказчику... Настораживает? Ну да ладно, сделаем, но раз уж ты обещал аванс - плати:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

И тут внезапно появляется, появляется внезапно... Некий хохол:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

ой, скрином ошибся:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

ну блин, реально я не знаю никакого хохла, опять мне какую то дичь Вова втирает...

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

ну, пересекались где то мы с девелопером с украины... И? О какой прошивке вообще речь?

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

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост
Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

Таааак, временно игнорим Вову и пытаемся узнать кто такой Сергей, как на мою прошивку спорили и т.д. и т.п.

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

Тут вот какая незадача, Сергей читает почту только дома, а я только на работе, но все же через почту мы обменялись контактами и вечером того же понедельника уже общались в вайбере:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост
Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

Далее скрины со скринами, к сожалению я не могу послать оригинальные пересланые скрины, т.к. они у меня не сохранились, но могу попросить у Сергея чтобы он перескринил или нашел те которые посылал. Но суть будет видна и так.
Забегая вперед, с Сергеем (xssa) я до сих пор очень хорошо общаюсь, при чем не только по разработке, но и просто по дружески.
Итак, продолжим... Вова просил у Сергея патчи, но при этом требовал заплатить за документацию о микросхеме, которая присутствовала на подопытной железке:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

Далее Сергей пересылает мне переписку в которой послал Вове лог в котором была полная загрузка прошивки со всей работающей периферией, то есть прошивка полностью готова и дело только за оплатой!:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

А дальше - интереснее... Вова говорит, да ну тебя, с твоим нечеловеческим отношением, спорим на 200$, что я сам все могу? И... и он выкладывает мою прошивку, как доказательство что он все может)))) При чем ту, которую я еще не доделал для "теста заказчику". Этот скрин Сергея я не мог не сохранить:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

эхх, тут бы всем распрощаться, но ведь Вове всегда оставляли шанс, даже после его фэйла:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

Честно - не помню что на следующих скринах скринов, но что то вроде: "да нах ты нужен, сами сделаем (предполагая что я доделаю)":

Сказ о том как мой код за свой выдавали и пытались его продать. Часть II: "Вот это поворот..." Разработка, Linux, Openwrt, Разоблачение, Обман, Длиннопост

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

Показать полностью 14
[моё] Разработка Linux Openwrt Разоблачение Обман Длиннопост
23
31
lipton.lan
lipton.lan
6 лет назад

Сказ о том как мой код за свой выдавали и пытались его продать. Часть I: "Я отказывался, но меня уговорили и я делаль..."⁠⁠

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

Тем кто не в теме программирования или портирования линукс на различные устройства моя история будет наверное не интересна, поэтому Вы можете ее не читать. Однако суть истории не в коде и не в разработке, а в том как за добро в ответ можно получить зло (никогда такого не было и вот опять...). История с разоблачением и почти хэпиэндом:


Я работаю в местном Кировском интернет-провайдере инженером группы эксплуатации сети связи. По скольку провайдер не очень крупный, в отличие от Вымпелкомов, Ростелекомов, МТСов и пр. федералов (ничего против них не имею), и штат сотрудников у нас не большой, порой мне приходится делать вещи, которые к основной работе относятся совсем косвенно, например перепаковывать прошивки некоторых устройств для адаптации под нашу сеть и добавления необходимого функционала.
Полтора года назад возникла очередная подобная задача -  нужно было адаптировать Lede/OpenWrt (линукс прошивка на открытом исходном коде) под роутер tp-link wr840n v4.
Частично, а в последствии и полностью сделав поддержку этой железки я выложил свои наработки в общий доступ на небезызвестном форуме - 4pda. Спустя некоторое время меня попросил помочь один из форумчан, ничего криминального:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть I: "Я отказывался, но меня уговорили и я делаль..." Разработка, Linux, Openwrt, Разоблачение, Длиннопост, Обман

Тут я прошу обратить внимание на слова этого "разработчика": "разработка без железки это онанизм"...

Но проходит полгода и тут снова возникает у нас переписка:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть I: "Я отказывался, но меня уговорили и я делаль..." Разработка, Linux, Openwrt, Разоблачение, Длиннопост, Обман

Как видим "чудо девелопер" уже сменил свое мнение об негативном отношении к онанизму и предлагает мне подро..ть за 100$  портировать прошивку на новое устройство не имея его на руках. Я стараюсь деликатно отказать, типа "да ну, от этого волосы на ладони растут, да и вообще у меня жена и дети", но человек остается упорным и продолжает уговаривать, сетуя сначала на свою полную занятость другим проектом, а потом на ху.вый курс доллара:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть I: "Я отказывался, но меня уговорили и я делаль..." Разработка, Linux, Openwrt, Разоблачение, Длиннопост, Обман

Эххх... Зря я согласился помочь... Заметьте, я ничего не пообещал... В общем я вслепую сделал первый, пока еще неработающий билд уже на следующий день:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть I: "Я отказывался, но меня уговорили и я делаль..." Разработка, Linux, Openwrt, Разоблачение, Длиннопост, Обман

Странное желание, но тут Вова просит меня перевести наше общение в телеграм, еще более странным мне показалось то что "крутой линукс девелопер" не знает что такое wine:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть I: "Я отказывался, но меня уговорили и я делаль..." Разработка, Linux, Openwrt, Разоблачение, Длиннопост, Обман

В общем заюзал я виндовый клиент телеграма под wine (тогда еще не знал что есть нативный под linux x32) и общение продолжилось там:

Сказ о том как мой код за свой выдавали и пытались его продать. Часть I: "Я отказывался, но меня уговорили и я делаль..." Разработка, Linux, Openwrt, Разоблачение, Длиннопост, Обман
Сказ о том как мой код за свой выдавали и пытались его продать. Часть I: "Я отказывался, но меня уговорили и я делаль..." Разработка, Linux, Openwrt, Разоблачение, Длиннопост, Обман
Сказ о том как мой код за свой выдавали и пытались его продать. Часть I: "Я отказывался, но меня уговорили и я делаль..." Разработка, Linux, Openwrt, Разоблачение, Длиннопост, Обман
Сказ о том как мой код за свой выдавали и пытались его продать. Часть I: "Я отказывался, но меня уговорили и я делаль..." Разработка, Linux, Openwrt, Разоблачение, Длиннопост, Обман
Сказ о том как мой код за свой выдавали и пытались его продать. Часть I: "Я отказывался, но меня уговорили и я делаль..." Разработка, Linux, Openwrt, Разоблачение, Длиннопост, Обман
Сказ о том как мой код за свой выдавали и пытались его продать. Часть I: "Я отказывался, но меня уговорили и я делаль..." Разработка, Linux, Openwrt, Разоблачение, Длиннопост, Обман
Сказ о том как мой код за свой выдавали и пытались его продать. Часть I: "Я отказывался, но меня уговорили и я делаль..." Разработка, Linux, Openwrt, Разоблачение, Длиннопост, Обман

вот тот самый лог (log3.txt) первой удачной загрузки ядра: https://pastebin.com/rkATX0qr

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

На этом первую часть закончу и подытожу: Не обещая ничего стороннему человеку, не имея на руках железку я за 2 дня набросал поддержку OpenWrt/Lede с удачным запуском ядра - на самом деле это большая часть того что нужно.

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

Показать полностью 12
[моё] Разработка Linux Openwrt Разоблачение Длиннопост Обман
14
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии