Перейти к содержимому

Astra linux как открыть порт

  • автор:

3 способа открыть порты в Linux

«В этом руководстве объясняется, как открывать порты в большинстве дистрибутивов Linux с использованием различных методов.

После прочтения этого руководства вы сможете легко открывать порты в определенных дистрибутивах Linux и универсальный способ их открытия во всех дистрибутивах.

Брандмауэры, описанные в этом документе, включают Nftables, UFW (Debian/Ubuntu) и Iptables.

Каждый шаг, описанный в этой статье, содержит скриншоты, что упрощает их выполнение каждым пользователем Linux.

Примечание. Убедитесь, что службы для открытых портов активны. ”

Как открыть порты с помощью Nftables

Nftables — это замена Iptables. Сегодня Nftables стал важнее снятого с производства брандмауэра Iptables.

Новые версии дистрибутива, такие как Debian, уже содержат Nftables.

Вы по-прежнему можете использовать Iptables и его интерфейс UFW (Uncomplicated Firewall), что упрощает все задачи. Оба они также объясняются в этом руководстве после раздела, посвященного Nftables.

Для начала убедитесь, что Nftables и все зависимости установлены. В дистрибутивах Linux на основе Debian выполните команду, показанную на снимке экрана ниже.

В процессе установки вам будет предложено подтвердить перезапуск некоторых программ и служб. Нажмите ВВОД.

Если они обновлены для вашей библиотеки glib, нажмите YES , если вас попросят обновить ее.

При появлении запроса о перезапуске служб снова нажмите ВВОД.

После установки Nftables вы можете начать писать свой брандмауэр и определять порты, чтобы они оставались открытыми.

Ниже вы можете увидеть простой брандмауэр Nftables с ограничительной политикой, отбрасывающий весь трафик, кроме определенных открытых портов 80, 443, 53 и 22. Все исполняемые строки поясняются в комментариях.

Ниже вы можете увидеть скриншот брандмауэра.

После сохранения файла запустите брандмауэр с помощью следующей команды, где «nftablesrules.txt» нужно заменить на имя созданного вами файла.

Чтобы увидеть, как выполняются активные правила брандмауэра:

Если вы хотите сбросить правила брандмауэра, выполните команду, показанную ниже.

Теперь давайте рассмотрим самый простой вариант с UFW.

Как открыть порты с помощью UFW (несложный брандмауэр)

В этом разделе объясняется, как открывать порты в дистрибутивах Linux на основе Debian, таких как Ubuntu, с помощью UFW (несложный брандмауэр), который, как следует из названия, представляет собой простой в использовании интерфейс Iptables для создания правил брандмауэра, включая те, которые нам нужны для открытия портов. в Debian/Ubuntu Linux.

Примечание. Чтобы открыть порты, помимо правил брандмауэра, убедитесь, что служба, которую вы хотите включить, активна.

Если UFW не установлен в вашей системе, вы можете получить его с помощью диспетчера пакетов apt, выполнив следующую команду.

После установки UFW вам необходимо включить его, выполнив действия, показанные на скриншоте ниже.

После установки UFW вы можете открыть порт, указав его, как показано ниже.

Например, чтобы открыть порт 22, выполните следующую команду.

Вы также можете открыть порт, указав службу или протокол вместо номера порта, как показано на рисунке ниже.

При добавлении правила, подобного предыдущему, вы можете проверить, успешно ли был открыт порт, выполнив следующую команду.

Но даже если брандмауэр разрешает трафик, необходимо проверить, запущена ли нужная служба и открыт ли порт; вы можете выполнить команду, показанную ниже.

Как вы можете видеть на изображении выше, порт прослушивается.

С UFW (и всеми брандмауэрами) вы можете указать протокол, через который вы разрешаете трафик на определенный порт. Просто добавьте косую черту после номера порта или имени службы, за которой следует протокол. В приведенном ниже примере порт 80 использует протокол TCP.

В следующем примере разрешен трафик UDP через порт 1025.

Чтобы разрешить трафик через порт с определенного IP-адреса, используйте следующий синтаксис, где IP-адрес и номер порта должны быть заменены желаемым IP/портом.

Примечание. Чтобы закрыть порт с помощью UFW, замените «разрешить» на «запретить», как показано ниже.

Чтобы закрыть порт 22, выполните:

Примечание. Чтобы закрыть порт 22, убедитесь, что служба ssh отключена, выполнив приведенную ниже команду.

Опять же, я проверяю, правильно ли были добавлены мои правила, запустив UFW, а затем параметр status.

Это самый простой способ открыть порты в Linux.

Открытие портов во всех дистрибутивах Linux (Iptables)

В этом разделе показано, как открывать порты с помощью Iptables, брандмауэра, стоящего за описанным ранее интерфейсом UFW.

Следующее правило разрешает входящий (INPUT) TCP-трафик через порт 22. Замените «22» на номер порта, который необходимо открыть.

Команда sudo iptables -S позволяет просмотреть активные правила брандмауэра. Как видно выше, добавленная строка активна.

Следующая строка разрешает исходящий (ВЫХОДНОЙ) трафик через порт 22.

Вы можете определить диапазон портов для открытия, внедрив двоеточие между начальным и конечным портами, как показано ниже.

Для сохранения правил выполните команду, показанную на следующем рисунке.

Чтобы сбросить правила Iptables, выполните iptables, за которым следует флаг -F (flush).

Как открывать порты в системе Linux

Порт — это конечная точка соединения. В операционной системе порт открывается или закрывается для передачи пакетов данных определенных процессов или сетевых служб.

Обычно порты определяют конкретную присвоенную им сетевую службу. Это можно изменить вручную, настроив службу на использование другого порта, но в целом можно оставить значения по умолчанию.

Первые 1024 порта (номера портов от 0 до 1023) называются общеизвестными или системными и зарезервированы для часто используемых служб. К ним относятся SSH (порт 22), HTTP (порт 80), HTTPS (порт 443) и тому подобное.

Номера портов выше 1024 называются эфемерными портами.

  • Порты с номерами от 1024 до 49151 называются зарегистрированными/пользовательскими.
  • Номера портов с 49152 по 65535 называются динамическими/частными портами.

В этом мануале мы откроем эфемерный порт в Linux, поскольку общие службы используют известные порты.

Требования

Для выполнения туториала нужно уметь пользоваться терминалом.

Проверка открытых портов

Прежде чем открыть порт в Linux, нужно проверить список всех открытых портов и выбрать эфемерный порт, которого нет в этом списке.

С помощью команды netstat можно получить список всех открытых портов, включая TCP и UDP — это распространенные протоколы для передачи пакетов на сетевом уровне.

Учитывая используемые флаги, команда выводит следующее:

  • все прослушиваемые сокеты (-l)
  • номер порта (-n)
  • TCP-порты (-t)
  • UDP-порты (-u)

Active Internet connections (only servers)

Примечание. Если в вашем дистрибутиве нет netstat, то с помощью команды ss можно вывести список открытых портов путем проверки сокетов прослушивания.

Убедитесь, что команда ss выводит согласованные выходные данные:

Получим следующий вывод:

Эта команда выводит практически те же открытые порты, что и netstat.

Открытие порта для TCP-соединений

Теперь откроем закрытый порт и настроим его на прослушивание TCP-соединений.

В этом туториале мы откроем порт 4000. Но при желании вы можете выбрать другой закрытый порт. Только убедитесь, что его номер больше 1023.

С помощью команды netstat убедитесь, что порт 4000 не используется:

netstat -na | grep :4000

То же самое можно сделать с помощью команды ss:

ss -na | grep :4000

Вывод должен быть пустым, таким образом подтверждается, что порт сейчас не используется, чтобы была возможность вручную добавить правила порта в системный брандмауэр iptables.

Ubuntu и системы на базе ufw

ufw — клиент командной строки для брандмауэра UncomplicatedFirewall.

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

sudo ufw allow 4000

CentOS и системы на базе firewalld

firewall-cmd — клиент командной строки для брандмауэра firewalld.

