Записки Админа

Записки, Freebsd, cisco,Eltex

SFTP на сервере Freebsd

Решил сделать безопасным соединение на веб сервер.
Вход только по сертификату ( ключу ) с не возможностью зайти по ssh.
Сложного ничего нет, но появились «подводные камни» в процессе.


sshd_config
Кусок конфига, для входа только по ключу.

Protocol 2 # включаем 2-ую версию протокола для улучшенной безопасности
PermitRootLogin no # запрет на логин root-ом
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
RhostsRSAAuthentication no
HostbasedAuthentication no
IgnoreRhosts yes
PasswordAuthentication no
PermitEmptyPasswords no
UseLogin no
UsePAM no # отключаем авторизацию по паролю (очень важно!)

Добавляем в конец sshd_config

AllowGroups wheel sftp
Subsystem sftp /usr/local/libexec/sftp-server
Match group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

Если с первого раза не заработало, то включаем дебаг и смотрим.
LogLevel DEBUG

Так же момент ( забыл, или не знал ) ключ нужно делать одной длины, что указали на сервере.
ServerKeyBits 4096
В одном месте прочитал что, для большей безопасности ServerKeyBits менять на нестандартный. Главное самому не забыть.

так же не забываем про права на:
chmod 600 ~/.ssh/authorized_keys

ChrootDirectory — владельцем этой папки должен быть root и у других пользователей не должно быть прав на запись.
В противном случае получим ошибку:
fatal: bad ownership or modes for chroot directory

Поэтому ChrootDirectory =/usr/home/ делается на каталог выше, где у пользователя нету прав на запись, а уже внутри каталога /usr/home/files у него есть права на запись.

Так же будет полезно, а то забываю всегда
pw groupadd имя группы
Создать группу.

pw groupdel имя группы
Удалить группу.

pw groupmod имя группы -m пользователь1,пользователь2
Добавить пользователей в группу.

pw groupmod имя группы -d пользователь1,пользователь2
Удалить пользователей из группы.

pw groupshow имя группы
Отобразить пользователей группы.

pw usershow user
user:*:1001:1001::0:0:User &:/home/user:/bin/sh
Отобразить информацию о пользователе

pw usermod user -s /usr/local/bin/bash
Установим новый shell :

Источники:
Using Putty on Windows to login Linux securely via OpenSSH
Аутентификация на SSH-сервере FreeBSD с использованием ключей.

Комментирование закрыто.