Вход попытки доступа SSH

Поскольку никто не ответил, я понял это. Вот то, как сделать это. Скажем, мы должны насчитать его в течение "2 минут (120 секунд)". Сначала запишите это в файл, названный stat.txt. Обновите каждый второй fro 120 раз.

   dstat -n 1 120 >> stat.txt

Добавьте столбцы stat.txt

   awk -F" " '{t1=t1+$1;t2=t2+$2}END{t1=t1/120;t2=t2/120;print t1"\t"t2}' stat.txt

Удалите stat.txt

   rm stat.txt

Мы можем сделать сценарий также из этих команд.

62
12.07.2014, 03:35
7 ответов

На серверах Ubuntu вы можете найти информацию о том, кто входил в систему когда (и откуда), в файле /var/log/auth.log. Там вы найдете записи типа:

May  1 16:17:02 owl CRON[9019]: pam_unix(cron:session): session closed for user root
May  1 16:17:43 owl sshd[9024]: Accepted publickey for root from 192.168.0.101 port 37384 ssh2
May  1 16:17:43 owl sshd[9024]: pam_unix(sshd:session): session opened for user root by (uid=0)
58
27.01.2020, 19:32

На дистрибутивах, работающих на базе Red Hat, таких как Fedora/CentOS/RHEL, вы можете проверить пользователей, вошедших в файл /var/log/secure.

Если вам нужна дополнительная информация, прочтите этот вопрос-ответ SuperUser под заголовком: Как я могу регистрировать попытки доступа к SSH и отслеживать, что пользователи SSH в конечном итоге делают на моем сервере?.

.
29
27.01.2020, 19:32

В Ubuntu вы можете войти в систему через SSH и использовать хвостовую команду Linux для отображения последних x строк вашего /var/log/auth.log файл. Когда вы вошли в систему через SSH, используйте следующую команду для просмотра 100 последних строк вашего журнала SSH:

tail /var/log/auth.log -n 100

или даже более чистый

tail -100 /var/log/auth.log | grep 'sshd'
8
27.01.2020, 19:32

Обратите внимание, что по умолчанию в Ubuntu НЕ регистрируются входы ssh в файл / var / log / auth . Это уровень ведения журнала INFO .

Если вы хотите, чтобы он включал попытки входа в систему в файл журнала, вам необходимо отредактировать файл / etc / ssh / sshd_config (как root или с помощью sudo) и изменить LogLevel с INFO на VERBOSE .

После этого перезапустите демон sshd с помощью

sudo service rsyslog restart

. После этого попытки входа в систему ssh будут регистрироваться в файле /var/log/auth.log .

7
27.01.2020, 19:32

Я знаю, что это устарело, но я написал кое-что для отслеживания успешных и неудачных подключений / попыток ssh. А также запрещенные IP-адреса, если вы используете sshguard. Программа написана на Python. Он отправит вам электронное письмо, когда кто-то успешно подключится через ssh, когда кто-то получит неправильный пароль ssh или когда кто-то будет заблокирован из-за множества неудачных попыток. Надеюсь, это поможет кому-то в будущем, кто будет искать эту проблему и найдет мой код!

https://github.com/amboxer21/SSHMonitor

Для сценария python я написал сценарий bash для отслеживания процесса. Он проверяет, работает ли он каждую минуту с помощью задачи root cron. Если он не запущен, запускает другой процесс. Это вызывается корневой задачей cron каждую минуту.

2
27.01.2020, 19:32

Я рекомендую использовать auditd . Это ведение журнала с использованием подсистемы аудита ядра Linux , и, на мой взгляд, это правильный способ сделать это, если вы серьезно настроены. И, учитывая характер вопроса {связанный с безопасностью}, вам также следует использовать PAM . На уровне по умолчанию, когда установлены только auditd и PAM , вы должны автоматически регистрировать все успешные и неудачные попытки SSH в файле audit.log. Таким образом, вам действительно не нужно ничего настраивать, просто установите auditd и PAM . Я знаю это по SLES не понаслышке. И готов поспорить, что RHEL и любая другая корпоративная версия Linux будут работать аналогичным образом.

http://manpages.ubuntu.com/manpages/precise/man8/auditd.8.html

в необработанном журнале аудита, созданном auditd , вы можете использовать либо что-то вроде ] aureport , чтобы отфильтровать его, что описано на страницах руководства auditd , напишите свой собственный текстовый синтаксический анализатор или просто используйте VI и выполните поиск по ключевым словам.

это исключение из моего файла /var/log/audit/audit.log , в котором я загружаюсь по ssh на мой Linux-сервер.

node=shark type=CRED_DISP msg=audit(1480622612.317:2211277): user pid=117768 uid=0 auid=23456 ses=2201 msg='op=PAM:setcred acct="ron" exe="/usr/sbin/sshd" (hostname=abc415.mycompany.us, addr=172.16.152.5, terminal=ssh res=success)'
  • из вышеизложенного, мое имя сервера - shark .
  • многие подобные строки находятся в audit.log, я хочу, чтобы эта была основана на exe = "/ usr / sbin / sshd"
  • , uid учетной записи, в которую используется ssh'd, является значением auid , который в данном примере равен 23456
  • . Имя учетной записи пользователя, связанного с auid, указывается с помощью acct = "ron"
  • . В большинстве случаев система аудита будет записывать DNS-имя хоста системы, пытающейся подключиться, но всегда имеет свой IP-адрес
  • , дату записи в эпоху, поэтому вам нужно будет преобразовать это через что-то вроде date --date @ 1480622612.317 , что приведет к Thu Dec 1 15:03:32 EST 2016 , и это когда я подключился к своему серверу по ssh.

Когда res = failed - это когда вы хотите исследовать эти IP-адреса и имена хостов, чтобы узнать, какие системы пытались подключиться, под каким именем пользователя. И, очевидно, успешный ssh ​​пытается понять, что происходит в вашей системе - например, ваш коллега Боб, который сидит за одним столом каждый день с hostname = bobscomputer и ip address = 192.168.5.5; если вы видите успешную попытку ssh вчера в 2 часа ночи под его именем пользователя с IP-адреса 10.10.5.6, например, тогда в ваших интересах поговорить с Бобом для расследования.Возможна попытка взлома кем-то другим? И вскоре после этого были ли попытки su выполнить root-доступ в журнале аудита из учетной записи Боба?

, когда вы видите повторяющиеся res = failed и auid = 0 и acct = root , то это кто-то пытается ввести ssh в ваш ящик в корневую учетную запись, и это когда вы изменяете /etc/hosts.deny с этим IP-адресом для SSHD.

4
27.01.2020, 19:32

Лучшее, что я когда-либо встречал для протоколирования SSH-команд, это rootsh этот инструмент позволяет администратору получать каждую команду из каждого сеанса с обширным уровнем ведения журнала.

Я написал скрипт для установки и настройки ROOTSH в Ubuntu и CentOS/RHEL

скачать с гитхаба вот ссылка

https://gist.githubusercontent.com/mansurali901/e1e3acc7dca13aeca25b68a69571c60f/raw/b1b16f73ec9a974486e4c0c0d65a7d41f2eca718/setup_rootssh.sh

chmod +x setup_rootssh.sh ; sudo./setup_rootssh.sh
-2
27.01.2020, 19:32

Теги

Похожие вопросы