По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В данной статье мы рассмотрим, что такое Terraform и для чего он нужен. 1.Обзор Terraform – Open Source проект от HashiCorp создан в 2014 году. Является превосходным инструментом для создания Инфраструктуре в коде (Infrastructure as a Code). Проект абсолютно бесплатный и можно даже скомпилировать его из исходников, изменить его, т.е полностью открытый проект. Данный продукт является превосходным инструментом для создания инфраструктуры в коде. Сайт продукта https://www.terraform.io. И так, что это такое? Язык программирования инфраструктуры в cloud, не важно какой cloud. AWS, Google Cloud, Microsoft Azure, Digital Ocean, Yandex, AliCloud и есть поддержка многого другого, в том числе плагины под VMware. С помощью данного программного обеспечения можно даже управлять репозиторием Git Hub. Данный продукт является отличным для написания IaaS кода. Синтаксис кода пишется на Hashicorp Configuration Language (HCL). Файлы, содержащие написанный вами код, должны иметь расширение tf. Это обычные текстовые файлы на программном языке. Можно использовать любой текстовый редактор с дополнительными плагинами для Terraform, чтобы система подсказывала, поправляла, давала подсветку или раскрашивала код для удобства, чтения. Очень удобный для этой цели использовать текстовый редактор Atom. Код после написания не требует никакой компиляции, т.е просто пишите свой текстовый файл на HCL и запускаете просто с помощью Terraform. Terraform работает на Windows, MacOS, Linux, т.к он написан на языке Go, компилируете под операционную систему и запускаете, где угодно. Если рассмотреть конкурентов, то это AWS CloudFormation – инструмент для написания кода для AWS, он не кроссплатформенный и позволяет писать код только для AWS. Следующий конкурент Ansible - с помощью него тоже можно создавать инфраструктуру, через код, но он на мой взгляд слишком громоздкий и не очень удобный. Есть еще Puppet и Chef. Вот самые популярные инструменты конкуренты для создания инфраструктуры из кода. 2. Установка на Windows Установка на операционную систему MS Windows достаточна простая. Переходим на основной сайт продукта и выбираем операционную систему MS Windows нужной разрядности нажимаем, скачиваем. После закачки мы получим файл в zip архиве. Распаковываем и получаем файл terraform.exe. В принципе этого для работы достаточно, но неудобно. В такой конфигурации необходимо каждый раз вводить путь к файлу terraform.exe. Чтобы этого избежать необходимо добавить путь в переменные среды Windows. В операционной системе Windows 10 нажимаем правой кнопкой Пуск, выбираем Система, в открывшемся окне слева выбираем Сведения о cистеме, далее переходим на вкладку Дополнительно, далее внизу кнопка Переменные среды. В нижнем окне создаем новую переменную terraform и путь к месту, где лежит файл. 3. Установка в Linux Установка Terraform на Linux происходит не сложнее, чем на Windows. Открываем в браузере официальный сайт, выбираем разрядность Linux и копируем адрес ссылки на файл в буфер обмена. Открываем Terminal. Создаем или переходим в нужную директорию mkdir terraform или cd /tmp. Скачиваем wget URL и в директории появляется нужный файл. Распаковываем unzip terraform_0.15.1_linux_amd64.zip. В результате распакуется один исполняемый файл terraform. Осталось перенести файл откуда он будет запускаться с любой директории sudo mv terraform /bin. Директория с бинарными файлами. После этого мы можем вызывать терраформ из любого места командой terraform.
img
При внедрении культуры DevOps, вне зависимости от инфраструктуры организации, программного инструменты имеют решающее значение. В этой статье расскажем о лучших инструментах управления конфигурацией в DevOps. Но давайте сначала выясним, что такое DevOps. Что такое DevOps, что нужно знать и сколько получают DevOps - специалисты? Что такое DevOps? DevOps происходит из интеграции команд разработчиков (Dev) и специалистов по информационно-техническому обслуживанию(Ops), чтобы обеспечить ценность для клиентов и создать гибкость в разработке программного обеспечения. DevOps сосредоточен на том, как люди работают и сотрудничают, делясь своими мыслительными процессами и приоритетами, чтобы ускорить разработку программного обеспечения. Как культура, основная идея DevOps заключается в оптимизации функций и эффективности задействованных команд независимо от используемых инструментов. Но как началась эта единая разработка? Ранее в жизненном цикле разработки программного обеспечения были разработчики, чья работа заключалась в написании кода, как указано клиентами, без настройки и обслуживания среды для требуемого программного продукта. Команда информационно-технического обслуживания выполняла производственные операции и задачи технического обслуживания, переживая все кошмары, связанные с производственным этапом. Представьте себе управление программным продуктом, в разработке которого вы не участвовали! Тяжело, да? Команда Ops несла бремя реализации ошибок, управления зависимостями инфраструктуры и, скорее, проблем, связанных с производственной средой программного обеспечения. Чтобы устранить этот пробел, был придуман DevOps – тандем людей, задач и всех сквозных процессов, необходимых для предоставления клиентам тщательно разработанного продукта. Почему DevOps так важен? Когда команды в любой среде разработки правильно интегрируют методы DevOps, такие как непрерывная интеграция и управление конфигурацией, компании получают следующие преимущества: Более короткие циклы выпуска приложений DevOps служит для поддержки готовой к развертыванию базы кода, где в любой момент команда DevOps может запускать доступные версии программного обеспечения без сбоев продукта. CI/CD-конвееры, со всей автоматизацией и тестами, обеспечивают последовательную запуск стабильного программного продукта в производство, что позволяет разработчикам добиться более коротких циклов выпуска. Наглядность процессов разработки Выявление дефектов программирования, обнаружение угроз безопасности, инициирование откатов и даже реагирование на инциденты могут быть затруднены, когда среда разработки подобна черному ящику. Более короткие циклы выпуска и непрерывный мониторинг в DevOps приводят к большей видимости всех операций. Что такое управление конфигурацией в DevOps? Управление конфигурацией - это автоматизация значительных и повторяющихся действий в ИТ-среде. Управление конфигурацией решает задачи, которые должны быть выполнены на тысячах машин. Такие задачи могут включать установку, модернизации и обновление программного обеспечения, управление исправлениями, обеспечение безопасности, управление пользователями и т.д. С появлением контейнерных технологий и других усовершенствований инфраструктуры, системные администраторы считают, что настройка ИТ-сред без средств автоматизации является сложной задачей. К счастью, существуют средства управления конфигурацией для создания и оптимизации сред времени выполнения. Инструменты управления конфигурацией в DevOps предоставляют необходимую инфраструктуру через сценарии/Инфраструктуру как код. Рассмотрим следующие широко используемые средства управления конфигурацией. 1. Ansible Решение Ansible автоматизирует настройку инфраструктуры, развертывание приложений и выделение ресурсов облачных сред, используя модель услуг «Инфраструктура как код». Ansible - это полезный инструмент, который инженеры DevOps могут использовать для автоматизации управления инфраструктурой, приложениями, сетями и контейнерной средой. Инженеры широко используют этот инструмент для автоматизации и настройки серверов. Это средство масштабирует повторяющиеся задачи в администрировании инфраструктуры с помощью определенных плэйбуков. В данном случае плэйбук представляет собой простой файл сценария на YAML, детализирующий действия, выполняемые механизмом автоматизации Ansible. С помощью автоматизации Ansible сисамдины могут создавать группы машин для выполнения определенных задач и управлять работой машин в производственных средах. Anible используют такие известные компании, как Udemy, Alibaba Travels, Tokopedia. Особенности Ansible Tower, платформа в рамках Ansible, является панелью управления визуализацией для всей ИТ-среды. С помощью управления доступом на основе ролей (RBAC) область Ansible может создавать пользователей и управлять разрешениями для сред. Технология Ansible поддерживает как локальные конфигурации, так и мультиоблачные инфраструктуры. Подробнее про Ansible 2. Puppet Puppet - это еще одна платформа с открытым исходным кодом, подходящая для обеспечения отказоустойчивой инфраструктуры. Инженеры DevOps могут использовать Puppet для настройки, развертывания, запуска серверов и автоматизации развертывания приложений на настроенных серверах. С помощью Puppet можно устранять операционные риски и риски безопасности в ИТ-среде путем обеспечения постоянного соответствия нормативным требованиям. Она включает автоматизацию инфраструктуры Windows, управление исправлениями и управляемые операции приложений. Тысячи компаний, включая Google, Cisco и Splunk, используют Puppet для управления конфигурацией. Особенности Высокая расширяемость, поддержка нескольких инструментов для разработчиков и API. Puppet включает Bolt, мощный оркестратор задач для автоматизации ручных задач. Puppet хорошо интегрируется с Kubernetes и Docker. Подробнее про Puppet 3. Chef Chef, как средство в DevOps позволяет выполнять задачи управления конфигурацией на серверах и других вычислительных ресурсах. Chef для управления инфраструктурой использует агентов, таких как Chef Infra, для автоматизации конфигурации инфраструктуры. Использование Chef в процессах автоматизации просто. С помощью нескольких щелчков мыши можно включить и запустить несколько узлов. Для управления конфигурацией команды DevOps создают «рецепты». Рецепты содержат описание ресурсов и пакетов программных обеспечений, необходимых для настройки серверов. Chef использует Cookbooks, Chef servers и Nodes в качестве основных компонентов для настройки и автоматизации. Ведущие компании как Facebook, Slack и Spotify, использовали Chef в своих экосистемах. Особенности Chef - платформа автоматизации на базе Агента. Chef обрабатывает инфраструктуру как код. Поддерживает все операционные системы и интегрируется с любой облачной технологией. Chef обладает аналитикой Chef для мониторинга изменений, происходящих на сервере Chef. Подробнее про Chef 4. Saltstack Saltstack или просто соль - это масштабируемый инструмент управления конфигурацией и оркестровки. Команды DevOps используют Saltstack для управления ИТ-средами как центры обработки данных, посредством управляемой событиями оркестровки и удаленного выполнения конфигураций. Структура управления конфигурацией Salt использует состояния и файлы конфигурации, чтобы показать, как выполняется выделение и развертывание ИТ-инфраструктуры. Файлы конфигурации описывают устанавливаемые пакеты инфраструктуры, запускаемые или останавливаемые службы, пользователей и процессы создания пользователей, а также многие другие необходимые задачи по выделению ИТ-среды. Особенности Платформа Salt Cloud для настройки ресурсов в облаке. Поддерживает управление узлами как на основе агентов, так и без агентов. Поддерживает операционные системы * NIX и Windows. 5. CFEngine CFEngine - это высокомасштабируемая платформа для автоматизированного управления ИТ-инфраструктурой. С помощью CFEngine команды могут выполнять физическое и виртуальное назначение ресурсов инфраструктуры, управление исправлениями, управление доступом, управление пользователями и безопасностью системы. Автономные агенты CFEngine постоянно работают для непрерывного мониторинга, устранения неполадок, обновления и восстановления ИТ-инфраструктуры. Непрерывная проверка системы и автоматизированное восстановление в CFEngine гарантирует надежность и согласованность инфраструктуры. Особенности Высокая гибкость из-за схемы конфигурации «написать один раз использовать повторно». Имеет CFEngine Enterprise Mission Portal, центральную панель для мониторинга ИТ-систем в режиме реального времени. Использование облегченных агентов автоматизации в платформе WebScale для настройки нескольких узлов и управления ими. Заключение Лучший способ найти инструменты для ваших потребностей - попробовать их. То, что работает для других, может не сработать для вас, поэтому попробуйте их чтобы увидеть, как работает, как помогает вашей организации обеспечить согласованность и безопасность конфигурации.
img
Начиная своё знакомство с iptables, следует рассказать про netfilter. Netfilter - это набор программных хуков внутри ядра Linux, которые позволяют модулям ядра регистрировать функции обратного вызова от стека сетевых протоколов. Хук (hook) - это программный элемент, который позволяет перехватывать функции обратного вызова в чужих процессах. Netfilter является основой для построения Firewall'а в дистрибутивах Linux, но для того, чтобы он заработал в полную силу его нужно настроить. Как раз с помощью iptables мы можем взаимодействовать с хуками Netfilter и создавать правила фильтрации, маршрутизации, изменения и транслирования пакетов. Иногда про Netfilter забывают и называют эту связку просто iptables. Введение Итак, iptables - это утилита для настройки программного Firewall'а (межсетевого экрана) linux, которая предустанавливается по умолчанию во все сборки Linux, начиная с версии 2.4. Запускается iptables из командной строки (CLI) под пользователем с правами root и настраивается там же. Можете в этом убедиться, набрав команду iptables -V в командной строке, она покажет вам версию iptables. Почему же iptables всем так понравился, что его стали включать во все сборки Linux? Всё дело в том, что iptables действительно очень прост в настройке. С помощью него можно решить следующие задачи: Настроить stateless и statefull фильтрацию пакетов версий IPv4 и IPv6; Stateless - это фильтрация, основанная на проверке статических параметров одного пакета, например: IP адрес источника и получателя, порт и другие не изменяющиеся параметры. Statefull - это фильтрация, основанная на анализе потоков трафика. С помощью нее можно определить параметры целой TCP сессии или UDP потока. Настраивать все виды трансляции IP адресов и портов NAT, PAT, NAPT; Настроить политики QoS; Производить различные манипуляции с пакетами, например - изменять поля в заголовке IP. Прежде чем переходить к практике, давайте обратимся к теории и поймём саму логику iptables. Логика и основные понятия iptables Правила Как и все файрволлы, iptables оперирует некими правилами (rules), на основании которых решается судьба пакета, который поступил на интерфейс сетевого устройства (роутера). Ну допустим у нас есть сетевое устройство с адресом 192.168.1.1, на котором мы настроили iptables таким образом, чтобы запрещать любые ssh (порт 22) соединения на данный адрес. Если есть пакет, который идёт, например, с адреса 192.168.1.15 на адрес 192.168.1.1 и порт 22, то iptables скажет: “Э, нет, брат, тебе сюда нельзя” и выбросит пакет. Или вообще ничего не скажет и выбросит, но об этом чуть позже :) Каждое правило в iptables состоит из критерия, действия и счётчика Критерий - это условие, под которое должны подпадать параметры пакета или текущее соединение, чтобы сработало действие. В нашем примере – этим условием является наличие пакета на входящем интерфейсе, устанавливающего соединение на порт 22 Действие - операция, которую нужно проделать с пакетом или соединением в случае выполнения условий критерия. В нашем случае – запретить пакет на порт 22 Счетчик - сущность, которая считает сколько пакетов было подвержено действию правила и на основании этого, показывает их объём в байтах. Цепочки Набор правил формируется в цепочки (chains) Существуют базовые и пользовательские цепочки. Базовые цепочки - это набор предустановленных правил, которые есть в iptables по умолчанию. Существует 5 базовых цепочек и различаются они в зависимости от того, какое назначение имеет пакет. Имена базовых цепочек записываются в верхнем регистре. PREROUTING - правила в этой цепочке применяются ко всем пакетам, которые поступают на сетевой интерфейс извне; INPUT - применяются к пакетам, которые предназначаются для самого хоста или для локального процесса, запущенного на данном хосте. То есть не являются транзитными; FORWARD - правила, которые применяются к транзитным пакетам, проходящими через хост, не задерживаясь; OUTPUT - применяются к пакетам, которые сгенерированы самим хостом; POSTROUTING - применяются к пакетам, которые должны покинуть сетевой интерфейс. В базовых цепочках обязательно устанавливается политика по умолчанию, как правило – принимать (ACCEPT) или сбрасывать (DROP) пакеты. Действует она только в цепочках INPUT, FORWARD и OUTPUT Таблица Таблицы - это набор базовых и пользовательских цепочек. В зависимости от того, в какой таблице находится цепочка правил, с пакетом или соединением производятся определённые действия Существует 5 таблиц: filter - таблица, выполняющая функции фильтрации пакетов по определённым параметрам. В большинстве случаев вы будете использовать именно её. Содержит следующие встроенные цепочки: FORWARD, INPUT, OUTPUT; raw - чтобы понять предназначение этой таблицы, нужно понимать логику работы statefull firewall'а. Дело в том, что по умолчанию, iptables рассматривает каждый пакет как часть большого потока и может определить какому соединению принадлежит тот или иной пакет. С помощью raw таблицы настраиваются исключения, которые будут рассматривать пакет как отдельную, ни к чему не привязанную сущность. Содержит следующие встроенные цепочки: INPUT, OUTPUT; nat - таблица, предназначенная целиком по функции трансляции сетевых адресов. Содержит следующие встроенные цепочки: PREROUTING, OUTPUT, POSTROUTING; mangle - таблица, предназначенная для изменения различных заголовков пакета. Можно, например, изменить TTL, количество hop'ов и другое. Содержит следующие встроенные цепочки: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING>; security - используется для назначения пакетам или соединениям неких меток, которые в дальнейшем может интерпретировать SElinux. Теперь мы можем представить себе логику iptables в виде следующей схемы: Действия Ну и последнее, о чем нужно рассказать, прежде чем мы с вами начнем писать правила - это target. В контексте iptables, target - это действие, которое нужно проделать с пакетом или соединением, которое совпало с критериями правила. Итак, наиболее используемые действия: ACCEPT - разрешить прохождение пакета; DROP - тихо выбросить пакет, не сообщая причин; QUEUE - отправляет пакет за пределы логики iptables, в стороннее приложение. Это может понадобиться, когда нужно обработать пакет в рамках другого процесса в другой программе; RETURN - остановить обработку правила и вернуться на одно правило назад. Это действие подобно break'у в языке программирования. Помимо этих четырех, есть ещё масса других действий, которые называются расширенными (extension modules): REJECT - выбрасывает пакет и возвращает причину в виде ошибки, например: icmp unreachable; LOG - просто делает запись в логе, если пакет соответствует критериям правила; Есть действия, которые доступны только в определенной цепочке и таблицах, например, только в табоице nat и цепочках OUTPUT и PREROUTING доступно действие DNAT, которое используется в NAT'ировании и меняет Destination IP пакета. В той же таблице, только в цепочке POSTRUNNING доступно действие SNAT, меняющее Source IP пакета. Отдельно остановимся на действии MASQUERADE, которое делает то же самое что SNAT, только применяется на выходном интерфейсе, когда IP адрес может меняться, например, когда назначается по DHCP. Пишем правила Отлично, теперь давайте приближаться к практике. Как Вы уже поняли, мы будем писать правила, поэтому нам нужно понять, как они строятся. Итак, допустим у нас есть хост с адресом 192.168.2.17, на 80 (http) порту которого, работает вэб-сервер Apache. Мы заходим на адрес http://192.168.2.17 с хоста с адресом 192.168.2.2 и всё отлично работает: А теперь открываем командную строку под root на хосте 192.168.2.17 и пишем: iptables -A INPUT -p tcp -s 192.168.2.2 --dport 80 -j DROP Попробуем открыть открыть http://192.168.2.17 ещё раз: Упс, не работает. Давайте теперь разбираться, что мы наделали? Всё очень просто – данной командой мы: вызвали утилиту iptables; -A - этим ключом мы указали, что нужно добавить правило к существующей цепочке; INPUT - указали цепочку, к которой хотим добавить правило; -p tcp - явно указали протокол TCP. Здесь также можно указывать другие протоколы (udp, icmp, sctp), или номер протокола, инкапсулируемого в IP (17 – udp, 6 – tcp и др.); -s 192.168.2.2 - указали, какой адрес источника должен быть у пакета, который мы хотим фильтровать; --dport 80 - указали адресованные какому порту пакеты мы хотим фильтровать. В данном случае - 80, на котором работает наш сервер Apache. -j DROP - указали что нужно сделать с пакетом, параметры которого совпали с данными критериями. В данном случае – просто тихо выбросить. Таким образом, мы заблокировали все пакеты с адреса 192.168.2.2 на локальный порт 80 и тем самым закрыли доступ к нашему серверу Apache для данного хоста. Обратите внимание – мы не указывали таблицу, в цепочки которой мы хотим добавить правило. Поэтому, по умолчанию таблица - filter. Для явного указания таблицы нужно перед указанием цепочки ввести ключ -t или (--table) Чтобы открыть доступ опять просто поменяем ключ -A в правиле на -D, тем самым мы удалим данное правило из iptables. Синтаксис iptables Друзья, на самом деле в iptables очень богатый синтаксис правил. Полный список ключей и параметров вы можете найти в официальном гайде на iptables.org. Мы же приведём самые “ходовые” опции, которыми вы, вероятно, будете пользоваться. Чтобы вы не запутались, мы приводим их в табличках ниже. Для удобства, в iptables реализовано очень много сокращений для разных ключей. Например, мы писали ключ -A вместо полного --append, -p вместо полного --proto и -s вместо полного --source, дальше мы покажем, что ещё можно сократить и где применить. Начнём с команд для редактирования правил и цепочек – добавления, удаления, замены и так далее: коротко синтаксис правила применение -A --append {цепочка правила} добавить правило к цепочке (в самое начало) -D --delete {цепочка правила} удалить правило из цепочки -D --delete {номер правила в цепочке} удалить правило из цепочки по номеру (1 - x) -I --insert {номер правила вцепочке} вставить правило в цепочку по номеру (1 - x) -R --replace {номер правила вцепочке} заменить правило в цепочке по номеру (1 - x) -X --delete-chain {цепочка} удалить цепочку (только для пользовательских) -E --rename-chain {старое имя цепочки} {новое имя цепочки} переименовать цепочку -N --new {имя цепочки} создание новой пользовательской цепочки -C --check {правило цепочки} проверит наличие правила в цепочке -F --flush {цепочка} удаляет все правила в цепочке, если цепочка не указана – удалятся все правила -Z --zero {цепочка} {номер правила вцепочке} обнуляет все счётчики пакетов и байтов в цепочке или всех цепочках -P --policy {цепочка} {номер правила вцепочке} изменяет политику по умолчанию, она должна основываться на встроенном target’e {ACCEPT, DROP, QUEUE} Продолжим синтаксисом настройки правил – на каком сетевом интерфейсе следить за пакетами, какой протокол проверять, адрес источника, назначения и так далее. Кстати, перед некоторыми параметрами можно ставить восклицательный знак - !, означающее логическое НЕ. В таблице мы пометим такие параметры таким значком – (!) коротко синтаксис опции применение -p (!) --proto {протокол} протокол {tcp, udp, udplite, icmp, esp, ah, sctp} или номер протокола {16,7}, all - все протоколы -4 --ipv4 указывает версию протокола ipv4 -6 --ipv6 указывает версию протокола ipv6 -s (!) --source {адрес/маска} указывает ip адрес источника -d (!) --destination {адрес/маска} указывает ip адрес назначения -m --match включает дополнительные модули, явно задающимися данным ключем. например <code>m limit --limit 3/min</code> - установит лимит на количество пакетов в минуту -f (!) --fragment включает обработку фрагментированных пакетов, в которых нет параметров изначального полного пакета, содержащихся в первом фрагменте пакета -i (!) --in-interface {имя интерфейса} обрабатывает только входящие пакеты, прилетающие на сетевой интерфейс {имя интерфейса} -o (!) --out-interface {имя интерфейса} обрабатывает только исходящие пакеты, прилетающие на сетевой интерфейс {имя интерфейса} --set-counters {пакеты} {байты} включает счётчик для ключей--insert, --append, --replace Теперь рассмотрим опции для действий, которые должны сработать по совпадению критериев: коротко синтаксис опции применение -j --jump {действие} применяет одно из действий accept, drop, reject и другие -g --goto {цепочка} переходит к другой цепочке правил Теперь рассмотрим какую информацию мы можем вытянуть с помощью iptables и какие опции для этого нужно использовать: коротко синтаксис команды применение -l --list {цепочка} {номер правила} показывает правила в цепочке или всех цепочках. по умолчанию покажет таблицу filter -s --list-rules{цепочка} {номер правила} показывает текст правила в цепочке или всех цепочках -n --numeric покажет параметры правила в числовом виде. например не порт будет не http, а 80 -v --verbose выводит более подробную информацию -v --version покажет версию iptables -x --exact покажет точные значения числовых параметров --line-numbers покажет номера правил Для быстрого получения информации о настроенных правилах и о метриках их срабатывания, часто применяется команда, комбинирующая 3 ключа - iptables -nLv. Например, для настроенного нами ранее правила – вывод будет такой: Пример посложнее Давайте рассмотрим ещё один пример. Допустим у нас во локальной сети есть хост 192.168.2.19 с сервером Apache. Мы хотим сделать его доступным из Интернета. Для этого нам нужно воспользоваться возможностями таблицы nat и написать правило, которое будет перенаправлять входящий http трафик на внешний интерфейс (пусть будет enp0s3 с адресом 101.12.13.14) и порт 80 на адрес нашего сервера внутри сети и 80 порт – 192.168.2.19:80. По сути – нужно сделать проброс портов. Напишем такое правило: iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 80 -j DNAT --to 192.168.2.19:80 Теперь если мы перейдём по адресу http://101.12.13.14, то должны попасть на наш Apache. Возможности iptables настолько обширны, что мы могли бы начать писать новую Базу знаний по нему. В статье мы показали лишь базовые варианты применения. Это действительно великий инструмент и освоить его не так уж сложно. Надеюсь, данная статья Вам в этом поможет. Спасибо за внимание!
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59