Настройка Linux сервера SSH: шаг за шагом руководство

SSH (Secure Shell) — это протокол безопасной удаленной работы с компьютером по сети. Он обеспечивает зашифрованную передачу данных и аутентификацию пользователей. Настройка SSH на Linux сервере является важной задачей для обеспечения безопасности и удобства удаленного доступа.

Для начала необходимо установить программное обеспечение OpenSSH, которое является реализацией протокола SSH для Linux. Для установки в Ubuntu и его производных можно воспользоваться командой:

sudo apt install openssh-server

После успешной установки необходимо настроить конфигурационный файл SSH. Он расположен по адресу /etc/ssh/sshd_config. В этом файле можно задать различные параметры, такие как порт, на котором будет слушать SSH, разрешенные методы аутентификации, настройки шифрования и другие. По умолчанию большинство параметров имеют безопасные значения, но некоторые могут потребовать изменений в зависимости от требований вашей сети.

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

sudo service ssh restart

Теперь у вас должна быть настроена SSH на Linux сервере. Вы можете подключаться к вашему серверу с помощью любого SSH-клиента, указав IP-адрес сервера и порт SSH. По умолчанию SSH слушает порт 22, но вы можете изменить его на более безопасный порт.

Шаг 1: Установка SSH на Linux сервер

Шаг 1: Обновите список пакетов:

sudo apt update

Шаг 2: Установите пакет OpenSSH:

sudo apt install openssh-server

Шаг 3: Запустите службу SSH:

sudo service ssh start

После выполнения этих шагов, SSH успешно установлен и запущен на вашем Linux сервере.

Шаг 2: Генерация SSH-ключа на Linux сервере

Для настройки SSH-соединения на Linux сервере необходимо сгенерировать SSH-ключ. SSH-ключ представляет собой пару файлов: приватный ключ и публичный ключ. Приватный ключ должен быть хранен в надежном месте и никому не передаваться, в то время как публичный ключ используется для аутентификации.

Для генерации ключа на Linux сервере выполните следующие шаги:

  1. Откройте терминал и выполните команду ssh-keygen.
  2. В появившемся запросе нажмите Enter для создания ключа в стандартном формате (RSA).
  3. Введите имя файла, в котором будет сохранен ключ. По умолчанию это id_rsa.
  4. Введите пароль для защиты приватного ключа. Можно оставить поле пустым, если не требуется парольная защита.
  5. Сгенерируется пара ключей: приватный ключ (id_rsa) и публичный ключ (id_rsa.pub).

После генерации ключей, публичный ключ необходимо разместить на сервере, к которому вы хотите получить доступ по SSH. Для этого скопируйте содержимое файла id_rsa.pub и добавьте его в файл ~/.ssh/authorized_keys на сервере.

Сгенерированный приватный ключ (id_rsa) следует хранить в безопасном месте и не передавать никому, так как это даёт полный доступ к серверу.

Шаг 3: Настройка аутентификации по ключу в SSH

Аутентификация по ключу в SSH позволяет обеспечить более безопасный способ доступа к серверу, не требующий передачи пароля. Вместо этого используются пары ключей: публичный и приватный.

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

  1. Подготовить пару ключей на клиентском компьютере.
  2. Скопировать публичный ключ на сервер.
  3. Настроить сервер для аутентификации по ключу.
  4. Проверить доступ по ключу.

Начнем с создания пары ключей на клиентском компьютере.

1. Откройте терминал на вашем компьютере и выполните команду:

ssh-keygen -t rsa

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

3. После создания пары ключей вы увидите информацию о пути к приватному и публичному ключам. Приватный ключ имеет имя id_rsa, а публичный — id_rsa.pub. Эти файлы будут храниться в директории ~/.ssh/.

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

1. Введите команду:

ssh-copy-id username@server_ip_address

Замените username на имя вашего пользователя на сервере и server_ip_address на IP-адрес вашего сервера.

2. Вам будет предложено ввести пароль пользователя на сервере. Введите его и нажмите Enter.

3. Публичный ключ будет скопирован на сервер и добавлен в файл ~/.ssh/authorized_keys в домашней директории пользователя.

Теперь необходимо настроить сервер для аутентификации по ключу.

1. Откройте терминал на сервере.

2. Откройте файл конфигурации SSH командой:

sudo nano /etc/ssh/sshd_config

3. Найдите и измените следующие строки, установив значения:

PubkeyAuthentication yes
PasswordAuthentication no

4. Сохраните изменения и закройте файл.

Теперь можно проверить доступ по ключу.

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

ssh username@server_ip_address

Замените username на имя вашего пользователя на сервере и server_ip_address на IP-адрес вашего сервера.

Если все настройки выполнены правильно, вы должны получить доступ к серверу без запроса пароля.

Шаг 4: Запрет доступа по паролю в SSH

Доступ по паролю в SSH можно запретить для увеличения безопасности вашего сервера. Вместо этого рекомендуется использовать ключи SSH.

Чтобы запретить доступ по паролю, следуйте этим шагам:

  1. Откройте файл настроек SSH:
  2. sudo nano /etc/ssh/sshd_config
  3. Найдите строку «PasswordAuthentication» и измените ее значение на «no».
  4. PasswordAuthentication no
  5. Сохраните изменения и закройте файл.
  6. Перезапустите SSH-сервер, чтобы изменения вступили в силу:
  7. sudo systemctl restart sshd

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

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

Шаг 5: Настройка SSH-файрволла на Linux сервере

Настройка SSH-файрволла на Linux сервере позволяет управлять доступом к серверу по протоколу SSH. Для этого необходимо настроить правила фильтрации пакетов и открыть порт для SSH соединений.

В Linux существует несколько утилит для настройки файрволла, таких как iptables, ufw и firewalld. В данной инструкции будет использована утилита iptables, так как она самая распространенная и часто используется в большинстве дистрибутивов.

  1. Войдите на сервер под учетной записью root.
  2. Откройте файл с правилами фильтрации пакетов с помощью команды:
    sudo nano /etc/sysconfig/iptables
  3. Найдите строку, содержащую правило для порта SSH (обычно порт 22) и убедитесь, что оно разрешено. Если строка отсутствует или закомментирована, добавьте следующее правило:
    -A INPUT -p tcp --dport 22 -j ACCEPT
  4. Сохраните изменения и закройте файл (нажмите Ctrl + X, затем Y, затем Enter).
  5. Перезапустите службу iptables для применения изменений:
    sudo service iptables restart

Теперь SSH-файрволл настроен на Linux сервере. Вы можете проверить доступность порта SSH с помощью любого клиента SSH.

Шаг 6: Установка и настройка fail2ban для защиты SSH

  1. Установите fail2ban, выполнив следующую команду:
  2. sudo apt-get install fail2ban
  3. После установки, отредактируйте конфигурационный файл fail2ban, используя текстовый редактор:
  4. sudo nano /etc/fail2ban/jail.local
  5. Добавьте следующий содержимое в файл:
  6. [ssh]
    enabled = true
    port = 22
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 3
    bantime = 3600
    

    В этом примере мы настраиваем fail2ban для защиты SSH, указывая основные параметры.

  7. Сохраните изменения и закройте файл.
  8. Перезапустите службу fail2ban, чтобы применить новую конфигурацию:
  9. sudo service fail2ban restart

После выполнения этих шагов fail2ban будет активирован для защиты вашего SSH-сервера от атак. Он будет автоматически блокировать IP-адреса, с которых происходят неудачные попытки входа, на указанный период времени.

Шаг 7: Настройка SSH-сервера для доступа через прокси

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

1. Откройте файл /etc/ssh/sshd_config с помощью любого текстового редактора.

2. Добавьте следующие строки в конец файла:

ProxyCommand ssh -q -W %h:%p user@proxy_server_address

где user — имя пользователя на прокси-сервере, а proxy_server_address — IP-адрес или доменное имя прокси-сервера.

3. Сохраните изменения в файле и закройте его.

4. Перезапустите SSH-сервер, чтобы применить внесенные изменения:

sudo systemctl restart sshd

Теперь вы можете подключаться к SSH-серверу через прокси-сервер с помощью команды:

ssh user@server_address

где user — имя пользователя на SSH-сервере, а server_address — IP-адрес или доменное имя SSH-сервера.

Шаг 8: Проверка работоспособности настроенного SSH

После завершения настройки SSH на Linux сервере необходимо проверить его работоспособность. Для этого можно использовать клиент SSH, например, PuTTY в Windows или OpenSSH в Linux.

Чтобы проверить работу SSH, выполните следующие действия:

  1. Откройте клиент SSH на вашем компьютере.
  2. Введите IP-адрес сервера, к которому вы хотите подключиться.
  3. Укажите порт, если необходимо. По умолчанию используется порт 22.
  4. Выберите метод аутентификации (например, пароль или ключевой файл).
  5. Введите учетные данные для входа на сервер (логин и пароль или путь к ключевому файлу).
  6. Нажмите кнопку «Connect» или «Подключиться».
  7. Если все настройки SSH верны, вы должны успешно подключиться к серверу.

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

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

Оцените статью