Открыть локальный порт linux

Управление портами в Linux (Ubuntu/Debian/CentOS)

Как много времени проходит с момента заказа сервера на хостинге до первого подключения к готовому серверу? Несколько минут. На сколько полученный сервер готов к тому, чтобы использовать его на полную? На 100%. Ну или почти на 100. Точнее, совсем не на 100. Новый сервер подобен новорождённому ребёнку. У него одежды, нет приобретённого иммунитета и нет почти никаких навыков. Он уязвим для любого внешнего воздействия. И защиту от окружающих угроз мы должны ему дать. Наш новый сервер на начальном этапе не готов противостоять всему, что приходит к нему извне. А значит, его необходимо оснастить защитой. Такая защита для сервера – брандмауэр, или файрвол (firewall), или межсетевой экран.

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

Управление портами в Ubuntu и Debian

В операционных системах Ubuntu и Debian для управления брандмауэром довольно часто применяется утилита iptables. Её упрощённым интерфейсом является UFW (Uncomplicated Firewall). Открытие доступа к серверу для какого-либо приложения происходит путём регистрации этого приложения в UFW.

В Ubuntu интерфейс UFW как правило присутствует по умолчанию, в Debian же необходимо будет сначала его проинсталлировать. Перед установкой брандмауэра рекомендуется обновить репозитории:

$ sudo apt update $ sudo apt install ufw

Список приложений, зарегистрированных в брандмауэре, доступен по следующей команде:

Если вы производите первоначальную настройку межсетевого экрана используя подключение к серверу по ssh , логично было бы сразу же прописать в UFW соответствующее этому протоколу правило:

Эту команду также можно применить используя соответствующий номер порта вместо имени протокола. Для ssh это, как правило, порт 22:

В Ubuntu команда для разрешения подключения по ssh выглядит как:

Для того, чтобы межсетевой экран начал работать, его необходимо запустить:

Теперь, можно добавить в UFW правило, которое позволит разрешить передачу данных, например, по порту 80, или другими словами, при помощи протокола http . Это можно прописать командой:

По аналогии можно также разрешить трафик с использованием порта 443, то есть по протоколу https :

Подобными инструкциями можно давать разрешения для подключений, использующих несколько портов. Например, так выглядит команда на открытие целого диапазона портов (32810-32814):

$ sudo ufw allow 32810:32814/udp

Также, помимо номеров портов и названий протоколов, в разрешительных правилах есть возможность использовать IP-адреса. Вот как выглядит команда, разрешающая подключение только с IP-адреса 10.10.10.233:

$ sudo ufw allow from 10.10.10.233

Или из одной определённой подсети:

$ sudo ufw allow from 10.10.10.0/24

Или с одного определённого IP-адреса и только по одному определённому порту:

$ sudo ufw allow from 10.10.10.233 to any port 22

Естественно существует возможность и закрыть доступ для уже открытого подключения через определённый порт. Для этого используется команда deny . Следующей командой можно запретить подключения по протоколу http :

Читайте также:  Линукс для мощного пк

Инструкция для закрытия всех подключений с определённого IP-адреса выглядит следующим образом:

$ sudo ufw deny from 10.10.10.233

где 10.10.10.233 – IP-адрес, для которого будут закрыты все соединения на наш сервер.

Уже созданные правила можно также удалить. Сделать это можно по номеру правила. Чтобы узнать номера правил, используйте следующую команду:

Вывод данной команды выглядит следующим образом:

Вывод команды sudo ufw status numbered - Управление портами в Linux

Номера правил указаны в скобках в начале строки. Например, правило для подключения по 443-му порту имеет номер 3. Исходя из этого, команда для удаления этого правила будет выглядеть как:

То же самое можно сделать командой:

$ sudo ufw delete allow 443/tcp

Посмотреть текущее состояние межсетевого экрана позволяет команда:

Просмотр статуса UFW

Для отключения брандмауэра служит следующая инструкция:

Управление портами в Centos

Клиентским интерфейсом для работы с межсетевым экраном в Centos является программа firewalld. Как правило, firewalld уже по умолчанию входит в состав служб Centos. Но если вдруг это не так, для его установки используйте следующие команды:

$ sudo dnf update -y $ sudo dnf install firewalld -y

Если окажется, что firewalld уже был установлен в системе, команда вернёт следующее сообщение:

Сообщение об уже установленном firewalld

Текущее состояние службы можно увидеть набрав команду:

$ systemctl status firewalld

Если служба работает штатно, то вывод команды будет выглядеть так:

Просмотр статуса firewalld

Список приложений, которым доступ в firewalld уже предоставлен, можно увидеть с помощью команды:

$ sudo firewall-cmd --permanent --list-all 

Такие приложения перечислены в строке services :

Вывод команды sudo firewall-cmd --permanent --list-all

Чтобы предоставить приложению или протоколу, например, http , возможность производить подключения к нашему серверу, необходимо использовать команду следующего вида:

$ sudo firewall-cmd --permanent --add-service=http

Этот протокол должен добавиться в строку services :

Вывод команды sudo firewall-cmd --permanent --list-all - Управление портами в Linux

