Назад | Перейти на главную страницу

Бесчисленные (несуществующие?) Процессы SSH - как этого не допустить?

Мой хостер 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.

Примите меры предосторожности. Варианты от лучшего к худшему.

Вариант 1: используйте fail2ban для ограничения сбоев

Установите fail2ban. Это ваш лучший вариант, так как он блокирует всех, кто пытается подключиться с недопустимыми учетными данными после нескольких попыток.

Вариант 2: ограничение неудачных попыток в iptables

Настройте 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 за команды.

Вариант 3: ограничьте источник доступа SSH

Optin 3 - это настройка брандмауэра, чтобы вы могли получить доступ только к вам: заблокировать SSH, чтобы получить доступ только ваш IP (если он статический) или сеть вашего провайдера. Опция сетевой блокировки непрактична, и у вас, вероятно, нет фиксированного IP-адреса. Даже если это наихудший вариант для динамических адресов, вы можете рассмотреть возможность его реализации, даже если у вас реализован один из других вариантов.

Источник проблемы

редактировать: из вашего недавнего списка мне кажется, что ваше нестабильное соединение оставляет соединения зомби. Это не решит вашу проблему, но все равно не повредит.