Управляем серверами локально через Ansible


Количество серверов (физических и виртуальных), которыми необходимо управлять, как правило, у каждого администратора месяц от месяца только прибавляется. Даже если у Вас нету в организации сервисов, которые работают по понятиям HighLoad, то наверняка количество IT систем постоянно растет. Для того, чтобы оставаться эффективным в современных условиях, использование какой-либо из систем управления конфигурациями просто необходимо. Ansible – одна из таких систем, которая по моему мнению, по своим возможностям и архитектурным особенностям лучшая на сегодняшний день.

Использовать этот программный продукт можно как на сервере, так и с локального ноутбука или настольного компьютера. Из основных требований – наличие интерпретатора Python и нескольких модулей для корректной работы Ansible. Мне бы хотелось тут показать, как можно настроить это ПО таким образом, чтобы без использвоания учетной записи root, выполнять любые действия на своих серверах на локальном компьютере без необходимости вводить пароли.

Читать далее «Управляем серверами локально через Ansible»

Темы для курса “Практикующего Linuxоида”


Есть определенные ключевые предметы в профессиональной сфере ITшников, которые являются критичными для успешной работы и высокой производительности. Знание операционной системы Linux, я думаю, это один из этих ключевых предметов. В наших институтах, к сожалению, не преподают дисциплину по этой операционной системе. Практические знания по этому предмету нужны и системным администратором, и программистам, и инженерам, и специалистам по информационной безопасности. Большая часть серьезных приложений в современном мире создается для работы в ОС Linux. Соответственно, понимая принципы работы этой операционной системы, программисту становится гораздо проще писать код и использовать все имеющиеся возможности. Точно так же, для инженеров и администраторов просто критично необходимо знать ОС Linux. Это знание позволит быстро овладеть навыками работы со многим оборудованием и программным обеспечением. К примеру, система виртуализации VMware ESXi работает на базе Linux, много устройств Cisco работает на базе Linux, фаерволы CheckPoint используют Linux. И подобных примеров множество.

Для себя уже давно осознал, что чем больше ты узнаешь и изучаешь окружающий мир, тем большим ты должен делиться с миром и людьми. Если ты хорошо разбираешься в какой-то дисциплине, ты обязательно должен делиться этими знаниями и навыками. Долго размышлял о проведении курса по практическому применению ОС Linux. Литературы в Интернете по этому поводу, конечно же, очень много на различные тематики. Однако в реальности, как правило, необходимо хорошее понимание определенных ключевых происходящих процессов в операционной системе, а также возможности, которые дают основные утилиты и приложения. Обо всем остальном нужно иметь представление и при необходимости освежать знания с помощью интернет ресурсов.

Читать далее «Темы для курса “Практикующего Linuxоида”»

Инструменты админа во времена DevOps

tools image

В свое время, когда начинал работать в IT, для системного администратора было важно разбираться с операционной системой Linux, уметь пользоваться bash и основными утилитами ОС, знать как настраивать Apache, Nginx, MySQL, Postfix и понимать сеть и маршрутизацию. Прошло время, и теперь сисадмины стали девопсами. Теперь уже всех вышеперечисленных знаний стало недостаточно, чтобы быть крутым перцем в области администрирования. Технологии HighLoad, зародившиеся в таких гигантах, как Facebook и Google, пришли в обычные компании, где работают уже простые смертные. Если еще лет пять – семь назад в проектах, где нужно было горизонтально масштабировать сервисы под большую нагрузку, приходилось очень долго задумываться над технической реализаций. Сейчас все это решается легко и банально.

Где-то в литературе читал, что DevOps – это в первую очередь взаимоотношения между ITшниками в коллекиве и уже потом какие-то специфичные программные утилиты. Однако, с моей точки зрения, DevOps – во многом определяют программные продукты, которые позволяют организовать хорошо масштабируемые IT сервисы с уклоном в облачные технологии. Понимание того, как работают основные программные продукты HighLoad, одно из основных требований для инженеров DevOps. Тут попытаюсь показать основные инструменты, которые используют DevOps специалисты. В первую очередь это система контейнеризации Docker и система управления контейнерами Kubernetes. Следующим важным продуктом обязательным для изучения является система управления конфигурациями Ansible. Также многие относят к средствам DevOps-ов систему контроля версия Git, которую по сути используют практически все программисты. Также специалисту необходимо знать средства CI – Contitunuos Integration на базе ПО Jenkins, и систему IaaC – Terraform.

Читать далее «Инструменты админа во времена DevOps»

Тонкости использования SSH


Наверное, каждый системный администратор и программист в процессе своей работы пользуются ssh для подключения к удаленным серверам. Сложно себе представить современный IT мир без SSH. Если раньше это был стандартный протокол для удаленного управления NIX систем, то теперь практически все IT и телекоммуникационное оборудование использует его в своей работе. Протокол SSH использует современные алгоритмы шифрования для передачи трафика между сервером и клиентом. Что передается внутри зашифрованного SSH канала узнать для внешнего наблюдателя невозможно.

В этой статье мы рассмотрим способы туннелирования практически любого типа трафика через SSH. Эти механизмы постоянно используются исследователями информационной безопасности, но мало знакомы для большинства сетевых и системных администраторов. Туннелирование трафика через SSH с одной стороны дает множество возможностей для тех, кто им пользуется. С другой стороны это огромная потенциальная брешь в компьютерной сети любой организации, которая может привести к полной компрометации всех IT систем предприятия.

Читать далее «Тонкости использования SSH»

Базовая защита Linux сервера (часть 2)


В первой части статьи о безопасности сервера Linux я расписал то, как мы защищаем пользователей в системе, их пароли, а также сервис SSH. В этой части остановимся на фаерволе и защите сетевых сервисов от атак типа брут форса. Объединив все это вместе, мы получим общую картину защиты операционной системы от попыток взлома из вне. Для себя уже давно усвоил, что этими настройками нужно обеспечивать любой свой Linux сервер в Интернете, если хочется спать спокойно. Про настройки безопасности отдельных приложений, я думаю, мы поговорим отдельно в дальнейшем.

Персональный фаервол каждого сервера Linux, да и не только сервера, обеспечивается с помощью пакета iptables. В ряде дистрибутивов уже есть определенные готовые настройки для фаервола. Но, к сожалению, далеко не во всех, и, как правило, системному администратору приходится самому настраивать правила iptables. Я думаю, эти знания нужны любому квалифицированному инженеру IT. Функционал iptables очень широк и позволяет создавать из бокса с линуксом очень неплохой маршрутизатор с возможностями NAT и фильтрации пакетов. В контексте данной статьи iptables будет использоваться для фильтрации входящих и исходящих сетевых пакетов.

Читать далее «Базовая защита Linux сервера (часть 2)»

Базовая защита Linux сервера (часть 1)

defence

В процессе работы часто задается вопрос – что нужно делать, чтобы защитить работу серверов под управлением Linux. Многие организации для работы серверных приложений выбирают операционную систему Linux. Кто-то предпрочитает CentOS/RedHat, кто-то Ubuntu/Debian. Принципиальной разницы при работе с ними я не вижу. Есть и другие экзотические дистрибутивы Linux, но в реальном продакшене по опыту они встречаются крайне редко. Время для выполнения работ по администрированию на других дистрибутивах заметно увеличивается. Все что пишу в этой статье применимо ко всем вышеуказанным дистрибутивам с возможными небольшими отклонениями.

Различных приложений, которые работают под управлением Linux не счесть – веб сервера, почтовые сервера, контейнеры, системы управления, ftp и прочие, прочие. Описывать в одной статье способы защиты для каждого из них не представляется возможным, да и нужным. Я сосредоточусь на основных вещах – как работать с пользователями на сервере, как организовывать правильно удаленный доступ через ssh, а так же на базовой фильтрафии сетевых пакетов, поступающих на сервер.

Читать далее «Базовая защита Linux сервера (часть 1)»