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
Комментарии (0)