2

Когда я набираю "sudo netstat -an", это часть вывода, который я получаю:

Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 192.99.202.17:39922        23.82.16.66:29842           TIME_WAIT  

Я смущен относительно того, что говорит первая строка.

Говорится ли сервер с 23.82.16.66, подключается к этому серверу через порт 29842 или порт 39922?

Как я узнаю, что это входящее соединение с этого IP-адреса, а не исходящее соединение с моего сервера на этот IP-адрес?

Я использую CENTOS 6.7, если это имеет значение.

3 ответа3

3

Как я узнаю, что это входящее соединение с этого IP-адреса, а не исходящее соединение с моего сервера на этот IP-адрес?

Локальный адрес - это адрес компьютера, на котором вы выполняете команды NETSTAT, поэтому понимание состояния TCP-соединений поможет вам понять, является ли оно входящим или исходящим с точки зрения локального адреса.

Упрощенный конечный автомат TCP

Состояние: ВРЕМЯ ОЖИДАНИЯ

Описание состояния: Теперь устройство получило FIN от другого устройства и подтвердило его, отправило свой собственный FIN и получило ACK для него. Мы закончили, за исключением ожидания, чтобы убедиться, что ACK получен и предотвратить потенциальное перекрытие с новыми соединениями. (См. Тему, описывающую завершение соединения для получения дополнительной информации об этом состоянии.)

Событие и переход: истечение времени таймера: после назначенного периода ожидания устройство переходит в состояние ЗАКРЫТО.

источник


ВРЕМЯ ЖДЕТ

(либо сервер, либо клиент) означает ожидание в течение достаточного времени, чтобы убедиться, что удаленный TCP получил подтверждение своего запроса на завершение соединения. [Согласно RFC 793, соединение может оставаться в режиме ВРЕМЯ ОЖИДАНИЯ в течение максимум четырех минут, известных как два MSL (максимальное время жизни сегмента).]

источник


Еще одно хорошее объяснение

Из-за того, как работает TCP/IP, соединения не могут быть закрыты немедленно. Пакеты могут поступить не по порядку или быть повторно переданными после закрытия соединения. CLOSE_WAIT указывает, что удаленная конечная точка (другая сторона соединения) закрыла соединение. TIME_WAIT указывает, что локальная конечная точка (эта сторона) закрыла соединение. Соединение поддерживается так, что любые задержанные пакеты могут быть сопоставлены с соединением и обработаны соответствующим образом. Соединения будут удалены по истечении четырех минут.

источник


rfc793: источник изображения

источник изображения


Дополнительные ресурсы

1

Вы можете сказать, если вы проверяете, прослушивает ли ваш сервер порт 39922, то соединение было установлено с удаленной стороны.

Например: ваш сервер принимает соединения ssh через стандартный порт 22. С помощью netstat -anutp | grep :22 вы увидите, если он слушает, подключен или у вас есть подключение. Если вы откроете два сеанса терминала на своем сервере, а затем с одного соединения с ssh на третий сервер, вывод вышеуказанной команды покажет, что ваш сервер прослушивает порт 22, что он имеет порт 22 на локальной стороне для подключения к сервер и порт 22 перечислены на удаленной стороне с IP-адресом третьего сервера и случайным портом на локальной стороне в этой линии.

Я не думаю, что вы можете узнать из вывода команды netstat, было ли соединение инициировано локально или удаленно.

0

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

Исходя из вывода netstat невозможно определить, было ли соединение установлено на вашей или удаленной машине. Тот простой факт, что вы задаете этот вопрос, вызывает у меня беспокойство, и еще больше меня беспокоит еще один странный факт в этом выводе: использование high портов (что означает> 10000) для обеих сторон соединения.

Позволь мне объяснить. ПК предоставляют услуги другим ПК в модели client/sever сервер: например, веб-сервер прослушивает запросы веб-страниц на указанном порту (фактически два: 80 и 443) от удаленного клиента. Аналогично для ssh,ftp,dns и так далее. Все основные службы прослушивают общеизвестные порты (см., Например, Википедию ), некоторые из которых настолько важны, чтобы их можно было вырезать из камня: их назначение регулируется не менее чем IANA. Многие другие порты, хотя их использование не регулируется IANA, стали традиционными для определенных приложений. Общим для всех listening портов является то, что они ниже 10000. Высокие порты (выше 10000) традиционно резервируются для outgoing соединений, а не для прослушивания.

Итак, как же вы видите соединение между портами 39922 и 29842? Потому что кто-то настроил службу на очень нестандартном порту, либо на вашей машине, либо на удаленной машине. Является ли ваша машина listening server? Команда

sudo ss -lntp

сообщит вам следующее: в нем перечислены все порты, на которых ваша машина прослушивает входящие (TCP, опция -t ) соединения, и связанные процессы. Таким образом, вы можете посмотреть, какой процесс прослушивает порт 39922, если таковой имеется.

Теперь давайте предположим, что это действительно так, i.e. есть служба, которую вы не настроили, прослушивает порт 39922. Кто так делает? Хакеры, которые используют инструмент netcat или nc швейцарский армейский нож из TCP соединений) , что позволяет им легко подключаться через высокие порты между их ПК и p0wned шт. Вот почему я волнуюсь.

Я также не уверен, узнав, что 23.82.16.66 принадлежит Nobis Technology, компании, которая владеет несколькими центрами обработки данных, предоставляющими решения для облачных серверов. И, обледенев на торте, когда я пробежал по Google информацию выше, я наткнулся на это сообщение сисадмина, рассказывающего о том, как Nobis Technology является известным спамером, и обнаружил, что адрес выше, 23.82.16.66, находится прямо внутри один из диапазонов, который бедный парень пытается заблокировать; и, о чудо , ваш локальный IP-адрес, 192.99.202.17, сообщается whatismyipaddress.com как ваш почтовый сервер.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .