По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Продолжаем рассказывать про Terraform. Предыдущая статья тут. В данной статье мы разберем динамичные блоки кода в Terraform, которые можно использовать в своей работе. Данный функционал значительно облегчает написание кода Terraform с помощью которого мы управляем сервисами Amazon. В статье будет описан сценарий с генерацией кода Terraform. Данный функционал был добавлен в terraform 0.12 версии. Для работы создадим новую директорию, можно путем копирования из предыдущего урока. Директорию назовем lesson-5. Для написания кода мы по-прежнему используем текстовый редактор Atom. Мы можем создать файлик с именем DynamicSecurityGroup.tf или переименуем существующий webserver.tf если вы добавили папку путем копирования. Если вы создавали путем копирования отредактируем файл, убрав строчки, которые создают веб-сервер. Удаляем. Теперь мы начнем писать код Terraform, чтобы у нас появилась динамическая группа безопасности. В прошлой статье мы прописывали 2 правила. Данные правила открывали нам порты 80 и 22, аналогично можно прописать, чтобы открывался порт 443 ну или любой другой, который нам необходим для корректного инстанса и работоспособности сервиса. А теперь представим, что нам необходимо открыть еще 20 разных портов. Можно сделать это с помощью copy-paste, т.е. копированием и вставкой уже существующих блоков кода с редактированием протокола и номеров портов. В terraform версии 0.12 добавили функционал и назвали его DynamicBlocks, что позволит генерировать кусочки кода в Terraform. Добавим следующую часть кода: dynamic "ingress" { for_each = ["80", "443", "8080", "1541", "9092"] content { from_port = ingress.value to_port = ingress.value protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } } Разберем для лучшего понимания. Функция Dynamic, далее кавычки двойные и внутри мы пишем, что-будет динамическим, в нашем случае это функция Ingress. Открываем фигурные скобки и пишем цикл с помощью for_each = ["номерпорта1", "номерпорта2"] указывая номера портов. Следовательно, цикл for_each пройдется по каждому из параметров и будет применена конструкция content. Значения внутри конструкции content, будут заменены, а именно с какого порта на какой порт открывается доступ. Далее в конструкции content описываем используемый протокол сетевого уровня и cider_blocks – с каких IP или диапазонов IP разрешено использовать данной правило. Конструкция 0.0.0.0/0 позволяет указать, что данное правило с данным портом разрешено использовать всему интернету вне зависимости от IP адреса. В целях информационной безопасности рекомендую использовать конкретные подсети или конкретные IP адреса, конечно, если это не публичный сервис. Если посмотреть на пример, то написанное таким образом правило, сгенерирует нам 5 отдельных правил, т.е. получается достаточно удобно и сокращает нам количество строчек в коде, а также потенциально количество ошибок. Код становится более читаемым и легким. После использования в коде функции dynamic, мы можем удалить все ставшие ненужными функции ingress. Не забывайте изменить имя ресурса. Это делается путем редактирования переменной name в разделе функции resource, для читаемости кода и удобства управления ресурсами в облаке AWS. После того, как у нас готов наш код, мы можем его запустить. Так как, была создана новая папка, нам необходимо инициализировать ее использования. Переходим в необходимую директорию, в которой находится файл. И запускаем инициализацию стандартной командой terraform init. После ввода команды ожидаем пару минут, пока Terraform скачает все необходимые модули для подключения и работы. Следующей командой terraform apply мы запускаем код на исполнение. И получаем запрос на подтверждение операции. Среди вывода мы можем видеть: Это значит что все порты, которые были указаны в аргументах будут созданы. Осталось подтвердить и дождаться успешного выполнения операции.
img
В данной статье мы разберем, как устанавливать операционную систему Ubuntu Linux. Сразу сделаем оговорку, установка операционной системы на виртуальную машину или на реальный ПК/сервер ничем не отличается - разница заключается лишь в том, что может отличатся набор программного обеспечения эмулирующих работу системы виртуализации. И в данном контексте могут быть нюансы. Мы будем использовать платформу виртуализации Virtual Box. Дистрибутив находится в публичном доступе по ссылке https://www.virtualbox.org. Тут переходим в раздел Downloads и выбираем нужный нам установщик. Мы будем устанавливать программу на Windows, поэтому для скачивания нажимаем Windows hosts. Данный дистрибутив может скачать любой желающий и установить, он совершенно бесплатен. Установка его достаточно проста, заключается в нажатии кнопки “Next” несколько раз. Нет необходимости вносить изменения - нам подойдут параметры по умолчанию. В процессе система поставит все необходимые компоненты, в том числе драйвер захвата пакетов и на некоторых моделях ПК/серверов/ноутбуков попросит перезагрузить компьютер. В результате успешной установки на рабочем столе мы увидим иконку запуска приложения Virtual Box. Запускаем и можем начать создавать наш виртуальный сервер. Для установки операционной системы нам понадобится дистрибутив операционной системы. Данные дистрибутивы находятся в свободном доступе в интернете. С данного сайта https://ubuntu.com/ (или https://ubuntu.ru/ на русском языке) можно скачать дистрибутив Ubutnu или с данного сайта https://www.centos.org/ можно скачать дистрибутив CentOS. Теперь можно начать создавать виртуальную машину. Нажимаем кнопку "Создать". Появляется диалоговое окно создания виртуальной машины. Необходимо ввести ее название, выбрать тип (в нашем случае Linux) и выбрать версию (в нашем случае Ubuntu x64). Выбор x64 разрядной операционной системы обусловлен фактором работы с оперативной памятью более 3 ГБ. В случае с x32 разрядной операционной системой вся память, что более 3 ГБ видна операционной системе видна не будет. Нам нужно выделить ей некое количество оперативной памяти, память выделяется из пула доступной оперативной памяти материнской машины (например, если у нас ноутбук с 8 ГБ оперативной памяти, следовательно мы можем выделить от 0 до 6 ГБ, до 6 ГБ потому, что материнской операционной системе тоже требуется для функционирования оперативная память). В большинстве случаев достаточно 2 ГБ оперативной памяти. Далее выбираем папку, где будет хранится файл с настройками виртуальной машины и виртуальный жесткий диск. Система виртуализации создает файл жесткого диска, который занимает объем, который вы выделяете для работы виртуальной машине. Нажимаем кнопку “Создать”. На следующем шаге система спрашивает, где будем хранить жесткий диск и его объем, тип и формат. Выбираем тип жесткого диска VDI (“Родной” для VirtualBox) и указываем размер HDD. Нажимаем еще раз кнопку “Создать”. После этого появляется наша виртуальная машина в списке, и мы можем нажать кнопку "Запустить". После этого система предлагает выбрать загрузочный диск. Нажимаем значок папки. Получаем вот такое диалоговое окно c выбором дистрибутива загрузочного диска. Если данное окошко пусто, то необходимо нажать кнопку "Добавить" и указать путь к скаченному файлу установки. Выбираем, затем нажимаем кнопку "Продолжить". Виртуальная машина видит установочный дистрибутив начинает запускать установочную оболочку. Если, вы планируете установку версии для Desktop – то можете выбрать удобный для вас язык, в случае установки в качестве серверной выбирать следует язык Английский, потому что это позволит избежать ошибок локализации, которые периодически присутствуют на любой операционной системе. На следующем экране система попросит определить клавиатуру, можно нажать Identify keyboard для определения, но обычно оболочка корректно определяет тип клавиатуры и изменения не требуется. Следующий шаг - сетевые настройки. Тут ситуация следующая - можно оставить по умолчанию IP адрес, который был выдан системой виртуализации, а можно сделать, самостоятельную настройку сети и даже создать интерфейс агрегации для увеличения пропускной способности сервера, но это уже продвинутый уровень, пока нам хватит текущих параметров. Следующий экран предлагает ввести адрес proxy–server для доступа в интернет, данная опция необходима если в корпоративной среде используется такой сервер. Следующий шаг - установка просит указать альтернативный источник файлов в сети интернет. Затем - разметка разделов жесткого диска, также можно оставить по умолчанию. При нажатии "Далее" появляется сводная таблица по изменениям, которые будут сделаны на жестком диске. Можно увидеть, что система достаточно гибко позволяет разметить жесткий диск и файловую систему. После нажатия "Далее", появляется вот такое окошко с подтверждением. Оно появляется вследствие того, что все файлы на данном разделе будут уничтожены. Следовательно, чтобы подтвердить необходимо выбрать "Continue". После этого происходит, новая разметка жесткого диска. Разметка — это разделение общего пространства диска на логические разделы. Мы разбили доступное пространство на логические разделы. Далее необходимо заполнить поля - имя пользователя, имя серверарабочей станции, пароль. Нажимаем "Далее". Следующий экран предлагает нам установить OpenSSH сервер - данный пакет опционален, но лучше его поставить. OpenSSH нам позволит подключаться к серверу в дальнейшем по протоколу SSH. И последний экран перед началом установки - оболочка спрашивает, какие пакеты могут понадобиться для работы. Можно пока пропустить. После нажатия "Далее" начинается установка операционной системы. При наличии интернета система, автоматически обращаться будет к своим репозиториям за обновлениями. Если мы хотим сократить время установки, то при появлении кнопки "Cancel update and reboot" мы можем отменить данное обновление и перезагрузить VM. Затем на экране появится ошибка, что операционная система не может размонтировать CD-ROM, нажимаем Enter и операционная система начинает грузится. Данное сообщение появляется, т.к. CD-ROM виртуальный и она это не понимает и не может его физически открыть. Следовательно, данное сообщение не имеет значения. После перезагрузки, мы получаем полнофункциональную операционную систему. Заходим под логином и паролем, которые мы указывали на этапе установки операционной системы. Готово, успех! 🏆 Мы установили Linux на виртуальную машину.
img
Каждый день на сайт заходят тысячи поисковых роботов/ботов, и очень немногие из них помогают. Некоторые из них вообще являются продуктами злоумышленных целей ботами или спамом. Откуда можно узнать, сколько разных ботов посещают ваши веб-сайты? На самом деле, однозначного ответа нет. Для этого необходимо просмотреть файл access.log веб-сервера и найти столбец User-Agent. Допустим, вы хотите перечислить все боты, кроме Googlebot, тогда вы можете выполнить следующую команду на вашем веб-сервере, где существует файл access.log. grep bot access.log |grep -v Googlebot Вас тоже удивил результат? Вот, что выдал тот же запрос на моем сервере: root@gf-prod:nginx# grep bot access.log |grep -v Googlebot | wc -l 616834 root@gf-prod:nginx# Прежде чем блокировать что-либо, необходимо просмотреть их и убедиться, что вы не блокируете то, что используется вашим приложением. Вообще, есть много способов блокировки ботов, но я всегда предпочитаю блокировать их на границе. Причина проста - бесполезные запросы вообще не должны попадать и обрабатываться веб-сервером. А теперь, давайте узнаем, как блокировать ботов, которые вам не нужны, с помощью брандмауэра Cloudflare. Заходим на панель управления Cloudflare; Переходим на вкладку Firewall, затем - правила firewall и нажимаем на кнопку создать правило firewall. Вводим название правила; В качестве фильтра выбираем User Agent, оператор - contains, а в качестве значения - название бота, которое нужно заблокировать; Чтобы добавить несколько критериев в одно правило используйте оператор OR. Примечание: боты, указаны в целях демонстрации, они не обязательно вредоносные. Затем в качестве действия выбираем Block и нажимаем Deploy; Если умеете работать с выражениями, то тоже самое можете сделать кликнув на ссылку Edit expression. Сразу после применения, можно будет увидеть созданное правило. Чтобы данное правило применялось к трафику, переключатель состояния должен быть ON. Легко, не так ли? Что еще можно сделать, экспериментируя с правилами межсетевого экрана? Для повышения безопасности можно применять указанные ниже критерии блокировки: Блокировать если запрос идет с конкретного ASN или IP адреса; По соответствию ключевым словам cookie, referrer, X-Forwarder-for; Блокировка запросов из конкретной страны; Отключение нежелательных HTTP-методов в роде PUT, DELETE, OPTIONS, PURGE и т.д. И другие подобные опции. Все это можно выполнить как с помощью графического интерфейса, так и редактированием выражений. Изменения применяются почти сразу. Заключение Правила брандмауэра Cloudflare - отличный способ без простоев повысить защиту веб-приложений на границе сети. Если еще не применяете данное решение, вы также можете рассмотреть возможность использования Cloud WAF для повышения безопасности приложений и защиты от DDoS и других сетевых уязвимостей.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59