Если это запускается от init, можно было повторно породить его init. Установите действие для процесса, чтобы 'повторно метать икру' для уровней выполнения, в которых Вы хотите процесс.
Вы не можете сделать этого входа от ~/.bashrc
или подобный, потому что это только выполняется для некоторых интерактивных сессий, не, если кто-то делает ssh yourserver mycommand
, sftp yourserver
, и т.д.
Все попытки входа в систему ssh, отказавшие или успешные, зарегистрированы через системный журнал с auth
средство. Сообщение журнала включает исходный IP-адрес, метод аутентификации и ли аутентификация, за которой следуют. Я думаю, что Ваш наилучший вариант состоит в том, чтобы использовать некоторое контрольное программное обеспечение журнала.
Я не знаю monit, но похоже, что его задание состоит в том, чтобы наблюдать sshd и перезапустить его, если это умирает, который является другим беспокойством.
Я не знаю monit, но можно сделать это легко брандмауэром. Зарегистрируйте все внешние соединения со специальным тегом и уезжайте, внутреннее не loggued. iptables является Вашим другом, если Вы находитесь на Linux.
Можно заблокировать все соединения SSH hosts.allow/hosts.deny, также. Вы будете видеть журналы в журналах ssh.
$SSH_CLIENT переменной среды является IP, удаленным портом и локальным портом сессии текущего пользователя SSH.
Тем не менее, почему Вы только не отбрасываете все ни от какой другой подсети, чем безопасная? Сохраняет Вас большая проблема.
Также: проведите некоторое время при надлежащей формулировке Вашего вопроса. ServerFault, как предполагается, является местом, где люди могут найти ответы, не только в их собственном, но также и в вопросах других людей. Ваш немного грязен, если Вы не возражаете против меня говорящий так.