Открыть порт Linux и посмотреть открытые средствами самой системы
В ОС Linux понятие открытие порта немного звучит некорректно. Можно, конечно закрыть сначала все соединения и потом открыть порт Linux, который необходим.
Но это задача для опытных пользователей. Операционная система и установленные программы используют множество портов для своей работы, обновлений и т.д. При таком подходе можно просто заработать много проблем.
Сначала нужно посмотреть открытые порты Linux в системе. Для этого можно воспользоваться утилитой netstat. В большинстве популярных дистрибутивов Linux она установлена по умолчанию, если нет, то ее следует установить.
После установки достаточно ввести в консоль команду
и в выводе можно увидеть все открытые порты, ip адреса и имена процессов, которым принадлежат соединения.
Файрволл iptables есть во всех дистрибутивах Linux, его правила одинаковы везде, будь то Ubuntu, Gentoo или Fedora, а вот настройка и запуск различны. Но есть один универсальный способ. Профессионалы вряд ли его применят, но для простых пользователей самое то.
Открыть порт Linux средствами самой системы
Для проверки, установлен ли iptables в системе следует выполнить в консоли команду
результатом ее выполнения будет вывод информации об отсутствии этой команды в системе или текущих настроек программы.
Оптимально будет закрыть все порты, открыть нужные системе, а потом, добавляя правила, открыть порты Linux нужные для игр, передачи файлов, web-серфинга.
Для этого, убедившись, что iptables установлен, создаем с правами суперпользователя файл /etc/iptables.sh с таким содержимым
Разбор синтаксиса при открытии портов Linux
Необходимо пояснить синтаксис:
- ACCEPT — разрешающие соединения
- DROP — запрещающие
- OUTPUT и INPUT — входящие и исходящие
- eth0 — сетевой интерфейс, его номер может быть другим.
и помещаем его команду для запуска в файл /etc/rc.local до строчки exit 0.
Запускаем файл — sh /etc/iptables.sh, проверяем netstat открытые порты, если надо закрыть какой-либо порт, добавляем еще строчку в файл и снова запускаем программу.
Все действия по созданию, запуску и изменению файлов для того чтобы открыть порт Linux нужно выполнять с правами суперпользователя.
Открытие портов в Linux

Безопасное соединение узлов сети и обмен информацией между ними напрямую связан с открытыми портами. Подключение и передача трафика производится именно через определенный порт, а если в системе он закрыт, выполнить такой процесс не представится возможным. Из-за этого некоторые пользователи заинтересованы в пробросе одного или нескольких номеров для наладки взаимодействия устройств. Сегодня мы покажем, как выполняется поставленная задача в операционных системах, основанных на ядре Linux.
Открываем порты в Linux
Хоть во многих дистрибутивах по умолчанию присутствует встроенный инструмент по управлению сетями, все же такие решения часто не позволяют в полной мере осуществить настройку открытия портов. Инструкции данной статьи будут основаны на дополнительном приложении под названием Iptables — решение для редактирования параметров межсетевого экрана с использованием прав суперпользователя. Во всех сборках ОС на Линуксе она работает одинаково, разве что отличается команда для установки, но об этом мы поговорим ниже.
Если вы хотите узнать, какие из портов уже открыты на компьютере, вы можете воспользоваться встроенной или дополнительной утилитой консоли. Детальные инструкции по поиску необходимой информации вы найдете в другой нашей статье, перейдя по следующей ссылке, а мы же приступаем к пошаговому разбору открытия портов.
Шаг 1: Установка Iptables и просмотр правил
Утилита Iptables изначально не входит в состав операционной системы, из-за чего ее нужно самостоятельно инсталлировать из официального репозитория, а уже потом работать с правилами и всячески изменять их. Установка не занимает много времени и выполняется через стандартную консоль.
-
Откройте меню и запустите «Терминал». Сделать это также можно, используя стандартную горячую клавишу Ctrl + Alt + T.




Как видите, в дистрибутиве теперь появилась команда iptables , отвечающая за управление одноименной утилитой. Еще раз напомним, что работает этот инструмент от прав суперпользователя, поэтому в строке обязательно должна содержаться приставка sudo , а уже потом остальные значения и аргументы.
Шаг 2: Разрешение обмена данными
Никакие порты не будут нормально функционировать, если утилита запрещает обмен информацией на уровне собственных правил межсетевого экрана. Кроме всего, отсутствие необходимых правил в дальнейшем может вызывать появление различных ошибок при пробросе, поэтому мы настоятельно советуем выполнить следующие действия:
- Убедитесь, что в конфигурационном файле отсутствуют какие-либо правила. Лучше сразу же прописать команду для их удаления, а выглядит она так: sudo iptables -F .





Благодаря указанным выше параметрам вы обеспечили корректную отправку и прием данных, что позволит без проблем взаимодействовать с сервером или другим компьютером. Осталось только открыть порты, через которые и будет осуществляться то самое взаимодействие.
Шаг 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 -A INPUT -j DROP , вам нужно использовать другую команду sudo iptables: -I INPUT -p tcp —dport 1924 -j ACCEPT , где 1924 — номер порта. Она добавляет необходимый порт в начало цепи, и тогда пакеты не сбрасываются.

Далее вы можете прописать все ту же строку sudo iptables -L и убедиться в том, что все настроено корректно.

Теперь вы знаете, как пробрасываются порты в операционных системах Linux на примере дополнительной утилиты Iptables. Советуем обязательно следить за появляющимися строками в консоли при вводе команд, это поможет вовремя обнаружить какие-либо ошибки и оперативно устранить их.
Мы рады, что смогли помочь Вам в решении проблемы.
Управление портами в Linux (Ubuntu/Debian/CentOS)
Как много времени проходит с момента заказа сервера на хостинге до первого подключения к готовому серверу? Несколько минут. На сколько полученный сервер готов к тому, чтобы использовать его на полную? На 100%. Ну или почти на 100. Точнее, совсем не на 100. Новый сервер подобен новорождённому ребёнку. У него одежды, нет приобретённого иммунитета и нет почти никаких навыков. Он уязвим для любого внешнего воздействия. И защиту от окружающих угроз мы должны ему дать. Наш новый сервер на начальном этапе не готов противостоять всему, что приходит к нему извне. А значит, его необходимо оснастить защитой. Такая защита для сервера – брандмауэр, или файрвол (firewall), или межсетевой экран.
Обмен информацией между узлами сети происходит посредством портов открытых для использования на узлах. Для того, чтобы иметь гарантии прохождения исключительно легитимного трафика, следует уметь управлять портами нашего сервера при помощи брандмауэра.
Управление портами в Ubuntu и Debian
В операционных системах Ubuntu и Debian для управления брандмауэром довольно часто применяется утилита iptables. Её упрощённым интерфейсом является UFW (Uncomplicated Firewall). Открытие доступа к серверу для какого-либо приложения происходит путём регистрации этого приложения в UFW.
В Ubuntu интерфейс UFW как правило присутствует по умолчанию, в Debian же необходимо будет сначала его проинсталлировать. Перед установкой брандмауэра рекомендуется обновить репозитории:
Список приложений, зарегистрированных в брандмауэре, доступен по следующей команде:
Если вы производите первоначальную настройку межсетевого экрана используя подключение к серверу по ssh , логично было бы сразу же прописать в UFW соответствующее этому протоколу правило:
Эту команду также можно применить используя соответствующий номер порта вместо имени протокола. Для ssh это, как правило, порт 22:
В Ubuntu команда для разрешения подключения по ssh выглядит как:
Для того, чтобы межсетевой экран начал работать, его необходимо запустить:
Теперь, можно добавить в UFW правило, которое позволит разрешить передачу данных, например, по порту 80, или другими словами, при помощи протокола http . Это можно прописать командой:
По аналогии можно также разрешить трафик с использованием порта 443, то есть по протоколу https :
Подобными инструкциями можно давать разрешения для подключений, использующих несколько портов. Например, так выглядит команда на открытие целого диапазона портов (32810-32814):
Также, помимо номеров портов и названий протоколов, в разрешительных правилах есть возможность использовать IP-адреса. Вот как выглядит команда, разрешающая подключение только с IP-адреса 10.10.10.233:
Или из одной определённой подсети:
Или с одного определённого IP-адреса и только по одному определённому порту:
Естественно существует возможность и закрыть доступ для уже открытого подключения через определённый порт. Для этого используется команда deny . Следующей командой можно запретить подключения по протоколу http :
Инструкция для закрытия всех подключений с определённого IP-адреса выглядит следующим образом:
где 10.10.10.233 – IP-адрес, для которого будут закрыты все соединения на наш сервер.
Уже созданные правила можно также удалить. Сделать это можно по номеру правила. Чтобы узнать номера правил, используйте следующую команду:
Вывод данной команды выглядит следующим образом:

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

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

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

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

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

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

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

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