Открытые порты Ubuntu | Losst

Открытые порты Ubuntu

В современных операционных системах не обойтись без взаимодействия программ с внешней средой и интернетом. Многим программам нужно передавать данные или принимать соединения из интернета. Для этого используется специальный механизм - порты.

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

Что такое порты и зачем они нужны?

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

Но как указать программу, к которой нужно обратиться? Для решения этой проблемы оба протокола UDP и TCP поддерживают систему портов. Порт - это целое число от 1024 до 65535. Все номера до 1024 зарезервированы и используются только определенными службами, например, 22 - ssh, http - 80, FTP - 21 и так далее.

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

Открытые порты Ubuntu

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

В Linux существует несколько утилит, которые можно использовать чтобы посмотреть открытые порты. Одни из них полноценные сетевые сканеры, другие - локальные утилиты, отображающие всю доступную информацию. Рассмотрим основные из них.

netstat

Это одна из самых старых и популярных утилит для просмотра открытых портов. Мы описывали ее в отдельной статье, а сейчас просто кратко рассмотрим как с ней работать. Чтобы посмотреть открытые порты выполните такую команду:

$ netstat -ntlp | grep LISTEN

Опция -l сообщает, что нужно посмотреть прослушиваемые порты, -p  показать имя программы, -t и -u - отобразить TCP и UDP порты, а -n показывает ip адреса в числовом виде. Дальше нужно выбрать только те строки, где встречается слово LISTEN, чтобы найти только прослушиваемые порты.

Здесь в первом столбце отображается протокол, заем два столбца, данные, которые нам ничего полезного не говорят, а за ними уже идут локальный и внешний адреса. Если локальный адрес - 127.0.0.1, то это значит, что сервис доступен только на этом компьютере, а значение 0.0.0.0 или :: означает любой адрес, к таким сервисам могут подключаться из сети. В нашем примере это Apache и systemd-resolvd.

lsof

Утилита lsof тоже предназначена для просмотра открытых соединений. Основная ее функция - просмотр открытых файлов, но с помощью нее можно посмотреть открытые порты Ubuntu. Используйте такие параметры:

$ sudo lsof -nP -i | grep LISTEN

Опции -n и -P указывают, что необходимо отображать не только цифровые имена портов и ip адреса, но и доменные имена и имена сервисов. Опция -i отображает все сетевые подключения, а с помощью grep мы фильтруем только те, которые находятся в состоянии прослушивания.

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

$ sudo lsof -nP -i

 

ss

Команда ss - это улучшенная версия netstat. Точно так как для замены ifconfig была придумана утилита ip, так и для замены netstat разработали ss. Команда будет выглядеть следующим образом:

$ ss -ltupn

Все данные здесь выводятся почти так же, как и в netstat, поэтому для вас не будет ничего сложного в них разобраться. В дополнение к выше перечисленным командам, возможно, вам нужно будет посмотреть на правила брандмауэра iptables чтобы понять какие порты закрыты с помощью него:

$ iptables -L

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

nmap

Сетевой сканер nmap позволяет проверить список порт Ubuntu так, как бы это делал злоумышленник при попытке атаки на вашу систему. Здесь вы будете видеть все порты, которые видны снаружи. Но для сканирования нужно использовать внешний ip адрес. Не сетевой IP адрес провайдера, а адрес вашего компьютера, например, в локальной сети чаще всего используется 192.168.1.2. Посмотреть ip вашего сетевого интерфейса можно с помощью команды ifconfig:

$ ifconfig

Чтобы просто просканировать открытые порты Ubuntu будет достаточно выполнить:

$ nmap -sT 192.168.1.3

Также можно выполнить комплексное сканирование всех уязвимостей. Важно отметить, что команда не находит все уязвимости, а проверяет только самые простые. Для активации этого режима используется опция -A:

$ sudo nmap -A 192.168.1.3

Подробнее как пользоваться nmap читайте в отдельной статье.

Выводы

В этой статье мы рассмотрели посмотреть порты ubuntu с помощью нескольких утилит. Все они выводят подобную информацию, но для каждого отдельного случая может лучше подойти только одна из них. Например, проверять какие порты видят другие компьютеры извне лучше с помощью nmap. А чтобы посмотреть какие службы или сокеты доступны локально будет лучше netstat или ss.

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

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую OpenSUSE. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.

Ваше имя тоже может быть здесь. Как? Пишите для нас! Смотрите подробнее как стать автором Losst.

Оцените статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (10 оценок, среднее: 4,80 из 5)
Загрузка...

  1 comment for “Открытые порты Ubuntu

  1. Olg
    Май 31, 2017 at 8:52 пп

    По умолчанию в Ubuntu все порты заблокированы. И если вы сами открыли порт(или не поняли что открыли), то их легко контролировать с встроенным в ядро netfilter с интерфейсом iptables. С этим инструментом вас никто не взломает

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: