- Как настроить брандмауэр в Linux?
- Разные политики: —
- Основные команды iptables:
- 1. Перечислите текущие правила iptable:
- 2. Очистить правила:
- 3. Изменение политики по умолчанию для цепочек:
- Создание вашего первого правила:
- 1. Реализация правила DROP:
- 2. Реализация правила ПРИНЯТЬ:
- 3. Удаление правила из iptable:
- 4. Сохранение вашей конфигурации:
- Как настроить брандмауэр с UFW в Ubuntu 20.04
- Подготовка
- Установить UFW
- Проверить статус UFW
- Политики UFW по умолчанию
- Профили приложений
- Включение UFW
- Открытие портов
- Портовые диапазоны
- Определенный IP-адрес и порт
- Подсети
- Конкретный сетевой интерфейс
- Отказ от подключений
- Удаление правил UFW
- Отключение UFW
- Сброс UFW
- IP-маскарадинг
- Выводы
Как настроить брандмауэр в Linux?
Что такое брандмауэр?
Брандмауэр — это система сетевой безопасности, которая фильтрует и контролирует трафик по заранее определенному набору правил. Это посредническая система между устройством и интернетом.
ПРИМЕЧАНИЕ. — Если вы уже знаете о работе брандмауэра в Linux и хотите знать только команды, перейдите к концу учебника.
Как работает брандмауэр Linux:
Большинство дистрибутивов Linux поставляются с инструментами брандмауэра по умолчанию, которые можно использовать для их настройки. Мы будем использовать «IPTables» — инструмент по умолчанию, предоставляемый в Linux, для установки брандмауэра. Iptables используется для настройки, обслуживания и проверки таблиц правил фильтрации пакетов IPv4 и IPv6 в ядре Linux.
Примечание : — Все команды ниже должны иметь права sudo.
Цепочки — это набор правил, определенных для конкретной задачи.
У нас есть три цепочки (набор правил), которые используются для обработки трафика:
- ВХОДНЫЕ Цепи
- ВЫХОДНЫЕ ЦЕПИ
- ФОРВАРД Цепи
1. ВХОДНЫЕ Цепи
Любой трафик, поступающий из Интернета (сети) на локальный компьютер, должен проходить через цепочки ввода. Это означает, что они должны пройти все правила, которые были установлены в цепочке ввода.
2. ВЫХОДНЫЕ ЦЕПИ
Любой трафик, идущий с вашей локальной машины в Интернет, должен проходить через цепочки вывода.
3. ПЕРЕДНЯЯ ЦЕПЬ
Любой трафик, поступающий из внешней сети и идущий в другую сеть, должен проходить через прямую цепочку. Он используется, когда два или более компьютеров подключены, и мы хотим передавать данные между ними.
Разные политики: —
Существует три действия, которые iptables может выполнять с трафиком.
1. ПРИНЯТЬ
Когда трафик проходит по правилам в указанной цепочке, iptable принимает трафик.
Это означает, что он открывает ворота и позволяет человеку войти в королевство Танос.
2. КАПЛЯТЬ
Когда трафик не может пройти правила в указанной цепочке, iptable блокирует этот трафик.
Это означает, что брандмауэр закрыт.
3. ОТКАЗАТЬ
Этот тип действия похож на действие удаления, но он отправляет сообщение отправителю трафика о том, что передача данных не удалась.
Как правило, используйте REJECT, если вы хотите, чтобы другой конец знал, что порт недоступен, — используйте DROP для соединений с хостами, которые вы не хотите, чтобы люди видели.
Основные команды iptables:
1. Перечислите текущие правила iptable:
Чтобы перечислить правила текущих iptables: —
Выход будет:
Как видите, у нас есть три цепочки (INPUT, FORWARD, OUTPUT). Мы также можем видеть заголовки столбцов, но они не являются действительными правилами. Это потому, что большинство Linux не имеют предопределенных правил.
Давайте посмотрим, что означает каждый столбец.
Цель: —
Это определяет, какое действие необходимо выполнить с пакетом (ACCEPT, DROP и т. Д.)
Порт: —
Это определяет протокол (TCP, IP) пакета.
источник:-
Это говорит адрес источника пакета.
место назначения:-
Это определяет адрес назначения пакета
2. Очистить правила:
Если вы хотите очистить / очистить все существующие правила. Запустите следующую команду: —
Это сбросит iptables.
3. Изменение политики по умолчанию для цепочек:
Как вы можете видеть на картинке выше, политика по умолчанию для каждой цепочки — ПРИНЯТЬ.
Например:
Если вы видите прямую цепочку, вы увидите «Chain FORWARD (политика ПРИНЯТЬ)». Это означает, что ваш компьютер позволяет перенаправлять любой трафик на другой компьютер.
Для того чтобы изменить политику переадресации, нужно отбросить:
Приведенная выше команда остановит любой трафик, который будет перенаправлен через вашу систему. Это означает, что никакая другая система не может использовать вашу систему в качестве посредника для передачи данных.
Создание вашего первого правила:
1. Реализация правила DROP:
Теперь мы начнем создавать наши политики брандмауэра. Сначала мы будем работать с цепочкой ввода, поскольку именно туда будет направляться входящий трафик.
Синтаксис:-
Мы возьмем пример, чтобы понять тему.
Предположим, мы хотим заблокировать трафик с IP-адреса 192.168.1.3. Следующая команда может быть использована: —
Это может показаться сложным, но большинство из них будет иметь смысл, когда мы рассмотрим компоненты:
-ВХОД: —
Флаг -A используется для добавления правила в конец цепочки. Эта часть команды сообщает iptable, что мы хотим добавить правило в конец цепочки INPUT.
-Я ВХОД: —
В этом флаге правила добавляются в верхнюю часть цепочки.
-s 192.168.1.3:-
Флаг -s используется для указания источника пакета. Это говорит iptable для поиска пакетов, поступающих из источника 192.168.1.3
-j DROP
Это указывает, что iptable должен делать с пакетом.
Короче говоря, вышеприведенная команда добавляет правило в цепочку INPUT, которое говорит, что если какой-либо пакет прибывает с исходным адресом 192.168.1.3, то отбрасывает этот пакет, что означает, что пакет не может достигнуть компьютера.
Выполнив вышеуказанную команду, вы можете увидеть изменения, используя команду: —
2. Реализация правила ПРИНЯТЬ:
Если вы хотите добавить правила для определенных портов вашей сети, то можно использовать следующие команды.
Синтаксис:-
-p протокол_имя: —
Эта опция используется для сопоставления пакетов, которые соответствуют протоколу protocol_name.
-dport номер_порта:
Эта опция доступна, только если вы указали опцию -p protocol_name. Он указывает, что нужно искать пакеты, которые идут в порт «номер_порта».
Пример:-
Допустим, мы хотим оставить наш порт SSH открытым (в этом руководстве предполагается, что порт SSH по умолчанию — 22) из сети 192.168.1.3, которую мы заблокировали в приведенном выше случае. То есть мы хотим разрешить только те пакеты, которые приходят с 192.168.1.3 и которые хотят перейти на порт 22.
Что мы делаем:-
Давайте попробуем следующую команду: —
Приведенная выше команда говорит, что ищет пакеты, исходящие с IP-адреса 192.168.1.3, имеющие протокол TCP и которые хотят доставить что-то через порт 22 моего компьютера. Если вы найдете эти пакеты, то примите их.
Для команды: —
Но есть проблема с вышеуказанной командой. Это на самом деле не позволяет пакеты. Сможете угадать, что это?
СОВЕТ: — Это связано с тем, как к правилам обращаются.
Помните, как мы уже говорили ранее, правила, которые вы устанавливаете в iptables, проверяются сверху вниз. Всякий раз, когда пакет обрабатывается по одному из верхних правил, он не проверяется по нижним правилам.
Ладно! Вот ответ: —
В нашем случае Пакет был проверен с верхним правилом, которое говорит, что iptable должен отбросить любой пакет, поступающий с 192.168.1.3. Следовательно, как только пакет получил доступ через это правило, он не переходил к следующему правилу, которое разрешало пакеты в порт 22. Поэтому он потерпел неудачу.
Что можно сделать?
Самый простой ответ: добавить правило в начало цепочки. Все, что вам нужно сделать, это изменить опцию -A на опцию -I. (В нашем сценарии мы сначала удаляем правило [см. Следующий раздел], добавленное в разделе выше, а затем снова добавляем правило ниже)
Команда для этого:
Теперь проверьте конфигурацию iptable с помощью команды -L. Выход будет:
Следовательно, любой пакет, поступающий с 192.168.1.3, сначала проверяется, идет ли он на порт 22, если нет, то
проходит через следующее правило в цепочке. В противном случае разрешено проходить межсетевой экран.
Теперь, когда вы поняли, как блокировать и принимать входящий трафик, давайте посмотрим, как удалять правила:
3. Удаление правила из iptable:
Синтаксис:-
Пример:-
Если мы хотим удалить правило, которое принимает трафик на порт 22 и которое мы добавили в предыдущем разделе, то: —
The: —
4. Сохранение вашей конфигурации:
Эта часть не нужна, если вы внедряете ее на персональном компьютере, который не является сервером, но если
вы внедряете брандмауэр на сервере, тогда есть большие шансы, что ваш сервер может быть поврежден и
Вы можете потерять все свои данные. Поэтому всегда лучше сохранять свои конфигурации.
Есть много способов сделать это, но самый простой способ, который я найду, — это пакет iptables-persistent . Вы можете скачать пакет из репозиториев Ubuntu по умолчанию:
После завершения установки вы можете сохранить конфигурацию с помощью команды: —
Ну, это конец урока.
Давайте просто кратко изложим все команды, которые мы изучили до сих пор:
Источник
Как настроить брандмауэр с UFW в Ubuntu 20.04
Брандмауэр — это инструмент для мониторинга и фильтрации входящего и исходящего сетевого трафика. Он работает, определяя набор правил безопасности, которые определяют, разрешить или заблокировать определенный трафик.
Ubuntu поставляется с инструментом настройки межсетевого экрана под названием UFW (Несложный межсетевой экран). Это удобный интерфейс для управления правилами брандмауэра iptables. Его основная цель — упростить или, как следует из названия, упростить управление межсетевым экраном.
В этой статье описывается, как использовать инструмент UFW для настройки и управления брандмауэром в Ubuntu 20.04. Правильно настроенный брандмауэр — один из наиболее важных аспектов общей безопасности системы.
Подготовка
Только root или пользователи с привилегиями sudo могут управлять системным брандмауэром. Лучше всего запускать административные задачи от имени пользователя sudo.
Установить UFW
UFW является частью стандартной установки Ubuntu 20.04 и должен присутствовать в вашей системе. Если по какой-то причине он не установлен, вы можете установить пакет, набрав:
Проверить статус UFW
По умолчанию UFW отключен. Вы можете проверить статус службы UFW с помощью следующей команды:
Вывод покажет, что состояние брандмауэра неактивно:
Если UFW активирован, вывод будет выглядеть примерно так:
Политики UFW по умолчанию
По умолчанию межсетевой экран UFW блокирует весь входящий и пересылаемый трафик и разрешает весь исходящий трафик. Это означает, что любой, кто пытается получить доступ к вашему серверу, не сможет подключиться, если вы специально не откроете порт. Приложения и службы, работающие на вашем сервере, смогут получить доступ к внешнему миру.
Политики по умолчанию определены в /etc/default/ufw и могут быть изменены либо путем изменения файла вручную, либо с помощью команды sudo ufw default
Политики брандмауэра — это основа для создания более сложных и определяемых пользователем правил. Как правило, исходные политики по умолчанию UFW являются хорошей отправной точкой.
Профили приложений
Профиль приложения — это текстовый файл в формате INI, который описывает службу и содержит правила брандмауэра для службы. Профили приложений создаются в каталоге /etc/ufw/applications.d во время установки пакета.
Вы можете просмотреть все профили приложений, доступные на вашем сервере, набрав:
В зависимости от пакетов, установленных в вашей системе, вывод будет выглядеть следующим образом:
Чтобы найти дополнительную информацию о конкретном профиле и включенных правилах, используйте следующую команду:
Выходные данные показывают, что профиль «Nginx Full» открывает порты 80 и 443 .
Вы также можете создавать собственные профили для своих приложений.
Включение UFW
Если вы подключаетесь к Ubuntu из удаленного места, перед включением брандмауэра UFW вы должны явно разрешить входящие соединения SSH. В противном случае вы больше не сможете подключиться к машине.
Чтобы настроить брандмауэр UFW для разрешения входящих соединений SSH, введите следующую команду:
Если SSH работает на нестандартном порту , вам необходимо открыть этот порт.
Например, если ваш демон ssh прослушивает порт 7722 , введите следующую команду, чтобы разрешить соединения на этом порту:
Теперь, когда брандмауэр настроен на разрешение входящих соединений SSH, вы можете включить его, набрав:
Вы будете предупреждены, что включение брандмауэра может нарушить существующие соединения ssh, просто введите y и нажмите Enter .
Открытие портов
В зависимости от приложений, которые работают в системе, вам также может потребоваться открыть другие порты. Общий синтаксис открытия порта следующий:
Ниже приведены несколько способов, как разрешить HTTP-соединения.
Первый вариант — использовать имя службы. UFW проверяет файл /etc/services предмет порта и протокола указанной службы:
Вы также можете указать номер порта и протокол:
Если протокол не указан, UFW создает правила как для tcp и для udp .
Другой вариант — использовать профиль приложения; в данном случае Nginx HTTP:
UFW также поддерживает другой синтаксис для указания протокола с помощью ключевого слова proto :
Портовые диапазоны
UFW также позволяет открывать диапазоны портов. Открывающий и закрывающий порты разделяются двоеточием ( : ), и вы должны указать протокол, либо tcp или udp .
Например, если вы хотите разрешить порты с 7100 до 7200 как на tcp и на udp , вы должны выполнить следующую команду:
Определенный IP-адрес и порт
Чтобы разрешить соединения на всех портах с заданного IP-адреса источника, используйте ключевое слово from за которым следует адрес источника.
Вот пример внесения IP-адреса в белый список:
Если вы хотите разрешить данному IP-адресу доступ только к определенному порту, используйте ключевое слово to any port за которым следует номер порта.
Например, чтобы разрешить доступ к порту 22 с машины с IP-адресом 64.63.62.61 , введите:
Подсети
Синтаксис разрешения подключений к подсети IP-адресов такой же, как и при использовании одного IP-адреса. Единственное отличие состоит в том, что вам нужно указать маску сети.
Ниже приведен пример, показывающий, как разрешить доступ для IP-адресов от 192.168.1.1 до 192.168.1.254 до порта 3360 ( MySQL ):
Конкретный сетевой интерфейс
Чтобы разрешить подключения к определенному сетевому интерфейсу, используйте ключевое слово in on за которым следует имя сетевого интерфейса:
Отказ от подключений
Политика по умолчанию для всех входящих подключений настроена на deny , и если вы не изменили ее, UFW заблокирует все входящие подключения, если вы специально не откроете подключение.
Написание запрещающих правил аналогично написанию разрешающих правил; вам нужно только использовать ключевое слово deny вместо allow .
Допустим, вы открыли порты 80 и 443 , и ваш сервер атакован из сети 23.24.25.0/24 . Чтобы запретить все соединения с 23.24.25.0/24 вы должны выполнить следующую команду:
Вот пример 23.24.25.0/24 доступа только к портам 80 и 443 из 23.24.25.0/24 вы можете использовать следующую команду:
Удаление правил UFW
Есть два разных способа удалить правила UFW по номеру правила и указав фактическое правило.
Удалять правила по номеру правила проще, особенно если вы новичок в UFW. Чтобы сначала удалить правило по номеру правила, вам нужно найти номер правила, которое вы хотите удалить. Чтобы получить список пронумерованных правил, используйте команду ufw status numbered :
Чтобы удалить правило номер 3 , которое разрешает подключения к порту 8080 , вы должны ввести:
Второй способ — удалить правило, указав фактическое правило. Например, если вы добавили правило для открытия порта 8069 вы можете удалить его с помощью:
Отключение UFW
Если по какой-либо причине вы хотите остановить UFW и деактивировать все правила, вы можете использовать:
Позже, если вы захотите снова включить UTF и активировать все правила, просто введите:
Сброс UFW
Сброс UFW отключит UFW и удалит все активные правила. Это полезно, если вы хотите отменить все изменения и начать все заново.
Чтобы сбросить UFW, введите следующую команду:
IP-маскарадинг
IP Masquerading — это вариант NAT (трансляция сетевых адресов) в ядре Linux, который преобразует сетевой трафик путем перезаписи исходных и целевых IP-адресов и портов. С помощью IP Masquerading вы можете разрешить одной или нескольким машинам в частной сети связываться с Интернетом, используя одну машину Linux, которая действует как шлюз.
Настройка IP-маскарадинга с помощью UFW включает несколько шагов.
Во-первых, вам нужно включить переадресацию IP. Для этого откройте файл /etc/ufw/sysctl.conf :
Найдите и раскомментируйте строку net.ipv4.ip_forward = 1 :
Затем вам нужно настроить UFW, чтобы разрешить пересылку пакетов. Откройте файл конфигурации UFW:
Найдите ключ DEFAULT_FORWARD_POLICY и измените значение с DROP на ACCEPT :
Теперь вам нужно установить политику по умолчанию для цепочки POSTROUTING в таблице nat и правило маскарада. Для этого откройте файл /etc/ufw/before.rules и добавьте строки, выделенные желтым, как показано ниже:
Добавьте следующие строки:
Не забудьте заменить eth0 в строке -A POSTROUTING чтобы он соответствовал имени публичного сетевого интерфейса:
Когда вы закончите, сохраните и закройте файл.
Наконец, перезагрузите правила UFW, отключив и снова включив UFW:
Выводы
Мы показали вам, как установить и настроить брандмауэр UFW на вашем сервере Ubuntu 20.04. Обязательно разрешите все входящие соединения, которые необходимы для правильного функционирования вашей системы, ограничив при этом все ненужные соединения.
Для получения дополнительной информации по этой теме посетитесправочную страницу UFW .
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
Источник