Отредактировано 6 несколько месяцев назад от ExtremeHow Редакционная команда
ДебианSSHСетевые подключенияБезопасностьУдалённый доступЛинуксСерверОткрытый исходный кодАдминистрирование системыКомандная строка
Перевод обновлен 6 несколько месяцев назад
Secure Shell (SSH) — это популярный сетевой протокол, который позволяет устанавливать безопасные соединения через незащищенные сети. SSH предоставляет безопасный способ доступа к удаленным компьютерам и является необходимым для системных администраторов. Настройка SSH сервера на Debian — процесс простой, и это подробное руководство проведет вас через этапы настройки SSH сервера. Мы рассмотрим установку, конфигурацию, практики по безопасности и устранение неполадок, а также предоставим примеры и объяснения. Предполагается, что вы имеете базовое понимание терминала и прав суперпользователя (root) на вашем Debian.
SSH означает Secure Shell и используется для безопасного подключения к удаленным машинам. Он заменяет старые протоколы, такие как Telnet и FTP, которые небезопасны, так как передают данные, включая пароли, в незашифрованном формате. SSH шифрует сеанс, делая его нечитабельным для любого внешнего объекта. Это шифрование обеспечивает безопасность и конфиденциальность передачи данных между клиентом и сервером. По умолчанию SSH работает на порту 22 и предоставляет как аутентификацию, так и интерфейс командной строки для безопасной связи.
Перед настройкой SSH сервера важно убедиться, что ваша система Debian обновлена, чтобы избежать конфликтов или проблем при последующей установке. Войдите в вашу Debian с правами суперпользователя и выполните следующие шаги:
sudo apt update
sudo apt upgrade
Эти команды получат последнюю информацию о доступных пакетах, а затем обновят пакеты до последней версии. Это гарантирует, что все необходимые зависимости для установки SSH сервера присутствуют.
На Debian пакет OpenSSH предоставляет SSH сервер и клиент. Чтобы установить пакет OpenSSH сервера, выполните следующую команду:
sudo apt install -y openssh-server
-y
опция автоматически отвечает "да" на все запросы, позволяя установить пакет без вмешательства. Установка OpenSSH сервера начнется автоматически и будет включена по завершении.
После установки важно убедиться, что служба SSH работает, как ожидалось. Чтобы проверить состояние службы SSH, используйте следующую команду:
sudo systemctl status ssh
Вывод должен показать, что служба активна и работает. Если это не так, вы можете запустить службу SSH следующим образом:
sudo systemctl start ssh
Также, чтобы служба SSH запускалась при перезагрузке, включите её:
sudo systemctl enable ssh
Файл конфигурации для SSH сервера находится в /etc/ssh/sshd_config
. Рекомендуется создать резервную копию оригинального файла перед внесением изменений:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Отредактируйте конфигурационный файл с помощью вашего любимого текстового редактора, такого как nano или vim:
sudo nano /etc/ssh/sshd_config
Некоторые рекомендуемые настройки следующие:
Port 22
и измените её на число выше 1024, чтобы избежать конфликтов с известными портами.PermitRootLogin
в значение no
.PasswordAuthentication
в no
после настройки аутентификации на основе ключей.После внесения изменений сохраните файл и выйдите из редактора. Чтобы применить изменения, перезапустите службу SSH:
sudo systemctl restart ssh
SSH ключи обеспечивают более безопасный способ входа на SSH сервер, чем использование пароля. SSH ключи состоят из двух файлов: открытого и закрытого ключа. Закрытый ключ хранится на вашей машине и должен быть защищен, а открытый ключ хранится на сервере. Вот как настроить аутентификацию на основе SSH ключей:
На клиентской машине (вашей локальной машине) сгенерируйте SSH ключи с помощью следующей команды:
ssh-keygen -t rsa -b 4096
Эта команда генерирует пару RSA ключей длиной 4096 бит. Вас попросят ввести имя файла для сохранения ключей. Нажмите enter
, чтобы сохранить их в стандартное место (~/.ssh/id_rsa
для закрытого и ~/.ssh/id_rsa.pub
для открытого ключа).
Загрузите открытый ключ на Debian сервер с помощью команды ssh-copy-id
. Замените user
и server_ip
на ваше имя пользователя и IP адрес сервера соответственно:
ssh-copy-id user@server_ip
Вас попросят ввести пароль вашего сервера. После ввода он скопирует открытый ключ на сервер в файл ~/.ssh/authorized_keys
и установит необходимые разрешения.
Протестируйте соединение SSH, чтобы убедиться, что аутентификация по ключам работает. Выполните:
ssh user@server_ip
Если успешно, вы войдете без запроса пароля, что будет свидетельствовать о правильной аутентификации по ключам. Если вы уверены, что аутентификация на основе ключей работает, вы можете теперь отключить аутентификацию по паролю в /etc/ssh/sshd_config
, установив PasswordAuthentication в no
.
Улучшение безопасности SSH сервера включает конфигурацию настроек, снижающих потенциальные риски. Вот несколько шагов для дальнейшего повышения безопасности вашего SSH сервера:
Используйте директивы AllowUsers
или AllowGroups
в sshd_config
, чтобы определить, какие пользователи могут входить через SSH. Например, чтобы разрешить вход только user1
и user2
через SSH, добавьте:
AllowUsers user1 user2
Протокол SSH 1 устарел и имеет уязвимости. Всегда используйте протокол 2:
Protocol 2
Установите правила брандмауэра, чтобы разрешить доступ к SSH только с доверенных IP адресов. С помощью ufw
добавьте правило следующим образом:
sudo ufw allow from trusted_ip to any port ssh
Fail2Ban — это программное обеспечение для предотвращения вторжений, которое помогает защитить ваш сервер от атак методом перебора. Установите его следующим образом:
sudo apt install fail2ban
По умолчанию он автоматически настраивается для защиты SSH. Убедитесь, что он запущен и включен:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Не редкость столкнуться с проблемами с SSH. Ниже приведены некоторые общие проблемы и их возможные решения.
Если вы получаете ошибку "Connection refused", служба SSH может не работать или брандмауэр может блокировать соединение. Убедитесь, что SSH включен:
sudo systemctl status ssh
Убедитесь, что ваш брандмауэр настроен на разрешение соединений на порт SSH 22 или порт, который вы настроили.
Если вы не можете пройти аутентификацию, дважды проверьте ваши разрешения. Убедитесь, что authorized_keys
существует, читается и принадлежит пользователю.
chmod 600 ~/.ssh/authorized_keys
chown user:user ~/.ssh/authorized_keys
Сервер SSH записывает более подробную информацию в /var/log/auth.log
. Изучение этого файла часто помогает диагностировать проблемы.
Настройка SSH сервера на Debian — это важная задача для обеспечения безопасного удаленного администрирования вашей системы. Это руководство охватывает важные аспекты настройки SSH, сосредоточившись на установке, конфигурации и защите вашего SSH сервера от несанкционированного доступа. Всегда держите ваш сервер в актуальном состоянии, ограничивайте привилегии пользователей и реализовывайте меры безопасности, такие как брандмауэры и системы предотвращения вторжений, чтобы усилить безопасность вашего сервера. Правильные практики безопасности SSH важны для поддержания безопасной, эффективной и надежной серверной среды.
Если вы найдете что-то неправильное в содержании статьи, вы можете