Открыть порт Ubuntu 20
Обновлено: 21.11.2024
UFW, или Uncomplicated Firewall, представляет собой упрощенный интерфейс управления брандмауэром, который скрывает сложность низкоуровневых технологий фильтрации пакетов, таких как iptables и nftables . Если вы хотите начать защищать свою сеть и не знаете, какой инструмент использовать, UFW может быть для вас правильным выбором.
В этом руководстве показано, как настроить брандмауэр с помощью UFW в Ubuntu 20.04.
Предпосылки
Чтобы следовать этому руководству, вам потребуется:
- Один сервер Ubuntu 20.04 с пользователем без полномочий root, который можно настроить, следуя нашему руководству по начальной настройке сервера с Ubuntu 20.04.
UFW устанавливается по умолчанию в Ubuntu. Если он был удален по какой-либо причине, вы можете установить его с помощью sudo apt install ufw .
Шаг 1. Использование IPv6 с UFW (необязательно)
Это руководство написано с учетом IPv4, но оно будет работать и для IPv6, если вы включите его. Если на вашем сервере Ubuntu включен IPv6, убедитесь, что UFW настроен на поддержку IPv6, чтобы он мог управлять правилами брандмауэра для IPv6 в дополнение к IPv4. Для этого откройте конфигурацию UFW с помощью nano или вашего любимого редактора.
Затем убедитесь, что значение IPV6 равно yes . Это должно выглядеть так:
Сохраните и закройте файл. Теперь, когда UFW включен, он будет настроен на запись правил брандмауэра IPv4 и IPv6. Однако перед включением UFW мы хотим убедиться, что ваш брандмауэр настроен так, чтобы вы могли подключаться через SSH. Начнем с настройки политик по умолчанию.
Шаг 2 — Настройка политик по умолчанию
Если вы только начинаете работу с брандмауэром, первыми правилами, которые необходимо определить, являются политики по умолчанию. Эти правила определяют, как обрабатывать трафик, который явно не соответствует каким-либо другим правилам. По умолчанию UFW запрещает все входящие подключения и разрешает все исходящие. Это означает, что любой, кто попытается получить доступ к вашему серверу, не сможет подключиться, в то время как любое приложение на сервере сможет получить доступ к внешнему миру.
Давайте вернём правила UFW к значениям по умолчанию, чтобы быть уверенными, что вы сможете следовать этому руководству. Чтобы установить значения по умолчанию, используемые UFW, используйте следующие команды:
Эти команды по умолчанию запрещают входящие и разрешают исходящие соединения. Одних только этих настроек брандмауэра по умолчанию может быть достаточно для персонального компьютера, но серверам обычно необходимо отвечать на входящие запросы от внешних пользователей. Мы рассмотрим это позже.
Шаг 3. Разрешение SSH-соединений
Чтобы настроить сервер для разрешения входящих SSH-соединений, вы можете использовать эту команду:
Это создаст правила брандмауэра, разрешающие все соединения через порт 22, который по умолчанию прослушивается демоном SSH. UFW знает, что такое port allow ssh, потому что он указан как служба в файле /etc/services.
Однако мы можем написать эквивалентное правило, указав порт вместо имени службы. Например, эта команда работает так же, как и приведенная выше:
Если вы настроили демон SSH для использования другого порта, вам нужно будет указать соответствующий порт. Например, если ваш SSH-сервер прослушивает порт 2222 , вы можете использовать эту команду, чтобы разрешить подключения на этом порту:
Теперь, когда ваш брандмауэр настроен на разрешение входящих SSH-подключений, мы можем включить его.
Шаг 4. Включение UFW
Чтобы включить UFW, используйте эту команду:
Вы получите предупреждение о том, что команда может прервать существующие SSH-соединения. Мы уже настроили правило брандмауэра, разрешающее SSH-подключения, поэтому можно продолжить. Ответьте на приглашение с помощью y и нажмите ENTER .
Теперь брандмауэр активен. Запустите команду sudo ufw status verbose, чтобы просмотреть установленные правила. В оставшейся части этого руководства более подробно рассказывается, как использовать UFW, например разрешать или запрещать различные типы подключений.
Шаг 5. Разрешение других подключений
На этом этапе вы должны разрешить все другие подключения, на которые должен отвечать ваш сервер. Соединения, которые вы должны разрешить, зависят от ваших конкретных потребностей. К счастью, вы уже знаете, как писать правила, разрешающие соединения на основе имени службы или порта; мы уже сделали это для SSH на порту 22. Вы также можете сделать это для:
Помимо указания порта или известного сервиса, есть еще несколько способов разрешить другие подключения.
Определенные диапазоны портов
Вы можете указать диапазоны портов с помощью UFW. Некоторые приложения используют несколько портов вместо одного порта.
Например, чтобы разрешить подключения X11, использующие порты 6000–6007, используйте следующие команды:
При указании диапазонов портов с помощью UFW необходимо указать протокол ( tcp или udp ), к которому должны применяться правила. Мы не упоминали об этом раньше, потому что не указание протокола автоматически разрешает использование обоих протоколов, что в большинстве случаев допустимо.
Конкретные IP-адреса
При работе с UFW вы также можете указать IP-адреса. Например, если вы хотите разрешить подключения с определенного IP-адреса, такого как рабочий или домашний IP-адрес 203.0.113.4 , вам нужно указать from , а затем IP-адрес:
Вы также можете указать конкретный порт, к которому разрешено подключение IP-адреса, добавив к любому порту номер порта. Например, если вы хотите разрешить 203.0.113.4 подключаться к порту 22 (SSH), используйте следующую команду:
Подсети
Если вы хотите разрешить подсеть IP-адресов, вы можете сделать это, используя нотацию CIDR для указания сетевой маски. Например, если вы хотите разрешить все IP-адреса в диапазоне от 203.0.113.1 до 203.0.113.254, вы можете использовать эту команду:
Аналогичным образом вы также можете указать порт назначения, к которому разрешено подключение подсети 203.0.113.0/24. Опять же, в качестве примера мы будем использовать порт 22 (SSH):
Подключения к определенному сетевому интерфейсу
Если вы хотите создать правило брандмауэра, которое применяется только к определенному сетевому интерфейсу, вы можете сделать это, указав «разрешить вход», а затем имя сетевого интерфейса.
Возможно, вы захотите просмотреть свои сетевые интерфейсы, прежде чем продолжить. Для этого используйте эту команду:
Выделенный вывод указывает имена сетевых интерфейсов. Обычно они называются eth0 или enp3s2 .
Или, если вы хотите, чтобы ваш сервер базы данных MySQL (порт 3306) прослушивал соединения, например, через частный сетевой интерфейс eth1, вы можете использовать эту команду:
Это позволит другим серверам в вашей частной сети подключаться к вашей базе данных MySQL.
Шаг 6. Отказ в подключении
Если вы не изменили политику по умолчанию для входящих подключений, UFW настроен на запрет всех входящих подключений. Как правило, это упрощает процесс создания политики безопасного брандмауэра, требуя от вас создания правил, которые явно разрешают определенные порты и IP-адреса.
Однако иногда вам может понадобиться запретить определенные подключения на основе исходного IP-адреса или подсети, возможно, потому, что вы знаете, что ваш сервер подвергается атаке оттуда. Кроме того, если вы хотите изменить политику входящих подключений по умолчанию на разрешающую (что не рекомендуется), вам потребуется создать запрещающие правила для любых служб или IP-адресов, для которых вы не хотите разрешать подключения.
Чтобы написать запрещающие правила, вы можете использовать описанные выше команды, заменив allow на deny.
Или, если вы хотите запретить все соединения с 203.0.113.4, вы можете использовать эту команду:
Теперь давайте посмотрим, как удалять правила.
Шаг 7 — Удаление правил
Умение удалять правила брандмауэра так же важно, как и умение их создавать. Существует два разных способа указать, какие правила следует удалить: по номеру правила или по фактическому правилу (аналогично тому, как правила указывались при их создании). Мы начнем с метода удаления по номеру правила, потому что он проще.
По номеру правила
По действующему правилу
Вы также можете указать правило с помощью allow 80 вместо имени службы:
Этот метод удалит правила IPv4 и IPv6, если они существуют.
Шаг 8. Проверка статуса и правил UFW
В любое время вы можете проверить статус UFW с помощью этой команды:
Если функция UFW отключена по умолчанию, вы увидите что-то вроде этого:
Если UFW активен, что должно быть, если вы выполнили шаг 3, в выводе будет указано, что он активен, и будут перечислены все установленные правила. Например, если брандмауэр разрешает подключения SSH (порт 22) из любого места, вывод может выглядеть примерно так:
Используйте команду status, если хотите проверить, как UFW настроил брандмауэр.
Шаг 9. Отключение или сброс UFW (необязательно)
Если вы решите, что не хотите использовать UFW, вы можете отключить его с помощью этой команды:
Все правила, созданные с помощью UFW, больше не будут активны. Вы всегда можете запустить sudo ufw enable, если вам понадобится активировать его позже.
Если у вас уже настроены правила UFW, но вы решили начать заново, вы можете использовать команду сброса:
Это отключит UFW и удалит все ранее определенные правила. Имейте в виду, что политики по умолчанию не изменятся на свои исходные настройки, если вы изменили их в какой-либо момент. Это должно помочь вам начать новую жизнь с UFW.
Заключение
Теперь ваш брандмауэр настроен на разрешение (по крайней мере) SSH-соединений. Не забудьте разрешить любые другие входящие подключения, которые необходимы вашему серверу, и ограничьте любые ненужные подключения, чтобы ваш сервер был функциональным и безопасным.
Чтобы узнать о более распространенных конфигурациях UFW, ознакомьтесь с руководством UFW Essentials: Common Firewall Rules and Commands.
Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!
Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно!Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.
Для устранения неполадок в сети и поддержания безопасности сервера сетевой администратор или специалист по безопасности должны знать инструменты, используемые для поиска открытых портов на сервере. Linux предоставляет различные утилиты и параметры командной строки для просмотра списка открытых портов на сервере. В этом уроке мы увидим, как мы можем вывести список всех открытых портов, используя различные команды в терминале Ubuntu.
Что означает открытый порт?
Прежде чем углубляться в проверку открытых портов, давайте сначала узнаем, что означают открытые порты. Открытый порт или порт прослушивания — это порт, на котором запущено какое-либо приложение. Работающее приложение прослушивает какой-то порт, и мы можем общаться с этим приложением через этот прослушивающий порт. Если приложение работает на порту, и мы пытаемся запустить другое приложение на том же порту, ядро выдаст ошибку. Это одна из многих причин, по которой мы проверяем наличие открытых портов перед запуском приложений.
Список открытых портов с помощью nmap
Network Mapper, известный как nmap, – это бесплатный инструмент с открытым исходным кодом, который используется для сканирования портов в системе. Он используется для поиска уязвимостей, обнаружения сетей и поиска открытых портов. В этом разделе мы будем использовать nmap для получения списка открытых портов в системе. Прежде всего, обновите кеш в Ubuntu перед установкой nmap:
Nmap можно установить с помощью следующей команды в терминале:
После установки nmap проверьте установку, проверив версию nmap:
Если он выдает версию nmap, значит, он установлен правильно, в противном случае повторите приведенные выше команды, чтобы правильно установить nmap. Nmap используется для выполнения нескольких задач, связанных с сетями, и сканирование портов является одной из таких задач. Инструмент nmap используется вместе со многими опциями. Мы можем получить список всех доступных опций с помощью следующей команды:
Итак, чтобы сканировать ваш локальный хост, используйте следующую команду:
В нем будут перечислены все открытые порты на локальном хосте, как показано на изображении выше. Мы также можем использовать nmap для сканирования удаленных хостов:
Кроме того, мы можем использовать имя хоста удаленного сервера вместо IP-адреса:
Команду nmap также можно использовать для сканирования диапазона IP-адресов. Укажите диапазон IP-адресов в команде, как в приведенной ниже команде:
Приведенная выше команда просканирует все IP-адреса от 192.168.1.1 до 192.168.1.10 и отобразит результат в терминале. Для сканирования портов в подсети мы можем использовать nmap следующим образом:
Приведенная выше команда просканирует все хосты с IP-адресами в подсети, указанной в команде.
Иногда приходится сканировать порты на случайных хостах, которые находятся в разных подсетях и идут не по порядку, тогда лучшим решением будет написать файл hosts, в котором прописаны все имена хостов, разделенные одним или несколькими пробелами, табуляцией или новые строки. Этот файл можно использовать с nmap следующим образом:
Мы можем использовать nmap для сканирования одного порта в системе, указав порт с помощью флага «-p» вместе с nmap, как в следующей команде:
Диапазон портов также можно просканировать в системе с помощью nmap следующим образом:
Мы можем сканировать все порты системы с помощью nmap:
Чтобы получить список наиболее часто открытых портов в вашей системе, вы можете использовать команду nmap с флагом ‘-F’:
TCP-порты можно сканировать в системе с помощью nmap, просто добавив флаг «-T» вместе с командой nmap:
Аналогично для портов UDP вы можете использовать флаг ‘-U’ с командой nmap:
Список открытых портов с помощью lsof
Команда lsof, также известная как «список открытых файлов», используется для получения информации об открытых файлах, используемых различными процессами в UNIX и LINUX, таких как операционные системы. В большинстве дистрибутивов Linux этот инструмент предустановлен.Мы можем проверить установку lsof, просто проверив его версию:
Если он не показывает версию, значит lsof не установлен по умолчанию. Мы по-прежнему можем установить его, используя следующие команды в терминале:
Мы можем использовать команду lsof вместе с другими параметрами. Список всех доступных опций можно отобразить с помощью следующей команды в терминале:
Теперь в этом разделе мы собираемся использовать lsof для отображения портов системы различными способами:
Приведенная выше команда отобразила все открытые порты. Мы также можем использовать команду lsof для отображения всех открытых сокетов:
Мы можем вывести список отфильтрованных портов на основе протокола с помощью lsof. Запустите приведенную ниже команду, чтобы вывести список всех типов TCP-подключения:
Аналогичным образом мы можем вывести список всех типов UDP-подключений с помощью lsof следующим образом:
Список открытых портов с помощью netstat
Netstat, также известный как сетевая статистика, представляет собой программу командной строки, используемую для отображения подробной информации о сетях. Он отображает как входящие, так и исходящие TCP-соединения, таблицы маршрутизации, сетевые интерфейсы и т. д. В этом разделе мы будем использовать netstat для вывода списка открытых портов в системе. Инструмент netstat можно установить, выполнив следующие команды:
После выполнения приведенных выше команд вы можете проверить установку, проверив версию netstat:
Если отображается версия net-tools, значит, установка прошла успешно, в противном случае запустите команды установки еще раз. Чтобы получить обзор всех доступных параметров, которые можно использовать вместе с командой netstat, выполните следующую команду:
Мы можем получить список всех прослушиваемых портов с помощью команды netstat в Ubuntu, выполнив следующую команду:
Команду netstat также можно использовать для фильтрации прослушивания портов TCP и UDP, просто добавив флаг вместе с командой. Для прослушивания портов TCP:
Для прослушивания портов UDP используйте следующую команду:
Чтобы получить список всех прослушиваемых портов UNIX, вы можете запустить в терминале следующую команду:
Вывод списка открытых портов с помощью ss
Команда ss используется для отображения информации о сокетах в системе Linux. Она отображает более подробную информацию о сокетах, чем команда netstat. Команда ss предустановлена для большинства дистрибутивов Linux, поэтому вам не нужно устанавливать ее перед использованием. Вы можете получить список всех опций, которые можно использовать вместе с командой ss, запустив команду «man» с ss:
Чтобы получить список всех подключений независимо от их состояния, используйте команду ss без каких-либо флагов:
Чтобы получить список всех прослушиваемых портов, используйте команду ss с флагом «-l». Флаг ‘-l’ используется для отображения только прослушиваемых портов:
Чтобы получить все прослушиваемые порты TCP, мы можем использовать флаги "-t" и "-l" вместе с командой ss:
Аналогичным образом мы можем получить список всех прослушиваемых UDP-портов с помощью команды ss вместе с флагами «-u» и «-l»:
Команду ss также можно использовать для получения списка всех подключений к исходному или целевому порту. В следующем примере мы собираемся получить список всех соединений с целевым или исходным портом 22:
Вы получите список всех входящих и исходящих подключений, если вы подключились к удаленной системе с помощью ssh.
Заключение
Системным администраторам, специалистам по безопасности и другим лицам, связанным с ИТ, важно знать об открытых портах на серверах. Linux богат инструментами, используемыми для диагностики сетей, и предоставляет множество инструментов, которые могут быть полезны для различных видов сетевой деятельности. В этом руководстве мы использовали некоторые инструменты, такие как netstat, ss, lsof и nmap, для проверки открытых портов в Ubuntu. Прочитав эту статью, вы сможете легко составить список всех прослушиваемых портов на вашем Linux-сервере разными способами.
Об авторе
Усама Азад
Энтузиаст по безопасности, который любит Terminal и Open Source. Моя область знаний — Python, Linux (Debian), Bash, тестирование на проникновение и брандмауэры. Я родился и вырос в Вазирабаде, Пакистан, и в настоящее время учусь в Национальном университете науки и технологий (NUST). В Твиттере меня зовут @UsamaAzad14
В этом руководстве объясняются различные методы проверки открытых портов на сервере Webdock. Открытый порт — это порт, на котором запущен какой-либо процесс или приложение, и он может принимать данные. В этом руководстве мы будем использовать различные инструменты, чтобы узнать, какие порты открыты.
Открытый порт – это порт, который прослушивает и принимает соединения со службой. Вы можете обнаружить, что у вас есть службы, прослушивающие порты, которые, несмотря на это, недоступны из Интернета. Вот что делает ваш брандмауэр: блокирует доступ к портам, к которым вы явно не разрешили доступ. Руководство по управлению брандмауэром можно найти в нашем руководстве UFW здесь.
Предпосылки
- Облачный веб-экземпляр Ubuntu (18.04 или более поздней версии)
- У вас есть доступ к оболочке вашего VPS
Разница между адресами
Важно, прослушивает ли служба порт на 127.0.0.1 (localhost) или на 0.0.0.0. Обычно это означает, что служба, прослушивающая на localhost, доступна только с самого хост-компьютера и не широкий интернет. Если вы видите, что служба прослушивает все интерфейсы (*) или 0.0.0.0, значит, служба доступна из Интернета, если только она не защищена активным брандмауэром, что вам нужно будет проверить в Iptables или запустив «ufw status», если вы используете UFW для управлять брандмауэром.
Проверка открытых портов с помощью nmap
Network mapper или nmap — это инструмент с открытым исходным кодом, используемый для сканирования сетей и поиска открытых портов на хосте. Следующая команда просканирует все порты на хосте.
Чтобы проверить, открыт ли конкретный порт, используйте параметр -p для указания порта.
Будьте осторожны при использовании nmap, так как если вы случайно начнете сканировать всю сеть, вы рискуете, что ваш IP-адрес будет забанен.
Проверка открытых портов с помощью lsof
Команда lsof (список открытых файлов), как следует из названия, используется для вывода списка всех открытых файлов в Linux. Эти файлы могут быть сетевыми сокетами, дисковыми файлами или устройствами, открытыми различными процессами. Используйте команду lsof вместе с параметрами -nP, чтобы получить список всех открытых сокетов.
Укажите только открытые сокеты TCP.
Для открытых сокетов UDP используйте следующую команду.
Проверка открытых портов с помощью netstat
Команду netstat (статистика сети) можно использовать для мониторинга и сканирования сетей. Получите список всех открытых портов tcp и udp с помощью команды netstat.
Только порты TCP.
Только для портов UDP.
Проверить открытые порты с помощью ss
Команда ss используется для вывода подробной информации о сетевых сокетах. Она предоставляет более подробную информацию, чем команда netstat. Перечислите все прослушиваемые порты в системе Linux.
Чтобы получить список только прослушиваемых TCP-портов, используйте флаг -lt.
Для портов прослушивания UDP используйте флаг -lu.
Заключение
Существуют различные инструменты для мониторинга открытых портов на вашем сервере. В этом руководстве мы обсудили, как мы можем проверить наличие открытых портов на сервере Webdock, используя различные инструменты командной строки, такие как nmap, ss, netstat и lsof.
- Связанные
- Контрольный список безопасности сервера
- Как работать с вашим брандмауэром (UFW – несложный брандмауэр)
- Настройки безопасности SSH
- Как настроить Fail2Ban для общих служб
- Как защитить Nginx с помощью брандмауэра Naxsi на Ubuntu 18.04 VPS
- Как защитить Nginx с помощью брандмауэра Naxsi на Ubuntu 20.04 VPS
- Как настроить заголовки безопасности в Nginx и Apache
- Как включить шифрование для MariaDB
Если вам нужна помощь по этой статье или у вас есть какие-либо вопросы относительно хостинга в целом, свяжитесь с нами.
Webdock – это хостинг-провайдер мирового уровня, предназначенный для профессионалов и полупрофессионалов и предлагающий абсолютно потрясающий и надежный хостинг.
Ubuntu, основанная на дизайне Debian, предоставляет несколько утилит, одна из которых позволяет открывать закрытые порты. Порты обеспечивают связь между устройствами. Для выполнения своих задач службы и приложения с выходом в Интернет обычно прослушивают порты для подключения извне. Связь между хостами через Интернет невозможна без портов. Некоторые порты закрыты по умолчанию, а некоторые закрываются с помощью брандмауэра. Эта статья посвящена открытию портов в системах Ubuntu.
Как открыть порт в Ubuntu
В системе несколько портов. Как правило, мы используем команду ufw для открытия портов. Ufw поставляется с предустановленными последними версиями Ubuntu. UFW, сокращенно Uncomplicated Firewall, используется для настройки инструмента на основе iptables, который входит в стандартную комплектацию редакций Ubuntu.
Кроме того, мы объясним, как открыть некоторые порты, как указано ниже.
- Откройте порт 22 в Ubuntu
- Откройте порт 80 в Ubuntu
- Откройте порт 443 в Ubuntu
- Откройте порт 53 в Ubuntu
Перед открытием портов проверьте, какие порты открыты или закрыты, с помощью указанной ниже команды.
Во-первых, включите брандмауэр с помощью следующей команды:
Как открыть порт 22 в Ubuntu
Порт 22 обеспечивает удаленный доступ к виртуальной машине и используется для связи по протоколу Secure Shell (SSH). Проверка пароля используется для защиты трафика в целом. Запустите указанную ниже команду, чтобы принять TCP-пакеты, поступающие на порт 22.
Выполните указанную ниже команду, чтобы убедиться, что порт открыт.
Как открыть порт 80 в Ubuntu
Выполните указанную ниже команду, чтобы убедиться, что порт открыт.
Как открыть порт 443 в Ubuntu
Выполните указанную ниже команду, чтобы убедиться, что порт открыт.
Как открыть порт 53 в Ubuntu
Выполните указанную ниже команду, чтобы принять пакеты TCP/UDP, входящие на порт 22.
Выполните указанную ниже команду, чтобы убедиться, что порт открыт.
Заключение
Порт — это виртуально числовой адрес, который протоколы TCP и UDP используют в качестве места назначения для связи. Сетевые порты направляют трафик в соответствующие пункты назначения. Некоторые порты открыты по умолчанию, а некоторые нужно открыть. В этой статье мы обсудим, как открывать порты в Ubuntu, на некоторых примерах, таких как открытие порта 22, порта 80, порта 443 и порта 53 с помощью команды ufw.
Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора, включая CCNA RS, SCP и ACE. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов.
Читайте также: