Проверка открытых и прослушивающих портов в Linux с помощью Netstat и SS
Проверка открытых и прослушивающих портов в Linux с использованием netstat и ss
Мониторинг открытых и прослушивающих портов на системе Linux является важной практикой для поддержания безопасности системы, выполнения устранения неполадок в сети и эффективного управления вашей серверной инфраструктурой. Регулярно проверяя, какие порты открыты и какие службы их используют, вы можете выявить потенциальные риски безопасности, обнаружить попытки несанкционированного доступа и убедиться, что ваша система не подвержена ненужным уязвимостям.
Понимание того, какие службы привязаны к конкретным портам, также помогает выявить неправильные настройки или неожиданное поведение, такое как неизвестные процессы, прослушивающие чувствительные порты. Эти знания значительно снижают риск нарушения безопасности, позволяя вам закрыть неиспользуемые порты или правильно защитить активные.
В этой статье мы объясним, как использовать команды netstat и ss для проверки открытых и прослушивающих портов на системе Linux.
Понимание портов и их типов
Перед использованием инструментов важно понять основные типы портов, с которыми вы можете столкнуться:
- Открытые порты: Порты, на которых приложения активно прослушивают входящие соединения.
- Прослушивающие порты: Порты, привязанные к службе или приложению, ожидающему сетевой трафик.
- Распространенные протоколы:
- TCP: Протокол управления передачей, ориентированный на соединение и надежный.
- UDP: Протокол пользовательских датаграмм, без соединения, быстрее, но менее надежный.
Проверка портов с помощью netstat
Что такое netstat?
netstat — это классический инструмент командной строки, который предоставляет сетевую статистику и информацию о сетевых соединениях, включая открытые и прослушивающие порты. Хотя он был устаревшим в пользу новых инструментов, таких как ss, он все еще широко используется на многих системах.
Установка netstat
Команда netstat является частью пакета net-tools. На современных дистрибутивах Linux ее может потребоваться установить вручную.
Debian / Ubuntu
sudo apt install net-toolsCentOS / RHEL
sudo yum install net-toolsИспользование netstat для проверки открытых и прослушивающих портов
Чтобы отобразить все прослушивающие TCP и UDP порты на вашей системе, выполните:
sudo netstat -tuln- -t: Показать TCP порты
- -u: Показать UDP порты
- -l: Показать только прослушивающие порты
- -n: Показать числовые адреса вместо разрешения имен хостов
Понимание вывода
- Локальный адрес: IP-адрес и порт, на которых служба прослушивает.
- Удаленный адрес: Удаленный IP и порт для активных соединений.
- Состояние: Состояние соединения, такое какдля открытых портов.
LISTEN
Фильтрация конкретных портов или служб с помощью netstat
Вы можете отфильтровать вывод, чтобы сосредоточиться на конкретном порте или службе. Например, чтобы проверить службы, прослушивающие порт 80 (HTTP):
sudo netstat -tuln | grep ":80"Эта команда отображает все службы, прослушивающие порт 80.
Проверка портов с помощью ss
Что такое ss?
ss — это современный инструмент, который заменил netstat на многих дистрибутивах Linux. Он быстрее и эффективнее, особенно на системах с большим количеством сетевых соединений. Команда ss может отображать открытые порты, статистику сокетов и подробную сетевую информацию.
Использование ss для проверки открытых и прослушивающих портов
Синтаксис ss похож на netstat. Чтобы перечислить все прослушивающие TCP и UDP порты, выполните:
ss -tuln- -t: Показать TCP сокеты
- -u: Показать UDP сокеты
- -l: Показать прослушивающие сокеты
- -n: Отобразить числовые адреса
Вывод предоставляет четкий обзор всех прослушивающих портов и их состояний.
Расширенное использование ss
Команда ss предлагает расширенные параметры фильтрации для более детального анализа.
Показать только прослушивающие TCP порты
ss -tlПоказать только прослушивающие UDP порты
ss -ulПоказать прослушивающие порты с сопоставленными идентификаторами процессов
Чтобы определить, какой процесс использует конкретный порт, выполните:
ss -tulnpОпция -p отображает имя процесса и PID, связанные с каждым прослушивающим портом, что полезно для устранения неполадок.
Сравнение netstat и ss
Оба инструмента служат схожим целям, но есть важные различия:
- Производительность: ss быстрее и эффективнее, чем netstat, особенно на загруженных системах.
- Доступность: ss включен по умолчанию на большинстве современных дистрибутивов Linux, в то время как netstat может потребовать ручной установки.
- Опции фильтрации: ss предоставляет более продвинутые возможности фильтрации и отображения.
Когда использовать netstat
- На старых системах Linux.
- Если вы уже знакомы с синтаксисом netstat.
Когда использовать ss
- Когда требуется лучшая производительность.
- Для продвинутого анализа сети и фильтрации.
Другие инструменты для проверки открытых портов
В дополнение к netstat и ss, другие инструменты могут использоваться для проверки открытых и прослушивающих портов.
Использование lsof
lsof перечисляет открытые файлы, включая сетевые сокеты. Чтобы проверить, какой процесс использует порт 80:
sudo lsof -i :80Эта команда отображает процессы, привязанные к порту 80.
Использование nmap
nmap — это инструмент для сканирования сети, который можно использовать для обнаружения открытых портов на системе:
sudo nmap -sT localhostЭто сканирует TCP порты на локальной машине.
Заключение
Мониторинг открытых и прослушивающих портов является критически важной задачей для администраторов систем Linux. Инструменты, такие как netstat и ss, упрощают идентификацию активных служб, устранение сетевых проблем и повышение безопасности сервера.
Хотя netstat все еще полезен на старых системах, ss является предпочтительным выбором для современных окружений Linux благодаря своей скорости и эффективности. Независимо от того, защищаете ли вы сервер Linux или диагностируете сетевое поведение, эти инструменты обеспечивают необходимую видимость для эффективного управления открытыми портами.
