LINUX.ORG.RU
ФорумTalks

Мой роутер

 ,


1

2

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

Запускается через DOS, но весь сетевой стек, начиная с драйвера сетевух (их там 4 штуки, назывались вроде dlink 520, по факту VIA Rhine II), менеджер памяти, движок кооперативной многозадачности, псевдографический оконный интерфейс и базовые утилиты типа шелла, телнета, сниффера и http-браузера — самописные в виде монолитного бинарника на турбо-паскале + ассемблере, местами 32-битном.

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

Фотография

Перемещено hobbit из workplaces

★★★★★

Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от NyXzOr

Разные есть, но в целом они не больше чем этот корпус, некоторые меньше.

firkax ★★★★★
() автор топика

Запускается через дос, но весь сетевой стек, начиная с драйвера сетевух (их там 4 штуки, назывались вроде dlink 520, по факту VIA Rhine II), менеджер памяти, движок кооперативной многозадачности, псевдографический оконный интерфейс и базовые утилиты типа шелла, телнета, сниффера и http-браузера - самописные в виде монолитного бинарника на турбо-паскале + ассемблере, местами 32-битном.

Это на грани шизофрении, но если ты это реально «самонаписал»,то мое уважение.

Для подобных задач (был) и есть хороший дистрибутив Linux Router Project https://en.wikipedia.org/wiki/Linux_Router_Project, который аккурат помещался на дискетку и на «говножелезе» роутил фильтровал пакетики на маленькую сеть.

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

gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 2)
Ответ на: комментарий от gagarin0

Почему шизофрении? Написать самому проще чем проводить аудит линукса или ещё чего-то огромного (да и не нужно там огромное, как видно), а мне хотелось знать что там нет уязвимостей. Первоначальное назначение этого софта было hw-файрволл который точно без закладок и выполняющий ровно то что хочу я. Правда остаётся возможность того, что умные закладки в проце/материнке скооперируются с умными закладками в сетевухах и начнут гнать трафик мимо моего кода, но тут уж ничего не поделать (кроме открытия своего завода микросхем). Именно поэтому оно на дискретных сетевухах, а не какая-то интегрированная плата с кучей готовых интерфейсов.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Написать самому проще чем проводить аудит линукса или ещё чего-то огромного

а мне хотелось знать что там нет уязвимостей

Правда остаётся возможность того, что умные закладки в проце/материнке скооперируются с умными закладками в сетевухах и начнут гнать трафик мимо моего кода

а не какая-то интегрированная плата с кучей готовых интерфейсов.

а вот это уже реальная шиза

gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 1)

весь сетевой стек, начиная с драйвера сетевух (их там 4 штуки, назывались вроде dlink 520, по факту VIA Rhine II), менеджер памяти, движок кооперативной многозадачности, псевдографический оконный интерфейс и базовые утилиты типа шелла, телнета, сниффера и http-браузера - самописные в виде монолитного бинарника на турбо-паскале + ассемблере, местами 32-битном

Ох, мамочки! Какой-то TempleOS :D

Оставшийся ассемблер - 16 бит или 64?

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от firkax

а мне хотелось знать что там нет уязвимостей

Наверняка есть! Но о них не так просто узнать, кодов-то ни у кого (кроме тебя) на руках нет

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)

Исходники выкладывать планируется?

vbcnthfkmnth123 ★★★★★
()
Ответ на: комментарий от gagarin0

Допустим. А шиза тут причем? Ты веруешь, что в аппаратуре нет закладок, а всех, кто почему-то не исповедует твоей веры, объявляешь шизиками? И тебе при этом глубоко пофиг на реальные факты абсолютно реальных закладок, в твоем мире ничего подобного невозможно. Я правильно понял?

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от Dimez
Programmer Terry A. Davis (1969–2018) began experiencing regular manic episodes in 1996, leading him to numerous stays at mental hospitals. Initially diagnosed with bipolar disorder, he was later declared schizophrenic and remained unemployed for the rest of his life.
gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 1)
Ответ на: комментарий от Manhunt

Ох, мамочки! Какой-то TempleOS :D

Не, TempleOS намного более всеобъемлюще сделано, тут всё-таки основная функция - сетевая, а остальное бонусом.

Оставшийся ассемблер - 16 бит или 64?

16, турбо-паскаль же.

