Недавно я разрешил ssh доступ к моей машине для работы над групповым проектом с моими одноклассниками. Я прочитал руководство по настройке ssh на ubuntu и попытался следовать хорошим правилам безопасности. Я отключил аутентификацию с паролем, поэтому единственный способ войти в него - это ключи RSA, и у меня было только 2 ключа, перечисленных в файле authorized_keys: мой собственный (используемый во время тестирования, чтобы проверить, работает ли ssh) и друзей.
В этот вечер мне было любопытно узнать, был ли мой друг в моей системе ssh'd, пока я его использовал, поэтому я искал googled для команды, которая сообщила бы мне, если кто-то был ssh'd, и если так кто. В результате я получил:
sudo netstat -tnpa | grep ESTABLISHED.*sshd
Я попробовал, и выход был:
tcp 0 0 192.168.1.86:22 59.47.0.150:44728 ESTABLISHED 7416/sshd: [accepte
Это выглядело не так. Я связался с моим другом, и он заверил меня, что он не вошел в систему. Я снова попробовал команду и увидел:
tcp 0 0 192.168.1.86:22 59.47.0.150:44728 ESTABLISHED 7416/sshd: root [pr
В этот момент меня немного испугало слово «корень» и послал друг другу, который знал больше об этом, чем я. Он сказал мне попробовать:
ps aux | grep ssh
, который выводил:
root 3702 0.0 0.0 61364 2872 ? Ss Apr12 0:00 /usr/sbin/sshd -D
root 7473 0.0 0.0 112692 3920 ? Ss 20:46 0:00 sshd: root [priv]
sshd 7474 0.0 0.0 62784 1516 ? S 20:46 0:00 sshd: root [net]
sid 7476 0.0 0.0 22476 936 pts/1 S+ 20:46 0:00 grep --color=auto ssh
Теперь я был полностью взволнован, поэтому, хотя я хотел немного подождать и посмотреть, могу ли я узнайте о том, кто вошел в систему, я решил просто sudo stop ssh.
После еще нескольких поисковых запросов я узнал, что 59.47.0.150 является IP-адресом в Шаньинге, Китай, и, похоже, известная из-за вредоносных атак.
Итак, мои вопросы к вам, ребята:
Можем ли мы с уверенностью сказать, что IP-адрес из Китая почему-то SSH'd в мою машину? Хотя он только принял авторизацию ключа RSA? Можем ли мы с уверенностью сказать, что он тоже получил доступ к корню? В моем ssh-config у меня был по умолчанию PermitRootLogin without-password. Первоначально я думал, что это означает, что корневой вход не разрешен (я знаю, что эти два звука противоречивы, но я искал его, и это был результат, который я получил). Если да, то как? Есть ли способ увидеть, какой ущерб был нанесен до сих пор? Как я могу защититься от этого в будущем? Мне все еще нужно запустить ssh, чтобы завершить мой групповой проект.Спасибо за любую помощь, которую вы можете предложить!
EDIT: В соответствии с предложением saiarcot895 и Steven я проверил auth.log, в котором повторялись следующие строки:
Apr 13 20:43:50 PrometheusU sshd[7392]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=59.47.0.150 user=root
Apr 13 20:43:55 PrometheusU sshd[7394]: reverse mapping checking getaddrinfo for 150.0.47.59.broad.bx.ln.dynamic.163data.com.cn [59.47.0.150] failed - POSSIBLE BREAK-IN ATTEMPT!
Apr 13 20:43:55 PrometheusU sshd[7394]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=59.47.0.150 user=root
Apr 13 20:43:58 PrometheusU sshd[7394]: Failed password for root from 59.47.0.150 port 54813 ssh2
Apr 13 20:44:03 PrometheusU sshd[7394]: message repeated 2 times: [ Failed password for root from 59.47.0.150 port 54813 ssh2]
Apr 13 20:44:04 PrometheusU sshd[7394]: Received disconnect from 59.47.0.150: 11: [preauth]
Означает ли это, что злоумышленник попал в мою систему и не смог войти в систему root, или что он пытается напрямую получить доступ к корню, потерпел неудачу и вообще ничего не получил?
Происходит много нападений грубой силы ssh. Возможно, у вас есть устаревший пакет ssh, и они попали именно так.
Проверяйте ошибки ssh в журналах, возможно, он просто делает грубую силу против вас.
перейдите в / tmp и опубликуйте его вывод из ls -al, если есть набор корней, который он может там увидеть.
Вы можете установить, что пользователи могут использовать ssh и fail2ban.
Set / tmp и / home как неисполняемый в fstab, если возможно, помогут много. [!d4 ]
Если это только атака грубой силы, заполняющая журналы, просто измените порт.
Большинство скриптов глупы, и есть достаточно серверов, которые слушают порт 22. Я всегда устанавливаю мой, например. 30200 или 225. Это можно сделать с легкостью в
/etc/ssh/sshd.conf
Просто измените номер порта и перезапустите демон.
После этого система может быть доступна с дополнительной опцией ssh
ssh -p224 user@example.com
Маг всегда заполнялся, я менял порт, и шум пропал.