Установка и настройка SSH сервера

Материал из ARK-HOSTER.RU | Документация хостинга
Версия от 10:44, 15 октября 2025; Admin (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Установка и настройка SSH сервера

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть физический доступ к серверу (на случай блокировки SSH).

2. Установка SSH сервера

Для Ubuntu/Debian

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

sudo apt update

2. Установите OpenSSH сервер:

sudo apt install openssh-server

3. Запустите и включите автозапуск SSH:

sudo systemctl start ssh
sudo systemctl enable ssh

Для CentOS/RHEL/Fedora

1. Установите OpenSSH сервер:

sudo yum install openssh-server
  1. или для новых версий
sudo dnf install openssh-server

2. Запустите и включите автозапуск:

sudo systemctl start sshd
sudo systemctl enable sshd

3. Проверка установки

1. Проверьте статус SSH сервера:

sudo systemctl status ssh

2. Проверьте, что SSH слушает на порту 22:

sudo netstat -tlnp | grep :22

3. Проверьте версию OpenSSH:

ssh -V

4. Базовая настройка SSH

Основная конфигурация

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

sudo nano /etc/ssh/sshd_config

2. Настройте основные параметры:

Port 22
Protocol 2
ListenAddress 0.0.0.0
PermitRootLogin no
PermitEmptyPasswords no
MaxAuthTries 3
LoginGraceTime 60

Настройка безопасности

1. Добавьте дополнительные настройки безопасности:

X11Forwarding no
AllowTcpForwarding no
AllowUsers username1 username2
DenyUsers baduser
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes

5. Настройка SSH ключей

Генерация SSH ключей на клиенте

1. Сгенерируйте пару ключей:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

2. Выберите место сохранения (по умолчанию ~/.ssh/id_rsa) 3. Введите пароль для ключа (рекомендуется)

Копирование ключа на сервер

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

ssh-copy-id username@server_ip

2. Или вручную:

cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Настройка прав доступа

1. Установите правильные права на файлы:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub

6. Дополнительные настройки безопасности

Изменение порта SSH

1. Измените порт в конфигурации:

Port 2222

2. Обновите правила файрвола:

sudo ufw allow 2222/tcp
sudo ufw deny 22/tcp

3. Перезапустите SSH:

sudo systemctl restart ssh

Настройка двухфакторной аутентификации

1. Установите Google Authenticator:

sudo apt install libpam-google-authenticator

2. Настройте для пользователя:

google-authenticator

3. Добавьте в конфигурацию SSH:

ChallengeResponseAuthentication yes
UsePAM yes

4. Настройте PAM:

sudo nano /etc/pam.d/sshd

5. Добавьте строку:

auth required pam_google_authenticator.so

Настройка fail2ban для SSH

1. Установите fail2ban:

sudo apt install fail2ban

2. Создайте конфигурацию для SSH:

sudo nano /etc/fail2ban/jail.local

3. Добавьте настройки:

[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600

4. Запустите fail2ban:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

7. Настройка для конкретных случаев

Настройка для веб-сервера

1. Разрешите только определенным пользователям:

AllowUsers webadmin deployer

2. Настройте ограничения по времени:

Match User webadmin
AllowUsers webadmin
X11Forwarding no
AllowTcpForwarding no

Настройка для разработчиков

1. Разрешите порт forwarding:

AllowTcpForwarding yes
GatewayPorts yes

2. Настройте SSH туннели:

ssh -L 8080:localhost:80 username@server_ip
ssh -R 8080:localhost:80 username@server_ip

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

1. Создайте пользователя для бэкапов:

sudo useradd -m -s /bin/bash backupuser

2. Настройте ограниченный доступ:

Match User backupuser
AllowUsers backupuser
ForceCommand /usr/local/bin/backup-script.sh
X11Forwarding no
AllowTcpForwarding no

8. Мониторинг и логирование

Настройка логирования

1. Включите подробное логирование:

LogLevel VERBOSE
SyslogFacility AUTH

2. Настройте ротацию логов:

sudo nano /etc/logrotate.d/ssh

3. Добавьте конфигурацию:

/var/log/auth.log {
weekly
missingok
rotate 4
compress
delaycompress
notifempty
create 640 root adm
}

Мониторинг подключений

1. Просмотрите активные SSH сессии:

who
w

2. Просмотрите историю входов:

last
lastb

3. Просмотрите логи SSH:

sudo tail -f /var/log/auth.log | grep sshd

Создание скрипта мониторинга

1. Создайте скрипт мониторинга:

sudo nano /usr/local/bin/ssh-monitor.sh

2. Добавьте содержимое:

echo "=== SSH Connections ==="
who
echo "=== Failed Login Attempts ==="
sudo grep "Failed password" /var/log/auth.log | tail -10
echo "=== Recent SSH Logins ==="
sudo grep "sshd" /var/log/auth.log | tail -10

3. Сделайте скрипт исполняемым:

sudo chmod +x /usr/local/bin/ssh-monitor.sh

9. Управление SSH сервером

Основные команды управления

  • Запуск SSH:
sudo systemctl start ssh
  • Остановка SSH:
sudo systemctl stop ssh
  • Перезапуск SSH:
sudo systemctl restart ssh
  • Перезагрузка конфигурации:
sudo systemctl reload ssh
  • Проверка статуса:
sudo systemctl status ssh
  • Проверка конфигурации:
sudo sshd -t

Управление пользователями

1. Добавьте пользователя в группу ssh:

sudo usermod -aG ssh username

2. Заблокируйте пользователя:

sudo usermod -L username

3. Разблокируйте пользователя:

sudo usermod -U username

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

Частые проблемы

1. SSH не запускается:

  • Проверьте конфигурацию:
    sudo sshd -t
  • Проверьте логи:
    sudo journalctl -u ssh

2. Не могу подключиться по SSH:

  • Проверьте статус сервиса:
    sudo systemctl status ssh
  • Проверьте файрвол:
    sudo ufw status
  • Проверьте порт:
    sudo netstat -tlnp | grep :22

3. Ошибка "Permission denied":

  • Проверьте права на ключи:
    ls -la ~/.ssh/
  • Проверьте конфигурацию SSH:
    sudo nano /etc/ssh/sshd_config

Диагностика подключения

1. Подключитесь с подробным выводом:

ssh -v username@server_ip

2. Проверьте сетевую связность:

ping server_ip
telnet server_ip 22

3. Проверьте DNS:

nslookup server_ip

11. Дополнительные настройки

Настройка SSH клиента

1. Создайте конфигурацию SSH клиента:

nano ~/.ssh/config

2. Добавьте настройки:

Host myserver
HostName server_ip
Port 22
User username
IdentityFile ~/.ssh/id_rsa
ServerAliveInterval 60
ServerAliveCountMax 3

Настройка SSH агента

1. Запустите SSH агент:

eval "$(ssh-agent -s)"

2. Добавьте ключ в агент:

ssh-add ~/.ssh/id_rsa

3. Настройте автозапуск агента:

echo 'eval "$(ssh-agent -s)"' >> ~/.bashrc
echo 'ssh-add ~/.ssh/id_rsa' >> ~/.bashrc

Настройка SSH туннелей

1. Создайте туннель для базы данных:

ssh -L 3306:localhost:3306 username@server_ip

2. Создайте SOCKS прокси:

ssh -D 8080 username@server_ip

3. Настройте автоматический туннель:

Host tunnel
HostName server_ip
LocalForward 3306 localhost:3306
LocalForward 8080 localhost:80

12. Безопасность и рекомендации

Рекомендации по безопасности

1. Регулярно обновляйте SSH:

sudo apt update && sudo apt upgrade openssh-server

2. Используйте сильные пароли или ключи 3. Отключите root вход 4. Измените стандартный порт 5. Настройте fail2ban 6. Используйте двухфакторную аутентификацию

Аудит безопасности

1. Проверьте конфигурацию на уязвимости:

sudo ssh-audit server_ip

2. Проверьте версию OpenSSH:

ssh -V

3. Проверьте поддерживаемые алгоритмы:

ssh -Q cipher
ssh -Q mac
ssh -Q kex

Заключение

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

Для размещения ваших проектов с настроенным SSH на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой SSH и обеспечением безопасности вашего сервера!