Полная пошаговая инструкция по установке SSH на Ubuntu для безопасного удаленного доступа

Установите SSH на Ubuntu, чтобы обеспечить безопасный доступ к вашему серверу. Начните с обновления списка пакетов, выполнив команду sudo apt update. Это гарантирует, что вы получите последнюю версию программного обеспечения.

Затем установите OpenSSH Server с помощью команды sudo apt install openssh-server. Этот пакет включает в себя все необходимые компоненты для работы SSH. После завершения установки проверьте статус службы SSH, выполнив sudo systemctl status ssh. Убедитесь, что служба запущена и работает без ошибок.

Настройте параметры SSH, отредактировав файл конфигурации /etc/ssh/sshd_config. Здесь вы можете изменить порт, отключить вход по паролю или настроить аутентификацию по ключам. После внесения изменений перезапустите службу с помощью sudo systemctl restart ssh, чтобы они вступили в силу.

Теперь вы готовы подключаться к вашему серверу по SSH. Используйте команду ssh username@your_server_ip, заменив username на ваше имя пользователя и your_server_ip на IP-адрес вашего сервера. Если вы настроили аутентификацию по ключам, убедитесь, что ваш публичный ключ добавлен в файл ~/.ssh/authorized_keys на сервере.

Установка и базовая настройка SSH-сервера на Ubuntu

Начинайте с установки пакета OpenSSH Server, выполнив команду: sudo apt install openssh-server. Это обеспечит запуск SSH-сервера и его автоматическую загрузку при старте системы.

Проверьте статус службы командой: sudo systemctl status ssh. Если служба запущена и активно работает, вы увидите сообщение ‘active (running)’. В противном случае запустите её командой: sudo systemctl start ssh.

Для повышения безопасности рекомендуется ограничить доступ к SSH, изменив настройки в файле /etc/ssh/sshd_config. Откройте его командой sudo nano /etc/ssh/sshd_config. Основные параметры, на которые стоит обратить внимание:

  • Запретить вход как root, установив строку: PermitRootLogin no
  • Разрешить подключение только через ключи, отключив пароль: PasswordAuthentication no
  • Настроить порт для подключения, если хотите скрыть стандартный порт 22: Port 2222

После внесения изменений сохраните файл и перезапустите SSH-сервис командой: sudo systemctl restart ssh.

Создайте пару SSH-ключей на клиенте командой: ssh-keygen -t rsa -b 4096. Ключи сохраняйте в стандартных папках или по своему усмотрению.

Добавьте публичный ключ на сервер в файл ~/.ssh/authorized_keys для конкретного пользователя. Проверьте, что права на папку .ssh и файл authorized_keys ограничены и составляют 700 и 600 соответственно:
chmod 700 ~/.ssh и
chmod 600 ~/.ssh/authorized_keys.

Теперь подключение к серверу осуществляется командой ssh -p 2222 username@hostname, где 2222 – выбранный вами порт.

Обновление системы перед установкой SSH

Обновление системы перед установкой SSH

Перед установкой SSH обновите систему, чтобы обеспечить совместимость и безопасность. Откройте терминал и выполните команду:

sudo apt update

Эта команда обновит список доступных пакетов и их версий. После этого выполните:

sudo apt upgrade

Эта команда установит последние версии всех установленных пакетов. Если появится запрос на подтверждение, введите Y и нажмите Enter.

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

sudo reboot

Теперь ваша система готова к установке SSH. Убедитесь, что все пакеты актуальны, чтобы избежать возможных проблем в будущем.

Установка OpenSSH-server: команды и параметры

Для начала установите пакет OpenSSH-сервера с помощью команды:

sudo apt update sudo apt install openssh-server

Команда `apt update` обновит список доступных пакетов, а `apt install` установит сам OpenSSH-сервер.

Чтобы проверить статус службы SSH после установки, выполните:

sudo systemctl status ssh

Если сервис не запущен, запустите его командой:

sudo systemctl start ssh

Для автоматического запуска SSH при загрузке используйте:

sudo systemctl enable ssh

Настройки конфигурации расположены в файле `/etc/ssh/sshd_config`. Перед его редактированием сделайте копию на случай ошибки:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Для изменения настроек откройте файл любимым редактором, например:

sudo nano /etc/ssh/sshd_config

При необходимости измените параметры, такие как порт (по умолчанию 22), разрешение входа по паролю или ключам. После внесения изменений перезапустите службу:

sudo systemctl restart ssh

Если требуется установить дополнительные параметры запуска, используйте опции командной строки при запуске SSH-сервера. Например:

sudo sshd -D -p 2222

Эта команда запустит SSH-деймон в фоновом режиме (`-D`) на порту 2222. Для постоянных изменений используйте параметры в `sshd_config`. Учитывайте, что некоторые параметры требуют перезапуска сервиса, а другие можно менять динамически. Следите за логами для диагностики:

sudo journalctl -u ssh

Проверка статуса службы SSH и её запуск

Проверка статуса службы SSH и её запуск

Для проверки статуса службы SSH выполните команду:

sudo systemctl status ssh

Эта команда покажет, запущена ли служба, а также её текущий статус. Если служба активна, вы увидите сообщение ‘active (running)’.

Читайте также:  Пошаговая инструкция по поиску и установке драйвера для принтера Canon MF4410

Если служба не запущена, активируйте её с помощью следующей команды:

sudo systemctl start ssh

После этого снова проверьте статус, чтобы убедиться, что служба работает. Если вы хотите, чтобы служба автоматически запускалась при загрузке системы, выполните:

sudo systemctl enable ssh

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

Настройка файла sshd_config для базовой безопасности

Отключите вход по паролю, установив параметр PasswordAuthentication no. Это минимизирует риск атаки за счет использования ключей SSH.

Запретите вход под учетной записью root, добавив параметр PermitRootLogin no. Это защитит систему от атак, направленных на наиболее привилегированную учетную запись.

Настройте порт прослушивания на другой, не типичный, например, 2222, изменив параметр Port 22. Это снизит вероятность автоматических сканирований по стандартному порту.

Активируйте аутентификацию с помощью ключей, оставив только PubkeyAuthentication yes и отключив AuthenticationMethods password. Это обеспечит более надежный контроль доступа.

Включите журналирование событий аутентификации, проверяя параметры LogLevel INFO или VERBOSE. Это поможет отслеживать попытки доступа и выявлять подозрительную активность.

Ограничьте IP-адреса, с которых разрешен вход, если есть необходимость, через директиву AllowUsers или AllowGroups, указав конкретные пользователей или группы.

Обеспечьте автоматическую блокировку при множественных неудачных попытках входа, активируя параметры MaxAuthTries и MaxSessions, чтобы снизить риск перебора паролей или вредоносных скриптов.

Каждое изменение в файле sshd_config требует перезапуска службы SSH с помощью команды systemctl restart sshd, чтобы новые настройки вступили в силу. Перед этим проверьте конфигурацию командой sshd -t, чтобы избежать ошибок и предотвращения возможного отключения от сервера.

Разрешение входа по паролю или ключу: что выбрать?

Разрешение входа по паролю или ключу: что выбрать?

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

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

Для повышения удобства можно комбинировать оба метода: разрешать вход по ключу и оставлять возможность входа по паролю в случае необходимости. Так обеспечивается баланс между безопасностью и универсальностью.

Используйте сильные ключи с длиной не менее 2048 бит и избегайте простых паролей. Регулярная смена ключей и ограничение доступа по IP помогают дополнительно усилить безопасность.

Дополнительная настройка SSH для повышения безопасности и удобства использования

Дополнительная настройка SSH для повышения безопасности и удобства использования

Отключите вход по паролю, чтобы предотвратить несанкционированный доступ. Для этого отредактируйте файл конфигурации SSH:

sudo nano /etc/ssh/sshd_config

Найдите строку PasswordAuthentication и измените её на:

PasswordAuthentication no

Сохраните изменения и перезапустите SSH-сервис:

sudo systemctl restart ssh

Используйте ключи SSH для аутентификации. Сгенерируйте пару ключей на клиенте:

ssh-keygen -t rsa -b 4096

Скопируйте публичный ключ на сервер:

ssh-copy-id user@server_ip

Настройте файл конфигурации SSH для удобства. Создайте или отредактируйте файл ~/.ssh/config:

Host myserver HostName server_ip User user IdentityFile ~/.ssh/id_rsa

Это позволит вам подключаться к серверу с помощью команды ssh myserver.

