Открыть порт Centos 7

Обновлено: 21.11.2024

Руководства, учебные пособия, обзоры и новости для системных администраторов.

Как открыть порт в CentOS 7 с помощью Firewalld

Это руководство поможет вам открыть порт в брандмауэре по умолчанию в CentOS 7, firewalld.

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

Открыть определенный порт

Открыть порт в firewalld довольно просто. В приведенном ниже примере мы разрешаем трафик с любого исходного IP-адреса на TCP-порт 100. Сначала мы изменяем постоянную конфигурацию, а затем перезагружаем firewall-cmd, чтобы загрузить это изменение в работающий конфигурация.

Если флаг --permanent не указан, это изменит только текущую конфигурацию, но не будет сохранено.

Мы можем проверить порты, открытые в текущей зоне по умолчанию, с помощью ‘--list-ports’.

Как и ожидалось, мы видим, что TCP-порт 100 открыт.

Если мы хотим удалить порт, мы можем использовать ‘--remove-port=’ вместо него.

Таким же образом мы можем открыть диапазон портов.

Открыть предопределенный сервис

Мы можем создать собственные службы, скопировав одну из них в каталог /etc/firewalld/services/ и затем настроив ее. Службы в каталоге /usr/lib/firewalld/services/ НЕ ДОЛЖНЫ быть изменены, изменения должны быть скопированы в /etc/firewalld/services/ с последующей перезагрузкой firewall-cmd, чтобы применить изменения.

Службы или порты вручную?

Зачем нам использовать сервисы, если можно просто указать порт? Модули можно указать в службе, например, samba.xml загружает для нас модуль «nf_conntrack_netbios_ns», когда он включен, вместе с четырьмя разными портами, что намного проще, чем делать все это самостоятельно, поскольку нам не нужно запоминать все портов, необходимых для службы.

Все еще не являетесь поклонником firewalld? Не беспокойтесь, вы всегда можете установить ifconfig в CentOS 7 вместо этого, однако обратите внимание, что это считается устаревшим.

Обзор

Мы видели, что брандмауэр в CentOS 7 можно изменить, чтобы он открывал определенный порт, или, что более предпочтительно, мы можем открыть его для службы.

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

В этой статье я поделюсь примерами проверки состояния порта и открытия порта в Linux. Эта статья была написана при использовании CentOS 8, поэтому можно с уверенностью сказать, что она также полностью охватывает CentOS/RHEL 7/8, Fedora, Oracle Enterprise Linux и вообще все семейство операционных систем Red Hat и, возможно, Novell SLES и OpenSUSE.< /p>

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

  1. Нужно ли открыть порт для службы? Например, пользовательский порт 5555 для службы Apache?
  2. Вы имеете в виду, что порт уже прослушивается, но заблокирован брандмауэром, поэтому вы хотите открыть порт в брандмауэре?
  3. Откройте порт для пользовательской временной задачи, такой как передача и получение файлов с использованием этого порта, а затем закройте порт.

В этой статье мы рассмотрим все эти сценарии

Проверить состояние порта

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

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

Проверить список прослушиваемых портов

Мы будем использовать netstat для получения списка TCP-портов, находящихся в состоянии прослушивания. Общее количество портов выше по сравнению с выводом nmap.

Открыть порт для какой-либо службы

Если это ваше требование, значит, вы ищете не тот вопрос. В основном все наоборот, т.е. служба открывает порт. Например, когда вы запускаете службу SSHD, по умолчанию она запускает порт 22, а не наоборот, т. е. если вы открываете порт 22, она не запускает службу SSHD автоматически.

Давайте рассмотрим это на примере: мы знаем, что порт 22 открыт на моем узле CentOS 8. Если я остановлю службу sshd

Вы видите, что порт 22 больше не открыт.

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

Это относится к первому сценарию.

брандмауэрd открывает порт

Возможно также, что ваши порты отключены в брандмауэре. Если ваш порт не указан в nmap, скорее всего, он заблокирован брандмауэром.

Мы будем использовать firewalld для открытия порта, поскольку сегодня это наиболее часто используемый интерфейс в RHEL/CentOS 7 и 8. Определите, в какой зоне находятся сетевые интерфейсы системы. В следующем примере интерфейсы eth0 и eth1 находятся в 'общедоступная' зона:

Чтобы постоянно открывать порт в зоне с помощью брандмауэра, используйте параметр --add-port.В приведенном ниже примере TCP-порт 1234 постоянно открыт в общедоступной зоне. Обратите внимание, что постоянные изменения не вступят в силу, пока служба firewalld не будет перезагружена.

Чтобы внести временное изменение, введите ту же команду без установленного параметра --permanent. Любое непостоянное изменение мгновенно вступает в силу и сохраняется до перезагрузки брандмауэра.

После того, как брандмауэр откроет порт, затем используйте netstat для проверки состояния порта:

Мы по-прежнему не видим здесь порт 1234. Это связано с тем, что в настоящее время порт 1234 не привязан к какой-либо службе. Итак, наш порт ОТКРЫТ, но НЕ ПРОСЛУШИВАЕТ. Как только запрос или служба попытается использовать порт 1234, мы получим его в состоянии LISTEN.

Используйте nc или ncat, чтобы открыть порт в Linux

Давайте проверим эту теорию. Используйте nc или ncat для открытия порта в Linux. nc или ncat поставляется как часть nmap-ncat rpm в RHEL/CentOS, которую вы можете установить с помощью yum или dnf. Используйте --listen с --port, чтобы открыть порт с помощью команды nc. В приведенном ниже примере мы открываем порт 1234

Откройте другой терминал этого сервера и проверьте статус порта

Как вы видите, порт 1234 прослушивает как IPv4, так и IPv6. Чтобы использовать только IPv4, используйте -4 с приведенной выше командой

Далее на другом терминале вы можете проверить состояние порта 1234

Используйте nc или ncat, чтобы открыть порт и передать файлы

Мы также можем использовать nc для передачи файла с одного хоста на другой хост. Здесь я перенесу свой «входной файл» с centos-8 на rhel-8. На клиенте мы откроем случайный порт, здесь мы будем использовать 9899. Я включил подробное описание, чтобы вы могли видеть более подробную информацию на экране

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

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

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

Похожие записи

Не нашли то, что искали? Выполните быстрый поиск в GoLinuxCloud

Если мои статьи о GoLinuxCloud помогли вам, пожалуйста, купите мне кофе в знак признательности.

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

Спасибо за поддержку!!

3 мысли о «Простые шаги, чтобы открыть порт в Linux RHEL/CentOS 7/8»

Очень подробный и полезный пост. Я пытался разрешить ssh на дополнительном порту и не смог заставить его работать, используя обычный совет (с CentOS8.)
Предоставленная вами рекомендация добавить порт с помощью firewall-cmd была недостающим компонентом: /p>

Спасибо!

Привет
Я выполнил следующие шаги и перезагрузил брандмауэр, но все же, когда я делаю netstat -ntlp, порт 1234 не показывается открытым

Я объяснил эту часть в статье

Мы по-прежнему не видим здесь порт 1234. Это связано с тем, что в настоящее время порт 1234 не привязан к какой-либо службе. Итак, наш порт ОТКРЫТ, но НЕ ПРОСЛУШИВАЕТ. Как только запрос или служба попытается использовать порт 1234, мы получим состояние LISTEN.

Вопрос: я запускаю веб-сервер/файловый сервер на своей машине с CentOS, и для удаленного доступа к серверу мне нужно изменить брандмауэр, чтобы разрешить доступ к TCP-порту на машине. Как правильно открыть порт TCP/UDP в брандмауэре CentOS/RHEL?

По умолчанию корпоративные дистрибутивы Linux, такие как CentOS или RHEL, поставляются со встроенным мощным брандмауэром, а их правила брандмауэра по умолчанию довольно строгие. Таким образом, если вы устанавливаете какие-либо пользовательские службы (например, веб-сервер, NFS, Samba), скорее всего, их трафик будет заблокирован правилами брандмауэра. Вам нужно открыть необходимые порты в брандмауэре, чтобы разрешить их трафик.

В CentOS/RHEL 6 или более ранней версии служба iptables позволяет пользователям взаимодействовать с модулями ядра netfilter для настройки правил брандмауэра в пространстве пользователя. Однако, начиная с CentOS/RHEL 7, вместо службы iptables был введен новый пользовательский интерфейс firewalld.

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

Теперь давайте посмотрим, как мы можем обновить брандмауэр, чтобы открыть порт в CentOS/RHEL.

Откройте порт в CentOS/RHEL 7 или более поздней версии

Начиная с CentOS и RHEL 7 настройками правил брандмауэра управляет демон службы firewalld. Клиент командной строки под названием firewall-cmd может обращаться к этому демону для постоянного обновления правил брандмауэра.

Чтобы навсегда открыть новый порт (например, TCP/80 ), используйте эти команды.

Без флага --permanent правило брандмауэра не будет сохраняться после перезагрузки.

Проверьте обновленные правила с помощью:

Откройте порт в CentOS/RHEL 6 или более ранней версии

В CentOS/RHEL 6 и более ранних версиях служба iptables отвечает за соблюдение правил брандмауэра.

Используйте команду iptables, чтобы открыть новый порт TCP/UDP в брандмауэре. Чтобы сохранить обновленное правило навсегда, вам понадобится вторая команда.

Еще один способ открыть порт в CentOS/RHEL 6 — использовать клиент брандмауэра с пользовательским интерфейсом терминала (TUI) с именем system-config-firewall-tui .

Выберите кнопку «Настроить» посередине и нажмите ENTER.

Если вы пытаетесь обновить брандмауэр какой-либо известной службы (например, веб-сервера), вы можете легко включить брандмауэр для службы здесь и закрыть инструмент. Если вы пытаетесь открыть любой произвольный порт TCP/UDP, нажмите кнопку «Вперед» и перейдите к следующему окну.

Добавьте новое правило, нажав кнопку "Добавить".

Укажите порт (например, 80 ) или диапазон портов (например, 3000–3030 ) и протокол (например, tcp или udp ).

Наконец, сохраните обновленную конфигурацию и закройте инструмент. На этом этапе брандмауэр будет сохранен навсегда.

Поддержка Xmodulo

Этот веб-сайт стал возможен благодаря минимальной рекламе и вашему любезному пожертвованию через PayPal (кредитная карта) или биткойн ( 1M161JGAkz3oaHNvTiPFjNYkeABox8rb4g ).

Ищете команды для открытия и закрытия портов на вашем Linux-компьютере? Это очень просто и не требует специальных знаний. Это небольшое руководство покажет вам, как открывать и закрывать порты в CentOS 6/7.

Давайте начнем с того, как мы можем открывать и закрывать порты на вашем сервере Linux с помощью CentOS 6/7.

Требования

Процедура

Открыть порт в CentOS 6

  1. Войдите в корневой каталог вашего сервера
  2. Выполните следующие команды, чтобы открыть порт 5555
    /sbin/iptables -D INPUT -p tcp --destination-port 5555 -j DROP
    /sbin/service iptables save
    iptables - С

Закрыть порт в CentOS 6

  1. Войдите в корневой каталог вашего сервера.
  2. Выполните следующие команды, чтобы закрыть порт 5555
    /sbin/iptables -A INPUT -p tcp --destination-port 5555 -j DROP
    /sbin/service iptables save
    iptables - С

Открыть порт в CentOS 7

  1. Войдите в корневой каталог вашего сервера.
  2. Выполните следующие команды, чтобы открыть 5555:
    firewall-cmd --zone=public --permanent --add-port=5555/tcp
    firewall-cmd --reload

Закрыть порт в CentOS 7

  1. Войдите в корневой каталог вашего сервера.
  2. Выполните следующие команды, чтобы закрыть 5555:
    firewall-cmd --zone=public --permanent --remove-port=5555/tcp
    firewall-cmd --reload

На этом мы заканчиваем руководство по открытию и закрытию портов на сервере CentOS.

Как проверить, открыт ли конкретный порт?

  • В терминале введите следующую команду, чтобы проверить открытый порт. Например, мы попытались проверить порт 22 на нашем сервере.
    netstat -lntu | grep 22

    Если порт открыт, тогда будут показаны сведения о порте вместе с используемым протоколом.
    Если вы не видите никаких выходных данных, это означает, что порт не открыт или не работает на вашем Linux-компьютере
  • Если вы хотите проверить все открытые порты, выполните следующую команду:
    netstat -lntu

    Это отобразит список всех открытых портов или работающих в настоящее время портов, включая TCP и UDP в вашем Linux. Машина.

Читайте также: