Просмотр открытых портов в Ubuntu
Открытые порты Ubuntu
В современных операционных системах не обойтись без взаимодействия программ с внешней средой и интернетом. Для этого используется специальные механизмы – порты.
Но порты представляют определённую угрозу. Если в программе есть какая-либо уязвимость, то любой пользователь локальной сети сможет получить доступ к вашему компьютеру, а в некоторых случаях даже к вашей информации. Поэтому нужно быть очень осторожным с открытыми портами. В этой статье мы разберёмся, как посмотреть открытые порты Ubuntu.
Что такое порты и зачем они нужны?
Порты – это более широкое понятие, чем просто возможность подключится к удалённому компьютеру через сеть. Когда процесс хочет обратиться к серверу, ему нужно каким-либо образом идентифицировать, к какому серверу он хочет подключиться. Если мы знаем 32 битный IP-адрес сервера, то мы можем без проблем к нему подключиться.
Но как указать программу, к которой нужно обратиться? Для решения этой проблемы оба протокола UDP и TCP поддерживают систему портов. Порт – это целое число от 1024 до 65535. Все номера до 1024 зарезервированы и используются только определёнными службами, например, 22 – ssh, http – 80, FTP – 21 и так далее.
Таким образом, процесс прослушивает определённый порт на сервере, а клиент, который хочет к нему обратиться, должен знать этот порт. Вся обработка прав доступа к портам в большинстве случаев ложится на процесс, поэтому если в его коде есть уязвимости, то это может стать серьёзной проблемой безопасности.
Существуют не только порты, к которым программы подключаются удалённо, но и локальные порты, используемые программами для общения между собой. В качестве локальных также могут использоваться удалённые.В 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, ss разработали для замены netstat. Команда будет выглядеть следующим образом:
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, и я не раз наблюдал в логах попытки перебрать пароль от каких-то роутеров из локальной сети. И если даже вас некому ломать, это могут сделать вирусы.
Так что будьте осторожны, и не оставляйте открытые порты, если в этом нет необходимости.
(14 4,79 из 5)
Загрузка…
Источник: //losst.ru/otkrytye-porty-ubuntu
netstat — проверка открытых портов в Linux
Проверка открытых портов на Ubuntu может понадобиться, чтобы убедиться, что в системе не запущены лишние службы. Если вы помните, порт это число, которое приложение будет использовать для связи с другой программой, предоставлять сервис и т.д. Чтобы получить представление о том, какие службы работают в системе, необходимо проверить открытые порты системы.
Часто мы устанавливаем программу, которая является сервисом, а потом забываем о ней, поэтому наша машина может прослушивать порты в ожидании соединения.
Злоумышленники любят, когда порты открыты, так как приложения, прослушивающие эти порты, являются простыми целями.
Чтобы обеспечить нашей системе Ubuntu Linux (или любой другой системе в этом отношении) максимальную безопасность, мы должны знать о том, какие порты открыты и для каких служб.
Проверка открытых портов на Ubuntu
Чтобы проверить, какие порты открыты на нашей рабочей станции Ubuntu, можно выполнить команду, показанную ниже. Обратите внимание, что она должна работать и для других разновидностей Linux, если установлена утилита netstat.
Выполните в терминале следующую команду:
netstat -anltp | grep «LISTEN»
Обычный веб-сервер, на котором запущены FTP, SSH и MySQL, выведет следующую информацию:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 21432/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4090/apache2
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 7213/sshd
tcp6 0 0 :::21 :::* LISTEN 19023/proftpd
tcp6 0 0 :::22 :::* LISTEN 7234/sshd
Вышеуказанная команда запускает утилиту netstat с соответствующими флагами и передает вывод функции grep, которая извлекает строки, содержащие слово «LISTEN». В результате мы получаем список открытых портов и имена процессов, прослушивающих эти порты.
Все команды netstat, ss, netcat относится к сетевым утилитам и доступны по-умолчанию в большинстве linux-дистрибутивах.
Команда netstat умеет показывать сетевые соединения (входящие/исходящие), таблицу маршрутизации, статистику по сетевым интерфейсам и т.д.
Читать также Установка TFTP сервера (tftpd) в Ubuntu Linux
Список всех открытых портов (TCP)
netstat -at
Список всех открытых портов (UDP)
netstat -au
Список только прослушиваемых портов (TCP)
netstat -lt
Статистика по всем открытым портам
netstat -s
Подробное отображение списка с открытыми портами — добавлен PID и имя процессов
netstat -p
Объединим все ключи в полезную команду для просмотра открытых TCP/UDP портов с именами процессов (может понадобиться root-доступ)
netstat -ltupn
Список подключенных хостов
netstat -lantp | grep ESTABLISHED |awk '{print $5}' | awk -F: '{print $1}' | sort -u
ss
Утилита ss позволяет просматривать информацию об используемых сокетах в системе. Эта команда обладает схожим функционалом к netstat, но есть и уникальные возможности. Например можно фильтровать вывод по установленным соединениям с определенным портом.
Список процессов, использующие соединения в данный момент
ss -p
Список сокетов в режиме прослушивания
ss -l
Пример фильтра — список всех соединений к порту 80
ss -o state established '( dport = :www or sport = :www )'
netcat
Утилита netcat позволяет передавать/принимать данные через TCP/UDP соединения.
Шаблон вызова утилиты
nc host port
Откроем прием (ключ -l) данных на порте 1234 с подробным выводом информации (ключ -v) и продолжением работы после разрыва соединения (ключ -k), по-умолчанию nc разрывает соединение после первого дисконекта.
nc -l 1234
Подключаемся к открытому порту и отправим import antigravity
Источник: //svictor.ru/port-ubuntu-linux/
20 Потрясающих Примеров Команды Nmap
Ниже вы найдете 20 базовых примеров использования команды Nmap.
Вы узнаете, как использовать Nmap из командной строки в Linux для поиска активных хостов в сети и сканирования открытых портов.
Вы увидите, как удаленно определить операционную систему с помощью отпечатков стека TCP/IP и как узнать версию программного обеспечения запущенного на удаленном сервере.
Я так-же покажу как с помощью Nmap осуществить скрытое сканирование, как определить фаервол и как подменить MAC адрес.
Дельный Совет: Хотите сохранить анонимность? Узнайте как использовать ПРОКСИ из командной строки в Linux. Читать далее →
1. Сканирование Одного Хоста или IP Адреса
Сканировать Отдельный IP Адрес:
$ nmap 192.168.1.1
Сканировать сервер по Имени Хоста:
$ nmap server.shellhacks.com
Увеличить Уровень Детализации результатов сканирования:
$ nmap -v server.shellhacks.com $ nmap -vv server.shellhacks.com
2. Сканирование Множества IP Адресов
Сканировать Множество IP Адресов:
$ nmap 192.168.1.1 192.168.1.2 192.168.1.3 $ namp 192.168.1.1,2,3
Сканировать Подсеть:
$ nmap 192.168.1.0/24 $ nmap 192.168.1.*
Сканировать Диапазон IP Адресов (192.168.1.0 — 192.168.1.200):
$ nmap 192.168.1.0-200
3. Поиск Активных Компьютеров в Сети
Дельный Совет: Сканируйте сеть с помощью одной лишь команды ping! Вычислите все активные компьютеры! Читать далее →
Сканировать сеть в поиске Активных Хостов:
$ nmap -sn 192.168.1.0/24
4. Сканирование Списка Хостов из Файла
Сканирование списка хостов/сетей из Файла:
$ nmap -iL input.txt
Формат файла:
# Записи могут быть представлены в любом из форматов, с которыми работает # Nmap из командной строки (IP адреса, имена хостов, CIDR, IPv6, или октетные # диапазоны). Записи должны разделятся одним или более пробелами, табуляциями # или переходами на новую строку. $ cat input.txt server.shellhacks.com 192.168.1.0/24 192.168.2.1,2,3 192.168.3.0-200
5. Исключение IP/Хостов/Сетей из Сканирования
Исключить Цели из сканирования Nmap-ом:
$ nmap 192.168.1.0/24 –exclude 192.168.1.1 $ nmap 192.168.1.0/24 –exclude 192.168.1.1 192.168.1.5 $ nmap 192.168.1.0/24 –exclude 192.168.1.1,2,3
Исключить Список хостов, взятых из файла:
$ nmap 192.168.1.0/24 –excludefile exclude.txt
Формат файла с исключенными хостами аналогичен приведенному выше.
6. Сканирование Определенных Портов
Сканировать Один Порт:
$ nmap -p 80 192.168.1.1
Сканировать Несколько Портов:
$ nmap -p 80,443 192.168.1.1
Сканировать Диапазон Портов:
$ nmap -p 80-1000 192.168.1.1
Сканировать Все Порты:
$ nmap -p “*” 192.168.1.1
Сканировать несколько самых Распространенных Портов:
$ nmap –top-ports 5 192.168.1.1 $ nmap –top-ports 10 192.168.1.1
7. Определение Поддерживаемых IP Протоколов
Определить какие IP Протоколы (TCP, UDP, ICMP, и т.д.) поддерживает сканируемый хост:
$ nmap -sO 192.168.1.1
8. Сканирование TCP/UDP Портов
Сканировать все TCP Порты:
$ nmap -sT 192.168.1.1
Сканировать определенные TCP Порты:
$ nmap -p T:80 192.168.1.1
Сканировать все UDP Порты:
$ nmap -sU 192.168.1.1
Сканировать определенные UDP Порты:
$ nmap -p U:53 192.168.1.1
Объединение сканирования разных портов:
$ nmap -p U:53,79,113,T:21-25,80,443,8080 192.168.1.1
9. Быстрое Сканирование
Активировать Быстрый Режим сканирования:
$ nmap -F 192.168.1.1
* Сканирует меньшее кол-во портов, чем при обыкновенном сканировании.
10. Показывать Причину Состояния Порта
Показать Причину, по которой Nmap считает что порт находится в определенном состоянии:
$ nmap –reason 192.168.1.1
11. Показывать Только Открытые Порты
Показать Только Открытые Порты (либо возможно открытые):
$ nmap –open 192.168.1.1
12. Определение ОС
Одна из наиболее известных функциональных возможностей Nmap — это удаленное определение ОС на основе анализа работы стека TCP/IP.
Nmap посылает серию TCP и UDP пакетов на удаленный хост и изучает ответы.
После проведения множества тестов, Nmap сравнивает результаты со своей базой данных и, при нахождении соответствий, выводит информацию об ОС.
Включить Определение ОС:
$ nmap -O 192.168.1.1
13. Определение Версии Сервисов
Включить Определение Версии Сервисов:
$ nmap -sV 192.168.1.1
* Определяет версии программ, запущенных на удаленном сервере.
14. Обнаружение Фаервола
Узнать, защищен ли компьютер какими-либо Пакетными Фильтрами или Фаерволом:
$ nmap -sA 192.168.1.1
15. Подмена MAC Адреса
Подменить MAC Адреса:
$ nmap –spoof-mac 00:11:22:33:44:55 192.168.1.1
Подменить MAC Адрес Случайным MAC-ом:
$ nmap –spoof-mac 0 192.168.1.1
16. Сканирование Фаервола на Уязвимости
Эти три типа сканирования используют незаметную лазейку в TCP RFC, чтобы разделять порты на открытые и закрытые.
Когда сканируется система отвечающая требованиям RFC, любой пакет, не содержащий установленного бита SYN, RST или ACK, повлечет за собой отправку RST в ответ в случае, если порт закрыт, или не повлечет никакого ответа, если порт открыт.
Т.к. ни один из этих битов не установлен, то любая комбинация трех оставшихся (FIN, PSH и URG) будет являться правильной.
TCP Null сканирование:
$ nmap -sN 192.168.1.1
* Не устанавливаются никакие биты (Флагов в TCP заголовоке 0).
TCP Fin сканирование:
$ nmap -sF 192.168.1.1
* Устанавливается только TCP FIN бит.
TCP Xmas сканирование:
$ nmap -sX 192.168.1.1
* Устанавливаются FIN, PSH и URG флаги (пакет светится как новогодняя елка).
17. Скрытое Сканирование
Дельный Совет: Сохраняйте анонимность во время сканирования портов! Используйте Nmap + Tor + ProxyChains! Безопасное и простое тестирование на проникновение! Читать далее →
TCP SYN сканирование:
$ nmap -sS 192.168.0.1
* Известное как сканированием с использованием полуоткрытых соединений, так как не отрывает полных TCP соединений.
18. Отключение Обнаружения Хостов (No Ping)
Не пинговать хосты перед сканированием:
$ nmap -Pn 192.168.1.1
19. Отключение Использования DNS
Дельный Совет: Необходимо усилить безопасность в Linux? Шифруйте DNS трафик для защиты от спуфинга! Читать далее →
Никогда не производить обратное преобразование DNS имен для каждого обнаруженного активного IP адреса:
$ nmap -n 192.168.1.1
20. Сохранение Результатов Сканирования Nmap в Файл
Сохранить результат сканирования Nmap в Текстовый Файл:
$ nmap 192.168.1.1 > output.txt $ nmap -oN output.txt 192.168.1.1
Сохранить результат сканирования Nmap в XML Файл:
$ nmap -oX output.xml 192.168.1.1
Источник: //www.shellhacks.com/ru/20-nmap-examples/
3 способа, чтобы проверить открытые порты в Linux с..
Это очень важно, чтобы проверить открытые порты в Linux в целях безопасности. Это помогает системному администратору найти любое вторжение в систему. Эта статья поможет вам быстро проверить открытые порты в Linux с соответствующим сервисом-процессом.
Как проверить открытые порты в Linux с соответствующим сервисом-процессом?
Существуют различные способы, с помощью которых можно определить открытые порты прослушивания на Linux.
1. Проверка открытых портов в Linux с помощью команды NETSTAT
В основной форме команда NetStat выводит на экран или печатает информацию о сетевых подключениях и таблицу маршрутизации и т.д. Однако та же команда вместе с параметром ниже может быть использована для проверки открытых портов в Linux.
Вывод:
[root@destroyer ~]# netstat -tulpn | grep LISTENtcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 904/sshdtcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 866/mastertcp6 0 0 :::80 :::* LISTEN 1086/httpdtcp6 0 0 :::22 :::* LISTEN 904/sshdtcp6 0 0 ::1:25 :::* LISTEN 866/master[root@destroyer ~]#
Вот команда выше отображает все выходные TCP, а также порты UDP. В случае, если вы хотите отфильтровать его дальше, допустим, вы хотите узнать, процесс или услугу, используемую по порту 80, следуют использовать команду ниже.
[root@destroyer ~]# netstat -tulpn | grep LISTEN|grep 80tcp6 0 0 :::80 :::* LISTEN 1086/httpd[root@destroyer ~]#В приведенной выше командной порт используется HTTPd службы с PID 1086.
Утилита lsof в основном отображает список открытых файлов. Однако с некоторыми настройками параметров мы можем в состоянии также проверить открытые порты в Linux. По умолчанию она не установлена в системе, пожалуйста, следуйте ниже набором команд для установки в соответствии с дистрибутивом Linux.
Для RHEL и CentOS OS#yum install lsof Для Debian и Ubuntu OS#apt install lsof
Команда:
Вывод:
[root@destroyer ~]# lsof -i -P -nCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEchronyd 513 chrony 1u IPv4 14330 0t0 UDP 127.0.0.1:323chronyd 513 chrony 2u IPv6 14331 0t0 UDP [::1]:323dhclient 548 root 6u IPv4 15326 0t0 UDP *:68dhclient 548 root 20u IPv4 15315 0t0 UDP *:41668dhclient 548 root 21u IPv6 15316 0t0 UDP *:23435master 866 root 13u IPv4 16678 0t0 TCP 127.0.0.1:25 (LISTEN)master 866 root 14u IPv6 16679 0t0 TCP [::1]:25 (LISTEN)sshd 904 root 3u IPv4 17424 0t0 TCP *:22 (LISTEN)sshd 904 root 4u IPv6 17426 0t0 TCP *:22 (LISTEN)sshd 951 root 3u IPv4 17884 0t0 TCP 172.31.22.4:22->103.211.42.2:59572 (ESTABLISHED)sshd 954 ec2-user 3u IPv4 17884 0t0 TCP 172.31.22.4:22->103.211.42.2:59572 (ESTABLISHED)httpd 1086 root 4u IPv6 19036 0t0 TCP *:80 (LISTEN)httpd 1088 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN)httpd 1089 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN)httpd 1090 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN)httpd 1091 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN)httpd 1092 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN)В случае, если вы хотите получить более подробную информацию о порте 80 можно использовать следующую команду:[root@destroyer~]# lsof -i :80COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEhttpd 1056 root 4u IPv6 19036 0t0 TCP *:http (LISTEN)httpd 1057 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN)httpd 1058 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN)httpd 1059 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN)httpd 1060 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN)httpd 1061 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN)
Здесь, в этом выводе вы можете четко отметить, что порт 80 используется службой HTTP, имеющей PID 1056.
3. Проверка открытых портов в Linux с помощью nmap
Nmap является инструментом сканирования порта, используемый в Linux. Он не установлен на системах Linux по умолчанию. Вам необходимо установить его с помощью следующей команды.
После того, как он установиться, используется команда для проверки открытых портов в Linux.
Открытие портов в Ubuntu
Дорогие друзья, сегодня мы с вами обсудим два вопроса: как открыть порт в Ubuntu и посмотреть список уже запущенных. Таким образом можно будет контролировать процессы на своём компьютере.
То есть, например, если не получается открыть какую-то утилиту из-за занятости одного из портов, такое дело можно будет исправить.
Для начала давайте узнаем, как посмотреть открытые порты? После этого уже рассмотрим вторую часть сегодняшней темы об открытии портов Убунту.
Управление портами на ПК необходимо для полноценной работы приложений.
Как посмотреть открытые порты
Если с запуском портов уже более или менее в голове что-нибудь прояснилось, то давайте разберём, что же делать, чтобы посмотреть открытые порты? Итак, этот метод предусматривает наличие установленной утилиты netstat на вашем компьютере под управлением операционной системы Linux.
Если этой программы на вашем устройстве нет, то обязательно установите его уже знакомыми средствами. После, достаточно будет ввести следующую команду в консоль: netstat -ltupn. Таким образом откроется окно с портами, адресами IP, а также именами процессов, которые являются владельцами соединений.
Способ достаточно простой и не требует каких-либо усилий с вашей стороны, кроме использования утилиты netstat.
Как открыть порт в Убунту
Теперь рассмотрим нашу вторую часть сегодняшнего обсуждения. Прежде всего вам потребуется запустить консоль для ввода команд и скриптов. Далее, пробуем следующие две комбинации, которые позволят вам открыть определённый порт.
Стоит отметить, что все выполняемые действия производятся на ваш страх и риск, так как они предназначены для опытных пользователей. Любые неверные шаги или же неблагополучные манипуляции могут привести вас к неприятным последствиям.
Например, есть вероятность потерять важные файлы и данные или же поломать что-нибудь в строе системы. Приступайте к следующим действиям только при полной уверенности своих сил и возможностей.
Способ первый
Ниже рассматриваются примеры для порта 7777:
- Итак, добавляем в нашу консоль правило: iptables -t filter -A INPUT -i eth0 -p tcp —dport 7777 -j ACCEPT.
- Если так не получилось, то стоит проверить настройки конфигурации файрволла, только потом ввести следующее значение: iptables -L. После этого для открытия нужного порта используете консольную команду: iptables -A INPUT -p tcp —dport 777 -j ACCEPT.
- Если же и эта команда вам не помогла, то воспользуйтесь следующей: sudo iptables -A INPUT -p tcp —dport 7777-j ACCEPT.
Стоит отметить, однако, очень важный момент. Дело в том, что файрволл iptables имеется абсолютно во всех дистрибутивах Linux.
Более того, правила их являются также одинаковыми, но зато настройка и запуск может различаться. Вот почему может понадобиться наличие универсального способа.
Вероятнее всего, что опытные пользователи не применят его, но вот обычные юзеры вполне могут воспользоваться им.
Способ второй
- Для начала стоит проверить наличие iptables в вашей ОС. Для этого делаем следующую команду в консоли: iptables -list. После этого вы получите необходимые вами данные.
- Наиболее приемлемым вариантом будет закрытие всех портов, необходимых операционке.
Далее, устанавливая правила, откройте порты Linux для игры, трансфера документов и веб-сёрфинга. Чтобы сделать это, убедитесь в наличие iptables. После этого создайте файл /etc/iptables.sh с суперпользовательскими правами.
файла будет следующее:
#!/bin/bashiptables -P INPUT DROPiptables -P OUTPUT DROP
iptables -P FORWARD DROP
# закрываем все соединенияiptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# разрешаем трафик loopback, нужен обязательноiptables -A INPUT -p all -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p all -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
# разрешаем инициированные программами, системой и их дочерние соединения.iptables -A INPUT -m state —state INVALID -j DROP
iptables -A FORWARD -m state —state INVALID -j DROP
#отбрасываем все пакеты без статуса.
## далее команды чтобы открыть порт Linux:
iptables -A INPUT -i eth0 -p tcp —dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p udp —dport 80 -j ACCEPT
# открываем порты для посещения сайтов
iptables -A INPUT -i eth0 -p tcp —dport «номер нужного входящего порта» -j ACCEPT
iptables -A OUTPUT -i eth0 -p tcp —dport «номер нужного исходящего порта» -j ACCEPT
# добавляем ещё, которые нам нужны, в список открытых портов Linux
Этот скрипт подходит для всех дистрибутивов Linux, в том числе и Ubuntu. Поэтому можно не волноваться по поводу несовместимости кодов и их работы в операционной системе.
Но вдруг если ни один из этих методов вам не помог, потребуется дополнительная диагностика. Например, вы можете посмотреть, не занят ли случайно необходимый порт другим приложением.
Если ответ будет положительным, то понадобится закрыть все утилиты, связанные с ним. Только потом можно будет повторить свои попытки со скриптами и кодами.
Подведём итоги
Источник: //NastroyVse.ru/opersys/lix/kak-otkryt-port-v-ubuntu.html
4 способа узнать, какие порты прослушиваются в Linux
Порт может в одном из следующих состояний: открыт (open), фильтруется (filtered), закрыт (closed), без фильтрации (unfiltered).
Порт называется открытым если какое-либо приложение, служба на целевой машине прослушивает (listening) его в ожидании соединений/пакетов.
Также по отношению к службе часто употребляют термин «привязка» (bind), который означает, что служба назначена к определённому порту, то есть после её запуска она будет прослушивать его, чтобы ответить на входящие запросы.
Термин «привязка» используют по отношению к службам, которые прослушивают порт на постоянной основе и готовы принять входящие соединения. Примером таких служб являются SSH, MySQL, веб-сервер. Некоторые приложения (например, веб-браузер) делают исходящие соединения.
Для этих исходящих соединений обычно используется порт с номером в десятки тысяч, например, 37830 или 46392 или 54284 или что-то подобное. Но они используют порт на короткое время — только чтобы отправить запрос и получить ответ. Сразу после получения ответа программа освобождает порт.
Если ей понадобится вновь сделать запрос, то она может выбрать любой другой незанятый порт — необязательно тот же самый. Такие порты не являются прослушивающими, то есть они не принимают внешние запросы на инициализацию соединения.Это состояние сокета называется ESTABLISHED, его нужно отличать от прослушивания порта (LISTENING), то есть от открытых портов.
В этой статье будут рассмотрены четыре способа проверить открытые порты, точнее говоря, какие порты прослушиваются в системе, а также показано вам как найти приложение (службу) прослушивающие определённый порт в Linux.
1. Используя команду netstat
Netstat — это широко применяемый инструмент для запроса информации о сетевой подсистеме Linux. Вы можете использовать её для показа всех открытых портов примерно так:
sudo netstat -ltup
Флаг -l говорит netstat вывести все прослушивающие сокеты, -t означает показать все TCP соединения, -u для показа всех UDP соединений и -p включает показывать PID и имя программы/приложения, которое прослушивает порт.
Обратите внимание, что вместо номеров портов программа выводит имена популярных служб. Если вы хотите, чтобы порты были показаны как числа, то добавьте флаг -n.
sudo netstat -lntup
Вы также можете использовать команду grep для определения, какое приложение прослушивает определённый порт, например:
sudo netstat -lntup | grep “httpd”
Можно искать не по имени службы, а по номеру порта, с помощью этого можно определить, какая служба привязана к определённому порту:
sudo netstat -lntup | grep “:80”
Если вам нужно чтобы данные постоянно обновлялись, то используйте ключ -c, тогда новые данные будут выводиться каждую секунду.
sudo netstat -lntupc
2. Используя команду ss
ss — это другой полезный инструмент для отображения информации о сокетах. Её вывод выглядит похоже с тем, какую информацию даёт netstat. В документации netstat сказано, что она в основном устарела и её заменой является как раз ss.
Следующая команда покажет все прослушиваемые порты для TCP и UDP соединений в виде цифровых значений:
sudo ss -lntu
Опции имеют такое же значение:
- -l означает показать только прослушивающие сокеты (по умолчанию они опускаются);
- -t означает показать TCP сокеты;
- -u означает показать UDP сокеты.
Если добавить ключ -p, то программа дополнительно покажет процессы, использующие сокет:
sudo ss -lntup
Программа очень детально показывает информацию по каждому процессу, в том числе выводит все подпроцессы, связанные с родительским. С одной стороны, это хорошо, так как информация исчерпывающая, но с другой, данных о процессах может быть слишком много и вывод становится трудно читаемым.
3. Используя программу Nmap
Nmap — это мощный и популярный инструмент исследования сети и сканер портов. Для установки nmap в вашу систему используйте стандартный менеджер пакетов как показано ниже.
На Debian/Ubuntu/Linux Mint:
sudo apt install nmap
На CentOS/RHEL:
sudo yum install nmap
На Fedora 22+:
sudo dnf install nmap
На Arch Linux:
sudo pacman -S nmap
Для сканирования открытых/прослушиваемых портов на вашей системе Linux, запустите следующую команду (она может занять долгое время для завершения):
sudo nmap -n -Pn -sS -sU -p- localhost
4. Используя команду lsof
Последний инструмент, который мы рассмотрим в этой статье, это команда lsof, которая используется для вывода списка открытых файлов в Linux. Поскольку в Unix/Linux всё является файлом, открытый файл может быть потоком или сетевым файлом.
Для вывода списка всех Интернет и сетевых файлов, используйте опцию -i. Помните, что эта команда показывает смесь имён служб и цифровых портов.
sudo lsof -iЧтобы найти, какое приложение прослушивает определённый порт, запустите lsof в следующей форме:
sudo lsof -i :80
Вот и всё! В этой статье мы узнали четыре способа проверить открытые порты в Linux. Мы также показали, как проверить, какой процесс привязан к определённому порту.
О том, как правильно понимать вывод этих команд, смотрите статью «Что означают 0.0.0.0, :*, [::], 127.0.0.1. Как понять вывод NETSTAT».
Источник: //ZaLinux.ru/?p=2365