Команды будут выглядеть так:

Для других дистрибутивов Linux

Изменить системные правила фильтрации пакетов IPv4 можно с помощью iptables.

iptables -A INPUT -p tcp —dport 4000 -j ACCEPT

Тестирование порта

После успешного открытия TCP-порта нужно его протестировать.

При отправке вывода ls любому подключенному клиенту, сначала запустите netcat (nc) и прослушивайте (-l) порт (-p) 4000:

ls | nc -l -p 4000

Теперь клиент получит вывод ls после того, как он откроет TCP-соединение на порту 4000. Пока оставьте этот сеанс.

Откройте другой терминал на той же машине.

Поскольку мы открыли TCP-порт, мы можем протестировать TCP-подключения с помощью telnet. Если у вас этой команды нет, установите ее с помощью менеджера пакетов.

Введите IP вашего сервера и номер порта (в данном случае 4000) и выполните следующую команду:

telnet localhost 4000

Эта команда пытается открыть TCP-соединение на локальном хосте через порт 4000.

Получим следующий вывод, в котором указано, что соединение с программой установлено (nc):

Вывод ls (в данном примере while.sh) отправлен клиенту, что указывает на успешное TCP-соединение.

С помощью nmap проверьте, открыт ли порт (-p):

nmap localhost -p 4000

Эта команда проверит открытый порт:

Как видите, вы успешно открыли новый порт в Linux.

Примечание: nmap выводит список только открытых портов, на которых в данный момент есть прослушивающее приложение. Если вы не используете приложение для прослушивания (например netcat), то порт 4000 будет отображаться как закрытый, поскольку в настоящее время на этом порту нет ни одного прослушивающего приложения. Аналогично не будет работать и telnet, поскольку этой команде также нужно прослушивающее приложение. Именно по этой причине nc такой полезный инструмент. Он имитирует такие среды с помощью простой команды.

Но порт открыт временно, так как изменения будут сбрасываться при каждой перезагрузке системы.

Сохранение правил брандмауэра

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

Для брандмауэра ufw

Правила ufw не сбрасываются при перезагрузке. Это происходит потому, что он интегрирован в процесс загрузки, и ядро применяет соответствующие конфигурационные файлы и сохраняет правила брандмауэра ufw.

Для firewalld

Необходимо применить флаг –permanent, чтобы правила были действительны после перезагрузки системы.

Для iptables

Чтобы сохранить правила конфигурации, рекомендуется использовать iptables-persistent.

Подводим итоги

В этом туториале мы разобрали, как открыть новый порт в Linux и настроить его для входящих соединений, а также поработали с netstat, ss, telnet, nc и nmap.

Astra Linux IP Forwarding

В этой статье поговорим о пробросе портов или IP Forwarding, используя ОС Astra Linux и утилиту iptables.

Начальные данные

  1. 1. Начальные данные
  2. 2. Алгоритм проброса портов в iptables.
  3. 3. Настройка port forwarding в Astra Linux
  4. 4. Как посмотреть правила iptables

У нас имеется компьютер под управлением Astra Linux с двумя сетевыми интерфейсами. Также в сети есть ещё одна машина с одним сетевым интерфейсом, которой выход в Интернет недоступен.

Требуется пробросить tcp порт (2222) с белого ip-адреса расположенного на ПК подключенного к Интернету, на серый ip-адрес Локальной сети порт (22).

Чаще всего проброс трафика используется, если мы находимся в локальной сети и от внешнего мира отделены шлюзом. Для того, чтобы открыть доступ для локальных служб (ssh, web, ftp и т.д.), нам необходимо пробросить порты. Поскольку в качестве шлюза мы будем использовать Astra Linux, то осуществлять данные действия будем с помощью встроенной утилиты iptables.

Алгоритм проброса портов в iptables.

В принципе все довольно просто, необходимо добавить всего несколько правил в таблицу маршрутизации iptables. Но для начала нам нужно включить форвардинг пакетов на ПК подключенного к Интернету. Для этого открываем терминал (ctrl+t) и вводим следующие команды:

Для того чтобы каждый раз не вводить команды, отредактируем файл /etc/sysctl.conf

Ищем там строку #net.ipv4.ip_forward=1 , и убираем знак комментария.

Также необходимо узнать названия наших сетевых интерфейсов и их IP адреса. Для этого введем следующую команду:

Из вывода нас интересует интерфейсов eth0 с ip-адресом 80.81.82.83 и eth1 – 10.0.7.1. Первый интерфейс подключен к всемирной паутине, а второй к локальной сети.

Настройка port forwarding в Astra Linux

Для перенаправление tcp порта 2222 на tcp порт 22 другой машины, необходимо добавить следующие правила iptables:

Это правило разрешает прохождение входящих пакетов внутрь сети.

Теперь опишем форвардинг (forwarding) пакетов:

  • Первая строка подменяет IP адрес приемника (белый IP) на внутренний (серый IP)
  • Вторая адрес отправителя (серый IP) на внешний (белый IP).
  • 10.0.7.2 — IP адрес машины в локальной сети, на который перенаправляет трафик.
  • 80.81.82.83 — внешний IP адрес нашего сервера.
  • 22 — внутренний порт локальной машины
  • 2222 — внешний порт для подключения.
  • tcp – может принимать значения tcp или udp в зависимости от того какой порт вам необходимо прикинуть.

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

содержимое файла по первому примеру:

Далее открываем файл interfaces

И добавляем в конце следующую строчку:

Данное выражение подгрузить правила iptables после перезагрузки системы.

Как посмотреть правила iptables

Посмотреть текущие правила iptables можно с помощью команды:

Вот и все, на этом проброс портов в Astra Linux с помощью iptables завершено.

Если есть вопросы, то пишем в комментариях.

Также можете вступить в Телеграм канал, ВКонтакте или подписаться на Twitter. Ссылки в шапке страницы.
Заранее всем спасибо.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

linux-logo

Сегодня в статье настроим и русифицируем Ubuntu Server 16.04/18.04/20.04. Чтобы поддерживался русский язык, и перевод системы стал русским

dns_bind9

Начиная с сентября 2017 года удостоверяющим центрам предписано обязательно проверять CAA-записи в DNS перед генерацией сертификата

linux-logo

В этой статье рассмотрим пример обновления Ubuntu Server 16.04 до Ubuntu Server 18.04 Все наши действия нам придется выполнять из Читать

В связи с последними блокировками IP-адресов Роскомнадзором, встала необходимость завести свой собственный VPN сервер. Если VPN у вас ещё не Читать

Роутер и проброс портов на Astra Linux «Смоленск»

Наша задача — настроить доступ в Интернет для внутренней сети.

Для этого в первую очередь открываем файл настроек сетевых интерфейсов /etc/network/interfaces

и зададим конфигурацию для внутренней сети:

Затем откроем файл /etc/sysctl.conf

и в нём раскомментируем строку:

и применим изменения

После этого проверим статус запуска ufw

по умолчанию он будет отключён, поэтому включим его

Зададим правила файрволла по умолчанию

Далее переходим к файлу с правилами /etc/ufw/before.rules

в самом конце добавим строчки:

После этого перезапустим ufw методом отключения и включения

Теперь установим службу DNS и DHCP-серверов dnsmasq

проверим её статус

скорее всего, после установки она будет активна.

Затем откроем файл конфигурации dnsmasq

и в самом конце файла пропишем такие строки:

Перезагрузим службу dnsmasq

и все изменения должны примениться.

Для проброса портов на машины в локальной сети необходимо открыть файл конфигурации правил

и в нём после строк

Далее запустим команды ufw для проброса этих портов

и перезагрузим службу ufw

  • tcp и udp — протоколы
  • 1234 и 5678 — номера портов
  • 192.168.100.11 и 192.168.100.12 — IP-адреса машин в локальной (внутренней) сети

В итоге последний раздел файла /etc/ufw/before.rules должен выглядеть примерно так:

Готово! Теперь машина с ОС Astra Linux полноценно работает в режиме шлюза и маршрутизатора.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *