Astra linux закрытие портов

Как закрыть порты в Linux?

У меня есть какой-то вопрос в закрытии порта, я думаю, что у меня есть некоторые странные вещи.

Когда я использую выполнить

это показывает, что порт 23 / TCP открыт.

Но когда я выполню

это показывает, что порт 23 / tcp закрыт.

Какой из них является правдой? Я хочу закрыть этот порт на всей моей системе, как я могу это сделать?

Nmap — отличный сканер портов, но иногда вам хочется чего-то более авторитетного. Вы можете спросить ядро, какие процессы имеют какие порты открывать, используя netstat утилиту:

Варианты, которые я дал:

  • -t Только TCP
  • -l Только прослушивающие порты
  • -n Не ищите имена сервисов и хостов, просто отображайте номера
  • -p Показать информацию о процессе (требуется привилегия root)

В этом случае мы можем видеть, что sshd прослушивает любой 0.0.0.0 порт интерфейса ( ) 22 и cupsd прослушивает 127.0.0.1 порт 631 loopback ( ). Ваш вывод может показать, что telnetd имеет локальный адрес 192.168.1.1:23 , то есть он не будет отвечать на соединения на адаптере обратной связи (например, вы не можете telnet 127.0.0.1 ).

Существуют и другие инструменты, которые отображают аналогичную информацию (например, lsof или /proc ), но netstat является наиболее широко доступным. Это даже работает на Windows ( netstat -anb ). Netstat в BSD немного отличается: вам придется использовать sockstat (1) для получения информации о процессе.

Если у вас есть идентификатор процесса и имя программы, вы можете найти процесс и убить его, если хотите закрыть порт. Для более детального управления вы можете использовать брандмауэр (iptables в Linux), чтобы ограничить доступ только определенными адресами. Возможно, вам придется отключить запуск службы. Если PID в Linux означает «-», это, вероятно, процесс ядра (например, это характерно для NFS), так что удачи в выяснении, что это такое.

Примечание: я сказал «авторитетный», потому что вам не мешают условия сети и брандмауэры. Если вы доверяете своему компьютеру, это здорово. Однако, если вы подозреваете, что вас взломали, вы не сможете доверять инструментам на своем компьютере. Замена стандартных утилит (а иногда даже системных вызовов) на те, которые скрывают определенные процессы или порты (или руткиты), является стандартной практикой для злоумышленников. Лучше всего на этом этапе сделать криминалистическую копию вашего диска и восстановить ее из резервной копии; затем используйте копию, чтобы определить, как они вошли, и закройте ее.

Источник

Как закрыть порты в Linux?

У меня есть вопрос в закрытии порта, я думаю, что у меня есть некоторые странные вещи.

Когда я использую execute

он показывает, что открыт порт 23 /TCP.

Но когда я выполняю

показывает, что порт 23 /tcp закрыт.

Какое из них верно? Я хочу закрыть этот порт на всей моей системе, как я могу это сделать?

4 ответа

Nmap — отличный сканер портов, но иногда вам нужно что-то более авторитетное. Вы можете спросить ядро, какие процессы открывают порты, используя утилиту netstat :

Параметры, которые я дал:

  • -t Только TCP
  • -l Только для прослушивающих портов
  • -n Не искать имена сервисов и хостов, просто отображать числа
  • -p Показать информацию о процессе (требуется привилегия root)
Читайте также:  Резервное копирование всех данных mac os

В этом случае мы видим, что sshd прослушивает любой интерфейс ( 0.0.0.0 ) порт 22, а cupsd прослушивает loopback ( 127.0.0.1 ). Вы можете показать, что telnetd имеет локальный адрес из 192.168.1.1:23 , то есть он не будет отвечать на соединения на петлевом адаптере (например, вы не можете telnet 127.0.0.1 )

Существуют и другие инструменты, которые будут отображать аналогичную информацию (например, lsof или /proc ), но netstat является наиболее широко доступным. Он работает даже в Windows ( netstat -anb ). BSD netstat немного отличается: вам нужно будет использовать sockstat (1) , чтобы получить информацию о процессе.

Как только у вас есть идентификатор процесса и имя программы, вы можете найти процесс и убить его, если хотите закрыть порт. Для более тонкого управления вы можете использовать брандмауэр (iptables для Linux) для ограничения доступа только к определенным адресам. Возможно, вам придется отключить запуск службы. Если PID является «-» в Linux, это, вероятно, процесс ядра (это часто встречается с NFS, например), так что удачи, узнав, что это такое.

Примечание. Я сказал «авторитетный», потому что вам не мешают сетевые условия и брандмауэры. Если вы доверяете своему компьютеру, это здорово. Однако, если вы подозреваете, что вас взломали, вы не сможете доверять инструментам на своем компьютере. Замена стандартных утилит (а иногда и системных вызовов) теми, которые скрывают определенные процессы или порты (руткиты a.k.a.), является стандартной практикой среди злоумышленников. Лучше всего на этом этапе сделать криминалистическую копию вашего диска и восстановить из резервной копии; затем используйте копию, чтобы определить, как они вошли и закрыть ее.

Linux-система имеет так называемый loopback-интерфейс, который предназначен для внутренней связи. Его имя хоста localhost , а его IP-адрес: 127.0.0.1 .

При запуске nmap на localhost , вы фактически запускаете portscan на интерфейсе loopback виртуальный . 192.168.1.1 — это IP-адрес вашего физического (скорее всего eth0 ).

Итак, вы запускаете nmap на двух разных сетевых интерфейсах, поэтому в открытых портах есть разница. Они оба верны.

Если у вас открыт TCP-порт 23, вполне вероятно, что вы используете сервер telnet (что не очень хорошо к его отсутствию шифрования), или у вас на вашем компьютере есть какой-то троянский конь.

Чтобы «закрыть» порт, вы можете использовать iptables

Если работает служба и прослушивает порт 23, возможно, более чистым будет остановить процесс, который прослушивает порт 23 ( вероятно, telnet ), чем для его запуска, а закрыть или заблокировать порт 23, используя iptables

Когда процесс прослушивания не выполняется на порту, даже при отсутствии блока межсетевого экрана любая попытка подключения к нему должна приводить к немедленному «отказу подключения» ( ECONNREFUSED до connect(2) )

Один из способов найти процесс (и его pid), который прослушивает порт 23, если есть такой процесс, это:

В приведенном выше -i перечислены открытые интернет-порты (как UDP, так и TCP), а -P запрещает перевод портов в имена сервисов ( через /etc/services )

После того, как вы обнаружили, что запущенный процесс прослушивает порт 23, вы можете выяснить, как это началось, посмотрев на дерево процессов (например, pstree ). Если его родительский код init (очень вероятно), вы можете рекурсивно искать имя процесса в /etc . например:.

Это должно привести вас к лучшему способу отключить его от работы в 1-м месте.

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

  • Темы без ответов
  • Активные темы
  • Поиск
  • Статус форума

Как работать с портами в Linux (Открывать или закрывать нужные мне порты)

Модератор: SLEDopit

Как работать с портами в Linux

Сообщение SUSEUser » 05.03.2009 08:20

Добрый день! Прошу не винить за эту тему, я новичёк в Линуксе. Пользуюсь OpenSUSE 10.3

Пытался разобраться сам 3 недели подряд но никак не получается. И руководства читал и статьи, и на форумы писал
всё узнанное никак не повлияло на результат, никакие советы не помогли.

Собственно я хотел лишь только узнать какими командами можно открыть нужный мне порт (например 443 или 110)
на выбранном сетевом интерфейсе, или наоборот как закрыть требуемый порт на требуемом интерфейсе.

И потом какой командой можно увидеть порты которые я открыл?

Помогите пожалуйста у кого уже есть такой опыт.

Читайте также:  Почтовый клиент яндекс для линукс

Re: Как работать с портами в Linux

Сообщение blackst0ne » 05.03.2009 08:54

