Как я могу проверять пользователей и попытки доступа к SSH на моем сервере?

У меня было несколько проблем с безопасностью на моем сервере, несколько пользователей SSH настраивали пожары или проблемы.

Я хотел бы:

  • Отслеживать пользовательские входы и выходы из системы
  • Отслеживать активность этих SSH, чтобы обнаруживать любую вредоносную активность
  • Запретить пользователям удаление журналов

Я не очень системный администратор, и я совершенно неопытен в этом вопросе, поэтому любые советы будут очень полезны и очень полезны. :)

28
задан 15 October 2010 в 19:58

5 ответов

Поскольку мы говорим о SSH-серверах, я дам вам решения для командной строки.

  • Отслеживание входов и выходов пользователей. Это просто, файл /var/log/auth.log должен содержать эту информацию.

  • Отслеживание активности этих пользователей: если они довольно невинны, вы можете проверить файл .bash_history в их домашнем каталоге. Вы увидите список команд, которые они выполнили. Проблема, конечно, в том, что они могут удалить или отредактировать этот файл.

  • Запретить пользователям удалять журналы: пользователи не должны касаться auth.log. Чтобы помешать им играть с .bash_history, вам нужно сделать пару трюков .

  • Что если пользователю удастся получить root-доступ? : Ты пьян. Если они не совершат ошибку, они смогут скрыть все свои шаги.

0
ответ дан 15 October 2010 в 19:58

[ПРАВОВАЯ ОГОВОРКА] я понимаю, что опаздываю стороне, но я хотел бы вставить ответ, который я дал другому вопросу, потому что я чувствую себя подобно ему, может предложить некоторое хорошее понимание читателям, и этот вопрос, кажется, дежурное место для основной ssh информации.

Была подобная проблема, которая ударила меня после чтения этого вопроса здесь на AskUbuntu и проверке моего VPS, только для наблюдения огромного количества попыток грубой силы. Это - когда я решил принять меры.

Теперь согласно вопросу я связался с, если требуется видеть, отказавшие попытки входа в систему на машине по ssh (могли бы быть попытки грубой силы или что-либо), попытайтесь ввести это:

grep sshd.\*Failed /var/log/auth.log | less

Если вывод состоит из нескольких строк, который является многими попытками грубой силы, особенно если они произошли между короткими интервалами, Вы могли бы хотеть сделать следующие части действия:

Измените ssh конфигурационный файл

Чтобы сделать это, откройте файл, расположенный в/etc/ssh/sshd_config с Вашим любимым редактором, как это vim /etc/ssh/sshd_config.

1. Попытайтесь переместить ssh от порта 22: Теперь найдите строку, которая читает:

# What ports, IPs and protocols we listen for
Port 22

и прокомментируйте Порт 22 и используйте любого, кого Вы могли бы любить. Пример:

# What ports, IPs and protocols we listen for
# Port 22
Port 28934

Помните что порты ниже 1 024 потребностей специальное (корневое) разрешение. Я не знаю, как это могло вмешаться в него, но я просто говорю.

2. Отключите Корневые логины через ssh: Так как корневое имя пользователя предсказуемо и обеспечивает полный доступ к Вашей системе, обеспечивание беспрепятственного доступа в эту учетную запись по SSH неблагоразумно. Найдите чтение строки PermitRootLogin и установите его на нет.

PermitRootLogin no

3. Отключите аутентификацию по паролю: Генерируйте и используйте ключи SSH для вхождения в систему. Без включенных паролей взломщики должны будут предположить (или кража) Ваш закрытый ключ SSH для получения доступа к серверу. Что-то, что очень очень трудно. Продолжите находить строку, которая читает PasswordAuthentication и устанавливает его на нет

PasswordAuthentication no

! ПРЕДУПРЕЖДЕНИЕ! Прежде, чем сделать так, консультируйтесь с этим руководством здесь по тому, как настроить аутентификацию сертификата.

Примечание: После создания использования изменений sudo /etc/init.d/ssh restart. Соединяться с другим портом через использование ssh: ssh username@hostname.com -p <port_number>.

Установите брандмауэр

Проверьте это руководство по тому, как настроить чрезвычайно мощный и эффективный брандмауэр, который интегрируется в Linux, IPTables.

Сценарии установки для помощи Вам с безопасностью

Тот, который я использую лично и быстро прихожу на ум, является Fail2Ban. Fail2ban будет контролировать Ваши файлы журнала для неудавшихся попыток входа в систему. После того, как IP-адрес превысил максимальное количество попыток аутентификации, это будет заблокировано на сетевом уровне, и событие будет зарегистрировано /var/log/fail2ban.log. Устанавливать его: sudo apt-get install fail2ban

Проверьте историю команд через ssh

Существует команда Linux, названная history, который позволяет Вам видеть, какие команды были введены вплоть до той точки. Попытайтесь ввести history в терминале для получения для наблюдения всех команд до той точки. Могло помочь, были ли Вы корнем.

Искать конкретную попытку команды: history | grep command-name

Перечислять все команды после ssh: fc -l ssh

Можно также отредактировать команды с помощью vi (не попробовали его энергия, хотя я предполагаю, что это работает также): fc -e vi

Можно также удалить историю: history -c

Примечание: Если Вы не поклонник команды history существует также файл в Вашем корневом каталоге (cd ~), названный .bash_history (если Вы используете удар), что Вы можете cat видеть все, что было введено в оболочке удара.

6
ответ дан 15 October 2010 в 19:58

Немного излишне, но вы можете видеть все, что запущено в вашей системе, используя «соединитель событий процесса»:

http://www.outflux.net/blog/archives/2010 / 07/01 / отчетности-все-Execs /

0
ответ дан 15 October 2010 в 19:58
  1. Хавьер уже ответил на это: /var/log/auth.log
  2. Я нашел отличную статью об этом здесь .
  3. Если ваши пользователи не имеют доступа к root, ваши файлы журналов должны быть в безопасности. Вы можете попытаться встроить некоторые пользовательские правила в файл sudoers, чтобы ограничить доступ и способы доступа ваших пользователей. Также вы можете увеличить уровень регистрации для демона sshd.
0
ответ дан 15 October 2010 в 19:58

Кроме самого входа в систему нет безопасного способа отслеживать / регистрировать действия пользователей после их входа в систему, при условии, что у них есть базовые знания Linux, что они смогут отключить ведение журнала оболочки или просто запускать команды из других оболочек (например, python).

Вместо этого вы должны быть осторожны в предоставлении доступа по SSH, действительно ли он им нужен? Предоставление доступа по ssh не очень распространено, если вы не работаете в командной оболочке.

0
ответ дан 15 October 2010 в 19:58

Другие вопросы по тегам:

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