Аналогичным образом можно открыть доступ для подключений к серверу по протоколу https :

$ sudo firewall-cmd --permanent --add-service=https

Вывод команды sudo firewall-cmd --permanent --list-all - Управление портами в Linux

В firewalld также есть возможность предоставить доступ для подключений по определённому порту. Так, например, будет выглядеть команда для открытия доступа по udp-порту 32810:

$ sudo firewall-cmd --zone=public --add-port=32810/udp

А так пишется команда для открытия доступа по пулу портов, например, для udp-портов с 32811 по 32814:

$ sudo firewall-cmd --zone=public --add-port=32811-32814/udp

И чтобы убедиться, что данные порты добавлены в список открытых, необходимо использовать следующую инструкцию:

$ sudo firewall-cmd --zone=public --list-ports

Список открытых портов в firewalld

Доступ для подключений по определённому порту можно также и заблокировать. Например, закрытие доступа по udp-порту 32814 осуществляется командой:

$ sudo firewall-cmd --zone=public --remove-port=32814/udp

И наконец, для применения всех внесённых изменений, брандмауэр необходимо перезапустить:

Читайте также:  Linux mint исполняемый файлы

Заключение

Итак, мы рассмотрели установку и запуск межсетевых экранов в операционных системах Linux, таких как Ubuntu, Debian и Centos. А также, мы научились открывать доступ для подключений к нашему серверу через определённые порты и протоколы.

Источник

Как открыть порт iptables в операционной системе Linux

Имея дело с программно-аппаратным элементом Linux, пользователю нередко приходится выполнять функции открытия и закрытия портов на сетевом интерфейсе. Открытый порт предлагает доступ к нему, а закрытие порта служит так называемой блокировкой соединения локального компьютера с программным обеспечением. Неопытные владельцы Линукс часто нуждаются в пошаговых инструкциях и подсказках, когда речь заходит о непривычных или новых задачах, стоящих перед ними. В этом нет ничего зазорного. Самое главное – непоколебимое желание учиться. В данном материале мы разберем все основные нюансы, связанные с открытием порта iptables. Для начала следует прояснить простым языком, что такое порт в локальном или удаленном устройстве. Его можно сравнить с квартирой в жилом доме, в которой прописано определенное количество людей. А если быть точнее, то порт – это номер квартиры, IP адрес – номер дома, а жилец – это софт, использующий свою «квартиру». Открытие порта в Linux осуществляется через iptables. При этом существует 2 типа протокола (tcp и udp), которые используют понятие «порт». Основная путаница для новичка заключается в том, что для разных протоколов доступны идентичные номера портов, а сами номера могут означать различные квартиры в разных зданиях и районах. Имя протокола служит этим самым «микрорайоном».

Важно!В некоторых случаях на устройстве Linux может использоваться политика iptables, именуемая как «DROP». Это означает, что порты блокируются автоматически. В обратном случае рассматривается политика iptables, именуемая как «ACCEPT». Это означает, что все существующие порты уже открыты по умолчанию. Если так и есть, то пользователю необходимо всего лишь закрыть те порты, которые предлагают доступ для внешних устройств.

Как открыть один порт

Принцип работы

На практике аргумент -t опускается. Для первого примера откроем 80 port для протокола tcp. Открываем 80 порт tcp. # iptables -A INPUT -p tcp —dport 80 -j ACCEPT Здесь:

  • -A — добавить новое правило в цепочку;
  • -p — протокол tcp;
  • ACCEPT — разрешить.

После этого все внешние устройства смогут установить связь по порту 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

После выполнения данного действия порт с указанным номером откроется на вашем ПК.

Читайте также:  Планшетные компьютеры android linux

Открытие нескольких портов сразу

Для примера откроем диапазон портов с 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.

Проверка порта осуществляется таким образом:

Как видно по заданной команде, система проверит порт под номером 8080 у компьютера с указанным IP-адресом. А теперь представим ситуацию, что порт 445 на удаленном устройстве открыт для входящего коннекта, а порт 445 на локальном устройстве открыт для исходящего коннекта. При таких условиях на экран будет выведено сообщение данного вида: «Connection closed by foreign host». В обратном случае выведенное сообщение будет носить иной характер. И это можно воспринять, как невозможность дальнейшего соединения.

ВАЖНО! Telnet считается эффективным инструментом, хорошо справляющимся со своими прямыми задачами. Однако скорость выдачи результатов при проверке статуса портов довольно низкая. Это значит, что пользователю придется подождать какое-то время.

Заключение

Открытие порта iptables на локальном устройстве вызывает множество различных трудностей у новичков. Внимательно следуя рекомендациям в данной статье, можно быстро приучиться к новшествам системы Линукс и решить все незакрытые вопросы. Воспользуйтесь подсказками, если вам потребуется открыть один или сразу несколько портов на своём ПК, закрыть его или проверить актуальный статус портов на нескольких машинах. Создайте новый коннект («NEW») или отточите своё мастерство при работе с уже установленными коннектами.

Источник

Оцените статью
Adblock
detector