Полезная для начинающих утилита с неприличным именем
Работая в консоли Linux, начинающие делают ошибки, это нормально. Гораздо хуже, когда ее не удается быстро исправить или поиск информации затруднен.
В этом случае может пригодиться одна полезная утилита с неприличным именем - The Fuck, которое исправляет ошибки в введенных ранее консольных командах.
Утилита разработана на Python и для ее установки выполните:
Обратите внимание, что саму утилиту, в отличие от зависимостей, следует устанавливать с правами того пользователя, который будет ей пользоваться, а ключ
После чего в файл
Которая добавит для команды алиас
Затем перечитайте значения из файла или перезапустите сеанс:
Теперь можно попробовать утилиту в деле. Вводим команду с ошибкой, после чего вызываем
Утилита тут же предлагает нам исправление, достаточно нажать Enter, но теперь снова ошибка, мы запустили команду с недостаточным набором прав. Снова вызываем утилиту, и она нас снова поправляет.
Чтобы избежать постоянного вызова утилиты можно запустить ее в режиме повторения:
Теперь она будет последовательно обрабатывать все полученные ошибки до получения результата, либо пока вы не прервете ее действия.
Если вы хотите применять исправления автоматически, то вызовите утилиту с ключом:
Но полностью полагаться на искусственный интеллект неразумно и небезопасно, поэтому разработчики отключили автоматическое подтверждение в режиме повторения.
Больше об утилите можно узнать на официальной странице Git: https://github.com/nvbn/thefuck
Работая в консоли Linux, начинающие делают ошибки, это нормально. Гораздо хуже, когда ее не удается быстро исправить или поиск информации затруднен.
В этом случае может пригодиться одна полезная утилита с неприличным именем - The Fuck, которое исправляет ошибки в введенных ранее консольных командах.
Утилита разработана на Python и для ее установки выполните:
sudo apt install python3-dev python3-pip python3-setuptoolspip install thefuck -–userОбратите внимание, что саму утилиту, в отличие от зависимостей, следует устанавливать с правами того пользователя, который будет ей пользоваться, а ключ
-–user предписывает установить утилиту только для текущего пользователя.После чего в файл
.bashrc внести строку:eval $(thefuck --alias fuck)Которая добавит для команды алиас
fuck, если вам ближе родная речь, то можете написать:eval $(thefuck --alias blya)Затем перечитайте значения из файла или перезапустите сеанс:
source .bashrcТеперь можно попробовать утилиту в деле. Вводим команду с ошибкой, после чего вызываем
fuckУтилита тут же предлагает нам исправление, достаточно нажать Enter, но теперь снова ошибка, мы запустили команду с недостаточным набором прав. Снова вызываем утилиту, и она нас снова поправляет.
Чтобы избежать постоянного вызова утилиты можно запустить ее в режиме повторения:
fuck -r Теперь она будет последовательно обрабатывать все полученные ошибки до получения результата, либо пока вы не прервете ее действия.
Если вы хотите применять исправления автоматически, то вызовите утилиту с ключом:
fuck -yНо полностью полагаться на искусственный интеллект неразумно и небезопасно, поэтому разработчики отключили автоматическое подтверждение в режиме повторения.
Больше об утилите можно узнать на официальной странице Git: https://github.com/nvbn/thefuck
😁22👍14🔥2👀2
Употребляете ли вы "крепкие" выражения?
Anonymous Poll
29%
Да, постоянно
26%
Да, время от времени
23%
Да, во время крепких эмоций
10%
Редко
3%
Нет, но понимаю тех кто употребляет
4%
Нет и решительно осуждаю
0%
Употребляю сугубо не тревзым
5%
Ничего не понятно, но очень интересно
👍7😁7
KISS (Keep it simple stupid, «не усложняй, придурок»)
Работая с различными заказчиками, очень часто приходится вспоминать этот принцип. Потому как многие коллеги, особенно молодые, очень любят переусложнять системы.
Когда в сети на 5-7 узлов встречаешь ActiveDirectory, развернутую на единственном сервере, там же еще крутится 1С, СУБД и всякое прочее – берет оторопь.
Причем никакой виртуализацией там не пахнет, потому что виртуализация – это сложно.
А насколько просто будет поддерживать и сопровождать этого монстрика Франкенштейна – никто и не думает.
Если заглянуть в набор правил брандмауэра, то мы увидим там кучу правил с заковыристыми критериями, типа TCP-флагов и прочего, чего сам коллега и толком пояснить не может.
На вопрос: «зачем?»
Поясняют, что: «Защита от сетевых атак»
На следующий вопрос: «А вас кто-то атакует?» тоже остается без ответа.
По имеющимся сообщениям, акроним был придуман Кларенсом Джонсоном, ведущим инженером Lockheed Skunk Works, когда Джонсон вручил команде инженеров-авиаконструкторов набор инструментов, поставив им условие: механик среднего уровня должен суметь отремонтировать реактивный самолёт, который они проектировали, в полевых условиях только с этими инструментами.
Такой же принцип будет не лишним и в IT, когда специалист среднего уровня и квалификации должен разобраться и починить ваше «творчество» подручными средствами.
Тем более в эпоху виртуализации делать проще становится еще легче. Никто не мешает разнести нам сервисы и сервера по отдельным виртуалкам или контейнерам, чтобы исключить их влияние на соседей.
А аппаратные ресурсы для этого способен предоставить любой бытовой ПК среднего уровня.
Работая с различными заказчиками, очень часто приходится вспоминать этот принцип. Потому как многие коллеги, особенно молодые, очень любят переусложнять системы.
Когда в сети на 5-7 узлов встречаешь ActiveDirectory, развернутую на единственном сервере, там же еще крутится 1С, СУБД и всякое прочее – берет оторопь.
Причем никакой виртуализацией там не пахнет, потому что виртуализация – это сложно.
А насколько просто будет поддерживать и сопровождать этого монстрика Франкенштейна – никто и не думает.
Если заглянуть в набор правил брандмауэра, то мы увидим там кучу правил с заковыристыми критериями, типа TCP-флагов и прочего, чего сам коллега и толком пояснить не может.
На вопрос: «зачем?»
Поясняют, что: «Защита от сетевых атак»
На следующий вопрос: «А вас кто-то атакует?» тоже остается без ответа.
По имеющимся сообщениям, акроним был придуман Кларенсом Джонсоном, ведущим инженером Lockheed Skunk Works, когда Джонсон вручил команде инженеров-авиаконструкторов набор инструментов, поставив им условие: механик среднего уровня должен суметь отремонтировать реактивный самолёт, который они проектировали, в полевых условиях только с этими инструментами.
Такой же принцип будет не лишним и в IT, когда специалист среднего уровня и квалификации должен разобраться и починить ваше «творчество» подручными средствами.
Тем более в эпоху виртуализации делать проще становится еще легче. Никто не мешает разнести нам сервисы и сервера по отдельным виртуалкам или контейнерам, чтобы исключить их влияние на соседей.
А аппаратные ресурсы для этого способен предоставить любой бытовой ПК среднего уровня.
💯41👍19
Караван-сарай или величественный собор?
Наткнулся я тут случайно на такой проект, как CBSD, это это обёртка из sh-скриптов (преимущественно) вокруг подсистемы jail(8), гипервизоров bhyve, QEMU / NVMM и Xen для BSD операционных систем.
Какого-либо нового функционала в ОС на данном этапе не внесено — всё, что могут делать скрипты CBSD, можно сделать командой (командами, десятками, сотнями команд) в CLI через соответствующие утилиты.
Глядя на сайт, я сначала подумал, что это еще один заброшенный проект десятилетней давности, но нет, проект жив и даже куда-то там барахтается…
При том, что на дворе 2023 год и в мире Linux давно есть мощные и удобные продукты виртуализации, такие как Proxmox.
И здесь снова и снова вспоминаешь старое высказывание разработчиков FreеBSD про караван-сарайный принцип разработки Linux, где систему могут дорабатывать все, кто не лень, в противопоставление которому ставились принципы разработки FreeBSD, которую они сравнивали с величественным собором, который возводит небольшая группа архитекторов.
Время расставило все на свои места и Linux из караван-сарая превратился в современный технопарк, а величественный собор так и стоит недостроенным.
При этом за последние 10-15 лет FreeBSD серьезно утратила позиции превратившись в ОС для энтузиастов и маргиналов. Ну и то место, где код можно взять и ничего назад не отдавать.
И все эти заявления, мол BSD используется в macOS, PlayStation, Juniper, NetApp и т.д. выглядят нелепо и смешно, на уровне школьных разборок: «а у меня брат – каратист».
Действительно, кивать на более успешные проекты можно только в отсутствие собственных достижений. Тем более, что все вышеперечисленное – закрытые коммерческие ОС и никто не знает сколько там чего от FreeBSD и насколько это переписано.
А со своим там действительно все плохо, на попытку разработать собственную графическую оболочку с использованием только BSD технологий - Lumina без слез не глянешь.
С доставшейся по наследству ZFS тоже приключилась неприятность, так как из всех вариаций ZFS наиболее активно развивалась ZFS on Linux, то в 2018 году было принято решение, что новая версия OpenZFS 2.0 будет базироваться на кодовой базе для Linux и уже из нее портироваться на другие системы.
Ну и наконец старая история с использованием кода BSD в стеке TCP/IP Windows, которую можно охарактеризовать словами: слышал звон, да не знаю где он.
При выпуске на рынок Windows 3.11 Microsoft потребовалось добавить туда поддержку TCP/IP, а так как собственный стек еще был в разработке, то было лицензировано решение от компании Spider Systems, которое было написано с применением кода FreeBSD. С ним же в Windows попали основанные на коде BSD утилиты, предназначенные для нового стека ftp, rcp и rsh и т.п.
Но у стека Spider был один существенный недостаток, он был завязан на собственную среду STREAMS, которую тоже пришлось портировать на Windows и нести связанные с ней накладные расходы.
Собственный стек TCP/IP Microsoft, созданный с нуля, вышел в конце 1994 года и поставлялся с Windows NT, а также позже вошел в состав Windows 95.
Но, несмотря на новый стек, часть утилит переписывать не стали и оставили прежними. Действительно, зачем переписывать клиент FTP если он хорошо работает и законным образом лицензирован? Но именно последний момент, а именно отсылка к лицензии BSD и дала повод различным досужим теориям о BSD стеке TCP/IP в Windows.
А мы еще раз глянем на картинку ниже: справа величественный собор, слева – караван-сарай. Не перепутай!
Наткнулся я тут случайно на такой проект, как CBSD, это это обёртка из sh-скриптов (преимущественно) вокруг подсистемы jail(8), гипервизоров bhyve, QEMU / NVMM и Xen для BSD операционных систем.
Какого-либо нового функционала в ОС на данном этапе не внесено — всё, что могут делать скрипты CBSD, можно сделать командой (командами, десятками, сотнями команд) в CLI через соответствующие утилиты.
Глядя на сайт, я сначала подумал, что это еще один заброшенный проект десятилетней давности, но нет, проект жив и даже куда-то там барахтается…
При том, что на дворе 2023 год и в мире Linux давно есть мощные и удобные продукты виртуализации, такие как Proxmox.
И здесь снова и снова вспоминаешь старое высказывание разработчиков FreеBSD про караван-сарайный принцип разработки Linux, где систему могут дорабатывать все, кто не лень, в противопоставление которому ставились принципы разработки FreeBSD, которую они сравнивали с величественным собором, который возводит небольшая группа архитекторов.
Время расставило все на свои места и Linux из караван-сарая превратился в современный технопарк, а величественный собор так и стоит недостроенным.
При этом за последние 10-15 лет FreeBSD серьезно утратила позиции превратившись в ОС для энтузиастов и маргиналов. Ну и то место, где код можно взять и ничего назад не отдавать.
И все эти заявления, мол BSD используется в macOS, PlayStation, Juniper, NetApp и т.д. выглядят нелепо и смешно, на уровне школьных разборок: «а у меня брат – каратист».
Действительно, кивать на более успешные проекты можно только в отсутствие собственных достижений. Тем более, что все вышеперечисленное – закрытые коммерческие ОС и никто не знает сколько там чего от FreeBSD и насколько это переписано.
А со своим там действительно все плохо, на попытку разработать собственную графическую оболочку с использованием только BSD технологий - Lumina без слез не глянешь.
С доставшейся по наследству ZFS тоже приключилась неприятность, так как из всех вариаций ZFS наиболее активно развивалась ZFS on Linux, то в 2018 году было принято решение, что новая версия OpenZFS 2.0 будет базироваться на кодовой базе для Linux и уже из нее портироваться на другие системы.
Ну и наконец старая история с использованием кода BSD в стеке TCP/IP Windows, которую можно охарактеризовать словами: слышал звон, да не знаю где он.
При выпуске на рынок Windows 3.11 Microsoft потребовалось добавить туда поддержку TCP/IP, а так как собственный стек еще был в разработке, то было лицензировано решение от компании Spider Systems, которое было написано с применением кода FreeBSD. С ним же в Windows попали основанные на коде BSD утилиты, предназначенные для нового стека ftp, rcp и rsh и т.п.
Но у стека Spider был один существенный недостаток, он был завязан на собственную среду STREAMS, которую тоже пришлось портировать на Windows и нести связанные с ней накладные расходы.
Собственный стек TCP/IP Microsoft, созданный с нуля, вышел в конце 1994 года и поставлялся с Windows NT, а также позже вошел в состав Windows 95.
Но, несмотря на новый стек, часть утилит переписывать не стали и оставили прежними. Действительно, зачем переписывать клиент FTP если он хорошо работает и законным образом лицензирован? Но именно последний момент, а именно отсылка к лицензии BSD и дала повод различным досужим теориям о BSD стеке TCP/IP в Windows.
А мы еще раз глянем на картинку ниже: справа величественный собор, слева – караван-сарай. Не перепутай!
👍30👎6🤷♂1❤1
Компания «Технологии Доверия» ищет специалистов в команду 1С!
В топовой аудиторско-консалтинговой фирме тебя ждет работа над развитием крупного международного проекта с 3000 пользователей и мощная прокачка экспертизы.
В ТеДо открыты следующие вакансии:
— Функциональный архитектор 1С (Учет затрат, себестоимость)
— Разработчик 1С (middle\senior)
Работа в ТеДо — это:
— оформление в штат по ТК РФ в аккредитованную ИТ-компанию
— гибкий формат работы: можно работать удаленно в РФ или в одном из 10 офисов в разных городах
— расширенный ДМС со стоматологией с первого месяца работы
— бесплатное внутреннее и внешнее обучение
— корпоративная техника и мобильная связь
Не упусти возможность построить свою траекторию успеха вместе с компанией «Технологии Доверия»! Откликайся на вакансии по ссылкам выше ⬆️
Реклама. ООО "ТЕХНОЛОГИИ ДОВЕРИЯ - КОНСУЛЬТИРОВАНИЕ". ИНН 7710764839.
В топовой аудиторско-консалтинговой фирме тебя ждет работа над развитием крупного международного проекта с 3000 пользователей и мощная прокачка экспертизы.
В ТеДо открыты следующие вакансии:
— Функциональный архитектор 1С (Учет затрат, себестоимость)
— Разработчик 1С (middle\senior)
Работа в ТеДо — это:
— оформление в штат по ТК РФ в аккредитованную ИТ-компанию
— гибкий формат работы: можно работать удаленно в РФ или в одном из 10 офисов в разных городах
— расширенный ДМС со стоматологией с первого месяца работы
— бесплатное внутреннее и внешнее обучение
— корпоративная техника и мобильная связь
Не упусти возможность построить свою траекторию успеха вместе с компанией «Технологии Доверия»! Откликайся на вакансии по ссылкам выше ⬆️
Реклама. ООО "ТЕХНОЛОГИИ ДОВЕРИЯ - КОНСУЛЬТИРОВАНИЕ". ИНН 7710764839.
👍2
Временные метки файлов в Linux
Этот, вроде-бы простой на первый взгляд вопрос часто вызывает достаточно много сложностей, особенно у начинающих.
Согласно стандарту POSIX у файлов в Linux имеются три временных метки:
▫️ atime – время последнего доступа к файлу
▫️ mtime – время последней модификации содержимого файла
▫️ ctime – время последнего изменения содержимого файла или его метаданных
С первой меткой вроде бы все просто, atime обновляется при любом доступе к файлу, например, при открытии. Но если файловая система смонтирована с опцией noatime данная метка обновляться не будет.
Метка mtime меняется при изменении содержимого файла, но ее не меняют изменения метаданных, такие как изменение владельца или прав доступа или переименование.
И, наконец, ctime, которая фиксирует любое изменение файла, будь то изменение содержимого или метаданных. Хотя во многих материалах метка ctime ошибочно описывается как время последнего изменения метаданных.
Особенностью метки ctime является то, что данная метка управляется системой, в то время как atime и mtime может произвольно изменять владелец файла. Таким образом данная метка однозначно покажет нам время последнего изменения файла, в то время как mtime может содержать неверную информацию.
При этом в нормальных условиях изменение mtime всегда влечет изменение ctime, а вот изменение ctime может происходить отдельно от других временных меток.
Так переименование файла изменит atime и ctime, но не затронет mtime, а изменение прав или владельца файла отразится только на ctime.
Позвольте, скажет иной читатель, а как быть с временем создания файла? А никак, такой временной метки POSIX не предусматривает. Однако позже была добавлена еще одна временная метка – crtime – которая как раз отражает время создания файла, но она имеет некоторые особенности.
Не являясь POSIX-совместимой, данная метка была реализована на уровне файловой системы и, следовательно, хранится только в ее пределах, между системами данный атрибут не переносится.
Таким образом данная метка отражает время создания файла в текущей файловой системе и при переносе файла между файловыми системами данная метка у него изменится, в то время как остальные временные метки будут сохранены.
Это может приводить к ситуации, показанной на рисунке ниже, когда время создания файла больше, чем время его модификации.
Каким образом можно посмотреть временные метки? Используйте команду stat, например:
Строки Доступ, Модифицирован и Изменен будут соответствовать atime, mtime и ctime. Однако если мы посмотрим на свойства файла в графическом окружении, то сможем увидеть, что Изменен в этом случае соответствует mtime, что в целом верно логически, но способно внести путаницу.
Поэтому, если вы хотите получить точное значение параметра, то используйте форматирование вывода команды stat:
Как видим, вроде бы простая тема оказалась не такой уж и простой. Но, если не пытаться переносить на Linux опыт других систем, а внимательно изучить теорию, то все станет на свои места и вы будете прекрасно понимать, что значит та или иная временная метка.
Этот, вроде-бы простой на первый взгляд вопрос часто вызывает достаточно много сложностей, особенно у начинающих.
Согласно стандарту POSIX у файлов в Linux имеются три временных метки:
▫️ atime – время последнего доступа к файлу
▫️ mtime – время последней модификации содержимого файла
▫️ ctime – время последнего изменения содержимого файла или его метаданных
С первой меткой вроде бы все просто, atime обновляется при любом доступе к файлу, например, при открытии. Но если файловая система смонтирована с опцией noatime данная метка обновляться не будет.
Метка mtime меняется при изменении содержимого файла, но ее не меняют изменения метаданных, такие как изменение владельца или прав доступа или переименование.
И, наконец, ctime, которая фиксирует любое изменение файла, будь то изменение содержимого или метаданных. Хотя во многих материалах метка ctime ошибочно описывается как время последнего изменения метаданных.
Особенностью метки ctime является то, что данная метка управляется системой, в то время как atime и mtime может произвольно изменять владелец файла. Таким образом данная метка однозначно покажет нам время последнего изменения файла, в то время как mtime может содержать неверную информацию.
При этом в нормальных условиях изменение mtime всегда влечет изменение ctime, а вот изменение ctime может происходить отдельно от других временных меток.
Так переименование файла изменит atime и ctime, но не затронет mtime, а изменение прав или владельца файла отразится только на ctime.
Позвольте, скажет иной читатель, а как быть с временем создания файла? А никак, такой временной метки POSIX не предусматривает. Однако позже была добавлена еще одна временная метка – crtime – которая как раз отражает время создания файла, но она имеет некоторые особенности.
Не являясь POSIX-совместимой, данная метка была реализована на уровне файловой системы и, следовательно, хранится только в ее пределах, между системами данный атрибут не переносится.
Таким образом данная метка отражает время создания файла в текущей файловой системе и при переносе файла между файловыми системами данная метка у него изменится, в то время как остальные временные метки будут сохранены.
Это может приводить к ситуации, показанной на рисунке ниже, когда время создания файла больше, чем время его модификации.
Каким образом можно посмотреть временные метки? Используйте команду stat, например:
stat file.txtСтроки Доступ, Модифицирован и Изменен будут соответствовать atime, mtime и ctime. Однако если мы посмотрим на свойства файла в графическом окружении, то сможем увидеть, что Изменен в этом случае соответствует mtime, что в целом верно логически, но способно внести путаницу.
Поэтому, если вы хотите получить точное значение параметра, то используйте форматирование вывода команды stat:
stat -c ‘%x’ file.txt - atimestat -c ‘%y’ file.txt - mtimestat -c ‘%z’ file.txt - ctimeКак видим, вроде бы простая тема оказалась не такой уж и простой. Но, если не пытаться переносить на Linux опыт других систем, а внимательно изучить теорию, то все станет на свои места и вы будете прекрасно понимать, что значит та или иная временная метка.
👍32👌1
zaninpz1.pdf
1.1 MB
Я просто оставлю это здесь и даже не буду подробно комментировать, так как далек от нынешнего высшего образования.
Но в наши времена сей опус с трудом потянул бы на курсовую, а тут как-никак выпускная работа (читай диплом).
И если теперь для дипломной работы достаточно просто поднять OpenVPN на двух узлах, то становится печально от такого уровня "образования".
Но в наши времена сей опус с трудом потянул бы на курсовую, а тут как-никак выпускная работа (читай диплом).
И если теперь для дипломной работы достаточно просто поднять OpenVPN на двух узлах, то становится печально от такого уровня "образования".
😱25👍8🤔6👀3
Использование команды ip в Linux
Многие системные администраторы знали и использовали команду ifconfig, но теперь она объявлена устаревшей и вместо нее предлагаются иные инструменты. Один из них – команда ip, работу с которой мы сегодня рассмотрим.
Думаю, многим знакома команда просмотра IP адресов узла:
Но это сокращенная запись от:
Также можно использовать более короткую:
Используя полный вид записи, вы можете уточнить вывод команды, например, посмотреть адрес только у интересующего интерфейса:
Чтобы посмотреть только IPv4 или IPv6 адреса используйте дополнительные ключи -4 или -6
При помощи ip можно не только смотреть IP-адреса, но и управлять ими, так чтобы добавить адрес на интерфейс используйте:
Для удаления:
Также вы можете управлять состоянием самого интерфейса:
или
Кроме этого, команда ip позволяет работать с маршрутами, для просмотра таблицы маршрутизации достаточно выполнить:
или
Для ограничения вывода протоколами IPv4 или IPv6 также можете использовать ключи -4 или -6
При необходимости мы можем легко добавить или удалить маршрут командами:
и
При этом следует помнить, что добавленные таким образом маршруты не сохраняются при перезагрузке системы.
Многие системные администраторы знали и использовали команду ifconfig, но теперь она объявлена устаревшей и вместо нее предлагаются иные инструменты. Один из них – команда ip, работу с которой мы сегодня рассмотрим.
Думаю, многим знакома команда просмотра IP адресов узла:
ip a
Но это сокращенная запись от:
ip address showТакже можно использовать более короткую:
ip addr show
Используя полный вид записи, вы можете уточнить вывод команды, например, посмотреть адрес только у интересующего интерфейса:
ip addr show ens33Чтобы посмотреть только IPv4 или IPv6 адреса используйте дополнительные ключи -4 или -6
ip -4 addr show ens33При помощи ip можно не только смотреть IP-адреса, но и управлять ими, так чтобы добавить адрес на интерфейс используйте:
ip addr add 192.168.233.144/24 dev ens33
Для удаления:
ip addr del 192.168.233.144/24 dev ens33Также вы можете управлять состоянием самого интерфейса:
ip link set ens33 up
или
ip link set ens33 downКроме этого, команда ip позволяет работать с маршрутами, для просмотра таблицы маршрутизации достаточно выполнить:
ip r или
ip route
Для ограничения вывода протоколами IPv4 или IPv6 также можете использовать ключи -4 или -6
При необходимости мы можем легко добавить или удалить маршрут командами:
ip route add 192.168.233.0/24 dev ens33 metric 100и
ip route delete 192.168.233.0/24 dev ens33При этом следует помнить, что добавленные таким образом маршруты не сохраняются при перезагрузке системы.
👍48👀2
Демилитаризованная зона (DMZ) в современных сетях
Концепция DMZ известна давно, предполагалось, что это будет отдельный сегмент сети, отделенный брандмауэрами как от внешней, так и от внутренних сетей, и в нем будут размещены потенциально небезопасные сервисы.
Т.е. мы собирали в таком сегменте все сервисы, имеющие доступ из внешнего мира, и ограничивали их собственной подсетью, серьезно ограничив или вообще запретив возможность доступа к внутренней сети.
Для узлов локальной сети все узлы DMZ также рассматривались как внешние, со всеми вытекающими выводами в сфере безопасности.
Данный подход позволял в случае взлома или компрометации внешнего сервиса ограничить злоумышленника рамками DMZ и избежать их проникновения за периметр основной сети предприятия.
В целом такой подход работает и сегодня для классических служб, таких как веб-сервер или электронная почта. Помещая такие сервера в отдельный сегмент и закрыв их брандмауэром как от внешней, так и внутренней сети мы повышаем как безопасность внутри периметра, так и безопасность самих вынесенных в DMZ сервисов.
Но современные реалии вносят новые угрозы. Например, понятие периметра сегодня оказалось серьезно размыто и далеко не каждая внутренняя сеть может считаться безопасной.
Причин тому несколько. Начиная с собственных устройств сотрудников, которые они используют в рабочем процессе (чаще всего телефоны) и которые имеют доступ к сети предприятия и заканчивая средствами удаленного доступа, которые используются не только сотрудниками, но и подрядчиками и партнерами.
Все это приводит к тому, что внутренняя сеть перестает быть безопасным и доверенным местом, поэтому политика нормально открытого брандмауэра внутри таких сетей перестает быть приемлемой.
Можно, конечно, настраивать брандмауэр на каждом сервере отдельно, но это утомительно и всегда есть возможность что-то упустить. Поэтому более интересной является мысль вынести внутренние сервера в отдельную DMZ и тем самым поместить их в доверенную среду, которую затем можно просто закрыть от внутренней сети межсетевым экраном.
Получается, как бы немного наоборот. Если классическая DMZ изолировала от доверенной локальной сети потенциально небезопасные узлы, то в нашем случае DMZ защищает сервера от потенциальных угроз из внутренней сети.
В принципе данный подход уже давно используется там, где работают с конфиденциальной и секретной информацией, когда содержащие такие данные узлы выносят в изолированные участки сети с ограниченным доступом.
Еще одна серьезная угроза – это удаленщики, явление в последние годы массовое и практически неконтролируемое. Потому как вы не можете сказать кто именно сейчас на том конце соединения: сам сотрудник или его малолетний ребенок, а может он вообще забыл ноутбук где-нибудь в кафе.
И все что защищает VPN – это только сам канал доступа, от некорректных действий со стороны пользователя это не спасет. Поэтому мы последние несколько лет практикуем дополнительные DMZ именно для VPN-пользователей.
В этом случае все удаленщики также помещаются в отдельный сегмент, который изолирован как от внешней, так и от внутренней сети, а доступ к необходимым сервисам осуществляется посредством проброса портов или обратным проксированием.
При этом никаких сервисов в этой зоне быть не должно, только удаленщики и только средства доступа к необходимым им сервисам внутри сети или в отдельных DMZ.
Таким образом сегодня понятие DMZ серьезно расширилось и теперь не просто предусматривает некую отдельную подсеть для потенциально ненадежных сервисов, а подразумевает разделение сети на сегменты с разным уровнем безопасности и доверия, совершенно безотносительного того, являются помещенные в DMZ сервисы внешними или внутренними.
А в ряде случаев и вовсе не предполагает размещение там каких-либо сервисов, используя DMZ для изоляции ненадежных пользователей.
Концепция DMZ известна давно, предполагалось, что это будет отдельный сегмент сети, отделенный брандмауэрами как от внешней, так и от внутренних сетей, и в нем будут размещены потенциально небезопасные сервисы.
Т.е. мы собирали в таком сегменте все сервисы, имеющие доступ из внешнего мира, и ограничивали их собственной подсетью, серьезно ограничив или вообще запретив возможность доступа к внутренней сети.
Для узлов локальной сети все узлы DMZ также рассматривались как внешние, со всеми вытекающими выводами в сфере безопасности.
Данный подход позволял в случае взлома или компрометации внешнего сервиса ограничить злоумышленника рамками DMZ и избежать их проникновения за периметр основной сети предприятия.
В целом такой подход работает и сегодня для классических служб, таких как веб-сервер или электронная почта. Помещая такие сервера в отдельный сегмент и закрыв их брандмауэром как от внешней, так и внутренней сети мы повышаем как безопасность внутри периметра, так и безопасность самих вынесенных в DMZ сервисов.
Но современные реалии вносят новые угрозы. Например, понятие периметра сегодня оказалось серьезно размыто и далеко не каждая внутренняя сеть может считаться безопасной.
Причин тому несколько. Начиная с собственных устройств сотрудников, которые они используют в рабочем процессе (чаще всего телефоны) и которые имеют доступ к сети предприятия и заканчивая средствами удаленного доступа, которые используются не только сотрудниками, но и подрядчиками и партнерами.
Все это приводит к тому, что внутренняя сеть перестает быть безопасным и доверенным местом, поэтому политика нормально открытого брандмауэра внутри таких сетей перестает быть приемлемой.
Можно, конечно, настраивать брандмауэр на каждом сервере отдельно, но это утомительно и всегда есть возможность что-то упустить. Поэтому более интересной является мысль вынести внутренние сервера в отдельную DMZ и тем самым поместить их в доверенную среду, которую затем можно просто закрыть от внутренней сети межсетевым экраном.
Получается, как бы немного наоборот. Если классическая DMZ изолировала от доверенной локальной сети потенциально небезопасные узлы, то в нашем случае DMZ защищает сервера от потенциальных угроз из внутренней сети.
В принципе данный подход уже давно используется там, где работают с конфиденциальной и секретной информацией, когда содержащие такие данные узлы выносят в изолированные участки сети с ограниченным доступом.
Еще одна серьезная угроза – это удаленщики, явление в последние годы массовое и практически неконтролируемое. Потому как вы не можете сказать кто именно сейчас на том конце соединения: сам сотрудник или его малолетний ребенок, а может он вообще забыл ноутбук где-нибудь в кафе.
И все что защищает VPN – это только сам канал доступа, от некорректных действий со стороны пользователя это не спасет. Поэтому мы последние несколько лет практикуем дополнительные DMZ именно для VPN-пользователей.
В этом случае все удаленщики также помещаются в отдельный сегмент, который изолирован как от внешней, так и от внутренней сети, а доступ к необходимым сервисам осуществляется посредством проброса портов или обратным проксированием.
При этом никаких сервисов в этой зоне быть не должно, только удаленщики и только средства доступа к необходимым им сервисам внутри сети или в отдельных DMZ.
Таким образом сегодня понятие DMZ серьезно расширилось и теперь не просто предусматривает некую отдельную подсеть для потенциально ненадежных сервисов, а подразумевает разделение сети на сегменты с разным уровнем безопасности и доверия, совершенно безотносительного того, являются помещенные в DMZ сервисы внешними или внутренними.
А в ряде случаев и вовсе не предполагает размещение там каких-либо сервисов, используя DMZ для изоляции ненадежных пользователей.
👍50🔥2👎1
Веселые картинки
Сегодня в обсуждения один из читателей притащил ссылку на «хороший материал по сегментации» со ссылкой на многим известный репозиторий на гитхабе: https://github.com/sergiomarotco/Network-segmentation-cheat-sheet
К сожалению, я не могу считать данный материал хорошим и тем более рекомендовать его, хотя автор и ссылается на некие «лучшие практики».
Почему? Начнем издалека, с принципов построения обучающих материалов. Хороший обучающий материал, тем более схема или диаграмма должна быть способна сразу донести до обучаемого основные принципы и ключевые моменты изучаемой темы.
Ничего лишнего, никаких ненужных подробностей на схеме быть не должно, они только размывают внимание на второстепенные вещи, путают и вызывают лишние вопросы.
Вместо этого нас встречает перегруженная значками и связями схема, которая ничего не поясняет, а только еще больше запутывает. Сразу возникает масса вопросов, причем абсолютно к теме сегментации не относящихся.
В целом, человек немного «теме» со схемами первых уровней за пять-десять минут вождения по ним пальцем разберется и здравое зерно там есть. Но для начинающего это будет просто темный лес: ничего не понятно, но очень интересно. Еще хуже если последуют попытки слепого копирования.
Но все можно было сделать гораздо проще, убрать все эти ненужные подробности и связи, оставив только самые широкие мазки: вот у нас продуктовые сервера, вот поддержка продуктовой части, вот пользовательская часть, вот поддержка пользовательской части, вот управление, вот сетевое оборудование, вот DMZ.
Ну и хорошую пояснительную записку, поясняющую что именно сделано, для чего и почему.
А текущие схемы сильно напоминают мне казуальные игрушки, где нужно копать-строить да отбиваться от толп монстров, где каждая следующая толпа сильнее предыдущей.
А все эти линии напоминают производственные цепочки, которые могут быть неоптимальны и запутаны, но так «исторически сложились». И вообще переделать пока никак нельзя, а то не отобьемся.
И автор схем только подливает масла в огонь, указывая в описании к первому уровню что вам понадобится больше средств защиты информации или потребуется переход на второй уровень.
Знакомо? Чтобы отбиваться от монстров вам нужно все больше и больше стреляющих башен, но башни стоят ресурсов, их надо где-то строить, и монстры начинают сносить их на ура. Хочешь - не хочешь, а уровень придется повышать.
Причем складывается такое впечатление, что автор схем отринул реальность и занялся сегментацией ради сегментации. Уже на третьем уровне он вводит системы обнаружения инцидентов и реагирования на них, вскользь упомянув «что вам понадобится штат 10-20 человек безопасников».
Серьезно? Организации такого уровня, где риски ИБ выходят на уровень операционных рисков явно не будут искать схемы по гитам и на этом можно бы было закончить. Но фантазия автора устремляется только вперед.
Хотя для простого пользователя все эти многочисленные возникшие объекты с непонятными аббревиатурами ничем не будут отличаться от генератора маны, школы магов и чего там еще надо построить для того, чтобы башни начали стрелять электричеством.
Ну и последняя схема – просто апофеоз:
Теперь злоумышленник не сможет атаковать производственную сеть, поскольку теперь потенциально скомпрометированная рабочая станция в корпоративной сети принципиально не имеет доступа к производственной сети. Связанные проблемы:
Отдельные рабочие станции для доступа к производственной сети – да, теперь у вас на рабочем столе будет 2 компьютера;
Да, именно к этому бизнес и стремился… И деньги на него, наверное, с неба падают.
Вопросы разумной достаточности здесь не поднимаются в принципе. Автор рассматривает сегментацию с позиции типичного гика в вакууме. Хотя для того, чтобы закрыть в садовом домике две лопаты и ржавые грабли достаточно замка за 100 рублей и ставить сейфовую дверь с укреплением коробки там явно излишне.
В общем материал забавный, красивый. Но практической пользы – близко к нулю.
Сегодня в обсуждения один из читателей притащил ссылку на «хороший материал по сегментации» со ссылкой на многим известный репозиторий на гитхабе: https://github.com/sergiomarotco/Network-segmentation-cheat-sheet
К сожалению, я не могу считать данный материал хорошим и тем более рекомендовать его, хотя автор и ссылается на некие «лучшие практики».
Почему? Начнем издалека, с принципов построения обучающих материалов. Хороший обучающий материал, тем более схема или диаграмма должна быть способна сразу донести до обучаемого основные принципы и ключевые моменты изучаемой темы.
Ничего лишнего, никаких ненужных подробностей на схеме быть не должно, они только размывают внимание на второстепенные вещи, путают и вызывают лишние вопросы.
Вместо этого нас встречает перегруженная значками и связями схема, которая ничего не поясняет, а только еще больше запутывает. Сразу возникает масса вопросов, причем абсолютно к теме сегментации не относящихся.
В целом, человек немного «теме» со схемами первых уровней за пять-десять минут вождения по ним пальцем разберется и здравое зерно там есть. Но для начинающего это будет просто темный лес: ничего не понятно, но очень интересно. Еще хуже если последуют попытки слепого копирования.
Но все можно было сделать гораздо проще, убрать все эти ненужные подробности и связи, оставив только самые широкие мазки: вот у нас продуктовые сервера, вот поддержка продуктовой части, вот пользовательская часть, вот поддержка пользовательской части, вот управление, вот сетевое оборудование, вот DMZ.
Ну и хорошую пояснительную записку, поясняющую что именно сделано, для чего и почему.
А текущие схемы сильно напоминают мне казуальные игрушки, где нужно копать-строить да отбиваться от толп монстров, где каждая следующая толпа сильнее предыдущей.
А все эти линии напоминают производственные цепочки, которые могут быть неоптимальны и запутаны, но так «исторически сложились». И вообще переделать пока никак нельзя, а то не отобьемся.
И автор схем только подливает масла в огонь, указывая в описании к первому уровню что вам понадобится больше средств защиты информации или потребуется переход на второй уровень.
Знакомо? Чтобы отбиваться от монстров вам нужно все больше и больше стреляющих башен, но башни стоят ресурсов, их надо где-то строить, и монстры начинают сносить их на ура. Хочешь - не хочешь, а уровень придется повышать.
Причем складывается такое впечатление, что автор схем отринул реальность и занялся сегментацией ради сегментации. Уже на третьем уровне он вводит системы обнаружения инцидентов и реагирования на них, вскользь упомянув «что вам понадобится штат 10-20 человек безопасников».
Серьезно? Организации такого уровня, где риски ИБ выходят на уровень операционных рисков явно не будут искать схемы по гитам и на этом можно бы было закончить. Но фантазия автора устремляется только вперед.
Хотя для простого пользователя все эти многочисленные возникшие объекты с непонятными аббревиатурами ничем не будут отличаться от генератора маны, школы магов и чего там еще надо построить для того, чтобы башни начали стрелять электричеством.
Ну и последняя схема – просто апофеоз:
Теперь злоумышленник не сможет атаковать производственную сеть, поскольку теперь потенциально скомпрометированная рабочая станция в корпоративной сети принципиально не имеет доступа к производственной сети. Связанные проблемы:
Отдельные рабочие станции для доступа к производственной сети – да, теперь у вас на рабочем столе будет 2 компьютера;
Да, именно к этому бизнес и стремился… И деньги на него, наверное, с неба падают.
Вопросы разумной достаточности здесь не поднимаются в принципе. Автор рассматривает сегментацию с позиции типичного гика в вакууме. Хотя для того, чтобы закрыть в садовом домике две лопаты и ржавые грабли достаточно замка за 100 рублей и ставить сейфовую дверь с укреплением коробки там явно излишне.
В общем материал забавный, красивый. Но практической пользы – близко к нулю.
👍9😁9🤔2🤝1
IP-калькулятор в консоли
Любой администратор рано или поздно сталкивается с необходимостью рассчитать ту или иную сеть по количеству хостов или маске. Обычно для этих целей используются IP-калькуляторы, чаше всего в виде онлайн сервисов.
Но для любителей работы в консоли и не только есть прекрасная альтернатива в виде консольного приложения, оно есть в стандартных репозиториях и для его установки просто введите:
Использовать его тоже очень просто, достаточно указать адрес и маску. Маску можно указывать всеми доступными вариантами:
Также вы можете сразу расширить или сузить сеть и сразу увидеть в какую сеть большего размера попадет ваша подсеть или, наоборот, на какие подсети она будет разделена:
Еще одна часто встречающаяся задача – нарезать некоторое адресное пространство на несколько подсетей с заданным количеством хостов. Все просто, указываем сеть или адрес нужной сети и перечисляем нужные пулы по количеству хостов:
Результат можно посмотреть на картинке ниже. Калькулятор поделил сеть на несколько подсетей с наиболее подходящим количеством хостов.
Кроме обычной информации калькулятор таже выводит все значения в двоичном виде, что довольно ценно для начинающих, так как позволяет собственными глазами увидеть, что такое маска и почему при указанном значении маски максимальные и минимальные адреса сети будут именно такими, а не другими.
Более редкая, но тоже нужная задача – деагрегация диапазона адресов. Это если нам нужно разложить некое адресное пространство на набор сетей. Задача не самая простая, но калькулятор успешно справляется и с ней, просто укажите диапазон адресов, остальное он все сделает сам.
Никакого заумного синтаксиса, никаких ключей. Все просто, понятно, наглядно. И не надо никаких онлайн сервисов, достаточно просто запустить терминал.
Любой администратор рано или поздно сталкивается с необходимостью рассчитать ту или иную сеть по количеству хостов или маске. Обычно для этих целей используются IP-калькуляторы, чаше всего в виде онлайн сервисов.
Но для любителей работы в консоли и не только есть прекрасная альтернатива в виде консольного приложения, оно есть в стандартных репозиториях и для его установки просто введите:
apt install ipcalcИспользовать его тоже очень просто, достаточно указать адрес и маску. Маску можно указывать всеми доступными вариантами:
ipcalc 192.168.2.52/24ipcalc 192.168.2.52/255.255.255.0ipcalc 192.168.2.52 255.255.255.0Также вы можете сразу расширить или сузить сеть и сразу увидеть в какую сеть большего размера попадет ваша подсеть или, наоборот, на какие подсети она будет разделена:
ipcalc 192.168.2.52 /24 /22ipcalc 192.168.2.52 /24 /25Еще одна часто встречающаяся задача – нарезать некоторое адресное пространство на несколько подсетей с заданным количеством хостов. Все просто, указываем сеть или адрес нужной сети и перечисляем нужные пулы по количеству хостов:
ipcalc 10.8.8.1 -s 120 55 25Результат можно посмотреть на картинке ниже. Калькулятор поделил сеть на несколько подсетей с наиболее подходящим количеством хостов.
Кроме обычной информации калькулятор таже выводит все значения в двоичном виде, что довольно ценно для начинающих, так как позволяет собственными глазами увидеть, что такое маска и почему при указанном значении маски максимальные и минимальные адреса сети будут именно такими, а не другими.
Более редкая, но тоже нужная задача – деагрегация диапазона адресов. Это если нам нужно разложить некое адресное пространство на набор сетей. Задача не самая простая, но калькулятор успешно справляется и с ней, просто укажите диапазон адресов, остальное он все сделает сам.
ipcalc 10.8.8.125 – 10.9.2.251Никакого заумного синтаксиса, никаких ключей. Все просто, понятно, наглядно. И не надо никаких онлайн сервисов, достаточно просто запустить терминал.
👍62⚡1❤1
Про успешный успех
Есть в наши дни такое развлечение: рассказывать про успешный успех. При этом хватает и рассказчиков, и слушателей.
Одни самозабвенно рассказывают, как они прорывались сквозь тернии к звездам, преодолевали, превозмогали и теперь вот такие успешные купаются в лучах заслуженной славы.
Есть и иная разновидность жанра – рассказывать про то, как вопреки всему профукали все полимеры, но неоднократно подчеркивая при этом, что получили при этом большой опыт и готовы поделиться им со слушателями.
При этом и те и другие порываются учить и редко делают это бесплатно.
В общем, после очередной встречи с очередными учителями успешного успеха мы немного задумались по этому поводу и пришли к некоторым выводам, которые могут показаться интересными нашим читателям.
Итак, что такое успех проекта и на основании каких показателей можно сделать такие выводы?
Начнем с очевидного, если проект уткнулся лицом в асфальт еще не достигнув финиша, это говорит только об одном – вы полезли не в свое дело, туда, где вы ничего не знаете и не умеете и вам тупо не хватило ума понять куда вы лезете.
Никакого ценного опыта там нет, разве что только наглядный пример как делать не надо.
А вот следует ли считать проект, дошедший до финиша успешным – это большой вопрос.
С одной стороны, все формальные требования выполнены? Выполнены. Акты подписаны? Подписаны. Деньги получены? Получены. Ну так, наверное, все хорошо?
Наверное. И если рассматривать сугубо финансовую сторону вопроса. На самом деле для проекта все только начинается. Мы же не судим об успешности человека в момент его рождения? А почему для проекта должны быть исключения?
На наш взгляд существует единственная достоверная метрика успешности проекта – все реализованные в нем разработки или большая их часть используются в повседневной деятельности предприятия и отказ от них будет связан с реальным ухудшением производственных процессов.
Только в этом случае заказчик будет удовлетворен сотрудничеством и нацелен его продолжать.
Иначе он может даже ничего не сказать, но просто не будет использовать то, за что отданы деньги и больше не станет к вам обращаться.
Все это справедливо и для внутренних проектов. Если от того, что вы так усердно внедряли и на что тратили деньги предприятия нет реального выхлопа, то вам могут в целом ничего не сказать, но поставят там, где надо пометочку и именно эта пометочка может стать реальной помехой для дальнейшего карьерного роста.
Как показывает наша практика, практически все успешные проекты развивались постепенно, по мере возникновения реальных проблем и их решения. В этом случае все изменения вносились органично и быстро врастали в бизнес-процессы предприятия, формируя некоторые внутренние стандарты.
И, наоборот, попытка быстро внедрить сложную автоматизацию редко заканчивается успехом, а чаще всего даст возможность успешно закончить проект тем, кто придет вслед за вами. И сможет-таки, за дополнительные деньги подружить все что вы успели наворотить с реальными бизнес-процессами.
Поэтому, когда мне рассказывают истории успешного успеха как за несколько месяцев автоматизировали с нуля чего-то там, то я могу сказать только одно – не верю. Либо на самом деле все было совсем не так.
Нельзя быстро и не ломая бизнес-процессов сделать так, что там, где сегодня компьютер первый раз увидели через полгода будет многоуровневый учет и отчетность, обмены и интеграции, и полный контроль с автоматизацией.
Нет, иногда можно, но только через слом всего и вся и преодоление противодействия на самых разных уровнях. Работающий бизнес на такое может решиться либо сугубо сдуру, либо от безысходности.
Либо мы просто формально внедряем то, чем просто не будут пользоваться. Со всеми вытекающими в последствии.
Поэтому, слушая рассказы про успешный успех всегда помните, что это художественный жанр, а успешность любого проекта можно оценить только на достаточно большом временном отрезке. И основной критерий успеха – это практика. Если то, что вы сделали используют – значит проект успешен.
Есть в наши дни такое развлечение: рассказывать про успешный успех. При этом хватает и рассказчиков, и слушателей.
Одни самозабвенно рассказывают, как они прорывались сквозь тернии к звездам, преодолевали, превозмогали и теперь вот такие успешные купаются в лучах заслуженной славы.
Есть и иная разновидность жанра – рассказывать про то, как вопреки всему профукали все полимеры, но неоднократно подчеркивая при этом, что получили при этом большой опыт и готовы поделиться им со слушателями.
При этом и те и другие порываются учить и редко делают это бесплатно.
В общем, после очередной встречи с очередными учителями успешного успеха мы немного задумались по этому поводу и пришли к некоторым выводам, которые могут показаться интересными нашим читателям.
Итак, что такое успех проекта и на основании каких показателей можно сделать такие выводы?
Начнем с очевидного, если проект уткнулся лицом в асфальт еще не достигнув финиша, это говорит только об одном – вы полезли не в свое дело, туда, где вы ничего не знаете и не умеете и вам тупо не хватило ума понять куда вы лезете.
Никакого ценного опыта там нет, разве что только наглядный пример как делать не надо.
А вот следует ли считать проект, дошедший до финиша успешным – это большой вопрос.
С одной стороны, все формальные требования выполнены? Выполнены. Акты подписаны? Подписаны. Деньги получены? Получены. Ну так, наверное, все хорошо?
Наверное. И если рассматривать сугубо финансовую сторону вопроса. На самом деле для проекта все только начинается. Мы же не судим об успешности человека в момент его рождения? А почему для проекта должны быть исключения?
На наш взгляд существует единственная достоверная метрика успешности проекта – все реализованные в нем разработки или большая их часть используются в повседневной деятельности предприятия и отказ от них будет связан с реальным ухудшением производственных процессов.
Только в этом случае заказчик будет удовлетворен сотрудничеством и нацелен его продолжать.
Иначе он может даже ничего не сказать, но просто не будет использовать то, за что отданы деньги и больше не станет к вам обращаться.
Все это справедливо и для внутренних проектов. Если от того, что вы так усердно внедряли и на что тратили деньги предприятия нет реального выхлопа, то вам могут в целом ничего не сказать, но поставят там, где надо пометочку и именно эта пометочка может стать реальной помехой для дальнейшего карьерного роста.
Как показывает наша практика, практически все успешные проекты развивались постепенно, по мере возникновения реальных проблем и их решения. В этом случае все изменения вносились органично и быстро врастали в бизнес-процессы предприятия, формируя некоторые внутренние стандарты.
И, наоборот, попытка быстро внедрить сложную автоматизацию редко заканчивается успехом, а чаще всего даст возможность успешно закончить проект тем, кто придет вслед за вами. И сможет-таки, за дополнительные деньги подружить все что вы успели наворотить с реальными бизнес-процессами.
Поэтому, когда мне рассказывают истории успешного успеха как за несколько месяцев автоматизировали с нуля чего-то там, то я могу сказать только одно – не верю. Либо на самом деле все было совсем не так.
Нельзя быстро и не ломая бизнес-процессов сделать так, что там, где сегодня компьютер первый раз увидели через полгода будет многоуровневый учет и отчетность, обмены и интеграции, и полный контроль с автоматизацией.
Нет, иногда можно, но только через слом всего и вся и преодоление противодействия на самых разных уровнях. Работающий бизнес на такое может решиться либо сугубо сдуру, либо от безысходности.
Либо мы просто формально внедряем то, чем просто не будут пользоваться. Со всеми вытекающими в последствии.
Поэтому, слушая рассказы про успешный успех всегда помните, что это художественный жанр, а успешность любого проекта можно оценить только на достаточно большом временном отрезке. И основной критерий успеха – это практика. Если то, что вы сделали используют – значит проект успешен.
👍43🔥6👎3
Современная тенденция "войти в айти" на ваш вгляд для отрасли:
Anonymous Poll
5%
Полезна, так как увеличит количество специалистов
8%
Полезна, позволит закрыть дефицит в низовом звене
7%
Наверное, скорее полезна
37%
Это очередная мода, скоро пройдет
6%
Наверное, скорее вредна
7%
Вредна, так как снизит уровень оплаты труда
20%
Вредна, так как снизит уровень квалификации
0%
Свое мнение в комментариях
1%
Я не из айти
8%
Ничего не понятно, но очень интересно
Управление сетевыми настройками в Linux
Последние годы Linux проделал большой путь унификации, во многом благодаря systemd. Теперь вам не нужно вспоминать приемы работы со службами и автозагрузкой в том или ином дистрибутиве. Все везде делается одинаково.
Чего не скажешь о сетевых настройках. Причем, если в графической среде стандартом де-факто давно используется NetworkManager, то в серверном варианте наблюдается полный разброд и шатание.
Debian использует службу networking, которая управляет сетевой конфигурацией через ifupdown, надо сказать – порядком устаревший.
RHEL и производные полагаются на службу network, использующую скрипты ifup и ifdown. В принципе то же самое, что и в Debian, только все по-другому.
Arch и основанное на нем семейство использует netctl собственной разработки, а если вы решите освоить ALT, то познакомитесь с еще одной системой – Etcnet.
Ну и Ubuntu тоже не остался в стороне со своим netplan.
От такого разнообразия разбегаются глаза и становится довольно тоскливо. Если вы редко работаете с тем или иным дистрибутивом, то для управления сетью вам придется заглядывать в справку.
Тем не менее есть инструмент, который позволяет унифицировать работу с сетью, но по какой-то причине до сих пор не пользуется широкой популярностью.
Это systemd-networkd, как и весь systemd он очень прост и также строится на основе юнитов соответствующего типа.
В простейшем случае нам достаточно создать юнит с типом network и внести в него следующее содержимое:
Однако, несмотря на простоту, systemd-networkd достаточно мощный сетевой менеджер и позволяет управлять как проводными, так и беспроводными соединениями, мостами, маршрутизацией и многим другим.
При этом его основной плюс – унификация, он будет работать везде, где есть systemd.
И в целом никто не мешает перейти на systemd-networkd уже сейчас, не дожидаясь пока его завезут из коробки в ваш любимый дистрибутив.
Почему? Потому что это наиболее универсально и перспективно. Вам не нужно учить разные сетевые менеджеры, достаточно просто знать systemd-networkd.
Также отдельно хотелось бы отметить netplan от Ubuntu. Это не самостоятельный сетевой менеджер, а фронтенд, поддерживающий systemd-networkd и NetworkManager.
Netplan позволяет абстрагироваться от конкретного сетевого менеджера и описывать сети декларативно в формате YAML, после чего уже сам netplan сформирует конфигурацию для используемого сетевого менеджера.
Это удобно, прежде всего переносимостью, а также возможностью расширения практически для любого дистрибутива и любого сетевого менеджера.
Кроме того, у netplan есть интересные возможности, например, проверить сетевые настройки перед их применением. Если что-то пошло не так, то вы не потеряете сетевой доступ к узлу, так как все изменения будут автоматически откачены обратно.
Поэтому, глядя на существующий зоопарк технологий мы бы обратили внимание прежде всего на systemd-networkd – он есть везде, где есть systemd, прост, понятен и отлично работает.
В перспективе, конечно, хотелось бы видеть единый унифицированный фронтенд по образу netplan, который бы позволял описывать сети в едином формате и применять их без оглядки на используемый менеджер.
Как и snap, netplan давно уже вышел за рамки мира Ubuntu и доступен практически в любом дистрибутиве, однако широкого распространения не имеет.
Последние годы Linux проделал большой путь унификации, во многом благодаря systemd. Теперь вам не нужно вспоминать приемы работы со службами и автозагрузкой в том или ином дистрибутиве. Все везде делается одинаково.
Чего не скажешь о сетевых настройках. Причем, если в графической среде стандартом де-факто давно используется NetworkManager, то в серверном варианте наблюдается полный разброд и шатание.
Debian использует службу networking, которая управляет сетевой конфигурацией через ifupdown, надо сказать – порядком устаревший.
RHEL и производные полагаются на службу network, использующую скрипты ifup и ifdown. В принципе то же самое, что и в Debian, только все по-другому.
Arch и основанное на нем семейство использует netctl собственной разработки, а если вы решите освоить ALT, то познакомитесь с еще одной системой – Etcnet.
Ну и Ubuntu тоже не остался в стороне со своим netplan.
От такого разнообразия разбегаются глаза и становится довольно тоскливо. Если вы редко работаете с тем или иным дистрибутивом, то для управления сетью вам придется заглядывать в справку.
Тем не менее есть инструмент, который позволяет унифицировать работу с сетью, но по какой-то причине до сих пор не пользуется широкой популярностью.
Это systemd-networkd, как и весь systemd он очень прост и также строится на основе юнитов соответствующего типа.
В простейшем случае нам достаточно создать юнит с типом network и внести в него следующее содержимое:
[Match]
Name=ens33
[Network]
Address=10.8.8.100/24
Gateway=10.8.8.1
DNS=10.8.8.1Однако, несмотря на простоту, systemd-networkd достаточно мощный сетевой менеджер и позволяет управлять как проводными, так и беспроводными соединениями, мостами, маршрутизацией и многим другим.
При этом его основной плюс – унификация, он будет работать везде, где есть systemd.
И в целом никто не мешает перейти на systemd-networkd уже сейчас, не дожидаясь пока его завезут из коробки в ваш любимый дистрибутив.
Почему? Потому что это наиболее универсально и перспективно. Вам не нужно учить разные сетевые менеджеры, достаточно просто знать systemd-networkd.
Также отдельно хотелось бы отметить netplan от Ubuntu. Это не самостоятельный сетевой менеджер, а фронтенд, поддерживающий systemd-networkd и NetworkManager.
Netplan позволяет абстрагироваться от конкретного сетевого менеджера и описывать сети декларативно в формате YAML, после чего уже сам netplan сформирует конфигурацию для используемого сетевого менеджера.
Это удобно, прежде всего переносимостью, а также возможностью расширения практически для любого дистрибутива и любого сетевого менеджера.
Кроме того, у netplan есть интересные возможности, например, проверить сетевые настройки перед их применением. Если что-то пошло не так, то вы не потеряете сетевой доступ к узлу, так как все изменения будут автоматически откачены обратно.
Поэтому, глядя на существующий зоопарк технологий мы бы обратили внимание прежде всего на systemd-networkd – он есть везде, где есть systemd, прост, понятен и отлично работает.
В перспективе, конечно, хотелось бы видеть единый унифицированный фронтенд по образу netplan, который бы позволял описывать сети в едином формате и применять их без оглядки на используемый менеджер.
Как и snap, netplan давно уже вышел за рамки мира Ubuntu и доступен практически в любом дистрибутиве, однако широкого распространения не имеет.
👍48
Какой сетевой менеджер вы считаете наиболее перспективным?
Anonymous Poll
15%
Debian networking
3%
RHEL network
1%
netctl
1%
Etcnet
20%
NetworkManager
25%
systemd-networkd
18%
0%
netifrc
1%
Свой ответ в комментариях
34%
Ничего не понятно, но очень интересно
👍4
Сталкивались ли вы у себя с режимом "проходного двора"
Anonymous Poll
19%
Если и бывает, то это ЧП
31%
Бывает иногда
18%
Регулярно бывает
10%
Это нормальный режим работы
12%
Даже не заморачиваемся, все равно пароль на монитор приклеят
10%
Ничего не понятно, но очень интересно
👍6
Loginctl – управляем пользователями и сессиями
Сегодня мы расскажем еще об одной простой и удобной утилите из состава systemd – loginctl, которая предназначена для управления пользователями и сессиями.
Вообще-то утилита оперирует тремя типами объектов:
▫️session – сессия, каждая авторизация пользователя в системе, исключая sudo и su.
▫️user – пользователь системы, который может иметь одну или несколько сессий одновременно.
▫️seat – рабочее место, имеет актуальность только для терминальных сред.
Начнем с просмотра, чтобы увидеть все активные сессии введите:
или просто
Для вывода всех выполнивших вход пользователей:
Для вывода текущего состояния пользователя или сессии выполните:
или
Где вам потребуется указать имя пользователя или идентификатор сессии.
Вместе с информацией о сессии или пользователе вы также увидите дерево запущенных от его имени процессов.
Чтобы увидеть подробности конкретной сессии или пользователя следует использовать команды:
Для завершения сессии можно использовать:
При этом всем процессам сессии будет послан сигнал
В качестве альтернативы можно использовать:
В целом обе команды дают аналогичный результат, но terminate не позволяет явно указывать сигнал и для завершения процессов использует инструменты systemd, такие как
Если мы хотим завершить все сессии пользователя, то можно использовать:
или
В графическом интерфейсе мы можем блокировать или разблокировать экран командами:
Также можем переключаться на нужную сессию:
Еще один интересный момент, это управление службами пользователя. Обычно они запускаются при интерактивном входе пользователя в систему и останавливаются при его выходе.
Однако бывает необходимость, чтобы они стартовали без входа в систему, в таком случае используйте команду:
Чтобы отключить такое поведение:
Как видим, systemd – это не только службы, но и обширный набор простых инструментов для полноценного управления вашей Linux-системы.
Сегодня мы расскажем еще об одной простой и удобной утилите из состава systemd – loginctl, которая предназначена для управления пользователями и сессиями.
Вообще-то утилита оперирует тремя типами объектов:
▫️session – сессия, каждая авторизация пользователя в системе, исключая sudo и su.
▫️user – пользователь системы, который может иметь одну или несколько сессий одновременно.
▫️seat – рабочее место, имеет актуальность только для терминальных сред.
Начнем с просмотра, чтобы увидеть все активные сессии введите:
loginctl list-sessionsили просто
loginctlДля вывода всех выполнивших вход пользователей:
loginctl list-usersДля вывода текущего состояния пользователя или сессии выполните:
loginctl user-status <username>или
loginctl session-status <ID>Где вам потребуется указать имя пользователя или идентификатор сессии.
Вместе с информацией о сессии или пользователе вы также увидите дерево запущенных от его имени процессов.
Чтобы увидеть подробности конкретной сессии или пользователя следует использовать команды:
loginctl show-session <ID>loginctl show-user <username>Для завершения сессии можно использовать:
loginctl kill-session <ID>При этом всем процессам сессии будет послан сигнал
SIGTERM, если мы хотим это изменить, то можем указать сигнал явно:loginctl kill-session <ID> --signal SIGKILLВ качестве альтернативы можно использовать:
loginctl terminate-session <ID>В целом обе команды дают аналогичный результат, но terminate не позволяет явно указывать сигнал и для завершения процессов использует инструменты systemd, такие как
StopUnit().Если мы хотим завершить все сессии пользователя, то можно использовать:
loginctl kill-user <username>или
loginctl terminate-user <username>В графическом интерфейсе мы можем блокировать или разблокировать экран командами:
loginctl lock-session | unlock-session <id> Также можем переключаться на нужную сессию:
loginctl activate <id> Еще один интересный момент, это управление службами пользователя. Обычно они запускаются при интерактивном входе пользователя в систему и останавливаются при его выходе.
Однако бывает необходимость, чтобы они стартовали без входа в систему, в таком случае используйте команду:
loginctl enable-linger <username>Чтобы отключить такое поведение:
loginctl disable-linger <username>Как видим, systemd – это не только службы, но и обширный набор простых инструментов для полноценного управления вашей Linux-системы.
👍33🔥5