Вы можете сделать 3 вещи.
1) Каждый сервер может быть затвердевшим. Например, ssh - использовать ключи, отключить аутентификацию пароля. Ваш вопрос не был точно о том, как затвердеть каждый сервер, поэтому я не буду вдаваться в подробности, но проверьте это.
Включено в это будет mod evasive, apparmor и, возможно, mod_security. [!d2 ]
2) Лично я использую iptables.
Трюк с iptables заключается в настройке его на ваш сервер, мои правила могут не работать для вас, вам может потребоваться быть более либеральным или строгим, но вам нужно начать.
Для ssh я использую эти правила iptables для ограничения скорости.
sudo iptables -A INPUT -p tcp -m tcp --dport 22 -m tcp -m state --state NEW -m recent --set --name SSH --rsource
sudo iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --seconds 600 --hitcount 8 --rttl --name SSH --rsource -j DROP
sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
3) Для мониторинга сетевого трафика я настоятельно рекомендую фырканье, особенно на занятом сервере. Snort будет предупреждать вас о трафике, который вам нужно проанализировать.
Не хватает фырканья, вы можете смотреть на psad и fwsnort. У меня есть учебник для тех, кто на моем сайте.
Проблема заключалась бы в том, что (подчеркивание мое, из руководства bash):
После того, как строка декодируется, она расширяется путем расширения параметров, замены команд, арифметического расширения и удаления цитат, при условии значение опции оболочки подсказки (см. Bash Builtins).Таким образом, \[ в вашей функции выводится слишком поздно, чтобы сообщить Bash, что управляющие коды следуют. Вам нужно установить PS1 с выходом функции, включенной для этого, для работы. Я бы предложил использовать PROMPT_COMMAND таким образом:
PROMPT_COMMAND='PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\](`batPer`)-\A:\[\033[01;34m\]\w\[\033[00m\]\$ "'
Обратите внимание, что внутренние кавычки являются двойными кавычками, поэтому каждый раз PS1 устанавливается, к нему добавляется выход функции, а затем Bash decodes PS1, чтобы отобразить приглашение.
Сторона примечания: при этом вам не нужно echo -e выводить. Раньше вам нужно было для цвета, так как Bash не интерпретировал его после расширения строки PS1. Теперь Bash также расшифрует управляющие коды.
Проблема заключалась бы в том, что (подчеркивание мое, из руководства bash):
После того, как строка декодируется, она расширяется путем расширения параметров, замены команд, арифметического расширения и удаления цитат, при условии значение опции оболочки подсказки (см. Bash Builtins).Таким образом, \[ в вашей функции выводится слишком поздно, чтобы сообщить Bash, что управляющие коды следуют. Вам нужно установить PS1 с выходом функции, включенной для этого, для работы. Я предлагаю использовать PROMPT_COMMAND таким образом:
PROMPT_COMMAND='PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\](`batPer`)-\A:\[\033[01;34m\]\w\[\033[00m\]\$ "'
Обратите внимание, что внутренние кавычки являются двойными кавычками, поэтому каждый раз PS1 устанавливается, к нему добавляется вывод функции, а затем Bash decodes PS1, чтобы отобразить приглашение.
Сторона примечания: при этом вам не нужно echo -e выводить. Раньше вам нужно было для цвета, так как Bash не интерпретировал его после расширения строки PS1. Теперь Bash также расшифрует управляющие коды.
Проблема заключалась бы в том, что (подчеркивание мое, из руководства bash):
После того, как строка декодируется, она расширяется путем расширения параметров, замены команд, арифметического расширения и удаления цитат, при условии значение опции оболочки подсказки (см. Bash Builtins).Таким образом, \[ в вашей функции выводится слишком поздно, чтобы сообщить Bash, что управляющие коды следуют. Вам нужно установить PS1 с выходом функции, включенной для этого, для работы. Я предлагаю использовать PROMPT_COMMAND таким образом:
PROMPT_COMMAND='PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\](`batPer`)-\A:\[\033[01;34m\]\w\[\033[00m\]\$ "'
Обратите внимание, что внутренние кавычки являются двойными кавычками, поэтому каждый раз PS1 устанавливается, к нему добавляется вывод функции, а затем Bash decodes PS1, чтобы отобразить приглашение.
Сторона примечания: при этом вам не нужно echo -e выводить. Раньше вам нужно было для цвета, так как Bash не интерпретировал его после расширения строки PS1. Теперь Bash также расшифрует управляющие коды.