Как посмотреть открытые порты и информацию о том, с каких IP-адресов можно обращаться к портам?

«Как посмотреть открытые порты и информацию о том, с каких IP-адресов можно обращаться к портам?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

1. Просмотр слушающих портов на хосте: Современная утилита ss (замена устаревшему netstat):

sudo ss -tulnp
  • -t — TCP порты.
  • -u — UDP порты.
  • -l — только порты в состоянии LISTEN.
  • -n — не резолвить имена (показывать IP и номера портов).
  • -p — отображать процесс, владеющий портом.

Вывод показывает Local Address:Port. Например, 0.0.0.0:22 означает, что SSH слушает на всех интерфейсах.

2. Проверка правил брандмауэра (разрешающие правила): Для iptables:

sudo iptables -L -n -v

Для nftables (современная замена):

sudo nft list ruleset

Здесь ищутся правила с действием ACCEPT для целевых портов.

3. Комплексная проверка доступности (с точки зрения сети): Используется nmap для сканирования с другой машины, чтобы увидеть, что реально доступно через фаервол:

nmap -sT -p- <IP_адрес_сервера>

Важно в DevOps: Эта проверка — часть регулярного аудита безопасности и проверки конфигурации после развертывания (deployment). Часто автоматизируется в скриптах или пайплайнах CI/CD.