32 затем чтоб нормально сетевые буферы хранить в 32-битной памяти - это быстрее. А всё остальное к скорости совсем нетребовательно.

firkax ★★★★★
() автор топика
Ответ на: комментарий от Zhbert

Линукс при том, что клиенты к этому роутеру - линуксы и фрибсд. А вообще меня кто-то в другой теме попросил фотку и я другого места не нашёл.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

а мне хотелось знать что там нет уязвимостей

Ты пишешь большие куски кода без уязвимостей?

Я имею ввиду вот это: «но весь сетевой стек, начиная с драйвера сетевух (их там 4 штуки, назывались вроде dlink 520, по факту VIA Rhine II), менеджер памяти, движок кооперативной многозадачности, псевдографический оконный интерфейс и базовые утилиты типа шелла, телнета, сниффера и http-браузера - самописные в виде монолитного бинарника на турбо-паскале + ассемблере, местами 32-битном»

hw-файрволл

С чего ты решил, что это hw-файрволл? Это обычный sw-файрволл, учитывая VIA Rhine II.

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)
Ответ на: комментарий от linuxuser112

интернет по телефоному кабелю (dlink)

С чего ты решил, что «по телефонному кабелю»? VIA Rhine II - 100mbps сетевые карты почти 20летней давности.

Dimez ★★★★★
()
Ответ на: комментарий от Dimez

Ты пишешь большие куски кода без уязвимостей?

Пишу (если что, хоть бинарник и моноплитный, но оно модульное через ООП, каждая «прога» - отдельный объект). Ну ладно, тут ещё можно заявить будто я недостаточно компетентен для такого и спорить, но чего я точно не делаю так это не встраиваю намеренные бекдоры.

С чего ты решил, что это hw-файрволл? Это обычный sw-файрволл, учитывая VIA Rhine II.

С того что это отдельная железка, на которую ОС компов влиять не может.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от linuxuser112

А, adsl модем dlink, точно слона то я и не приметил :)

Кстати, в нём намного, очень намного более вероятны случайные или намеренные бэкдоры (ибо длинк такой длинк), чем в PC общего назначения.

Dimez ★★★★★
()
Ответ на: комментарий от Dimez

Согласен. Вот как раз чтоб дырявый dlink изолировать от дырявого чего-то ещё (и не дать им сообща лазить в инет без спросу) и нужен файрволл посередине. А сам длинк можно считать частью провайдерского оборудования, которое по ту сторону провода.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 3)
Ответ на: комментарий от firkax

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

А сам длинк можно считать частью провайдерского оборудования

Нет, нельзя.

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)
Ответ на: комментарий от firkax

С того что это отдельная железка,

А где это не отдельная железка? Встроенная в мать сетевуха - тоже логически отдельная железка.

на которую ОС компов влиять не может.

С чего это ты такое решил? :) Но ок, почему это с твоей ТЗ hw firewall?

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)
Ответ на: комментарий от firkax

разве тот dlink обязателен? adsl хоть в комп можно впихнуть, но нужно сетевую карту. Не знаю, но с оптикой так не работает, провайдер уже должен давать коробочку)

linuxuser112
()
Ответ на: комментарий от Dimez

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

Да, написал кучу кода и доволен. Потому что этот код на 100% отражает мои потребности, а не как-то адаптирован под них. Кроме того что он безопаснее, он ещё и не отягощён всякими ненужными (на мой взгляд легаси) сетевыми понятиями и позволяет использовать все 8 адресов из /29 сети без траты трёх из них на всякую чушь. А так же там по-другому устроен роутинг (номер интерфейса - неотъемлемая часть айпи-адреса, его можно переписать в ходе обработки входящего соединения но только в явном виде), что лично мне для поставленных задач удобнее и безопаснее чем традиционный динамический через общесистемные таблицы.

А сам длинк можно считать частью провайдерского оборудования

Нет, нельзя.

Почему это?

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от linuxuser112

adsl это телефонный кабель, куда я его в комп всуну? Возможно бывают pci adsl-модемы но суть не изменится.

firkax ★★★★★
() автор топика
Ответ на: комментарий от Dimez

Причём тут сетевуха? Обычный файрволл это код в ядре, на том же компе где и софт, который он должен изолировать. Если софт как-то получит рута, он этот файрволл легко перенастроит, либо вообще через дыру в ядре (если и готовые - bpf) будет слать любые пакеты мимо файрволла.

С чего это ты такое решил?

С того что у него нет внешнего апи для конфигурации, куда кто бы то ни было мог бы подключиться. Только через физическую консоль. Можно было бы сделать через отдельный management интерфейс ещё но надобности для дома в таком нет.

Но ок, почему это с твоей ТЗ hw firewall?

Потому что отдельная железка, написал же уже.

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

Потому что этот код на 100% отражает мои потребности

Синдром начинающего программиста, неоднократно проходили :) Только ты явно не начинающий программист, видимо, наоборот, кончающий :(

Кроме того что он безопаснее

Да ну нет же.

позволяет использовать все 8 адресов из /29 сети

У тебя врядли реальная подсетка /29 приходит на adsl-модем, скорее всего, ты экономишь адреса в приватной сетке.

Dimez ★★★★★
()
Ответ на: комментарий от firkax

Причём тут сетевуха?

Потому что отдельная железка, написал же уже.

Шикарное объяснение, вопросов больше не имею.

Dimez ★★★★★
()
Ответ на: комментарий от Dimez

Синдром начинающего программиста, неоднократно проходили :) Только ты явно не начинающий программист, видимо, наоборот, кончающий :(

Что за левые наезды?

Основному коду кстати около 15 лет, доработки с тех пор были (в оригинале сетевуха ne2000 была, via потом дописал, и ещё иногда всякие мелочи, даже помню баг с чексуммой tcp был где пакет дропался с вероятностью 1:64к - из-за невнимательного чтения rfc), но практика показывает что работает так как надо.

Да ну нет же.

С чего это нет?

У тебя врядли реальная подсетка /29 приходит на adsl-модем, скорее всего, ты экономишь адреса в приватной сетке.

Как оно устроено со стороны провайдера - я не знаю. У меня есть pppoe-подключение, в которое провайдер шлёт все пакеты у которых адрес назначения из этой сети. Способ, которым эти адреса предлагал утилизировать сам провайдер, заключался в создании в них сети с адресом сети, адресом гейта и бродкастом, что на мой взгляд совсем не оптимально.

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

С чего это нет?

С того, что у тебя с логикой беда. Нельзя назвать код «более безопасным» без внешнего аудита. Все твои тезисы можно заменить «я его весь писал, поэтому мне это так кажется», это будет хотя бы честнее.

Как оно устроено со стороны провайдера - я не знаю.

ЧиТД, собственно… Экономия на спичках.

Dimez ★★★★★
()
Ответ на: комментарий от firkax

Вот что не так:

Вопрос: почему ты считаешь это hw файрволом?
Ответ: потому-что это отдельная железка
Вопрос: а где не отдельная железка? И всё-таки, почему ты считаешь это hw файрволом?
Ответ: потому-что это отдельная железка.

«Ты не отвечаешь на мой ответ» (с)

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 2)
Ответ на: комментарий от Dimez

Ты бы прочёл не только последний абзац того сообщения, но и первый, там был ответ. Хорошо, скопирую его сюда ещё раз:

Обычный файрволл это код в ядре, на том же компе где и софт, который он должен изолировать. Если софт как-то получит рута, он этот файрволл легко перенастроит, либо вообще через дыру в ядре (если и готовые - bpf) будет слать любые пакеты мимо файрволла.

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

Твой файрвол тоже код, но не в ядре, на том же компе, где и софт, который он должен изолировать. Да, если вдруг злоумышленник получит рута в твоём софте, то он, скорее всего, сойдёт с ума, но это не безопасность, это security by obscurity.

Так почему же ты считаешь свой файрвол hw файрволом?

Ладно, облегчу задачу. hw роутером/файрволом называют железку, где аппаратно (hw) разгружается либо nat, либо правила фильтрации, либо и то и другое одновременно (если роутер совмещён с файрволом)

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)
Ответ на: комментарий от Dimez

Тоже код, да. Ты hw-файрволлом назовёшь только фильтр на жёсткой логике? Я даже не знаю бывают ли такие.

на том же компе, где и софт, который он должен изолировать

В том и дело что не на том же. Сам себя он не изолирует, он изолирует другие железки.

Да, если вдруг злоумышленник получит рута в твоём софте

И рута там нет, как и системы локальных аккаунтов и доступов вообще. Единственный способ там что-то получить - это найти RCE в коде сетевого стека. Ну, если найдёт - да, получит сразу всё. Но у меня имеется мнение что RCE там нет. Да, без внешнего аудита.

hw роутером/файрволом называют железку, где аппаратно (hw) разгружается либо nat, либо правила фильтрации, либо и то и другое одновременно

Ну, это не единственное значение данного термина, хотя наверно и правда существующее. Ты имеешь ввиду hw в контексте производительности, а я писал про изоляцию и безопасность. Если введёшь «hardware firewall» в поисковую систему и походишь по предложенным ссылкам - то, подозреваю, в подавляющем большинстве случаев там речь будет именно про аппаратную изоляцию файрволла от приложения, а не про аппаратные ускорители его работы. Вторые, если и будут упомянуты, то бонусом к первому (в специализированную железку их проще засунуть чем в бытовой комп).

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от Dimez

Потому что этот код на 100% отражает мои потребности

Синдром начинающего программиста, неоднократно проходили :) Только ты явно не начинающий программист, видимо, наоборот, кончающий :(

Тут перед нами практический пример того, как индивидуальный пользователь мог бы контролировать свои вычисления. Современное «взрослое» СПО слишком объемное, чтобы индивидуальный пользователь мог бы его по-настоящему, на серьезных щщах, контролировать (или хотя бы просто в нём разобраться детально); это челлендж для крупных контор и государственных институтов, но никак не для независимого одиночки.


Кроме того что он безопаснее

Да ну нет же.

Да ну да же. Пока кода (ни бинарного, ни исходного) у атакующего на руках нет, пытаться что-то там вслепую хакать - занятие довольно унылое. Если, конечно, код не кишеет совсем уж детскими ошибками..

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от firkax

Ну, это не единственное значение данного термина, хотя наверно и правда существующее. Ты имеешь ввиду hw в контексте производительности, а я писал про изоляцию и безопасность. Если введёшь «hardware firewall» в поисковую систему и походишь по предложенным ссылкам - то, подозреваю, в подавляющем большинстве случаев там речь будет именно про аппаратную изоляцию файрволла от приложения, а не про аппаратные ускорители его работы. Вторые, если и будут упомянуты, то бонусом к первому.

Ха, вот это да! Похоже, у меня вскрылся некий вариант синдрома утёнка :)

Да, ты прав. Я посмотрел, у всех производителей подобного софта и/или оборудования (checkpoint, fortinet, palo alto, etc) hardware firewall - это любая отдельная железка, вне зависимости от того, имеется ли в ней hw разгрузка или не имеется. Интересно, откуда я это взял.

Т.е. условный комп с линуксом/фряхой/etc с двумя интерфейсами, в один входит интернет, из другого - выходит интернет к серверу, считается аппаратным файрволом (да блин, даже с виндой (SIC)!)

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 3)
Ответ на: комментарий от Manhunt

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

Ну да, классическая эталонная «security by obscurity» :)

P.S. А, ещё «синдром неуловимого Джо» :)

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)
Ответ на: комментарий от gagarin0

Для подобных задач (был) и есть хороший дистрибутив Linux Router Project https://en.wikipedia.org/wiki/Linux_Router_Project, который аккурат помещался на дискетку и на «говножелезе» роутил фильтровал пакетики на маленькую сеть.

Вьетнамские флешбеки! В конце 90х в одном месте крутился роутер с дискетки, почти полгода :)

Dimez ★★★★★
()

Теперь понятно почему не используешь vpn. Или прокси. Потому что еще не написал, да?

NyXzOr ★★★★
()
Ответ на: комментарий от Dimez

Там загрузочный дос, ramdrive.sys, config.sys, autoexec.bat, arj.exe, fs.arj, и мой .exe. В fs.arj загрузочные скрипты и конфиги роутера, которые на старте распаковываются на рамдиск. Там много мелких файлов, по отдельности они бы округлялись до 512 байт и намного дольше читались, ну и например отрабатывать команду ./reboot в шелле роутера можно уже без обращения к дискете (это завершение всех «процессов» и запуск их заново), или вносить временные правки в них текстовым редактором, встроенным туда же, не портя постоянный конфиг.

Думал реализацию файловой системы тоже внутрь перенести но как-то забил в итоге.

firkax ★★★★★
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)