Re: Как работать с портами в Linux

Сообщение SUSEUser » 05.03.2009 10:13

Я читал руководство по iptables там про порты всего пару предложений сказано.

А netstat это команда сканирования портов, но я незнаю всё ли она показывает
потому что когда я запускал её для разных интерфейсов она одно и тоже выдавала.

Если можно просто дайте команду открытия портов.

Re: Как работать с портами в Linux

Сообщение blackst0ne » 05.03.2009 10:15

Например, открыть 80-й порт

Re: Как работать с портами в Linux

Сообщение kolebas » 05.03.2009 12:31

Например, открыть 80-й порт

Re: Как работать с портами в Linux

Сообщение Shura » 05.03.2009 12:47

Re: Как работать с портами в Linux

Сообщение Olegator » 05.03.2009 13:10

Re: Как работать с портами в Linux

Сообщение SUSEUser » 05.03.2009 13:32

Спасибо blackst0ne и kolebas но у меня почемуто так не выходит:

я ввёл команду как вы показали только вместо 80 поставил 443 порт

iptables -A INPUT -s 0/0 —dport 443 -j ACCEPT

сусе заругалось на —dport (Unknown arg `—dport’)

я убрал одну черту:
iptables -A INPUT -s 0/0 -dport 443 -j ACCEPT

сусе почемуто заругалось на порт (Bad argument `443′)

пробовал другой порт 110 тоже самое (Bad argument `110′)
и так с любым портом. 🙁

Затем я гдето нашёл такой пример:
iptables -A INPUT -i eth1 -p tcp —dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp —dport 443 -j ACCEPT

ошибок не вышло, вроде бы это то же самое только вместо всех подсетей указываю
по очереди оба сетевых интерфейса и протокол tcp
но почему не выдало ошибок ведь тут тоже —dport а не -dport

пробовал сохранить /etc/init.d/iptables: No such file or directory
искал поиском нигде нет файла iptables, только папки с библиотеками

Просканировал порты:
nmap -p1-65535 localhost
netstat -tln

ничего нового не открылось

перезагрузил сеть /etc/init.d/network restart
затем опять просканировал, ничего нового не открылось

Может посоветуете в каком направлении думать дальше?

И Вам Olegator и Shura тоже спасибо
Olegator — Через яст я пробовал, изменения в нём почемуто никак не влияют
на сетевые настройки файервола, как будто он совсем не работает.
Я открывал им абсолютно всё, но при сканировании портов открытыми оставались все те же что и в начале.

Shura я сейчас попробую netcat этого я ещё не пробовал

Re: Как работать с портами в Linux

Сообщение blackst0ne » 05.03.2009 13:36

Re: Как работать с портами в Linux

Сообщение SUSEUser » 05.03.2009 13:40

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

Re: Как работать с портами в Linux

Сообщение Olegator » 05.03.2009 14:15

Re: Как работать с портами в Linux

Сообщение kolebas » 05.03.2009 15:19

Re: Как работать с портами в Linux

Сообщение tull » 05.03.2009 15:46

Re: Как работать с портами в Linux

Сообщение sarutobi » 05.03.2009 16:23

Re: Как работать с портами в Linux

Сообщение Shura » 05.03.2009 17:00

Re: Как работать с портами в Linux

Сообщение SUSEUser » 05.03.2009 17:05

Извиняюсь не успел вовремя ответить blackst0ne насчёт задачи
как и обещал привожу задачу:

У меня на фирме 2 прокси, первый родительский он смотрит в мир
на нём две сетевые карты, доступа к нему нет никакого кроме адреса и порта прокси.

Раньше пользователи сети работали через этот прокси.

Но вот пришло распоряжение поставить дополнительно второй прокси уже под моим управлением для учёта трафика
он берёт интернет у родительского и раздаёт уже в сеть, на нём тоже 2 сетевые карты.

Так вот когда пользователи работали через родительский прокси у них был полноценный интернет

Но теперь при работе через дочерний прокси интернет остался но престали работать
программы: icq, Magent, Outlook и им подобные.

Собственно нужно заставить работать эти программы, так как в настройке самого прокси (squid)
всё вроде бы правильно, (ведь порты там открыты уже по умолчанию).
То просканировав порты я не увидел там 443 (для icq Magent) и 110 для Outlook

Читайте также:  Как использовать iso образ windows

И поэтому я решил идти от низов то есть сначала открыть порты, а потом ещё раз проверить
настройки squid. Но если в squid я примерно разбираюсь то вот в портах и файерволе довольно слабо.
А сервер уже стоит в сети и меня всё время начальство напрягает 🙂 из за отсутствия аськи и почты.

А на счёт того что за программа должна слушать 443 порт я думаю это какой-нибудь https сервер должен
быть, завтра на работе ещё раз попробую его найти.

А почту должна слушать служба POP3, у меня так просто в Yast написано в настройках файервола. Эту службу
можно открывать и закрывать так же как и https, они сейчас В Yast открыты, но при сканировании портов я не вижу 443 и 110

Может быть эти службы не запускаются просто.

Хотел вот ещё уточнить у Olegator что значит:
«susefirewall перетирает настройки iptables» он перезаписывает настройки iptables? Я правильно понял?
Вывод cat /etc/sysconfig/SuSEfirewall2 и # SuSEfirewall2 status обязательно вышлю
утром на работе, просто я к сожалению сейчас пишу из дома.

kolebas
Я вроде бы искал файл с именем iptables но нашлись только 3 папки с какимито библиотечными
файлами, на работе поищу ещё раз. Наверняка гдето я проглядел.

Источник

Как найти и закрыть открытый порт в linux

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

На машинах с Linux эта задача на самом деле довольно проста. Я хочу показать вам, как найти открытый порт и закрыть его. Я буду демонстрировать на Ubuntu Server 18.04, хотя процесс будет схожим во многих дистрибутивах, единственное отличие будет в том, как закрыть порт.

Как найти открытый порт

К счастью, вам не нужно устанавливать какое-либо программное обеспечение, чтобы сделать эту работу. Почему? Потому что мы будем использовать команду ss (так как netstat устарел) для просмотра портов прослушивания на вашем сервере. Это будет сделано полностью из командной строки, поэтому либо войдите на свой сервер, либо используйте безопасную оболочку для доступа. Когда вы получите приглашение bash, введите команду:

Возможны следующие варианты:

-t Показать только сокеты TCP в Linux
-u Показать только сокеты UDP в Linux
-l Показать прослушивающие сокеты (например, TCP-порт 22 открыт SSHD-сервером)
-p Список имен процессов, которые открывали сокеты
-n Не разрешать имена сервисов

Вывод команды будет перечислять только прослушиваемые порты.

Наши открытые порты

Как видите, на этой машине имеется только несколько открытых портов (53, 22, 631, 445, 3306, 11211, 80, 8080).

Если вы не уверены, какой порт соответствует какой службе, вы всегда можете узнать это в файле /etc/services. Прочитайте этот файл с помощью команды:

Вы должны увидеть список всех портов, доступных для Linux.

Какой порт linux соответствует какой службе

Как закрыть порт

Скажем, вы размещаете веб-сервер на компьютере, но не хотите прослушивать порт 8080. Вместо этого вы хотите, чтобы трафик проходил только через порты 80 (HTTP) и 443 (HTTPS). Чтобы закрыть порт 8080, мы будем использовать команду ufw (Uncomplicated FireWall) следующим образом:

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

И это все, что нужно для поиска и закрытия открытого порта на Ubuntu. Этот процесс должен работать в большинстве дистрибутивов, единственное предостережение — как вы блокируете порт, так как не каждый дистрибутив использует ufw. Если выбранный вами дистрибутив использует другую команду для блокировки портов (например, sudo iptables -A INPUT -p tcp —destination-port 80 -j DROP), убедитесь, что вы знаете, как выполнить эту задачу на своем сервере.

Источник

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