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

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

Что такое порты и как они работают в Linux

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

В зависимости от номера, порты делятся на 3 диапазона:

  • 0-1023 (известные порты): данные порты назначаются конкретным службам IANA.
  • 1023-49151 (зарегистрированные порты): они доступны для регистрации IANA и характеризуются как пользовательские порты.
  • 49152-65535 (динамические): такого рода порт может быть назначен на определенное время для конкретных служб.

Проверка открытых портов в системе

Есть несколько опций с помощью которых можно проверить открытые порты. К примеру, использование утилиты netstat, позволит открыть системные порты, а также сетевые соединения. Также можно использовать следующие дополнительные варианты:

  • -p – показывает имя программы и PID.
  • -l – отображает только прослушиваемые порты.
  • -n – отображает IP адреса в числовом виде.

$ sudo netstat -tulpn

Более современная альтернатива для netstat – это ss. Данная команда напрямую связывается с подсистемой ядра Linux, и в некоторых вариантах она работает быстрее.

$ sudo ss -tulpn

Вот еще один альтернативный вариант:

$ sudo lsof -i -P -n

Настройка и управление портами в Ubuntu и Debian

В системах Debian и Ubuntu для управления брандмауэром используется утилита iptables или UFW. Для открытия доступа сервера для приложения нужно регистрировать его в UFW.

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

$ sudo apt update

$ sudo apt install ufw

 

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

$ sudo ufw app list

 

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

$ sudo ufw allow SSH

 

В Ubuntu для подключения ssh нужно использовать следующую команду:

$ sudo ufw allow OpenSSH

 

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

$ sudo ufw enable

 

Часто спрашивают: Настройка FTP-сервера на Ubuntu

Управление портами и доступом в CentOS

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

$ sudo dnf update -y

$ sudo dnf install firewalld -y

 

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

$ systemctl status firewalld

 

Для просмотра списка приложений у которых уже есть доступ к firewalld используйте:

$ sudo firewall-cmd –permanent –list-all

 

В строчке services будут перечислены все приложения, у которых уже есть доступ.

Открытие и закрытие портов через брандмауэр (UFW, firewalld, iptables)

Теперь давайте, добавим правило с помощью, которого будет осуществляется передача данных по порту 80:

$ sudo ufw allow 80

 

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

$ sudo ufw allow 32810:32814/udp

 

Кроме того, данную команду можно сделать более конкретной с помощью использования IP-адреса, или с одной определенной подсетью, или даже с одной IP и только по определенному порту, вот пример:

$ sudo ufw allow from 10.34.14.233 to any port 22

 

Также можно осуществить закрытие доступа через определенный порт для чего используется команда deny.

$ sudo ufw deny http

 

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

$ sudo ufw status

 

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

$ sudo ufw disable

 

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

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

 

Просто подставив название другого приложения или протокола, можно легко открыть доступ. Кроме того, есть возможность осуществить подключение по определенному порту. Вот пример:

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

 

Подобным образом можно использовать туже команду, но для открытия доступа для нескольких портов одновременно, просто добавив нужный пул – 32811-32814. Для проверки успешности процесса используйте следующую команду:

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

 

Читайте также: Как правильно настроить брандмауэр: безопасность, автоматизация, масштаб

 

Для блокирования доступа к порту можно использовать следующую команду:

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

 

После внесения всех необходимых изменений нужно обязательно перезапустить систему с помощью:

$ sudo firewall-cmd –reload

Практические примеры управления портами в Linux

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

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

sudo apt install knockd

 

Для закрытия подключения с конкретного IP используется следующая команда:

$ sudo ufw deny from 34.14.10.233

 

Можно также удалить уже созданные правила с помощью номера правила. Для того чтобы узнать номер правила нужно ввести такую команду:

$ sudo ufw status numbered

 

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

$ sudo ufw delete 6

Заключение и рекомендации по администрированию портов

Теперь у вас есть более практическое понимание запуска межсетевых экранов в разных операционных системах Linux, а также открытия и закрытия доступа через определенные порты. Таким образом вы можете начать оптимизировать производительность системы и значительно повысить уровень безопасности.