LINUX.ORG.RU

Сообщения Spoofing

 

Если очень хочется: QEMU или standalone-PC?

Форум — General

После работы чтобы отвлечься от забот, катаю пару каток в StarCraft II, по выходным в GTA Online с ребёнышем, каждый на своём аккаунте. В Windows бесспорно проще, запустил и играешь. И тут меня осянило, что можно же всё это дело в виртуалку запихнуть, и будет по заверениям что-то вроде от 95% производительности, не велика потеря, зато удобно: один мощный ПК, ресурсы которого не простаивают, а используются под виртуалки и самые разные задачи. А заодно вернусь обратно на десктопный линукс в качестве основной ОС.

Однако линукс быстро вернул меня с небес на землю, при первой же загрузке с RX 578 на борту, зависнул намертво сообщив fb: switching to radeondrmfb from EFI VGA. Ага, уже размечтался, как в линуксе «всё просто работает», думал, в сказку попал? И это только начало! Я ведь ещё даже не пытался пробросить GPU в виртуалку. Даже ПРОСТО загрузиться на ПК линукс уже не шмогла(с). CRUX 3.5, Linux 5.3.6. Меня как холодной водой окатило. Зачем я это делаю? Почему бы не продолжать использовать standlone-PC для игр под Windows? Тут тебе и никакой потери в производительности при нативном использовании железа, и решать постоянные проблемы в линукс никто не заставляет. Мдааа...

Ясное дело, мы так просто не сдаёмся, это всё ерунда, гугл в помощь, и все проблемы так или иначе решаются, вопрос в другом — стоит ли оно того, чтобы тратить время на их решение?

Кто использует Linux > QEMU > Windows для игр, оно ведь правда работает? И оно того стоит? 95% производительности от нативного железа достаточно чтобы не проседал FPS на хорошей железке? При этом, продолжая использовать Linux как основную ОСь. Или ну его нафиг?

Если всё заработает (в себе я не сомневаюсь, все проблемы решаемы), то было бы круто, воткнуть 3950X, тот что 16/32, который скоро выйдет, поставить на него пару-тройку виртуалок с оффтопиком и сделать одну игровую станцию на нескольких пользователей, ага... Ещё лучше, если существует какая-нибудь работающая технология, позволяющая играть удалённо (remote). А то всякие там VNC, RDP для этого явно не создавались.

Итого.

1. QEMU или standalone-PC для видеоигр?

2. Какими средствами можно играть удалённо?

 video games

Spoofing
()

Приколюхи grub2-efi или ЧЯДНТ?

Форум — Desktop

Как сделать чтобы /boot/efi/grub/grubx64.efi по-умолчанию ставил себя в /boot/efi/bootx64.efi?

Собираю ядро с EFI_STUB, сохраняю файл ядра arch/x86/boot/bzImage как /boot/efi/bootx64.efi (жыр32), и отныне система портируется простым dd с винта на винт, без перенастройки всяких там загрузчиков, потому что /boot/efi/bootx64.efi — это то, что как стандарт де-факто должен подхватывать любой UEFI-биос.

А вот grub2 копирует себя в /boot/efi/grub/grubx64.efi, затем ещё добавляет запись имени себя через efibootmgr в список для загрузки. Таким образом перенося систему на другую железку, которая ничего не знает про загрузчик grubx64.efi — она отказывается загружаться с диска. Нельзя так просто взять и перенести систему на другую железу, — там ещё надо будет с какого-нибудь накопителя загружаться и прописывать efibootmgr или переустанавливать grub2, grub-install делать. Не комильфо. Должно быть тупа dd.

Так вот, как грамотно установить grubx64.efi на место bootx64.efi? Хочу перейти на лишнюю прослойку в виде загрузчика, ну чтоб просто по-феншую было.

 ,

Spoofing
()

Бесконечно долго загружается ОС

Форум — General

Обновился CRUX 3.4 -> 3.5, теперь бесконечно долго загружается система, завтык происходит при запуске /etc/rc.d/sshd

Я уже и систему всю целиком переустановил, простым for i in /mnt/crux-iso/ports/core/*; do pkgadd -u $i; done, и ключи /etc/ssh/ssh_host_*_key{,.pub} удалил чтобы при запуске sshd сгенерировал их заново.

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

Для чистоты эксперимента я ещё не пробовал ставить CRUX 3.5 с нуля, без обновления поверх старого, но думаю что sshd можно вылечить и так.

 ,

Spoofing
()

Если закончились порты?

Форум — Admin
# dig -t A google.com
google.com.		299	IN	A	173.194.222.113
google.com.		299	IN	A	173.194.222.101
google.com.		299	IN	A	173.194.222.100
google.com.		299	IN	A	173.194.222.138
google.com.		299	IN	A	173.194.222.139
google.com.		299	IN	A	173.194.222.102

когда клиент создаёт TCP/IP-соединение, он же ведь занимает порт, так?

# ss -an
State		Recv-Q	Send-Q	Local Address:Port	Peer Address:Port
ESTAB		0	0	78.24.219.239:80	spoofing:59144

диапазон портов, надо полагать

# sysctl -a
net.ipv4.ip_local_port_range = 32768	60999

но ведь 6 * (60999 - 32768) = 169386 это мало? не? для всего мира?

или существует какое-то иное решение проблемы? я просто хочу расширить домашний Wi-Fi... что сделать? больше шлюзов добавить? ну ладно, порты закончатся на 192.168.1.1, будут порты браться для 192.168.1.2... а провайдер? он же выдаёт мне только один IP-адрес? приехали?

 

Spoofing
()

Могут ли сетевые карты работать как LAN-тестер?

Форум — Linux-hardware

Сабж. Того, что обжатый кабель^Wпатч-корд заводится на 1гбите вроде бы достаточно, но хотелось бы чуть более детальной информации, а вдруг что-то с ним не так. Или всё так, если он просто работает? Дешёвые китайские тестеры в пределах 2к выдадут не больше информации, чем собственно «просто работающая сеть», а какой-нибудь флюк за 10к очень дорохо.

 

Spoofing
()

> Это физически больно читать

Форум — Linux-org-ru

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

это интернет, здесь вам даже никто не запретит написать «дебил, б11@7ь», и расписать по пунктикам с чем вы в итоге не согласны. в чём же заблуждение юзера.

нет, просто удалим и всё. и это форум? и это нетехнические РАЗГОВОРЫ о Linux/Unix? говно, не форум.

@

 

Spoofing
()

Выделение HTTP в отдельный сетевой стек L4/L3

Форум — Talks

Доля чистого web-трафика в современном мире огромна относительно всего internet-трафика. Порог вхождения в разработку низкий. Никто не хочет писать desktop-standalone-приложения, все хотят разрабатывать сервисы онлайн без регистрации смс. Новые форумы, чаты, мессенджеры, всё это имеет под собой web-основу. Никто больше не хочет рисовать формочки в Delphi, все создают один единственный объект типа браузера для отображением своего сайта а-ля Steam. Ситуация ясна.

В то же время консорциум веб-разработчиков всеми способами бодается с TCP/IP-стеком, разрабатывая новейший HTTP2.

Почему бы тогда не взяться за разработку отдельного сетевого стека на уровне L4 (TCP, UDP) или даже L3 (IP)? Опуститься тремя уровнями ниже. Если TCP/IP им такой неидеальный. Знаю, это создаёт кучу проблем, ломанием всего того что уже работает, но не обязательно же ломать!

Сперва разработать приложение, имитирующее работу сетевого стека типа TCP... Но! Чтобы переход был плавный и незаметный, пускать его поверх TCP/IP. Вот как Onion-сети, i2p. Они ведь работают поверх TCP/IP? Такой же массовый HTTP3 запилить. А потом с очередным релизом браузеры просто массово перейдут на новый протокол, вместо транспортного приложения.

DNS? Сейчас это контролируется одной организацией, которая управляет всеми доменами первого/второго уровня, от этого суть не поменяется. Всё так же будет контролировать web-домены. Можно кстати начать с чистого листа, сделать отдельно web-домены и отдельно legacy-internet-домены. )))

Каждому клиенту можно будет выдавать уникальный идентификатор (вместо IP-адреса) на время веб-сессии! И привязывать его к сессионной куке на сайте, намного упрощает работу с пользователем. Будет проще отслеживать конечного пользователя и конечно же бороться с DDoS-атаками!

Ну что, даёшь HTTP3 пацаны? HTTP 3 != HTTP 3.0 (c)

 ,

Spoofing
()

Женат на Gentoo, а люблю CRUX

Галерея — Скриншоты

В преддверии скорого выпуска CRUX 3.5 потихоньку мониторю чего там новенького. А сам давно уже на Gentoo.

Gentoo как располневшая жена, хотя годы и берут своё, зато с ней не задумываешься о низменных вещах; сказано — сделано; мудрая женщина. В то время как CRUX — стройная и гибкая, юная леди, но требует внимания к себе, и вся прелеть в том, что вы сами захотите уделять ей это внимание и любоваться результатом.

На скриншоте Gentoo в качестве десктопа, уже знакомый вам FVWM и CRUX в качестве шлюза в интернет. Попутно пытаюсь подключить три монитора; на материнской плате имеются VGA/DVI/HDMI, процессор Pentium G4620 так же поддерживает 3 монитора, но xrandr ни в какую: xrandr: Configure crtc 0 failed.. Работают только два одновременно — или, или. Уж всё перепробовал, даже разрешение суммарное 640+640+640x480 на всех трёх выставлял, всё бестолку. Неужели придётся видеокарту с тремя DisplayPort приобретать? :(

>>> Просмотр (1920x1200, 178 Kb)

 , ,

Spoofing
()

Веб всё? Нейросети, ИИ, а дальше что?

Форум — Talks

Раньше Google (и другие компании) активно развивали веб, подарили нам Gmail, Google Plus, прелесть веб-технологий в их простоте реализации. Любой школьник мог себя противопоставить Google, я не говорю о выходе на тот-же уровень, но собрать на коленке всё тоже самое, что есть у Google, завести свою почту, вести блоги и тыды. Шло активное развитие веб. Где-то до середины 10-х годов веб оставался диковинкой и все в нём ковырялись.

А сейчас веб всё? Наигрались? Вплоть до того, что Google Plus закрывают, — фиг бы с ним, не в плюсаче дело. Передовая интернет-компания в мире не запускает новые продукты, не тратит ресурсы на развитие веб, а взяло новый курс на изучение нейросетей, развитие ИИ? Вместе с ними про ИИ и нейросети говорит всё АйТи сообщество, такие гиганты как nVidia, Intel занимаются производством и внедрением чипов в автомобильной промышленности, это всё круто, но условный Васян из Российской глубинки уже не в теме. Слишком высок порог вхожедния, как мне кажется, и в лучшем случае Васян научит свою нейросеть дорисовывать фрагменты картинок. Ну офигеть теперь! Васяну остаётся только наблюдать за всем этим со стороны и заносить по 100.000р за видеокарту в качестве доната на развитие технологий.

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

Васян оставшись на обочине жизни пойдёт снова гнать спирт из браги по желобкам в -50° мороз где-то в Сибирской глубинке.

Йэх...

 

Spoofing
()

Рынок мобильных устройств обогнал ПК? Или так кажется...

Форум — Talks

Смотрю ютуб, со всех каналов трубят про первые 5G смартфоны, проходят выставки, где техноблоггеры тестируют 5G внутри помещений (т.е. пока ещё не внедрили опсосы). Но как же ПеКа-бояре? Про нас совсем забыли? Почему в 2019 году провайдеры ещё используют PPPoE и долбятся в соточку (100мбит/сек)? Где мой fiber-to-the-home? Чего уж там, если совсем недавно попросил второй интернет и мастер посчитал важным урезать весь потанцевал, таким образом пытаясь сказать, что о гигабите можешь даже не мечтать.

С другой стороны если посмотреть на опсосов, которые как я утверждаю, якобы обогнали десктопный сегмент устройств, — опсосы у нас точно так же слабо развиты примерно на уровне тех же провайдеров с PPPoE. Вот конкретно у нас даже 4G+ (300мбит) нет, 4G+ только в Красноярске. А про 5G в рамках целой страны можно пока не заикаться, полагаю. Но создаётся ощущение что все дружно забили на развитие ЛВС, никто ничего не собирается модернизировать и улучшать.

Интересно было бы узнать как обстоят дела с интернетами в другом запределье МКАД. Какие максимальные скорости предоставляют местечковые провайдеры, и какую альтернативу им могут предложить опсосы?

 internets

Spoofing
()

Телеметрия в Linux

Форум — Desktop

Установил Gentoo

В # locale всё POSIX, никаких ru_RU и подавно нет.

Собсна, откуда чистый Mozilla Firefox при первом запуске узнаёт что я из RU, предлагая мне в качестве закладок по-умолчанию поисковик Yandex, а не Google, социальную сеть VKontakte, а не Facebook, социальную сеть Odnoklassniki, а не MySpace?

Известно, откуда. Доколе!?

 

Spoofing
()

'app-editors/nano' (virtual/editor) is part of your system profile.

Форум — General

Я догадываюсь, по какой причине в Gentoo по-умолчанию nano: чтобы попросту избежать холиваров vim vs emacs (ведь всем известно что vim лучший азаза).

По-умолчанию установщик emerge -a vim предлагает установить 7 не нужных пакетов, но к счастью есть USE-флаг minimal, так что включив echo "app-editors/vim minimal" >> /etc/portage/package.use/vim таки установился один единственный vim. Ну и до кучи сделал его редактором по-умолчанию: eselect editor set /usr/bin/vi.

Теперь можно наконец забыть про nano, но не тут-то было. emerge -ac говорит что nano теперь orphan и больше никому не нужен, но при этом тут-же предупреждает что его удаление может сломать систему.

!!! 'app-editors/nano' (virtual/editor) is part of your system profile.
!!! Unmerging it may be damaging to your system.

Это конечно здорово, но тут прям какое-то деление на ноль. EDITOR/VISUAL=/usr/bin/vi, nano никем не используется, почему система по прежнему говорит что его нельзя безопасно удалить? Хоть и предлагает это сделать.

not-a-bug, но это следует пофиксить, однако по запросу «nano» в багтрекере gentoo такой проблемы не нашёл, но такая проблема и такой вопрос возник не у меня одного: http://www.gentoo.ru/node/23285

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

К сожалению, Gentoo — это не про минимализм. Установка одного безобидного пакета приводит к дополнительной установке всякого мусора, которую не всегда можно разрулить USE-флагами, как в случае с minimal, но даже в этом случае USE-флаги не являются панацеей т.к. не все пакеты нужны в «minimal». В итоге что имеем, USE="-*", а дальше через package.use каждый пакет настраиваем руками, кхе-кхе.

 

Spoofing
()

Как установить последнее ядро в Gentoo?

Форум — Linux-install

Установил Gentoo, выбрал ветку [22] default/linux/amd64/17.0/no-multilib (stable) *, при запросе emerge gentoo-sources оно качает ядро 4.14, но я бы предпочёл использовать последнее ядро.

Допустим, при использовании стабильной ветки оно предлагает по-умолчанию стабильное ядро. Но можно же указать версию пакета! Однако emerge =sys-kernel/gentoo-sources-4.20.3 хочет чтобы я добавил эту строчку в «package.accept_keywords», мне это кажется не очень хорошим вариантом т.к. новые версии ядра выходят часто чтобы постоянно редактировать этот файл, и так достаточно того, что я указываю ему при установке какую версию хочу. Но оно в упор не хочет его ставить.

Попробовал переключиться на другую ветку [37] default/linux/amd64/17.1/no-multilib (dev), но резльтутата это не дало, по прежнему не могу тупо скачать последнюю версию ядра. Ещё он предлагает использовать опцию --autounmask-write, типа чтобы он сам дописывал в конфиг какую версию можно качать. Этот вариант тоже не по душе, т.к. что-то мне подсказывает, что за этим файлом в дальнейшем никто следить не собирается, и там наберётся огромный список пакетов, в том числе устаревших спустя N лет.

В общем как это сделать правильно? По-гентовски? Гугл не помог.

 

Spoofing
()

CRUX 3.5 (на самом деле нет)

Форум — Talks

Здравствуйте мои маленькие любители авиационного спирта! Уже не за горами релиз дистрибутива для настоящих суровых мужиков, на данном этапе известно о нём немногое, но если заглянуть в git, то можно узнать вот что: https://crux.nu/gitweb/?p=ports/core.git;a=shortlog;h=refs/heads/3.5

# ports -d
Collection  Name           Port      Installed
core        bash           5.0-1     4.4.23-1
core        binutils       2.31.1-1  2.29.1-1
core        db             5.3.28-2  5.3.28-1
core        gcc            8.2.0-1   7.4.0-1
core        glibc          2.28-1    2.27-3
core        glibc-32       2.28-1    2.27-3
core        openssl        1.1.1a-1  1.0.2q-1
core        readline       8.0-1     7.0.5-1

С обновлением пакетов всё понятно.

Если провести сравнение 3.4 и 3.5, то пока ещё ничего небыло привнесено или удалено из core, но в планах уже известно, что pkg-config будет заменён на pkgconf, как это было сделано в Arch Linux. https://crux.nu/bugs/index.php?do=details&task_id=1667&tasks=all&...

Загрузчик lilo вынесут из core в opt, и это правильно, потому как UEFI шагает по планете: тому нужен только жыр32 раздел и CONFIG_EFI_STUB=y ядро. А так же: Intel to Remove Legacy BIOS Support from UEFI by 2020. Ощщем всё правильно сделали. Загрузчики не нужны.

firefox-bin уже обсудили.

На сегодня это пока все новости. Буду держать в курсе. 8-)

 

Spoofing
()

Сборочка Firefox в CRUX ВСЁ

Форум — Talks
    firefox 63 will be the last firefox version released by me.
    Starting from firefox 64 I will replace firefox with the official binary build.
    
    This will have multiple advantages:
    We will avoid the endless buildtime horrorshow that has forced us to depend
    on stuff like rust, clang and starting with firefox 64: nodejs, which was my
    personal breaking point.
    
    List of notable obsolete dependencies include rust, clang and autoconf-2.13.

ребятам из CRUX надоело тащить на себе в меру (нет) упитанную лису, которая с возрастом всё жирнее и жирнее.

задумываюсь о том чтобы переходить на Gentoo, более монструозный комбайн по сравнению с CRUX, ведь CRUX не может жить вечно в таком виде, в каком его задумывали авторы, как в случае с firefox «обстоятельства так сложились»(с), в конце концов, сами авторы не вечны. а потом опять начнётся какая-нибудь свистопляска а-ля «versus systemd», которая в других дистрибутивах уже устаканилась лет дцать назад (к тому моменту). в этом смысле Gentoo жирный мамонт, который существует пару десятков лет, у Gentoo огромное коммунити и вытворять что хочу там попросту не дадут (наверное).

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

 ,

Spoofing
()

Зачем вам 10Gbps локальные сети, если

Форум — Linux-hardware

если у вас шина SATA-3 всё ещё 6Gbps?

 

Spoofing
()

Как лучше отдавать трафик виртуалкам?

Форум — Admin

В прошлом треде [Как взломать компьютер без адреса в сети?] мне указали на ошибки, что затея вобщем-то фейловая. Хотя изначально, вот прям в самом-самом начале, я планировал что будет виртуалка получать IP и сидеть в интернете, а другие виртуалки по соседству будут пускать различные сервисы, ну а хост-система вообще никак в этом деле не участвовать, тобишь даже локального доступа из какой-то виртуалки на хост быть не должно. Тогда хост выполняет роль «танка». Да.

В общем ладно. Вернёмся к тому с чего начали. Пусть хост сидит в интернете и сам тогда раздаёт интернет виртуалкам.

Остался открытым вопрос, как лучше форвардить трафик с хоста на виртуалки? Известно как, важнее знать как лучше. В бридже каждая виртуалка будет видиться как обычное устройство внутри локалки.

               ----------
              | Интернет |
               ----------
                   |
                   |
                --------
               |  ПеКа  | 192.168.0.1
                --------
                   |
                   | 192.168.0.0/24 br0
       ____________|_______________
      |            |               |
  ----------     ----------     ---------
 |          |   |          |   |         |
 |   ПеКа   |   |   ПеКа   |   |   KVM   |
 |          |   |          |   |         |
  ----------     ----------     ---------
                                    |
  192.168.0.2    192.168.0.3    192.168.0.4
                                    |
                                ----------
                               |          |
                               |    VM    |
                               |          |
                                ----------
                                192.168.0.5 tap0 master br0

Первый вариант

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.0.5:80

Когда мы тупо форвардим всё как есть со своего порта на порт нужного хоста. Работает на уровне ядра и всё круто.

Второй

iptables -t nat -A PREROUTING -p tcp --dport 1:65535 -j REDIRECT --to-ports 80

Форвардить весь трафик на 80 порт нашего же хоста, а у нас будет крутиться nginx который в зависимости от... будет сам форвардить сырой трафик далее к нужным виртуалкам. Работает на уровне пользователя, чуть помедленее, но например, на этом уровне можно настроить обработку SSL-сертификатов, чтобы это делал nginx, а далее к виртуалкам уже пропускал чистый трафик... Из этого метода можно извлечь свои плюшки, nginx может балансировать трафик и кучу всякого такого.

Третий

Ваш вариант, предложите как лучше форвардить трафик на виртуалки. Спасибо.

 , ,

Spoofing
()

ЛОР сродни игровому порталу

Форум — Talks

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

GNU/Linux, *BSD и другие системы становятся «целью в себе», и вместо того чтобы посвящать время MMORPG, люди отдают его жизни и творчеству в этой ОС.

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

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

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

 

Spoofing
()

Как взломать компьютер без адреса в сети?

Форум — Admin

Картина для привлечения внимания: http://dump.bitcheese.net/files/vaxurut/scrot.png

И так, есть домашний ПК, есть провайдер, шнур с интернетом от которого идёт прямо в ПК. Наш ПК в сети. Однако захотелось сделать так, чтобы наш ПК небыл в сети, а в сети была _виртуальная машина_, которая уже затем раздаёт интернеты на наш ПК и другие умные устройства. Таким образом, наш ПК не имея адреса в сети, становится полностью неуязвимым. Поправьте, если ошибаюсь. А ошибаться я могу, ну вы же знаете, админы подкроватных локалхостов, куда уж нам...

В общем для реализации потребуется qemu и какой-нибудь дистрибутив по вкусу, я выбрал конечно CRUX.

Нужно ли объяснять процесс установки?

wget http://ftp.morpheus.net/pub/linux/crux/latest/iso/crux-3.4.iso
mount crux-3.4.iso /mnt/crux
dd if=/dev/zero of=crux.raw bs=1M count=1000
losetup /dev/loop0 crux.raw
fdisk /dev/loop0 # или fdisk crux.raw
# n
# enter
# enter
# enter
# w
mount /dev/loop0p1 /mnt/rootfs # или mount -o offset=$((512 * 2048)) crux.raw
mkdir -p /mnt/rootfs/var/lib/pkg
touch /mnt/rootfs/var/lib/pkg/db
for pkg in /mnt/crux/crux/core/*; do pkgadd --root /mnt/rootfs/ $pkg; done
echo "/dev/sda1 / ext4 defaults 0 1" >> /mnt/rootfs/etc/fstab

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

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.20.tar.xz
tar xf linux-4.20.tar.xz
cd linux-4.20
make defconfig
make -j$(nproc) all
env cp arch/x86/boot/bzImage /mnt/rootfs/boot/vmlinuz
env INSTALL_MOD_PATH=/mnt/rootfs make modules_install
sync # или umount /mnt/{crux,rootfs}

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

qemu-system-x86_64 \
	-machine type=pc,accel=kvm \
	-cpu host \
	-boot order=c \
	-drive file=crux.raw,format=raw \
	-nic tap,mac=<Ваш MAC-адрес> \	# это будет WAN-порт
	-nic tap \			# это будет LAN-порт
	-kernel /mnt/rootfs/boot/vmlinuz -append "root=/dev/sda1"

Как видно из параметров, у виртуальной машины будет две сетевые карты, одна — клонирует мак-адрес вашей сетевой карты с провайдером, она же выполняет роль WAN-порта в роутере, вторая будет служить для раздачи интернетов, она же выполняет роль LAN-порта в роутере.

Напомню, что от интернетов сетевую карту на вашем ПК надо отключить, просто лишить её IP-адреса, оставив в режиме UP.

ip addr del xx.xx.xx.xx dev enp1s0u4h3l2p4a3q4t5b9d0n7m2x3 # лёня привет

Дальше всё просто. При помощи первого моста (linux bridge) мы настроим общение между вашей физической сетевой картой и первой сетевой картой вирт. машины, а при помощи второго моста мы настроим общение между всеми условными хостами и второй сетевой картой вирт. машины, которая интернет раздаёт. Считайте что бридж это коммутатор, свич, который тупо пересылает пакеты.

# включили первый свич
ip link add name br0 type bridge
ip link set br0 up

# в один порт воткнули кабель провайдера
ip link set enp1s0 master br0
ip link set enp1s0 up

# в другой порт воткнули кабель от виртуалки
ip link set tap0 master br0
ip link set tap0 up

Таким элементарным образом настроено общение между кабелем провайдера и первой сетевой картой виртуальной машины, где вы указывали свой мак-адрес. Прямо сейчас, вы можете настроить интернет на виртуальной машине, так, как если бы его настраивали на обычном ПК, и этот интернет будет работать. Если у провайдера IPoE — просто dhcpcd enp0s3, если PPPoE, настраиваем на виртуалке PPPoE, всё как обычно в общем.

Если у вас какой-то другой интерфейс, куда приходит интернет, например это может быть не сетевая карта, а USB-модем, то соответственно в порт так называемого «свича» втыкаем кабель с этим интерфейсом, — ip link set usb0 master br0.

И ещё один свич, который будет связывать нас и второй интерфейс сетевой карты виртуальной машины, раздающий интернеты.

# включили второй свич
ip link add name br1 type bridge
ip link set br1 up

# в один порт воткнули кабель виртуальной машины раздающий интернеты
ip link set tap1 master br1
ip link set tap1 up

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

На этом настройка ПК закончена, переходим к виртуальной машине. Собственно, там надо настроить интернеты на первом интерфейсе enp0s3, как это сделать — точно так же, как вы обычно настраиваете их на своём ПК. В случае IPoE, повторюсь, достаточно dhcpcd. Если интернеты настроены, о чём ping linux.org.ru радостно сообщает, теперь останется лишь настроить раздачу интернетов на вторую сетевую карту виртуальной машины.

Переходим к настройке виртуальной машины.

Поднимем интерфейс на второй сетевой карте, который будет обслуживать 192.168.0.0/24 подсеть и раздавать туда IP-адреса.

ip addr add 192.168.0.1/24 dev enp0s4 broadcast +
ip link set enp0s4 up

Установим DHCP в CRUX

prt-get depinst dhcp

Настроим DHCP

# cat > /etc/dhcpd.conf << EOF
authoritative;

default-lease-time	600;
max-lease-time		7200;

ddns-update-style	none;

subnet 192.168.0.0 netmask 255.255.255.0 {
  option domain-name "VirtualMachine";
  option domain-name-servers 8.8.8.8, 8.8.4.4;
  option routers 192.168.0.1;

  range 192.168.0.2 192.168.0.254;
}
EOF

Запустим DHCP

/etc/rc.d/dhcpd start

Ну и настроим раздачу интернетов.

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o enp0s3 -j MASQUERADE

На этом всё. И так...

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

Виртуальная машина получает интернеты тем или иным образом на сетевую карту enp0s3, затем раздаёт их на вторую сетевую карту enp0s4, откуда кабель идёт на второй свич br1.

br1 — теперь ваш доступ в интернет.

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

dhcpcd br1

И вуа-ля! Мы в интернете через виртуальную машину, при этом наша хост-система недосягаема «из вне».

TL;DR

Возвращаясь к картинке http://dump.bitcheese.net/files/vaxurut/scrot.png, поясню что на ней. Слева направо: выхлоп красивого ifconfig на хост-системе. Далее окошечко с виртуальной машиной и чуть ниже SSH-подключение к ней же, с выхлопом ifconfig уже самой виртуалки. Далее тестируем подключение к br1, тестируем получение локального IP-адреса, тестируем подключение к интернету и что реально всё работает! Ну а в самом низу просто запуск виртуалки. Да.

Замечания и предложения приветствуются! Всем спасибо.

Перемещено leave из talks

 ,

Spoofing
()

Мы дадим вам enp1s0, говорили они, имена интерфейсов зафиксируются, говорили они

Форум — General

А потом втыкаешь видеокарту и enp1s0 становится enp2s0, и всё равно всё ломается.

Ну и. Ради чего? Всю жизнь жил с net.ifnames=0 в CONFIG_CMDLINE и дальше буду жить.

 

Spoofing
()

RSS подписка на новые темы