Вы можете подумать, что животные неразумны, но это заблуждение. На самом деле они могут выполнять некоторые задачи, к которым они приспособлены даже лучше, чем люди. Однако вопрос «умны ли животные» до сих пор остается предметом дискуссий среди исследователей. Некоторые придерживаются мнения, что животные могут реагировать на определенные раздражители, в то время как другие утверждают, что эти существа генетически наделены определенными полезными инстинктами и не способны делать что-либо большее. Но что правда? Какому утверждению мы должны верить?
Что ж, это не так просто, интеллект – это сложное понятие, и ответ зависит от разных восприятий. Проблема животных в том, что их интеллект нельзя измерить количественно. Вы не можете заставить их пройти тесты или сравнить их со своими сверстниками. Затем исследователи разработали тесты для измерения когнитивных способностей животного, но не смогли найти правильных ответов. После множества проб и ошибок они поняли, что совершали ошибку, тестируя животных с помощью задач, которые могли выполнять только люди. После того, как они оценили каждый вид на предмет определенного поведения, понятного животному, они смогли определить свой интеллект.
Какие виды самые умные?
Все мы слышали о ловкости лисы и интеллекте дельфинов. В общем, вы можете рассматривать собак и кошек более умно, чем птиц, рептилий и насекомых. Это может вас удивить, но птицы – одни из самых умных существ в мире. Наши пернатые товарищи умны и могут адаптироваться к новым условиям и окружающей среде. Практическим примером этого является тот факт, что птицы преодолевают расстояния до 44000 миль во время миграции ради пищи и других ресурсов.
У них пропорционально большой мозг
Чтобы проанализировать интеллект птиц, мы можем рассмотреть размер и структуру мозга. Исследования показывают, что их мозг больше по сравнению с маленькими телами. Кроме того, различные области мозга птицы имеют более высокую взаимосвязь, чем остальные млекопитающие. Что ж, я не удивлен, то, как мой волнистый попугайчик имитирует все, что мы говорим вокруг него, много говорит о его интеллекте. Но это всего лишь один пример; многие другие наблюдения подтверждают это утверждение. Например, вьюрки-дятлы разрезают палки на отрезки соответствующей длины, чтобы использовать их в качестве инструментов для охоты на насекомых, или вороны-падальщики, которые кладут орехи на дорогу, чтобы приближающиеся машины могли раздавить скорлупы.
Что ж, в мире около 18000 видов, давайте взглянем на 10 самых умных птиц, попавших в список:
Вороны:
В США насчитывается более 30 миллионов ворон, но животные не получают должной оценки. Многие из нас могут считать их жуткими, но они одни из самых умных существ в мире. Вороны способны решать сложные задачи; их мозг почти размером с большой палец. Исследования также показывают, что они способны считать до 5, создавать индивидуальные инструменты для их использования и могут запоминать лица. Исследователи наблюдали это явление, сделав сканирование своего мозга, которое показало, что они могут идентифицировать людей, которые кажутся дружелюбными или опасными, и запоминать их лица. Вся семья Corvidae, в которую входят вороны, вороны, сойки и грачи, имеет очень сложную социальную структуру; они делятся информацией со всей группой, а затем принимают решения. Они также способны строить прочные связи с людьми.
Кеа:
Птица – одна из самых умных среди всех разновидностей и известна своими выходками. Кеа – это попугай, который происходит из Новой Зеландии. Хотя ки – дружелюбные и игривые птички, они имеют репутацию печально известной воровства еды. Кеасы беспокоят людей и имеют обыкновение уничтожать машины и оборудование. Однако по некоторым тестам на интеллект они превзошли животных, таких как гиббоны и обезьяны. Другое исследование выявило необычную характеристику нечеловеческих существ, которую продемонстрировал Кеа. В задаче, где одной птице приходилось ждать, пока другой партнер более минуты работает вместе и высвобождает пищу, Ки проявили замечательный интеллект и командную работу. Это показало их способность определять, когда им нужно работать в команде и ждать партнера по сотрудничеству.
Какаду:
Эти живые птицы принадлежат к семейству попугаев и не только умны, но и ласковы. Какаду обладают прекрасными речевыми способностями и могут имитировать звуки и слова, которые они слышат. Исследования показывают, что они умнее четырехлетних детей. Исследование показало, что какаду могут распознавать скрытый объект. Кроме того, они могут отслеживать один и тот же элемент, если вы поместите его в другое место. Фактически, их способность к постоянству объектов выше, чем у четырехлетних детей. Если вы держите одного из них в качестве домашнего питомца, убедитесь, что в клетке есть много забавных игрушек.
Ара:
Ара не только разноцветны, но и обладают яркой индивидуальностью. Они могут показаться забавными и интересными, но при этом довольно умны, игривы и ласковы. Это попугаи, принадлежащие к одному из шести родов, самый большой из которых имеет длину около 4 футов. Анализ последовательности генома ара показывает, что геном имел основу ДНК, которая составляет одну треть того, что есть у млекопитающих. Они могут выполнять фокусы и обладают отличными когнитивными способностями.
Африканский серый:
В серости известна своими способности говорить; они могут имитировать наши звуки и слова и быстро их улавливать. Они могут выучить до 200 слов или даже больше, а также могут имитировать звуки животных, чтобы отпугнуть хищников, но это еще не все. Согласно исследованию, эти попугаи обладают отличными способностями к рассуждению, которые могут и могут находить спрятанную пищу, используя свои навыки обнаружения. Человеческие дети развивают эту способность в трехлетнем возрасте, поэтому африканских серых можно считать умнее трехлетних.
Вороны:
Другой член семейства Corvidae, Вороны также являются одними из самых умных видов в мире. Известно, что вороны работают в командах во время охоты за едой, поскольку один партнер отвлекает родителей, а другой нападает на новорожденного. Исследования также показывают, что Вороны могут планировать будущее. Исследователи заметили, что птицы держали инструменты в стороне, которые, по их мнению, пригодились бы им позже. У них также есть свои уникальные призывы обращаться к другим воронам и отличные навыки памяти; они могут узнать друг друга после долгих лет разлуки.
Щелкунчики:
Они связаны с воронами и сойками; несомненно, в семье есть одни из самых умных птичек. Щелкунчики также известны своей памятью и знанием своего окружения. Летом они собирают огромное количество семян сосны на зиму и закапывают их на площади в 200 квадратных миль. Они запоминают все места (их может быть около 3000), где хранят эти семена. Они также достаточно умны, чтобы считать числа. Щелкунчики всегда выбирают из заданной кучи семян ту, в которой содержится большее количество семян.
Джейс:
К семейству относятся разные виды сойок, такие как голубая сойка, евразийская сойка, калифорнийская сойка и многие другие. Евразийский Джей умен, поскольку он знает, как произвести впечатление на свою половинку. Он получает подарки для супруга, и это, скорее всего, именно то, чего он хочет. Scrub Jays – планировщики, которые думают о будущем. Например, они решат, что они хотят съесть на завтрак на следующий день, найдут еду и сохранят ее. В неволе синие сойки умны и используют бумагу со дна клетки для создания инструментов, которые могут помочь достать предметы за пределами вольера. Недавние исследования также показали, что Jay’s может имитировать знакомые звуки и может имитировать людей.
Сорока:
Это единственные птицы, прошедшие испытание на зеркало. Тест – это метод оценки самосознания существа. В эксперименте на животное наносят метку или наклейку в месте, которое они не видят. Затем их заставляют стоять перед зеркалом, если птица царапает пятно и пытается его удалить; это показатель того, что они осознают себя. Его успешно прошли евразийские сороки. Также известно, что они хорошо играют в «прятки»; их результаты на уровне 4-5-летних. Они также общительны и могут копить блестящие предметы,
Ладьи:
Еще один член семейства вороньих, Грачи обладают исключительными навыками решения задач. Они могут решить задачу из басни Эзопа, где ворона должна пить воду из частично наполненного кувшина. Талантливые грачи также используют ту же технику, что и ворона в книге, и пьют воду. Они также используют и даже создают свои инструменты. Исследование, проведенное в университетах Кембриджа и Королевы Марии, показало, что грачи всегда выбирают правильный тип инструмента, когда им предлагают задачу и набор инструментов.
Автор Автор:
Даника Бойд – энтузиаст птиц и любителей природы. В течение нескольких лет она разводила домашних птиц и теперь имеет огромный практический опыт ухода за птицами. Она пишет для команды birdcagesnow.com.
Сервер Ansible: CentOS Linux release 7.9.2009 (Core).
Node 1: CentOS Linux release 7.9.2009 (Core).
Node 2: CentOS Linux release 7.9.2009 (Core).
Node 3: CentOS Linux release 7.9.2009 (Core).
Node 4: CentOS Linux release 7.9.2009 (Core).
1. Задача.
К примеру, нам требуется с помощью внедрения custom facts для Ansible организовать сбор версий контейнеров, запущенных на серверах, а так же сбор версий некоторого программного обеспечения на серверах, которое имеет файл с указанием версии в своём каталоге /ecp/po/version.txt.
Собранная информация должна формироваться в json-формат.
Дополнительно требуется рассмотреть средства визуализации информации в удобном виде (opensource web-приложения).
2. Решение задачи.
Решение будет состоять из нескольких этапов:
загрузка и выполнение скрипта на узлах с целью получить json файлы;
выгрузка файлов json с узлов;
склеивание узловых файлов json в один сводный файл;
просмотр сводного файла.
В системе Ansible есть возможность собирать системную информацию, которая собирается в виде фактов с помощью встроенного модуля setup.
Со сбором стандартных переменных по умолчанию всё предельно ясно, но что делать, если мы хотим сформировать наши собственные переменные на всех хостах, чтобы в дальнейшем использовать их в нашем коде?
Для этого существует возможность добавления Custom facts, что делается следующим образом:
на любом хосте, контролируемом Ansible, создаётся каталог /etc/ansible/facts.d;
внутри каталога размещаются один либо несколько файлов с расширением *.fact, например custom.fact;
файлы возвращают данные в формате json.
Создаем инвентарь test-servers.inventory на 4 тестовых сервера:
Создаем специальный custom.fact файл для загрузки на узлы, который, по сути, является скриптом для выполнения некоторого комплекса действий на удалённом узле.
По замыслу будут собираться некоторые переменные и заворачиваться в разметку json.
Создаём специальный playbookcustom-facts-fetch.yml, содержащий сценарий /ansible/files/custom.fact для узла, возвращающий некоторый файл json на Ansible master сервер с каждого узла:
После успешной отработки playbook на сервере Ansible master появится каталог /ansible/json с подкаталогами ‘имя_узла‘:
В каждом из которых будет находиться json файл вида имя_узла.json:
Содержимое json файла первого узла emachines:
Содержимое json файла второго узла server1:
Содержимое json файла третьего узла server2:
Содержимое json файла четвертого узла server3:
Получилось несколько файлов json, по файлу с каждого целевого узла.
Сколько узлов мы задействовали для Ansible custom facts, столько и json файлов и будет.
В первом файле emachines.hamsterden.loc.json не имеется фрагмент с названием «Версия чего-то‘, по втором файле cos7client1.hamsterden.loc.json такой фрагмент имеется, а так как в custom.fact реализована проверка на фактическое наличия файла /ecp/po/version.txt.
К примеру, наличие файла /ecp/po/version.txt бывает только у серверов типа «web-server». Так как скрипт «сам учитывает» тип сервера, то можно смело применять custom.fact на все целевые серверы и файл json всегда будет генерироваться корректно для каждого типа серверов.
Для создание сводного json файла по всем файлам со всех узлам, воспользуемся утилитой jq.
2. Ansible Vault для хранения конфиденциальных данных.
Если ваши плейбуки Ansible содержат конфиденциальные данные, такие как пароли, ключи API и учетные данные, важно обеспечить их безопасность с помощью шифрования. Ansible предоставляет ansible-vault для шифрования файлов и переменных.
Несмотря на то, что любой файл данных Ansible, а также двоичные файлы, возможно зашифровать изначально, чаще для шифрования переменных файлов, содержащих конфиденциальные данные, используется ansible-vault. После шифрования файла с помощью этого инструмента вы сможете выполнять, редактировать или просматривать его, только предоставив соответствующий пароль, указанный при первом шифровании файла.
2.1. Создание нового зашифрованного файла.
Вы можете создать новый зашифрованный файл Ansible с помощью:
# ansible-vault create credentials.yml
Эта команда выполнит следующие действия:
Сначала вам будет предложено ввести новый пароль. Вам нужно будет указывать этот пароль при каждом доступе к содержимому файла, будь то редактирование, просмотр или просто запуск плейбука или команд с использованием его значений.
Затем откроется редактор командной строки по умолчанию, чтобы вы могли заполнить файл требуемым содержимым.
Наконец, когда вы закончите редактирование, ansible-vault сохранит файл как зашифрованный.
2.2. Шифрование существующего файла.
Чтобы зашифровать существующий файл Ansible, вы можете использовать следующую команду:
# ansible-vault encrypt credentials.yml
Эта команда запросит у вас пароль, который вам нужно будет вводить при каждом доступе к файлу credentials.yml.
2.3. Просмотр содержимого зашифрованного файла.
Если вы хотите просмотреть содержимое файла, который ранее был зашифрован с помощью ansible-vault, и вам не нужно изменять его содержимое, вы можете использовать команду:
# ansible-vault view credentials.yml
Она предложит вам указать пароль, который вы выбрали при первом шифровании файла с помощью ansible-vault.
2.4. Редактирование зашифрованного файла.
Чтобы изменить содержимое файла, который ранее был зашифрован с помощью ansible-vault, выполните:
# ansible-vault edit credentials.yml
Эта команда предложит вам указать пароль, который вы выбрали при первом шифровании файла credentials.yml. После проверки пароля откроется редактор командной строки по умолчанию с незашифрованным содержимым файла, что позволит вам внести нужные изменения. По завершении вы можете сохранить и закрыть файл, как обычно, и обновленное содержимое будет сохранено и зашифровано.
2.5. Расшифровка файлов.
Если вы хотите навсегда расшифровать файл, ранее зашифрованный с помощью ansible-vault, вы можете сделать это с помощью следующего синтаксиса:
# ansible-vault decrypt credentials.yml
Эта команда предложит вам ввести тот пароль, который использовался при первом шифровании файла. После проверки пароля содержимое файла будет сохранено на диск в виде незашифрованных данных.
3. Использование нескольких паролей.
Ansible поддерживает для хранилища несколько паролей, сгруппированных по разным идентификаторам. Это полезно, если вы хотите иметь выделенные пароли хранилища для различных сред – для разработки, тестирования и производства.
Чтобы создать новый зашифрованный файл с пользовательским идентификатором хранилища, включите параметр --vault-id вместе с меткой и расположением, где ansible-vault может найти пароль для этого хранилища. Метка может быть любой, а расположение может быть либо prompt (что означает, что команда должна предложить вам ввести пароль), либо путь к файлу паролей.
Это создаст новый идентификатор по имени dev, который использует prompt для получения пароля. Комбинируя этот метод с файлами переменных группы, вы сможете создать отдельные хранилища для каждой среды приложения:
Мы использовали dev и prod в качестве идентификаторов хранилищ, чтобы продемонстрировать, как вы можете создавать отдельные хранилища для каждой среды. Самостоятельно вы можете создать столько хранилищ, сколько захотите, и использовать любой ID.
Теперь, чтобы просмотреть, отредактировать или расшифровать эти файлы, вам необходимо предоставить тот же ID хранилища и источник пароля вместе с командой ansible-vault:
Если вам нужно автоматизировать процесс инициализации серверов в Ansible с помощью стороннего инструмента, вам потребуется способ ввода пароля хранилища без его запроса. Вы можете сделать это, используя файл паролей через ansible-vault.
Файл паролей может быть простым текстовым файлом или исполняемым скриптом. Если файл является исполняемым, выходные данные, созданные ним, будут использоваться в качестве пароля хранилища. В противном случае в качестве пароля хранилища будет использоваться необработанное содержимое файла.
Чтобы применить файл паролей в ansible-vault, необходимо указать путь к файлу паролей при выполнении любой из команд vault:
Ansible не различает контент, который был зашифрован с помощью prompt, и простой файл пароля при условии, что входной пароль один и тот же. С практической точки зрения это означает, что файл можно зашифровать, используя prompt, а затем создать файл пароля для хранения того же пароля, который использовался в методе prompt. Также верно и обратное: вы можете зашифровать содержимое, используя файл паролей, а затем использовать метод prompt, предоставляя тот же пароль при запросе Ansible.
Для большей гибкости и безопасности, чтобы не хранить свой пароль в текстовом файле, вы можете использовать скрипт Python для получения пароля из других источников.
Официальный репозиторий Ansible содержит несколько примеров сценариев, которые вы можете использовать для справки при создании своего скрипта под потребности вашего проекта.
5. Запуск плейбука с зашифрованными данными.
Каждый раз, когда вы запускаете плейбук, в котором используются данные, ранее зашифрованные с помощью ansible-vault, вам нужно будет указывать пароль хранилища в команде playbook.
Если вы использовали параметры по умолчанию и prompt при шифровании данных плейбука, вы можете использовать опцию --ask-vault-pass, чтобы Ansible запрашивал пароль:
Если вы используете данные, зашифрованные с помощью ID, вам нужно указать тот же ID хранилища и источник пароля, который вы использовали при первом шифровании данных:
Эксперты по кибербезопасности согласятся, что вопрос больше не в том, «если», а в том, «когда» вы будете взломаны.
Критическое различие между предприятиями, которые переживут утечку данных, и теми, которые этого не сделают, заключается в реализации стратегии киберустойчивости, которая учитывает планирование реагирования на инциденты, стратегии обеспечения непрерывности бизнеса и аварийного восстановления для восстановления после кибератаки с минимальными нарушениями к бизнесу.
Правление также должно знать законы, регулирующие его обязанности по раскрытию утечки данных. Директива NIS и GDPR являются примерами законодательства, которое вводит обязательства по уведомлению о корпоративных нарушениях.
Соблюдают ли ведущие стандарты ИТ-безопасности?
Примеры включают ведущий международный стандарт управления информационной безопасностью ISO 27001, Стандарт безопасности данных индустрии платежных карт (PCI DSS) и схему Cyber Essentials (которая обеспечивает базовую защиту кибербезопасности от 80% кибератак).
Сертификация по ведущим международным стандартам, таким как ISO 27001, означает, что компания применяет проверенную передовую практику в области кибербезопасности и представляет целостный подход к защите не только информации в Интернете, но и рисков, связанных с людьми и процессами.
Компания также может выбрать независимую сертификацию, чтобы убедиться, что реализованные средства управления работают должным образом.
Правильно ли расходуется наш бюджет на ИТ-безопасность?
Установление бюджета на ИТ-безопасность — это не просто получение денег на покупку дополнительных технологий для исправления дыр в кибербезопасности. Главное — использовать стратегический подход к распределению бюджета, чтобы реально изменить положение компании в области информационной безопасности.
Повышенная безопасность не приводит к расширению технологий. Фактически, одни только технологии не защитят ваш бизнес от постоянных угроз.
Деловые круги должны защищать свой текущий статус безопасности, расставляя приоритеты, какие шаги следует предпринять, чтобы соответствовать действующему законодательству, и уделять приоритетное внимание предотвращению и лечению атак.
Есть ли у нас видимость в сети?
Плохая видимость поведения сети может нанести серьезный ущерб организации. Исследование IBM Cost of Data Breach Study 2017 показало, что среднее время на обнаружение утечки данных составляет 191 день.
Многие администраторы не имеют достаточно глубокого доступа к сети и аналитике безопасности, которые им необходимы, чтобы иметь точное представление о том, что на самом деле происходит, и не имеют инструментов, которые могут быстро идентифицировать, интерпретировать и реагировать на угрозы.
ИТ-отделы и службы безопасности должны иметь возможность поддерживать четкую и постоянную видимость в сети.
Когда вы в последний раз тестировали наши процедуры восстановления?
Исследование стоимости утечки данных : влияние управления непрерывностью бизнеса в 2017 г., проведенное Институтом Ponemon, показало, что программы обеспечения непрерывности бизнеса значительно сокращают время на выявление и устранение утечек данных.
Эффективное управление непрерывностью бизнеса (BCM) помогло компаниям сэкономить 43 дня на выявлении нарушения и 35 дней на его локализации.
Планы BCM и аварийного восстановления необходимо регулярно тестировать, чтобы установить, может ли бизнес быстро восстановиться после атаки. Некоторые из соображений «что, если» должны установить, насколько уязвимы сами варианты отката для кибератак.
Например, злонамеренное нападение на ваши данные может не обнаруживаться в течение некоторого времени, а данные резервного копирования также могут быть
скомпрометированы.
Заключение
Передача ИТ-безопасности на аутсорсинг — отличный способ защитить вашу компанию. Однако, как и в случае с любым аутсорсингом, жизненно важно выбрать правильную компанию и быть в курсе последних событий в области безопасности.
Задайте эти вопросы своему провайдеру ИТ-безопасности, и если он не может ответить на них все или вам не нравятся получаемые ответы, пора переходить к новому провайдеру.
Кибербезопасность затрагивает все компании любого размера во всех секторах. Угрозы серьезны и развиваются, а законодательные и нормативные требования растут. Ущерб, с которым сталкиваются предприятия, означает, что ИТ-безопасность слишком велика, чтобы ее игнорировать.
Если вы уже работаете с поставщиком ИТ-безопасности, это только начало. Регулярное общение с вашим провайдером по вопросам кибербезопасности имеет решающее значение для защиты интересов вашей компании и обеспечения подотчетности.
ИТ-безопасность такая же, как и любая другая сторонняя услуга, как услуга IT-поддержки, обслуживания и сопровождения юридических лиц: https://itspectr.ru/it-podderzhka/ в Москве. Если вы пользуетесь услугами бухгалтера, вы все равно проверяете свой банковский баланс. Так что только потому, что у вас есть обеспечение ИТ-безопасности, вы все равно должны проявлять интерес к своей безопасности.
Здесь мы собрали 10 вопросов, которые нужно задать вашему провайдеру ИТ-безопасности:
С какими основными рисками сталкивается мой бизнес?
По данным Gartner, к 2020 году 30% компаний Global 2000 будут напрямую скомпрометированы независимой группой киберактивистов или киберпреступников.
Вашему бизнесу необходимо расставить приоритеты по реальным рискам, выявляя бреши в безопасности и их влияние на ваш бизнес. Затем вы можете убедиться, что бюджет для управления этими рисками назначен соответствующим образом.
Вам следует спросить своего поставщика ИТ-безопасности , хорошо ли он понимает влияние соответствующих юридических, нормативных и договорных требований, связанных с кибербезопасностью.
Вы тестируете наши системы, прежде чем возникнет проблема?
Существует множество тестов, которые могут оценить уязвимость систем, сетей и приложений. Важным элементом любого режима безопасности должны быть регулярные тесты на проникновение.
Тесты на проникновение — это смоделированные атаки на компьютерную систему с целью обнаружения слабых мест в системе безопасности, которые могут быть использованы. Они помогают установить, правильно ли выполнялись критические процессы, такие как установка исправлений и управление конфигурацией.
Многие компании не проводят регулярные тесты на проникновение, ошибочно полагая, что они безопасны, но новые уязвимости и угрозы возникают ежедневно, что требует от компаний постоянно проверять свою защиту от возникающих угроз.
Вы проводите регулярную оценку рисков ИТ-безопасности?
Оценка рисков должна дать вашему бизнесу уверенность в том, что все соответствующие риски были приняты во внимание. Кроме того, существуют общепринятые и понятные способы сообщения и действий по результатам оценки риска.
Без определения риска, связанного с уязвимостями, ваш бизнес может неправильно согласовать усилия и ресурсы по обеспечению безопасности. Такой подход не только тратит впустую время и деньги, но и расширяет окно возможностей для криминальных хакеров по эксплуатации критических уязвимостей.
Команды расширенных операций по обеспечению безопасности используют аналитику угроз, чтобы понять возможности потенциальных угроз, текущие действия и планы, а также предвидеть текущие и будущие угрозы.
Как соблюдается кибербезопасность?
Аудит может помочь вашему бизнесу понять эффективность своей кибербезопасности. Если организация решила соответствовать стандарту информационной безопасности, например ISO 27001, орган по сертификации может провести независимую проверку ее средств управления информационной безопасностью.
Затем это можно использовать в качестве конкурентного преимущества при проведении торгов на новый бизнес, как в случае с компаниями, сертифицированными по ISO 27001.
Сертификаты также могут предоставить убедительные доказательства того, что компания проявляла должную осторожность при защите своих информационных активов.
Предлагаете ли вы эффективную программу повышения осведомленности в области ИТ-безопасности?
Большое количество нарушений вызвано ошибкой или халатностью сотрудников. Опрос GSIS показывает, что сотрудники несут ответственность за 27% всех инцидентов, связанных с кибербезопасностью.
Социальная инженерия остается распространенной тактикой, при которой преступники могут проникнуть в сеть закулисными методами, используя уязвимых или неосведомленных сотрудников.
Невозможно переоценить критическую важность эффективной программы повышения осведомленности персонала. Исследования показывают, что традиционные меры по повышению осведомленности о кибербезопасности можно значительно улучшить с помощью многогранной программы безопасности, которая полностью меняет корпоративную культуру и борется с постоянным неправильным поведением сотрудников.
Сервер Ansible: CentOS Linux release 7.9.2009 (Core).
Node 1: CentOS Linux release 7.9.2009 (Core).
Node 2: CentOS Linux release 7.9.2009 (Core).
Node 3: CentOS Linux release 7.9.2009 (Core).
1. Введение.
Для тех, кто решит изучать Ansible, данный раздел будет крайне полезен. В данном разделе соберу некоторые полезные примеры из повседневной практики, чтобы вы могли понять как работает Ansible и научиться его использовать самостоятельно.
Официальную документацию с официальными примерами всегда можно почитать на сайте разработчиков Ansible.
Пускай у нас будет вот такой стенд из 4х виртуальных машин под управлением CentOS 7:
Все сервера, в данном примере, имеют одинаковую операционную систему CentOS Linux release 7.9.2009 (Core), одинаковых пользователей root и одинаковые пароли на учетных записях root.
Задачи: для всех узлов.
отключить SELinux и перезагрузить узлы;
обновить операционную систему;
установить на всех узлах группу полезных программ Midnight Commander, wget, tar;
настроить межсетевой экран узлов на разрешение соединяться с 80 и 443 портами;
установить web-сервер Nginx и протестировать отдачу тестовой страницы, пробросить готовую композицию HTML5 на узлы;
добавить пользователей myrzik и barsik и настроить режим sudo для них;
удалить пользователей myrzik и barsik;
выполнить некоторые произвольные команды для консоли на всех узлах дистанционно.
Протестировать:
зайти на виртуальные машины под условными пользователями и переключиться в root;
зайти на каждую виртуальную машину по http и увидеть заставку Nginx.
Условие: удалённые виртуальные машины можно настраивать только системой Ansible.
Дополнительно: еще в эту инструкцию я буду добавлять разные новые и полезные примеры, но вверху в задачах, учитывать это не буду.
3. Подготовка сервера Ansible.
Первым делом отключим на Ansible Server систему SELinux. Рамках учебного стенда она нам не нужна.
Когда вы устанавливаете CentOS 7, функция SELinux включена по умолчанию, из-за этого некоторые приложения в вашей системе могут фактически не поддерживать этот механизм безопасности. Чтобы такие приложения функционировали нормально, вам необходимо отключить SELinux.
Конечно в интернете имеется много способов настройки и эксплуатации этой системы, но в данной инструкции я, пока что, настраивать SELinux не буду.
Пожалуй, это самый суровый способ, но тоже работает.
Вводим команду:
# yum -y remove selinux*
Перезапустим Ansible Server:
# shutdown -r now
3.2. Обновление системы.
Обновим полностью операционную систему сервера Ansible:
# yum -y update && yum -y upgrade
3.3. Установка Ansible.
По умолчанию Ansible нет в репозитории CentOS 7.
Подключим дополнительный репозиторий EPEL:
# yum -y install epel-release
После устанавливаем сам сервер управления Ansible:
# yum -y install ansible
Проверка версии установленной версии Ansible:
# rpm -qa | grep ansible
Ответ:
или вот так:
# ansible --version
Ответ:
Отлично! Теперь у нас есть сервер Ansible.
3.4. Создание файла инвентаря.
Установим файловый менеджер и текстовый редактор в одном лице — Midnight Commander:
# yum -y install mc
Файл инвентаря по умолчанию обычно находится в /etc/ansible/hosts, но вы можете использовать опцию -i для указания пользовательских файлов при запуске команд и плейбуков для Ansible.
Это удобный способ настройки индивидуального инвентаря для каждого проекта, который можно включить в системы контроля версий, такие как Git.
Создадим свой файл нашего инвентаря:
# cd ~
# mkdir -p ~/ansible-inventory
# cd ~/ansible-inventory
# touch my-test-servers.inventory
test_servers — это группа серверов, в которую добавлены три сервера с IP-адресами192.168.0.30, 192.168.0.31 и 192.168.0.39;
server 1-3 — это индивидуальные алиасы каждого из серверов группы test_servers в списке инвентаря;
ansible_ssh_host — это специальная переменная, которая содержит IP-адрес узла, к которому будет создаваться соединение;
ansible_ssh_user — это еще одна специальная переменная которая говорит Ansible‘у подключаться под указанным аккаунтом, то есть пользователем. По умолчанию Ansible использует ваш текущий аккаунт пользователя, или другое значение по умолчанию, указанное в ~/.ansible.cfg (remote_user).
3.5. Генерация ключей пользователя root.
Создаём пару RSA-ключей для пользователя root на Ansible сервере:
# ssh-keygen
На все вопросы жмём Enter. Нам не нужны никакие пароли на ключи и генерируем ключи мы в каталог по умолчанию.
Ответ:
3.6. Проброс root-ключей на узлы.
Копируем открытые ключи пользователя root на узлы, которыми планируем управлять с помощью Ansible.
Выполним команду автоматической установки публичного ключа пользователя root на все узлы с авторизацией по паролю, до которых может дотянутся Ansible по списку инвентаря my-test-servers.inventory.
# ansible all -m authorized_key -a "user=root key='{{ lookup('file', '/root/.ssh/id_rsa.pub') }}' path=/root/.ssh/authorized_keys manage_dir=no" --ask-pass -i /root/ansible-inventory/my-test-servers.inventory
Ответ:длинный список изменений на каждом узле.
Конечно можно было и вручную всё распространить, у нас узлов 3 штуки, а представьте, если их было бы 10-20 штук:
Модуль ping проверит, есть ли у вас валидные учетные данные для подключения к нодам, определенным в файле инвентаря, и может ли Ansible запускать сценарии Python на удаленном сервере от имени root пользователя.
Ответ pong означает, что Ansible готов запускать команды и плейбуки на этом узле.
Ответ:
Выполним простую команду 'uptime' для проверки возможности управления узлами:
# ansible -a 'uptime' test_servers -i /root/ansible-inventory/my-test-servers.inventory
Ответ:
3.8. Настройка входа Ansible на самого себя.
Также настроим вход по ключу Ansible Server на самого себя:
Внимание! Почти все типовые действия, которые вам потребуются для работы с Ansible, имеются на официальном сайте с технической документацией по этой системе. Не тратьте на поиски в интернете готовых решений, сразу открывайте официальное руководство пользователя Ansible и ищите там.
Когда вы устанавливаете CentOS 7, функция SELinux включена по умолчанию, из-за этого некоторые приложения в вашей системе могут фактически не поддерживать этот механизм безопасности. Чтобы такие приложения функционировали нормально, вам необходимо отключить SELinux. Рамках учебного стенда она нам не нужна.
Примечание! После перезагрузки узлов я проверил состояние SELinux на узлах:
# sestatus
Ответ:
Как видно SELinux отключен на всех узлах дистанционно с помощью Ansible.
Примечание! В любой команде Ansible, которая требует перезагрузки после изменения узел будет перезагружен, когда playbook завершится, а затем Ansible будет ждать, пока узел не станет доступным, и ssh будет работать, прежде чем перейти к следующему плейбуку.
Примечание! Если вам нужно перезагрузиться на полпути через playbook вы можете заставить все задачи выполниться с помощью команды:
- name: Reboot if necessary
meta: flush_handlers
Иногда это можно сделать, чтобы что-то изменить, заставить сервер перезагрузиться, а затем проверить, что изменения вступили в силу и все в том же playbook.
4.2. Обновление операционных систем на узлах.
Перед выполнением других учебных задач, обновим операционные системы на узловых серверах с помощью Ansible.
Воспользуемся готовым решением ansible.builtin.yum от создателей Ansible по обновлению программного обеспечения на узлах.
Долго-долго ждём, особенно если это самое первое обновление после установки узловых систем и они ни разу еще не обновлялись до этого.
После некоторого всплеска активности CPU на узлах Ansible всё завершилось.
Ответ:
Все пакеты на узлах успешно обновлены до последнего актуального состояния из доступных узлам репозиториев.
4.3. Установка группы полезных программ.
Про учебному сценарию требуется установить пакет программного обеспечения, который состоит из традиционного набора программ для многих серверов: mc, wget, tar.
Снова воспользуемся готовым решением ansible.builtin.yum от создателей Ansible по установке программного обеспечения mc, wget, tar на узлах.
---
- name: Установка полезных программ на всех узлах
hosts: test_servers
become_method: sudo
become_user: root
tasks:
- name: Установить группу программ
yum:
name: "{{ package }}"
vars:
package:
- mc
- wget
- tar
state: latest
Проверим синтаксис плейбука 04-pb-progs-install.yml специальной утилитой --syntax-check от Ansible:
Все пакеты на узлах успешно установлены программы mc, wget, tar из доступных узлам репозиториев.
4.4. Настройка межсетевого экрана.
Для успешной и безопасной работы любого сервера первым делом требуется настраивать его сетевую безопасность. Настроим разрешение обращаться к узлам по 80 порту и 443 порту.
Воспользуемся готовым решением ansible.posix.firewalld от создателей Ansible по настройке межсетевого экрана firewalld на узлах.
Отдельно установим модуль ansible.posix.firewalld на Ansible сервер:
# ansible-galaxy collection install ansible.posix
Ответ:
Ansible поменяет настройки в файлах конфигурации firewalld. Для того, чтобы новые настройки были задействованы, требуется перезапустить firewalld на узлах.
В этом перезапуске службы межсетевого экрана нам поможет модуль ansible.builtin.service от создателей Ansible.
По умолчанию index.html — заставка Nginx, хранится в каталоге /usr/share/nginx/html на узлах, значит, если её принудительно заменить на что-то другое, то Nginx это будет добросовестно показывать.
В копировании содержимого Ansible каталога в другой каталог узлов, поможет модуль ansible.builtin.copy.
Заранее скачайте заставку на HTML5 и распакуйте её в каталог /root/ansible-files/nginx/ntml5/zastavka. Будем копировать содержимое этого каталога на узлы Ansible.
--
- name: Копирование каталогов Ansible в каталог узлов
hosts: test_servers
become_method: sudo
become_user: root
tasks:
# Копируйте дважды, так как иногда файлы пропускаются (в основном только один файл пропускается из папки, если папка не существует).
- name: Копирование из каталога в каталог
copy:
src: "/root/ansible-files/nginx/html5/zastavka/"
dest: "/usr/share/nginx/html/"
owner: root
group: root
mode: 0644
backup: yes
ignore_errors: true
Примечание: Если вы передаете несколько путей с помощью переменной, тогда:
src: "/ корень / {{элемент}}"
Примечание: Если вы передаете путь, используя переменную для разных элементов, тогда:
src: "/ root / {{item.source_path}}"
Проверим синтаксис плейбука 07-pb-nginx-html5.yml специальной утилитой --syntax-check от Ansible:
Проверим доступность новой демонстрационной страницы HTML web-сервера на узлах Ansible.
Наберем в браузере адрес какого-нибудь узла:
# http://192.168.0.39
Ответ на всех узлах одинаковый:
Web-сервер получил новую заглушку HTML5 и Nginx поменял страничку приветствия, которая была по умолчанию.
4.6. Добавить пользователей с sudo.
Для обслуживания тестовых серверов создадим пару учетных записей для самых трудолюбивых сотрудников, которые будут работать не покладая лапок. Учетный записи для пользователей: Мурзик и Барсик.
Создадим на самом сервере Ansible двух пользователей: myrzik и barsik. Генерируем для них ключи. Можно и готовые ключи использовать для установки на узлах, но у меня их нет. Барсик с Мурзиком не прислали ключи.
Создание:
# adduser myrzik
# adduser barsik
Установка паролей, чтобы они могли заходить на сервер Ansible:
# passwd myrzik
# passwd barsik
Генерируем для них ключи:
# su myrzik
# ssh-keygen
На все вопросы для myrzik просто жмём Enter.
# su barsik
# ssh-keygen
На все вопросы для barsik просто жмём Enter.
Теперь у нас на сервере Ansible появилось две учетные записи для наших пушистых коллег.
Добавим на узлы с помощью Ansible учетные записи пользователей myrzik и barsik вход по ключам, а так же режим sudo без пароля для них.
В работе Ansible с учетными записями пользователей поможет модуль ansible.builtin.user.
Команда для командной строки на узлах Ansible исполнена.
Есть еще способы запустить консольную команду:
---
- name: Установка zabbix-agent на узлах
hosts:
cos7client1
cos7client2
cos7client3
become_method: sudo
become_user: root
tasks:
- name: Установка репозитория docker и установка docker на узлы
ansible.builtin.shell: "curl -fsSL https://get.docker.com/ | sh"
- name: Поставим в автозапуск docker на узлах
ansible.builtin.service:
name: docker
enabled: yes
- name: Запустим docker на узлах
ansible.builtin.service:
name: docker
state: started
- name: Версия docker на узлах
ansible.builtin.shell: docker info
- name: Executing a Command Using Shell Module
shell: docker info
- name: Executing a command using command module
command: docker info
Для того, что бы увидеть что выводит команда в консоль узла, введите ключ -vvv:
Если ваши плейбуки должны работать в определённом порядке и если все они являются обязательными, то создайте Основную книгу и включите файлы с задачами с помощью операторов import_playbook.