Рубрики
Linux

Настройка SSH сервера

Прочитано: 205

В Debian можно установить сервер при установке ОС



Создать пользователя, выбрать настройки по умолчанию (нажать Enter)
useradd --home /home/user --shell /bin/false user



Создать папку
mkdir /home/user
chmod 755 /home/user # права доступа
chown user:user /home/user # владелец:группа



Весь перечень настроек в файле /etc/ssh/sshd_config

# По умолчанию 22, а 2203 поможет от роботов-сканеров
Port 2203 # порт для подключения к серверу

# Для ограничения доступа по сетевым интерфейсам
#ListenAddress :: # ipv6
#ListenAddress 0.0.0.0 # ipv4
# Например,
#ListenAddress 192.168.0.2 # или
#ListenAddress 192.168.0.2:2203 # закоментировав строку выше 'Port 2203'

# Версия протокола, 1 - не безопасна
Protocol 2

# Ключи безопасности
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

# Использовать разделение процессов по привилегиям
# для предотвращения превышения прав доступа.
UsePrivilegeSeparation yes

# Временный ключ и его длина при работе с первой версией протокола SSH
#KeyRegenerationInterval 3600
#ServerKeyBits 1024

# Журналирование в файл /var/log/auth
SyslogFacility AUTH # события в журнале DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7
LogLevel INFO # уровень детализации журнала SILENT, QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3

# Время для аутентификации пользователя
LoginGraceTime 60

# Вход под суперпользователем
#PermitRootLogin without-password # без пароля
PermitRootLogin no # запретить
# Проверка прав и владения домашним каталогом пользователя,
# который пытается получить удалённый доступ к компьютеру.
StrictModes yes

# Аутентификация RSA
RSAAuthentication yes
# Аутентификация по открытому ключу
PubkeyAuthentication yes
# Файл, в котором содержаться публичные ключи, используемые для аутентификации пользователей
# %h означает домашний каталог пользователя, а %u – имя пользователя
#AuthorizedKeysFile %h/.ssh/authorized_keys

# Совместимость с программой rhosts
IgnoreRhosts yes
RhostsRSAAuthentication no

# Аутентификация hostbased
HostbasedAuthentication no
# Совместимость с rhosts
#IgnoreUserKnownHosts yes

# Разрешить или запретить вход с пустым паролем
PermitEmptyPasswords no # запретить

# Параметр включает PAM интерфейс
ChallengeResponseAuthentication no

# Параметр отвечает за аутентификацию по паролю
PasswordAuthentication yes

# Аутентификация Kerberos
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# Аутентификация пользователя на основе GSSAPI
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

# Проброс иксов через ssh туннель
#X11Forwarding yes
#X11DisplayOffset 10
# Выводит при подключении сообщение из файла /etc/motd
PrintMotd no
PrintLastLog yes # статистика входов
# Для поддержания соединения со стороны сервера
#TCPKeepAlive yes
TCPKeepAlive no
# Количество запросов клиенту
ClientAliveCountMax 3
# Интервал отправки запросов в секундах
ClientAliveInterval 100
#UseLogin no

# Количество неавторизованных подключений
# start:rate:full, где start – это уже имеющееся количество неавторизованных подключений,
# rate – процент вероятности отклонения попытки подключения,
# full – максимальное количество неавторизованных соединений.
#MaxStartups 10:30:60
MaxStartups 3:30:9
# Файл-баннер, который будет выведен на экран при попытке подключения к серверу
#Banner /etc/issue.net
# Скрыть информацию об операционной системе
DebianBanner no

# Параметр указывает, какие переменные окружения, переданные клиентом, будут приняты
AcceptEnv LANG LC_*

# Параметр включает внешнюю подсистему
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

# Если директива UsePAM включена, то запустить sshd можно будет только от имени root
UsePAM yes

# Разрешить подключение определённым пользователям
AllowUsers user@192.168.0.3 admin # разрешено подключение пользователю user с компьютера по адресу 192.168.0.3
# и пользователя admin с любого адреса

# Для одного пользователя
# %u - имя пользователя
# %h - домашняя папка
Match User user
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
PermitTunnel no
ForceCommand internal-sftp

# Для группы пользователей
#Match Group www-data
#ChrootDirectory %h
#X11Forwarding no
#AllowTcpForwarding no
#AllowAgentForwarding no
#PermitTunnel no
#ForceCommand internal-sftp


Дополнение
Возможно ограничить доступ в файле /etc/hosts.allow

sshd : 192.168.0.3 # по ip-адресу


Генерация ключа для подключения к ssh-серверу

# Команда для создания двух файлов id_rsa и id_rsa.pub
ssh-keygen -t rsa # или ssh-keygen -t dsa

# Теперь с клиента копируем сгенерированный ключ на сервер вручную по FTP или командой (утилита scp входит в пакет OpenSSH)
scp –P 2203 ~/.ssh/id_rsa.pub user@domen.ru:.ssh/

# Добавить данные из id_rsa.pub в общий файл
cat id_rsa.pub >> ~/.ssh/authorized_keys # добавление информации в файл авторизации на сервере
rm id_rsa.pub # удаление файла


# Настроить конфигурацию в файле, сохранить «ctrl+o» и закрыть «ctrl+x»
sudo nano /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
AuthorizedKeysFile %h/.ssh/authorized_keys

# Перезагрузить сервер SSH
sudo service ssh restart

# Соединяться с сервером командой
ssh -i /path-to-private-key username@remote-host-ip-address

# Для исправления аутентификации по ключу
eval "$(ssh-agent -s)" # включение синтаксис Bourne Shell для агента - хранителя секретных ключей, который взаимодействует с ssh
ssh-add # сообщает агенту информацию о ключах из файлов identity, id_dsa и id_rsa
ssh-add -l # вывод известных агенту ключей
# или ssh-add ~/.ssh/other_key # сообщает агенту о ключах из файла other_key



Материалы

Добавить комментарий

Ваш адрес email не будет опубликован.

шестнадцать + пять =