Логи могут очень помочь вам при устранении неполадок.
Давайте посмотрим, как можно просмотреть логи SSH на вашем сервере Linux.
Кто получает доступ к вашей системе Linux через SSH?
Кто пытается, но не может получить доступ к вашей системе через SSH?
Если кто-то не может получить доступ к системе через SSH, почему это так?
Вы можете получить такие ответы, просмотрев журналы SSH.
🖧 Как показать предупреждение безопасности неавторизованным пользователям SSH
Как просматривать логи SSH?
Все это зависит от того, использует ли ваша система systemd или нет.
Поскольку большинство дистрибутивов Linux в наши дни используют systemd, вы можете проверить журналы SSH с помощью:
Давайте рассмотрим это подробнее с большим количеством примеров.
Просмотр журналов SSH за указанный период времени
Для доступа к журналам SSH вам необходимо быть пользователем root или запустить команды journalctl с помощью sudo.
Для публичного сервера будут сотни строк за последние несколько дней.
Например, если вам нужны последние журналы SSH, допустим, за последние 5 минут, используйте:
Чтобы посмотреть активности SSH дольше одного часа:
Вы также можете просмотреть логи journalctl до определенного времени:
Journalctl является частью systemd и использует нотации systemd.
Здесь -u обозначает единицу systemd. Когда вы используете journalctl -u ssh, вы указываете ему показывать журналы журнала для единицы ssh systemd.
Просмотр логов SSH в реальном времени
Вы также можете смотреть журналы SSH в реальном времени
Параметр -f команды journalctl означает «follow», аналогично тому, что вы видите в команде tail и других командах.
Нажмите Ctrl+C, чтобы остановить просмотр журналов.
Если SSH-соединения блокируются брандмауэром, то вы не увидите их в журналах SSH.
В таком случае вам следует проверить журналы брандмауэра.
Просмотр журналов SSH не в systemd
Если ваш сервер не использует systemd, не беспокойтесь.
Вы можете найти логи SSH в классическом syslog-стиле.
Подобную информацию вы также увидите здесь:
Nov 26 08:54:40 ios21u3 sshd[1355971]: Accepted password for root from 10.2.67.11 port 59230 ssh2 Nov 26 08:54:40 ios21u3 sshd[1355971]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0) Nov 26 12:06:40 ios21u3 sshd[1355971]: pam_unix(sshd:session): session closed for user root Nov 26 16:14:46 ios21u3 sshd[1565593]: Accepted password for root from 10.2.67.11 port 63154 ssh2 Nov 26 16:14:46 ios21u3 sshd[1565593]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0) Nov 26 16:57:32 ios21u3 sudo: root : TTY=pts/4 ; PWD=/root ; USER=root ; COMMAND=/usr/bin/grep sshd /var/log/auth.log
Если вам просто интересно узнать, кто вошел на сервер, используйте такие команды, как last, lastlog, w и т. д.
Почему так много попыток подключения по SSH и что с этим можно сделать?
Вы заметили, что попыток подключения было так много?
Вот что происходит, когда у вас есть сервер в публичной сети с включенным SSH.
Есть боты, которые постоянно пытаются получить доступ через SSH.
Но они не знают имя пользователя или пароль вашей системы, так почему они пытаются это сделать?
Потому что они пытаются использовать какое-то общее имя пользователя или имя приложения или службы с общими или стандартными паролями.
Попробуйте Fail2Ban для начала.