Мой хостер vServer угрожает расторгнуть наш контракт, если я не перестану создавать тысячи (точнее, 9000) процессов SSH. Я не знаю, остановили ли они эти процессы или они были такими, когда нашли их. Мне прислали документ, содержащий тысячи строк вроде
sshd 19716 0.0 0.0 0 0 ? Z Jan25 0:00 [sshd] <defunct>
sshd 19739 0.0 0.0 0 0 ? Z Jan25 0:00 [sshd] <defunct>
sshd 19753 0.0 0.0 0 0 ? Z Jan25 0:00 [sshd] <defunct>
sshd 19776 0.0 0.0 0 0 ? Z Jan26 0:00 [sshd] <defunct>
Я понятия не имею, как это произошло, и я хотел бы узнать решение, чтобы меня не отменили, прежде чем снова включу сервер!
Единственное, о чем я могу думать, это о том, что я часто подключался к серверу с крайне нестабильным соединением. Может ли это привести к созданию тысяч процессов за недели и месяцы?
Мог ли мой сервер взломать? Я не использую fail2ban (и не знаю как), но использую ключевой файл.
Сервер работает на Debian с Apache и Tomcat.
Примите меры предосторожности. Варианты от лучшего к худшему.
Установите fail2ban. Это ваш лучший вариант, так как он блокирует всех, кто пытается подключиться с недопустимыми учетными данными после нескольких попыток.
Настройте iptables, чтобы ограничить новые подключения SSH.
# Create new SSHSCAN chain
iptables -N SSHSCAN
# Send new SSH attempts to SSHSCAN chain.
iptables -A INPUT -m tcp -p tcp --dport 22 -m state --state NEW -j SSHSCAN
# Identify a recent-match list, based on the source address
iptables -A SSHSCAN -m recent --set --name SSH --rsource
# Log and drop if there are more than 5
iptables -A SSHSCAN -m recent --update --seconds 10 --hitcount 5 --name SSH --rsource -j LOG --log-prefix "Anti SSH-Bruteforce: " --log-level 6
iptables -A SSHSCAN -m recent --update --seconds 10 --hitcount 5 --name SSH --rsource -j DROP
Проверьте Информация для получения дополнительной информации о недавнем совпадении в iptables.
Спасибо @ gaurav-pundir за команды.
Optin 3 - это настройка брандмауэра, чтобы вы могли получить доступ только к вам: заблокировать SSH, чтобы получить доступ только ваш IP (если он статический) или сеть вашего провайдера. Опция сетевой блокировки непрактична, и у вас, вероятно, нет фиксированного IP-адреса. Даже если это наихудший вариант для динамических адресов, вы можете рассмотреть возможность его реализации, даже если у вас реализован один из других вариантов.
редактировать: из вашего недавнего списка мне кажется, что ваше нестабильное соединение оставляет соединения зомби. Это не решит вашу проблему, но все равно не повредит.