Ограничьте доступ к SSH с определённых IP-адресов. Добавьте следующие строки в файл конфигурации:

AllowUsers user@your_ip

Настройте брандмауэр для разрешения доступа только к порту SSH (обычно 22). Используйте ufw:

sudo ufw allow from your_ip to any port 22

Включите брандмауэр:

sudo ufw enable

Регулярно обновляйте систему и пакеты, чтобы защититься от уязвимостей:

sudo apt update && sudo apt upgrade

Рассмотрите возможность изменения порта SSH для уменьшения вероятности атак. В файле /etc/ssh/sshd_config измените строку:

Port 22

На желаемый номер порта, например, 2222. Не забудьте обновить правила брандмауэра.

Читайте также:  Partition Magic Portable — простое решение для управления разделами без установки

Используйте инструменты мониторинга, такие как fail2ban, для защиты от брутфорс-атак. Установите его:

sudo apt install fail2ban

Настройте fail2ban для защиты SSH, отредактировав файл /etc/fail2ban/jail.local и добавив:

[sshd] enabled = true port = 22 filter = sshd logpath = /var/log/auth.log maxretry = 5 bantime = 600

Перезапустите fail2ban:

sudo systemctl restart fail2ban

Следуя этим рекомендациям, вы значительно повысите безопасность и удобство использования SSH на вашем сервере.

Генерация SSH-ключей на клиентской машине

Откройте терминал на вашей клиентской машине. Введите команду для генерации SSH-ключей:

ssh-keygen -t rsa -b 4096 -C 'ваш_email@example.com'

Эта команда создаст пару ключей RSA с длиной 4096 бит. Укажите свой адрес электронной почты для идентификации ключа.

После ввода команды вас попросят указать путь для сохранения ключа. Нажмите Enter, чтобы использовать путь по умолчанию (~/.ssh/id_rsa).

Затем система предложит ввести пароль для дополнительной защиты ключа. Рекомендуется использовать пароль, но можно оставить поле пустым для отсутствия пароля.

После завершения процесса вы увидите сообщение о создании ключей и их расположении. Пара ключей состоит из приватного (id_rsa) и публичного (id_rsa.pub) ключей.

Для проверки наличия ключей выполните команду:

ls ~/.ssh

Если вы видите файлы id_rsa и id_rsa.pub, значит, ключи успешно созданы.

Теперь вы можете использовать публичный ключ для настройки доступа к удалённым серверам, добавив его в файл ~/.ssh/authorized_keys на сервере.

Настройка авторизации по ключам и отключение входа по паролю

Настройка авторизации по ключам и отключение входа по паролю

Сгенерируйте пару ключей на локальной машине с помощью команды:

ssh-keygen -t rsa -b 4096

При запросе укажите путь для сохранения ключа или нажмите Enter для использования значения по умолчанию. Установите пароль для дополнительной безопасности.

Скопируйте публичный ключ на сервер с помощью команды:

ssh-copy-id username@server_ip

Замените username на ваше имя пользователя, а server_ip на IP-адрес вашего сервера. После этого введите пароль для доступа к серверу.

Теперь настройте SSH для отключения входа по паролю. Откройте файл конфигурации SSH:

sudo nano /etc/ssh/sshd_config

Найдите строку PermitRootLogin и измените её на:

PermitRootLogin no

Затем найдите строку PasswordAuthentication и измените её на:

PasswordAuthentication no

Сохраните изменения и закройте редактор.

Перезапустите SSH-сервис для применения изменений:

sudo systemctl restart ssh

Теперь вход по паролю отключен, и доступ возможен только с использованием ключей. Проверьте подключение к серверу, используя:

ssh username@server_ip

Убедитесь, что всё работает корректно. Если возникнут проблемы, проверьте настройки и наличие ключей на сервере.

Настройка брандмауэра для ограничения доступа SSH

Настройка брандмауэра для ограничения доступа SSH

Начните с проверки текущих правил UFW, выполнив команду sudo ufw status verbose. Это покажет основные настройки и текущие разрешения. Если UFW еще не активирован, включите его командой sudo ufw enable.

Затем запретите весь входящий трафик, кроме SSH, с помощью команд:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Позже разрешите только SSH-трафик с определенного IP-адреса или диапазона IP-адресов, например, чтобы разрешить доступ с IP 192.168.1.100, используйте команду:

sudo ufw allow from 192.168.1.100 to any port 22

Если хотите ограничить доступ по диапазону IP, например, с 192.168.1.0/24, используйте:

sudo ufw allow from 192.168.1.0/24 to any port 22

Проверьте новые правила с помощью sudo ufw status. Убедитесь, что разрешены только те IP-адреса, на которые вы рассчитываете.

Для исключения возможности подключения по другим портам, с помощью правила блокировки можно закрыть все ненужные порты командой sudo ufw deny или явно запретить входящие соединения:

sudo ufw deny 0.0.0.0/0

Помните, что при внесении изменений, связанных с доступом к SSH, стоит всегда сохранять конфигурацию и иметь резервные варианты подключения, чтобы не оказаться запертым вне сервера. После настройки не забудьте перезагрузить брандмауэр командой sudo ufw reload.

Изменение порта SSH и защита от автоматических брутфорсов

Измените порт SSH с 22 на другой, например, 2222. Это снизит вероятность автоматических атак. Для этого откройте файл конфигурации SSH:

Читайте также:  Пошаговая инструкция по правильной установке оперативной памяти для начинающих

sudo nano /etc/ssh/sshd_config

Найдите строку Port 22 и замените её на Port 2222. Сохраните изменения и закройте редактор.

Перезапустите SSH для применения изменений:

sudo systemctl restart ssh

Теперь настройте брандмауэр для разрешения нового порта. Используйте команду:

sudo ufw allow 2222/tcp

Для повышения безопасности установите Fail2Ban. Этот инструмент блокирует IP-адреса, которые пытаются выполнить брутфорс:

sudo apt install fail2ban

После установки настройте Fail2Ban, отредактировав файл конфигурации:

sudo nano /etc/fail2ban/jail.local

Добавьте следующие строки для защиты SSH:

[sshd] enabled = true port = 2222 filter = sshd logpath = /var/log/auth.log maxretry = 5 bantime = 600 

Сохраните изменения и перезапустите Fail2Ban:

sudo systemctl restart fail2ban

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

Использование агента SSH для управления ключами

Запустите агент SSH командой eval '$(ssh-agent -s)'. Это инициирует процесс, который хранит ваши ключи в памяти для автоматической аутентификации без постоянного ввода пароля.

Добавьте приватные ключи с помощью команды ssh-add. Например, выполните ssh-add ~/.ssh/id_rsa, чтобы зарегистрировать ваш локальный ключ. После этого агент сможет автоматически использовать его при подключениях.

Чтобы проверить, какие ключи доступны в агенте, выполните ssh-add -l. Он покажет список зарегистрированных ключей и их идентификаторы.

Используйте сценарий автоматической загрузки агента и добавления ключей при входе в систему, чтобы не запускать эти команды вручную каждый раз. Для этого добавьте строки в файл ~/.bashrc или ~/.bash_profile:

eval '$(ssh-agent -s)' ssh-add ~/.ssh/id_rsa

При этом агент запустится автоматически, и ключи будут добавлены при каждом новом сеансе.

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

Не забудьте поддерживать ваши ключи в актуальном состоянии и регулярно очищать неиспользуемые. Для удаления ключей из агента используйте команду ssh-add -d или полностью остановите агент командой ssh-agent -k.

Настройка дополнительных параметров безопасности (например, отключение root-сессий)

Чтобы повысить безопасность сервера, отключите возможность входа через root по SSH. Для этого откройте конфигурационный файл SSH: /etc/ssh/sshd_config и найдите строку #PermitRootLogin yes. Разкомментируйте её и замените на PermitRootLogin no. Это предотвратит попытки входа с правами root, снижая риск несанкционированного доступа.

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

Для дополнительной защиты, отключите вход по SSH для неиспользуемых групп или пользователей, добавив параметры AllowUsers или AllowGroups с перечнем разрешённых аккаунтов. Например:

AllowUsers admin user1 user2

Это ограничит подключение только выбранными аккаунтами.

После внесения изменений перезапустите демон SSH: sudo systemctl restart sshd. Проверьте статус сервиса и убедитесь, что он активен и работает без ошибок.

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

Понравилась статья? Поделиться с друзьями: