Я подключаюсь к своему серверу по ssh. Я единственный человек, у которого есть доступ к серверу. После подключения по ssh я запускаю следующую команду:
sudo netstat -tupn
Вывод включает следующие две строки:
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address
tcp 0 0 MY.SERVER.IP.ADDRESS:22 MY.HOME.IP.ADDRESS:54886 ESTABLISHED 18677/0
tcp 0 324 MY.SERVER.IP.ADDRESS:22 MY.HOME.IP.ADDRESS:55096 ESTABLISHED 18843/1
Основываясь на моих ограниченных знаниях, похоже, что эти две строки вывода связаны с моим ssh-соединением. Я считаю, что это правда, потому что это порт 22, а внешний адрес - это мой домашний IP-адрес.
Я пытаюсь понять, что представляют собой эти 2 строки. Почему для моего единственного ssh-соединения показаны два соединения?
Кроме того, может ли netstat быть хорошим инструментом, чтобы узнать, получил ли кто-то несанкционированный доступ к моему серверу? Если бы кто-то это сделал, увижу ли я их соединение в выводе netstat?
Линии показывают 2 активных (ESTABLISHED
состояние) ssh-соединения с вашего домашнего компьютера (возможно, с scp
операция в процессе или ssh
сеанс с другого терминала или какой-то фоновой оболочки?).
Строки включают PID для процессов, которым они соответствуют в последнем столбце, 18677
и 18843
в твоем случае. Вы можете проверить, какие это процессы (ps -ef | grep <PID>
). Для обычных ssh-соединений они будут sshd
процессы.
Вы также можете узнать, каким PID на вашем домашнем компьютере они соответствуют, запустив sudo netstat -tupn
на своем домашнем компьютере вы увидите что-то в этом роде (обратите внимание на совпадающие значения IP_ADDRESS: PORT_NUM, но с перевернутыми столбцами локального и внешнего / удаленного адресов):
Proto Recv-Q Send-Q Local Address Foreign Address State PID/...
tcp 0 0 MY.HOME.IP.ADDRESS:54886 MY.SERVER.IP.ADDRESS:22 ESTABLISHED PID1/...
tcp 0 0 MY.HOME.IP.ADDRESS:55096 MY.SERVER.IP.ADDRESS:22 ESTABLISHED PID2/...
Затем из соответствующих pid-пакетов вы можете найти соответствующие процессы, их родителей и т. Д.
Да, netstat
это хороший инструмент для использования. Пока неавторизованный доступ не сможет каким-то образом обойти способ, которым netstat
работает (что ИМХО возможно, но маловероятно для обычных атак), вы должны иметь возможность видеть такие активные соединения и, возможно, даже следы тех, которые завершаются или совсем недавно завершились (состояния вроде TIME_WAIT
или CLOSE_WAIT
).