- Как настроить брандмауэр с UFW в Ubuntu 18.04
- Подготовка
- Установить UFW
- Проверить статус UFW
- Политики UFW по умолчанию
- Профили приложений
- Разрешить SSH-подключения
- Включить UFW
- Разрешить подключения к другим портам
- Открытый порт 80 — HTTP
- Открытый порт 443 — HTTPS
- Открытый порт 8080
- Разрешить диапазоны портов
- Разрешить определенные IP-адреса
- Разрешить определенные IP-адреса на определенном порту
- Разрешить подсети
- Разрешить подключения к определенному сетевому интерфейсу
- Запретить подключения
- Удалить правила UFW
- Отключить UFW
- Сбросить UFW
- Выводы
- Как открыть порт iptables в операционной системе Linux
- Как открыть один порт
- Открытие нескольких портов сразу
- Как проверить статус порта
- Заключение
- Открытие портов в Linux
- Открываем порты в Linux
- Шаг 1: Установка Iptables и просмотр правил
- Шаг 2: Разрешение обмена данными
- Шаг 3: Открытие необходимых портов
Как настроить брандмауэр с UFW в Ubuntu 18.04
Правильно настроенный брандмауэр — один из наиболее важных аспектов общей безопасности системы. По умолчанию Ubuntu поставляется с инструментом настройки межсетевого экрана под названием UFW (Несложный межсетевой экран). UFW — это удобный интерфейс для управления правилами брандмауэра iptables, и его основная цель — сделать управление iptables проще или, как следует из названия, несложным.
Подготовка
Прежде чем приступить к изучению этого руководства, убедитесь, что вы вошли на свой сервер с учетной записью пользователя с привилегиями sudo или с пользователем root. Лучше всего запускать административные команды от имени пользователя sudo, а не root. Если у вас нет пользователя sudo в вашей системе Ubuntu, вы можете создать его, следуя этим инструкциям .
Установить UFW
Несложный брандмауэр должен быть установлен по умолчанию в Ubuntu 18.04, но если он не установлен в вашей системе, вы можете установить пакет, набрав:
Проверить статус UFW
После завершения установки вы можете проверить статус UFW с помощью следующей команды:
По умолчанию UFW отключен. Если вы никогда раньше не активировали UFW, результат будет выглядеть так:
Если UFW активирован, вывод будет выглядеть примерно так:
Политики UFW по умолчанию
По умолчанию UFW блокирует все входящие соединения и разрешает все исходящие соединения. Это означает, что любой, кто пытается получить доступ к вашему серверу, не сможет подключиться, если вы специально не откроете порт, в то время как все приложения и службы, работающие на вашем сервере, смогут получить доступ к внешнему миру.
Политики по умолчанию определены в /etc/default/ufw и могут быть изменены с помощью команды sudo ufw default
Политики брандмауэра являются основой для создания более подробных и определяемых пользователем правил. В большинстве случаев исходная политика UFW по умолчанию является хорошей отправной точкой.
Профили приложений
При установке пакета с помощью команды apt он добавит профиль приложения в каталог /etc/ufw/applications.d . Профиль описывает услугу и содержит настройки UFW.
Вы можете просмотреть все профили приложений, доступные на вашем сервере, набрав:
В зависимости от пакетов, установленных в вашей системе, вывод будет выглядеть примерно так:
Чтобы найти дополнительную информацию о конкретном профиле и включенных правилах, используйте следующую команду:
Как видно из выходных данных, профиль Nginx Full открывает порт 80 и 443 .
Разрешить SSH-подключения
Перед включением брандмауэра UFW нам нужно добавить правило, которое разрешит входящие соединения SSH. Если вы подключаетесь к своему серверу из удаленного места, что почти всегда так, и вы включаете брандмауэр UFW, прежде чем явно разрешать входящие SSH-соединения, вы больше не сможете подключиться к своему серверу Ubuntu.
Чтобы настроить брандмауэр UFW для разрешения входящих соединений SSH, введите следующую команду:
Если вы изменили порт SSH на пользовательский порт вместо порта 22, вам нужно будет открыть этот порт.
Например, если ваш демон ssh прослушивает порт 4422 , вы можете использовать следующую команду, чтобы разрешить соединения на этом порту:
Включить UFW
Теперь, когда ваш брандмауэр UFW настроен на разрешение входящих соединений SSH, мы можем включить его, набрав:
Вы будете предупреждены, что включение брандмауэра может нарушить существующие соединения ssh, просто введите y и нажмите Enter .
Разрешить подключения к другим портам
В зависимости от приложений, которые работают на вашем сервере, и ваших конкретных потребностей вам также потребуется разрешить входящий доступ к некоторым другим портам.
Ниже мы покажем вам несколько примеров того, как разрешить входящие подключения к некоторым из наиболее распространенных сервисов:
Открытый порт 80 — HTTP
HTTP-соединения могут быть разрешены с помощью следующей команды:
вместо http вы можете использовать номер порта 80:
или вы можете использовать профиль приложения, в данном случае «Nginx HTTP»:
Открытый порт 443 — HTTPS
HTTP-соединения могут быть разрешены с помощью следующей команды:
Чтобы добиться того же, вместо профиля https вы можете использовать номер порта 443 :
или вы можете использовать профиль приложения Nginx HTTPS:
Открытый порт 8080
Если вы запустите Tomcat или любое другое приложение, которое прослушивает порт 8080 чтобы разрешить входящие соединения, введите:
Разрешить диапазоны портов
Вместо того, чтобы разрешать доступ к отдельным портам, UFW позволяет нам разрешать доступ к диапазонам портов. При разрешении диапазонов портов с помощью UFW необходимо указать протокол: tcp или udp . Например, если вы хотите разрешить порты с 7100 до 7200 как на tcp и на udp выполните следующую команду:
Разрешить определенные IP-адреса
Чтобы разрешить доступ ко всем портам с вашего домашнего компьютера с IP-адресом 64.63.62.61, укажите from а затем IP-адрес, который вы хотите добавить в белый список:
Разрешить определенные IP-адреса на определенном порту
Чтобы разрешить доступ к определенному порту, скажем, порт 22 с вашего рабочего компьютера с IP-адресом 64.63.62.61, используйте to any port за которым следует номер порта:
Разрешить подсети
Команда для разрешения подключения к подсети IP-адресов такая же, как и при использовании одного IP-адреса, с той лишь разницей, что вам нужно указать маску сети. Например, если вы хотите разрешить доступ для IP-адресов от 192.168.1.1 до 192.168.1.254 и до порта 3360 ( MySQL ), вы можете использовать эту команду:
Разрешить подключения к определенному сетевому интерфейсу
Чтобы разрешить доступ к определенному порту, скажем, порт 3360 только к определенному сетевому интерфейсу eth2 , тогда вам нужно указать allow in on и имя сетевого интерфейса:
Запретить подключения
Политика по умолчанию для всех входящих подключений настроена на deny и если вы не изменили ее, UFW заблокирует все входящие подключения, если вы специально не откроете подключение.
Допустим, вы открыли порты 80 и 443 и ваш сервер 23.24.25.0/24 атаке из сети 23.24.25.0/24 . Чтобы запретить все соединения с 23.24.25.0/24 вы можете использовать следующую команду:
Если вы хотите запретить доступ только к портам 80 и 443 из 23.24.25.0/24 вы можете использовать следующую команду:
Написание запрещающих правил аналогично написанию разрешающих правил, вам нужно только заменить allow на deny .
Удалить правила UFW
Есть два разных способа удалить правила UFW: по номеру правила и указав фактическое правило.
Удалить правила UFW по номеру правила проще, особенно если вы новичок в UFW. Чтобы удалить правило по номеру правила, сначала вам нужно найти номер правила, которое вы хотите удалить, вы можете сделать это с помощью следующей команды:
Чтобы удалить правило номер 3, правило, разрешающее подключения к порту 8080, используйте следующую команду:
Второй метод — удалить правило, указав фактическое правило, например, если вы добавили правило для открытия порта 8069 вы можете удалить его с помощью:
Отключить UFW
Если по какой-либо причине вы хотите остановить UFW и деактивировать все правила, которые вы можете использовать:
Позже, если вы захотите снова включить UTF и активировать все правила, просто введите:
Сбросить UFW
Сброс UFW отключит UFW и удалит все активные правила. Это полезно, если вы хотите отменить все изменения и начать все заново.
Чтобы сбросить UFW, просто введите следующую команду:
Выводы
Вы узнали, как установить и настроить брандмауэр UFW на своем сервере Ubuntu 18.04. Обязательно разрешите все входящие соединения, которые необходимы для правильного функционирования вашей системы, ограничив при этом все ненужные соединения.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
Источник
Как открыть порт iptables в операционной системе Linux
Имея дело с программно-аппаратным элементом Linux, пользователю нередко приходится выполнять функции открытия и закрытия портов на сетевом интерфейсе.
Открытый порт предлагает доступ к нему, а закрытие порта служит так называемой блокировкой соединения локального компьютера с программным обеспечением. Неопытные владельцы Линукс часто нуждаются в пошаговых инструкциях и подсказках, когда речь заходит о непривычных или новых задачах, стоящих перед ними. В этом нет ничего зазорного. Самое главное – непоколебимое желание учиться.
В данном материале мы разберем все основные нюансы, связанные с открытием порта iptables.
Для начала следует прояснить простым языком, что такое порт в локальном или удаленном устройстве. Его можно сравнить с квартирой в жилом доме, в которой прописано определенное количество людей. А если быть точнее, то порт – это номер квартиры, IP адрес – номер дома, а жилец – это софт, использующий свою «квартиру».
Открытие порта в Linux осуществляется через iptables. При этом существует 2 типа протокола (tcp и udp), которые используют понятие «порт». Основная путаница для новичка заключается в том, что для разных протоколов доступны идентичные номера портов, а сами номера могут означать различные квартиры в разных зданиях и районах. Имя протокола служит этим самым «микрорайоном».
Важно!В некоторых случаях на устройстве Linux может использоваться политика iptables, именуемая как «DROP». Это означает, что порты блокируются автоматически. В обратном случае рассматривается политика iptables, именуемая как «ACCEPT». Это означает, что все существующие порты уже открыты по умолчанию. Если так и есть, то пользователю необходимо всего лишь закрыть те порты, которые предлагают доступ для внешних устройств.
Как открыть один порт
Рассмотрим синтаксис команды.
iptables -t таблица действие цепочка параметры
На практике аргумент -t опускается. Для первого примера откроем 80 port для протокола tcp.
Открываем 80 порт tcp.
# iptables -A INPUT -p tcp —dport 80 -j ACCEPT
- -A — добавить новое правило в цепочку;
- -p — протокол tcp;
- ACCEPT — разрешить.
После этого все внешние устройства смогут установить связь по порту 80 (для примера). Теперь сделаем тоже самое, только для протокола udp
Открываем 80 порт udp.
# iptables -A INPUT -p udp —dport 80 -j ACCEPT
При необходимости открыть порт для определенного устройства, пользователю нужно уточнить адрес внешнего устройства. В развернутом и конкретизированном виде эта команда будет выглядеть так:
# iptables -A INPUT -p tcp -s 192.168.200.0/24 —dport 8080 -j ACCEPT
После выполнения данного действия порт с указанным номером откроется на вашем ПК.
Открытие нескольких портов сразу
Для примера откроем диапазон портов с 18060:18071.
# iptables -t filter -A INPUT -p tcp —dport 18060:18071 -j ACCEPT
Что получится в результате? Теперь возможен прием входящих пакетов, передаваемых по протоколу на локальный ПК. Порты 18060-18071 открылись одновременно.
ВАЖНО! Входящие пакеты, передаваемые из вне на конкретное устройство, условно делятся на два типа: приходящие на указанный узел и отправленные этим узлом. И хотя узлы разные, для них часто используется общий интерфейс. Входящие и исходящие соединения реализуются по разным правилам. Первые размещены в цепочках под названием PREROUTING, INPUT. Вторые находятся в цепочках под названием POSTROUTING, OUTPUT.
Далее мы рассмотрим пример команды, которая позволит разрешить прием пакетов через выбранный порт iptables. То есть, команду для входящего типа соединения. Для этого потребуется задать:
iptables -t filter -A INPUT -p tcp —dport 8081 -j ACCEPT
Теперь перейдем к настройкам исходящего коннекта. Пользователю нужно задать команду аналогичного вида. Единственная разница будет заключаться в изменении «INPUT» на «OUTPUT». Во всем остальном указанная схема остается без изменений.
Примечание: новичку не стоит пугаться схожести в правилах для входящих и исходящих соединений. Они выглядят практически одинаково, но это не мешает привязывать к ним различное смысловое значение. У каждого соединения существует свой статус. Он может быть абсолютно новым и иметь значение «NEW».
Как проверить статус порта
На практике очень часто бывает так, что введенная команда не работает. Чтобы не попасть в такую ситуацию, необходимо проверить состояния порта. Для этих целей используется telnet.
Проверка порта осуществляется таким образом:
$ telnet 192.168.200.1. 8080
Как видно по заданной команде, система проверит порт под номером 8080 у компьютера с указанным IP-адресом. А теперь представим ситуацию, что порт 445 на удаленном устройстве открыт для входящего коннекта, а порт 445 на локальном устройстве открыт для исходящего коннекта. При таких условиях на экран будет выведено сообщение данного вида: «Connection closed by foreign host». В обратном случае выведенное сообщение будет носить иной характер. И это можно воспринять, как невозможность дальнейшего соединения.
ВАЖНО! Telnet считается эффективным инструментом, хорошо справляющимся со своими прямыми задачами. Однако скорость выдачи результатов при проверке статуса портов довольно низкая. Это значит, что пользователю придется подождать какое-то время.
Заключение
Открытие порта iptables на локальном устройстве вызывает множество различных трудностей у новичков. Внимательно следуя рекомендациям в данной статье, можно быстро приучиться к новшествам системы Линукс и решить все незакрытые вопросы. Воспользуйтесь подсказками, если вам потребуется открыть один или сразу несколько портов на своём ПК, закрыть его или проверить актуальный статус портов на нескольких машинах. Создайте новый коннект («NEW») или отточите своё мастерство при работе с уже установленными коннектами.
Источник
Открытие портов в Linux
Безопасное соединение узлов сети и обмен информацией между ними напрямую связан с открытыми портами. Подключение и передача трафика производится именно через определенный порт, а если в системе он закрыт, выполнить такой процесс не представится возможным. Из-за этого некоторые пользователи заинтересованы в пробросе одного или нескольких номеров для наладки взаимодействия устройств. Сегодня мы покажем, как выполняется поставленная задача в операционных системах, основанных на ядре Linux.
Открываем порты в Linux
Хоть во многих дистрибутивах по умолчанию присутствует встроенный инструмент по управлению сетями, все же такие решения часто не позволяют в полной мере осуществить настройку открытия портов. Инструкции данной статьи будут основаны на дополнительном приложении под названием Iptables — решение для редактирования параметров межсетевого экрана с использованием прав суперпользователя. Во всех сборках ОС на Линуксе она работает одинаково, разве что отличается команда для установки, но об этом мы поговорим ниже.
Если вы хотите узнать, какие из портов уже открыты на компьютере, вы можете воспользоваться встроенной или дополнительной утилитой консоли. Детальные инструкции по поиску необходимой информации вы найдете в другой нашей статье, перейдя по следующей ссылке, а мы же приступаем к пошаговому разбору открытия портов.
Шаг 1: Установка Iptables и просмотр правил
Утилита Iptables изначально не входит в состав операционной системы, из-за чего ее нужно самостоятельно инсталлировать из официального репозитория, а уже потом работать с правилами и всячески изменять их. Установка не занимает много времени и выполняется через стандартную консоль.
- Откройте меню и запустите «Терминал». Сделать это также можно, используя стандартную горячую клавишу Ctrl + Alt + T.
Активируйте права суперпользователя, написав пароль от своей учетной записи. Обратите внимание, что символы во время ввода не отображаются, сделано это для обеспечения безопасности.
Ожидайте завершения инсталляции и можете убедиться в активности работы инструмента, просмотрев стандартный список правил, задействовав sudo iptables -L .
Как видите, в дистрибутиве теперь появилась команда iptables , отвечающая за управление одноименной утилитой. Еще раз напомним, что работает этот инструмент от прав суперпользователя, поэтому в строке обязательно должна содержаться приставка sudo , а уже потом остальные значения и аргументы.
Шаг 2: Разрешение обмена данными
Никакие порты не будут нормально функционировать, если утилита запрещает обмен информацией на уровне собственных правил межсетевого экрана. Кроме всего, отсутствие необходимых правил в дальнейшем может вызывать появление различных ошибок при пробросе, поэтому мы настоятельно советуем выполнить следующие действия:
- Убедитесь, что в конфигурационном файле отсутствуют какие-либо правила. Лучше сразу же прописать команду для их удаления, а выглядит она так: sudo iptables -F .
Теперь добавляем правило для вводимых данных на локальном компьютере, вставив строку sudo iptables -A INPUT -i lo -j ACCEPT .
Примерно такая же команда — sudo iptables -A OUTPUT -o lo -j ACCEPT — отвечает за новое правило для отправки информации.
Осталось только обеспечить нормальное взаимодействие указанных выше правил, чтобы сервер смог отправлять обратно пакеты. Для этого нужно запретить новые соединения, а старые — разрешить. Производится это через sudo iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT .
Благодаря указанным выше параметрам вы обеспечили корректную отправку и прием данных, что позволит без проблем взаимодействовать с сервером или другим компьютером. Осталось только открыть порты, через которые и будет осуществляться то самое взаимодействие.
Шаг 3: Открытие необходимых портов
Вы уже ознакомлены с тем, по какому принципу добавляются новые правила в конфигурацию Iptables. Существуют и несколько аргументов, позволяющих открыть определенные порты. Давайте разберем эту процедуру на примере популярных портов под номерами 22 и 80.
- Запустите консоль и введите туда две следующие команды поочередно:
sudo iptables -A INPUT -p tcp —dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp —dport 80 -j ACCEPT .
Теперь проверьте список правил, чтобы убедиться в том, что порты были успешно проброшены. Используется для этого уже знакомая команда sudo iptables -L .
Придать ей читабельный вид и вывести все детали можно с помощью дополнительного аргумента, тогда строка будет такой: sudo iptables -nvL .
Поменяйте политику на стандартную через sudo iptables -P INPUT DROP и можете смело приступать к работе между узлами.
В случае когда уже администратор компьютера внес свои правила в инструмент, организовал сброс пакетов при подходе к точке, например, через sudo iptables -A INPUT -j DROP , вам нужно использовать другую команду sudo iptables: -I INPUT -p tcp —dport 1924 -j ACCEPT , где 1924 — номер порта. Она добавляет необходимый порт в начало цепи, и тогда пакеты не сбрасываются.
Далее вы можете прописать все ту же строку sudo iptables -L и убедиться в том, что все настроено корректно.
Теперь вы знаете, как пробрасываются порты в операционных системах Linux на примере дополнительной утилиты Iptables. Советуем обязательно следить за появляющимися строками в консоли при вводе команд, это поможет вовремя обнаружить какие-либо ошибки и оперативно устранить их.
Помимо этой статьи, на сайте еще 12315 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник