2

SSH достаточно безопасен, чтобы не беспокоиться о атаках на порт 22, верно?

После подключения одной машины к серверу SSH есть ли в файлах sshd-config или SSH-config параметр, который необходимо изменить после создания ключа?

4 ответа4

3

Перемещение sshd в другой порт - это просто безопасность из-за неясности. Лучший подход - создать многоуровневую защиту. Начните с отключения аутентификации по паролю и ограничения списка пользователей, которые могут войти через ssh. Затем ограничьте исходные IP-адреса или сети, которые могут подключаться, и установите правило регулирования. Убедитесь, что вы регистрируете неудачные попытки и регулярно просматриваете ваши журналы. Еще лучше, если вы можете предупредить о грубой атаке. Есть довольно много инструментов, которые могут сделать это.

Если вы можете сэкономить сервер для использования в качестве хоста-бастиона, то вы можете удалить прямой ssh-доступ к вашим серверам и принудительно заставить всех своих клиентов проходить через один хост, который вы можете отслеживать. Как только клиент успешно войдет в систему, вы можете ограничить переход к нему, добавив исходящие правила iptables, которые ограничены пользователем или группой.

2

Если вы отключите аутентификацию по паролю, то вы в хорошей форме. Если вы разрешите это, используйте fail2ban, чтобы остановить взлом паролей. Вы получите их через открытый порт ssh.

1

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

MaxStartups 3:60:8
AllowUsers myaccount

Как дальнейшее ограничение. Вы также можете ограничить хосты, которые могут подключаться, но вы можете этого не делать.

MaxStartups - это моя попытка простой формы "защемления" соединения, но я не уверен, насколько хорошо это работает.

0

Что касается атак методом перебора, вот простое правило для настройки с помощью Iptables:

# we create a new chain for bruteforce attack detection
iptables -N BRUTE

# allow 10 new connections in a timeframe of 60 seconds
iptables -A BRUTE -m recent --set --name CHECK --rsource
iptables -A BRUTE -m recent --update --seconds 60 --hitcount 10 \
  --name BRUTE --rsource -j DROP

# add a rule in the INPUT chain to check for SSH against the BRUTE chain
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j BRUTE

Это работает с модулем Iptables "ipt_recent", который фактически хранит файл в «/proc/net/ipt_recent/name » (в данном случае имя - BRUTE).

Эти правила разрешают новые подключения с задержкой в одну минуту с того же IP-адреса, в противном случае он будет временно заблокирован и IP-адрес должен прекратить попытки нового подключения к услуге. Хотя его очень просто настроить в отличие от fail2ban, он не позволяет различать успешные соединения и неудачные попытки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .