239 0

Настройка безопасного ftp (sftp)

Настройка SFTP по OpenSSH

SFTP – SSH File Transfer Protocol, SSH-протокол для передачи файлов. Он предназначен для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения. Вместе с клиентом ssh из пакета openssh ставиться утилита sftp. Её мы и будем настраивать для нашего безопасного ftp. Поэтому если вы уже установили openssh, то ничего больше устанавливать не прийдётся.

Настройка пользователей

Создаем пользователя user1, -m – создать домашнюю директорию пользователя, -s /usr/bin/nologin запрещает пользователю использовать shell.

sudo useradd -m -s /usr/bin/nologin user1

Зададим пароль на пользователя user1

sudo passwd user1

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

Настройка файла /etc/ssh/sshd_config

Закомментируем строку:

#Subsystem sftp /usr/lib/openssh/sftp-server

Добавим строку:

Subsystem sftp internal-sftp

В целях безопасности можно изменить стандартный порт подключения, в строке:

Port 22

на любой другой порт.

Добавим в конец файла, очень важно, именно в конец:

Match User user1 # Применять команды только к указанному пользователю
ForceCommand internal-sftp # SSH сервер принудительно запускает SFTP, без доступа к shell.
PasswordAuthentication yes # Включает поддержку парольной аутентификации
ChrootDirectory /home/ # Блокирует доступ ко всем каталогам, кроме /home/user1
PermitTunnel no # Отключаем туннелирование
AllowAgentForwarding no # Отключаем форвардинг
AllowTcpForwarding no # Отключаем форвардинг
X11Forwarding no # Отключаем X11

Перезапустим SSH-сервер:

sudo systemctl restart sshd
Настройка firewall
sudo ufw allow номер_вашего_порта
sudo ufw limit ssh # Запретить более 6 попыток подключения к SSH за 30 секунд
sudo ufw enable # Включение ufw
Проверка, подключение и работа

Пробуем подключиться по ssh:

ssh user1@ip_сервера

Если меняли порт то:

ssh -p номер_порта user1@ip_сервера

На что должны получить ошибку что ддля этого пользователя доступ только по sftp
This service allows sftp connections only.

Для подключения к sftp:

sftp user1@ip_сервера

Если меняли порт то:

sftp -P номер_порта user1@ip_сервера

? – Посмотреть все доступные команды

Наиболее используемые команды для работы с ftp

ls – посмотреть содержимое текущей директории
cd user1 – Перейти в свою директорию, именно в ней у нас полный доступ
put movie.avi – Загрузить файл movie.avi с домашнего каталога локального компьютера
put movie.avi xxx.avi – Загрузить файл movie.avi изменив его имя на xxx.avi
put -r Directory – Загрузить каталог с файлами
get file.txt – скачать файл с sftp сервера, сохранит в домашнюю директорию
rm movie.avi – Удалить файл movie.avi

И так, на примере Ubuntu 16 LTS, мы настроили наш безопасный ftp сервер (sftp) для одного пользователя, таким же образом их можно добавить сколько угодно. Мы сменили стандартный порт подключения, запретили ftp пользователю выполнять какие либо команды shell, кроме тех что нужны для работы со своим каталогом и файлами. Настроили файрвол. Можно пойти ещё дальше и настроить sftp доступ по ключам (настраивается так же как обычный ssh). Но это осложнит работу сторонних ftp программ с нашим сервером, это следует делать для серверов где требуется максимальный уровень безопасности.

Tagged with: ,

RELATED ARTICLES

LEAVE YOUR COMMENT

Your email address will not be published. Required fields are marked *




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

technicscoffee.com

Если вас как и меня интересуют: Linux, фантастика, технологии, игры и фильмы данных тематик, добро пожаловать на мой более развлекательный ресурс!

Категории