Проверка открытых и прослушиваемых портов в Linux с помощью netstat и ss
Мониторинг открытых и прослушиваемых портов в системе Linux необходим для обеспечения безопасности, устранения неполадок в сети и системного администрирования. Знание того, какие порты используются и какими службами, может помочь обнаружить потенциальные уязвимости или несанкционированный доступ. Два распространенных инструмента, используемых для этой цели, – netstat и ss.
В этой статье мы рассмотрим, как использовать команды netstat и ss для проверки открытых и прослушиваемых портов в системе Linux.
1. Понимание портов и их типов
Прежде чем мы погрузимся в работу с инструментами, важно понять основные типы портов, с которыми вы можете столкнуться:
- Открытые порты: Это порты, на которых приложения активно прослушивают соединения.
- Слушающие порты: Это порты, к которым привязана служба или приложение и которые активно ожидают входящего сетевого трафика.
- Общие протоколы:
- TCP: Transmission Control Protocol (надежный, основанный на соединениях).
- UDP: User Datagram Protocol (протокол без соединения, менее надежный, но более быстрый).
2. Проверка портов с помощью netstat
Что такое netstat?
netstat – это классический инструмент командной строки, который предоставляет сетевую статистику и информацию о сетевых соединениях, включая открытые и прослушиваемые порты. Несмотря на то, что он был устаревшим в пользу более новых инструментов, таких как ss, он по-прежнему широко используется.
Установка netstat
netstat входит в состав пакета net-tools. В современных дистрибутивах Linux вам может потребоваться установить его вручную:
- Debian/Ubuntu:
- CentOS/RHEL:
Использование netstat для проверки открытых и прослушиваемых портов
Чтобы проверить все прослушиваемые порты в вашей системе, включая TCP и UDP, используйте следующую команду:
- –t: Показать порты TCP.
- –u: Показать порты UDP.
- –l: Показать только прослушиваемые порты.
- –n: Показывать числовые адреса вместо разрешения имен хостов и служб.
Пример вывода:
- Локальный адрес: IP-адрес и порт, на котором прослушивается служба.
- Иностранный адрес: IP-адрес и порт удаленного клиента (для активных соединений).
- Состояние: Состояние соединения (например, LISTEN для открытых портов).
Фильтрация определенных портов или служб с помощью netstat
Вы можете отфильтровать вывод, чтобы сосредоточиться на определенных портах или службах. Например, чтобы проверить порты, связанные с HTTP (порт 80):
Это отобразит все службы, прослушивающие порт 80.
3. Проверка портов с помощью ss
Что такое ss?
ss – это современная утилита, которая заменила netstat во многих дистрибутивах Linux. Она быстрее и эффективнее, чем netstat, особенно при работе с большим количеством соединений. ss может отображать открытые порты, информацию о сетевых сокетах и многое другое.
Использование ss для проверки открытых и прослушиваемых портов
Синтаксис ss очень похож на синтаксис netstat. Чтобы проверить все прослушиваемые порты TCP и UDP, используйте:
- –t: Показать TCP-сокеты.
- –u: Показать UDP-сокеты.
- –l: Показать только прослушиваемые сокеты.
- –n: Показывать числовые адреса (не разрешать имена хостов).
Пример вывода:
Этот вывод показывает все прослушиваемые порты и их состояние (аналогично netstat).
Расширенное использование ss
ss предоставляет более сложные опции для фильтрации и отображения соединений на основе различных критериев.
Отображать только прослушиваемые TCP-порты:
Отображение только прослушиваемых UDP-портов:
Отображение прослушиваемых портов по идентификатору процесса (PID):
Чтобы узнать, какой процесс связан с прослушиваемым портом, используйте:
Параметр p показывает процесс, использующий порт, что полезно для устранения неполадок.
4. Сравнение netstat и ss
И netstat, и ss служат схожим целям, но есть и различия, на которые стоит обратить внимание:
- Скорость и эффективность: ss работает быстрее, чем netstat, и потребляет меньше ресурсов. Он может более эффективно обрабатывать большое количество соединений.
- Доступность: ss включен по умолчанию в большинство современных дистрибутивов Linux, в то время как netstat требует установки пакета net-tools на некоторых системах.
- Формат вывода: Обе программы предоставляют подробную информацию о портах и соединениях, но ss имеет больше возможностей для фильтрации и отображения конкретной информации.
Когда следует использовать netstat:
- При работе на старых системах Linux.
- Когда вы знакомы с синтаксисом netstat и не хотите переключаться.
Когда следует использовать ss:
- Когда вам нужна более высокая производительность, особенно в системах с большим количеством соединений.
- Для более продвинутой фильтрации и анализа сети.
5. Другие инструменты для проверки открытых портов
Помимо netstat и ss, есть и другие инструменты, которые можно использовать для проверки открытых и прослушиваемых портов в Linux:
lsof выводит список открытых файлов, которые могут включать сетевые сокеты. С его помощью можно проверить, какой процесс прослушивает определенный порт
Это покажет процессы, использующие порт 80.
nmap – это инструмент сканирования сети, который можно использовать для проверки открытых портов в системе.
Эта команда сканирует TCP-порты на локальном хосте.
Заключение
Мониторинг открытых и прослушиваемых портов – важная задача для системных администраторов, и такие инструменты, как netstat и ss, облегчают ее выполнение. Хотя netstat все еще используется в старых системах, ss стал предпочтительным инструментом благодаря своей скорости и эффективности. Если вы устраняете неполадки в сети или защищаете свой Linux-сервер, эти инструменты помогут вам отслеживать активные службы и обеспечить правильное управление портами.
Используйте netstat, если он вам более знаком, или переключитесь на ss для более быстрого и эффективного мониторинга открытых и прослушиваемых портов вашей системы.
Дайте мне знать, если вам нужны дополнительные разъяснения или помощь!