Максимальные ограничения и оптимизация SSH

SSH (Secure Shell) – это мощный инструмент для удаленного администрирования и безопасной передачи данных. Однако для обеспечения оптимальной производительности и безопасности очень важно понимать и эффективно настраивать его ограничения. Эта статья поможет вам понять и настроить максимальные ограничения SSH для оптимальной производительности и безопасности.

Лимиты подключений

Лимиты соединений в SSH, в основном, контролируются такими настройками, как

MaxStartups и MaxSessions являются важнейшими мерами безопасности.

MaxStartups ограничивает количество попыток неаутентифицированного подключения, что снижает вероятность атак методом грубой силы.

MaxSessions ограничивает количество активных сеансов на одно соединение, предотвращая истощение ресурсов и потенциальные DoS-атаки. Эти ограничения, а также другие меры безопасности, такие как аутентификация на основе ключей и правила брандмауэра, способствуют созданию надежной и безопасной среды SSH.

MaxSessions

  • По умолчанию: 10
  • Расположение: /etc/ssh/sshd_config
  • Управляет максимальным количеством одновременных SSH-сессий на одно соединение
MaxSessions 10

MaxStartups

  • Формат: start:rate:full
  • По умолчанию: 10:30:100
  • Контролирует попытки неаутентифицированного соединения
    MaxStartups 10:30:100
    • Разрешает 10 неаутентифицированных соединений.
    • 30-процентная вероятность сброса соединений при достижении лимита
    • Полная блокировка при 100 соединениях

Client Alive Interval

  • По умолчанию: 0 (отключено)
  • Максимум: Зависит от системы
  • Проверяет подключение клиента каждые X секунд
ClientAliveInterval 300

Client Alive Count Max

  • По умолчанию: 3
  • Максимальное количество попыток проверки соединения перед разъединением
ClientAliveCountMax 3

Ограничения аутентификации

Ограничения аутентификации в SSH в основном направлены на ограничение количества неудачных попыток входа в систему. Это помогает предотвратить атаки методом грубой силы, когда злоумышленники систематически пробуют различные комбинации имен пользователей и паролей для получения несанкционированного доступа. Установив ограничения на количество попыток аутентификации, разрешенных для каждого соединения, вы можете значительно усложнить злоумышленникам задачу успешной компрометации вашей системы.

MaxAuthTries

  • По умолчанию: 6
  • Максимальное количество попыток аутентификации перед отключением
MaxAuthTries 6

LoginGraceTime

  • По умолчанию: 120 секунд
  • Время, допустимое для успешной аутентификации
LoginGraceTime 120

Ограничения системных ресурсов

Ограничения ОС

Редактируем /etc/security/limits.conf:

soft nofile 65535
hard nofile 65535

Ограничения процесса

Проверьте текущие лимиты

ulimit -n

Установить новый лимит

ulimit -n 65535

Ограничения пропускной способности

Ограничения пропускной способности SSH, хотя и не настраиваются непосредственно в самом протоколе SSH, являются важным фактором, влияющим на общую производительность системы. Чрезмерный трафик SSH может потреблять значительные сетевые ресурсы, потенциально влияя на работу других приложений и служб.

Лимиты для отдельных пользователей

В sshd_config соответствие имени пользователя

RateLimit 5M

Глобальное ограничение скорости

Использование iptables:

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 10/minute -j ACCEPT

Оптимизация производительности

Настройки сжатия

# In sshd_config
Compression delayed

Выбор шифра

# Faster ciphers first
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com

Настройки Keep Alive

На стороне клиента ~/.ssh/config:

Host *
ServerAliveInterval 60
ServerAliveCountMax 3

Ограничения на передачу файлов

Лимиты SFTP

В разделе sshd_config:

Subsystem sftp /usr/lib/openssh/sftp-server -l INFO -f LOCAL6
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no

Ограничения SCP

# Limit SCP bandwidth
scp -l 1000 # Limits bandwidth to 1000 Kbit/s

Безопасность

Максимальные параметры безопасности SSH включают в себя различные настройки, предназначенные для предотвращения вредоносных атак.

Ограничения на размер ключа

  • RSA: 16384 бита (практический максимум)
  • ECDSA: 521 бит
  • Ed25519: 256 бит (фиксировано)

Таймаут аутентификации

# В sshd_config
AuthenticationMethods publickey,keyboard-interactive
MaxAuthTries 3
LoginGraceTime 60

Мониторинг и ведение журнала

Уровни протоколирования

# В sshd_config
Уровень регистрации VERBOSE
SyslogFacility AUTH

Мониторинг соединений

# Активные соединения
who | grep pts # Процессы SSH
ps aux | grep ssh # Попытки подключения
tail -f /var/log/auth.log

Устранение неполадок

Проверка предельных значений тока

# Пределы системы
sysctl -a | grep max
# Ограничения демона SSH
sshd -T | grep max
# Ограничения для процессов
cat /proc/sys/fs/file-max
Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.unixmen.com

Похожие статьи

Комментарии (0)