Windows server 2016 sftp server

С помощью встроенного пакета OpenSSH для Windows вы можете легко настроить безопасную передачу файлов между клиентом и серверов Windows по защищенному протоколу передачи файлов SFTP (Secure FTP). В этой статье мы покажем, как установить и настроить установить SFTP сервер в Windows 10/11 или Windows Server 2022/2019/2016/2012R2 с помощью встроенных средств (Win32-OpenSSH).

Содержание:

  • Установка OpenSSH в Windows
  • Настройка SFTP сервера на базе OpenSSH в Windows
  • Подключение к SFTP серверу с помощью PowerShell и WinSCP
  • Настройка SFTP аутентификации по ключам

Протокол SFTP (Secure File Transfer Protocol , Secure FTP или SSH FTP) это расширение протокола SSH, являющимся стандартом мира UNIX/Linux систем. Хотя с точки зрения пользователей он похож на FTP, но на самом деле это абсолютно другой протокол, не имеющий с FTP ничего общего. Данные между клиентом и сервером передаются по порту 22 через SSH туннель.

Основные преимущества протокола SFTP:

  • Передача файлов и команд происходит внутри защищенной SSH-сессии;
  • Для передачи файлов и команд используется одно соединение;
  • Поддерживаются символические ссылки, доступны функций прерывания, возобновления передачи, удаления файла и другие;
  • Обычно на каналах, где FTP работает медленно или с перебоями, SFTP-соединение работает более надежно и быстро;
  • Возможность аутентификации с помощью SSH ключей.

Не нужно путать протоколы SFTP и FTPS. FTPS – это по сути обычный FTP с SSL сертификатом, а SFTP – это передача FTP данных и команд внутри SSH сессии.

В современные версии Windows по-умолчанию встроен порт OpenSSH для win32 (Win32-OpenSSH). Вы можете использовать его для организации защищенного SFTP сервера вместо таких сторониих продуктов как Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch и пр.

Установка OpenSSH в Windows

Пакет OpenSSH уже включен в операционную систему в современных билдах Windows 10 (начиная с 1803), Windows 11, Windows Server 2022/2019 в виде Feature on Demand (как и RSAT).

В этих версиях Windows вы можете установить сервер OpenSSH с помощью PowerShell:

Add-WindowsCapability -Online -Name OpenSSH.Server*

Или с помощью DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

Также можно установить OpenSSH из графического интерфейса Windows 10 (Settings -> Apps -> Optional Features -> Add a feature -> Open SSH Server -> Install).

установка сервере openssh в windows

Чтобы проверить, установлен ли пакет:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Исполняемые файлы OpenSSH находятся в каталоге:

C:\windows\system32\OpenSSH\

Конфигурационный файл sshd_config находится в каталоге C:\ProgramData\ssh (каталог создается после первого запуска службы).

Лог — c:\windows\system32\OpenSSH\logs\sshd.log

Файл authorized_keys и ключи хранятся в каталоге %USERPROFILE%\.ssh\.

В предыдущих версиях Windows 10, в Windows 8.1 или в Windows Server 2016/2012 R2 вам придется скачать Win32-OpenSSH для Windows с GitHub и установить вручную (https://github.com/PowerShell/Win32-OpenSSH/releases). Нам нужна версия для 64 битной версии Windows: OpenSSH-Win64.zip (4,15 Мб).

  1. Распакуйте содержимое архива в целевой каталог, к примеру:
    C:\OpenSSH-Win
  2. Запустите командную строку PowerShell с правами администратора и перейдите в каталог OpenSSH:
    cd C:\OpenSSH-Win
  3. Добавьте путь к каталогу OpenSSH в переменную окружения Path;добавить путь к openssh в переменную окружения path
  4. Установите сервер OpenSSH:
    .\install-sshd.ps1
    должно появиться зеленое сообщение “sshd and ssh-agent services successfully installed”).powershell скрипт установки openssh install-sshd.ps1

Настройка SFTP сервера на базе OpenSSH в Windows

Теперь вам нужно настроить OpenSSH для режима SFTP.

Включите автозапуск для службы SSHD и запустите ее с помощью следующих PowerShell команд управления службами:

Set-Service -Name sshd -StartupType ‘Automatic’

Start-Service sshd

С помошью PowerShell отройте в брандмауэре Windows порт TCP 22 для входящего трафика на SSH сервер:

New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
Правило файервола для SSHD порт 22Откройте в любом текстовом редакторе конфигурационный файл «C:\ProgramData\SSH\sshd_config», найдите и проверьте значение директивы Subsystem sftp. Здесь должен быть указан файл sftp-server.exe.

sshd_config файл конфигурации sftp_server

Рассмотрим полезные директивы в конфигурационном файле sshd_config:
# разрешить подключение к OpenSSH только для пользователей из этой группы

AllowGroups corp\admingroup
# включить аутентификацию по паролю (нельзя использовать ключи SSH)
AuthenticationMethods password
ForceCommand internal-sftp
#каталог для SFTP пользователей (по умолчанию пользователь подключается в каталог со своим профилем в папке C:\users\username)
ChrootDirectory C:\SFTPRoot

#Для каждого пользователя можно индивидуальную chrootdirectory:

Match User user1
ChrootDirectory c:\SFTPRoot\user1
ForceCommand internal-sftp
X11Forwarding no
 AllowTcpForwarding no
Match User user2
ChrootDirectory c:\SFTPRoot\user2
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

Подключение к SFTP серверу с помощью PowerShell и WinSCP

Теперь вы может подключиться к вашему SSH серверу на Windows по протоколу SFTP. Ниже мы покажем, как подключиться к SFTP серверу с помощью бесплатного клиента клиент WinSCP, консоли PowerShell и встроенной утилиты sftp.exe.

В окне настройки подключения выберите протокол передачи файлов SFTP, укажите имя сервера и данные учетной записи Windows (в формате
user@domain
для доменных пользователей), под которой осуществляется подключение (возможно также настроить авторизацию по ключам). При первом подключении появится окно с предупреждением о том, что ключ хоста отсутствует в локальном кеше.

winscp настройки sftp подключенияПри первом подключении появится окно с предупреждением о том, что ключ хоста отсутствует в локальном кеше.

key-warningЕсли все настроено правильно, клиент должен подключиться к SFTP серверу и отобразить список файлов в домашнем каталоге пользователя (по умолчанию каталог с профилем пользователя).

С помощью привычного интерфейса файлового менеджера можно безопасно копировать файлы между сервером и клиентом по защищённому протоколу SFTP.

sftp подключение в winscp

Для подключения к SFTP серверу из PowerShell можно использовать модуль Posh-SSH. Вы можете скачать установить модуль из PowerShell Gallery или офлайн:

Install-Module -Name Posh-SSH

установка модуля powershell ssh

Для подключения к SFTP серверу с помощью пароля, нужно получить имя пользователя и пароль через Get-Credential:

$usrCreds= Get-Credential

Теперь можно подключиться к вашем SFTPS серверу:

$SFTPSession = New-SFTPSession -ComputerName 192.168.13.200 -Credential $usrCreds

Теперь вы можете вывести список файлов в удаленном каталоге на SFTP сервере. В этом примере я получу список файлов на рабочем столе пользователя (профиль пользователя в этом случае будет являться корнем)

Get-SFTPChildItem -SFTPSession $SFTPSession -Path "desktop" –Recurse

powershell вывести список файлов на sftp сервере

Чтобы скачать файл с удаленного SFTP сервера:
Get-SFTPItem -SessionId $SFTPSession.SessionId -Path "desktop/OpenVPNScript.log" -Destination c:\temp

Чтобы закачать файл с вашего компьютера на удаленный SFTP хост:

Set-SFTPItem -SessionId $SFTPSession.SessionId -Path C:\Temp\mytestfile.log -Destination “desktop”

скачать файл с sftp с помощью powershell

Завершить SFTP сессию:

Remove-SFTPSession -SFTPSession $SFTPSession

В Windows вы можете использоваться встроенную утилиту sftp.exe (устанавливается вместе с клиентом OpenSSH) для подключения к SFTP серверу.

Подключиться к sftp серверу:

sftp [email protected]

Подключиться с помощью ssh ключа:

sftp -i .ssh/id_rsa [email protected]

Вывести список файлов в удаленном каталоге:

pwd

Скачать файл с SFTP в локальный каталог на ваш компьютер:

get file-test1.txt

Загрузить файл с вашего компьютера на SFTP сервер:

put file-test2.txt

Закрыть сессию:

exit

утилита sftp.exe в Windows

Настройка SFTP аутентификации по ключам

Вы можете настроить SFTP аутентификацию по ключам. В этом случае при подключении к SFTP серверу вам не нужно будет указывать пароль пользователя.

Подробно настройка SSH аутентификации по ключам описана в этой статье.

Для этого нужно:

  1. Создать на вашем компьютере (SFTP клиент) ключи для пользователя, под которым вы будете подключаться к серверу:
    ssh-keygen -t ed25519
    генерация пары ssh ключей для sftp в windows
  2. Утилита сгенерирует два файла
    id_ed25519
    (закрытый ключ для клиента) и
    id_ed25519.pub
    (открытый ключ для сервера);
  3. Теперь нужно добавить ваш SSH ключ на сервер. Скопируйте файл id_ed25519.pub(или id_rsa.pub в зависимости от типа ключа) в каталог .ssh профиля пользователя, под которым вы будете подключаться к SFTP серверу. Переименуйте файл в authorized_keys (например для пользователя alex путь будет выглядеть так:
    C:\Users\alex\.ssh\authorized_keys
    )

Теперь вы можете использоваться файл id_ed25519 для аутентификации на SFTP сервере в настройках WinSCP (настройки подключения Advanced -> to SSH > Authentication page -> Private key file).

Если вы хотите задать SSH ключ при подключении к SFTP из PowerShell, используйте такую команду:

New-SFTPSession -ComputerName 192.168.13.200 -Credential user1 -KeyFile C:\Users\alex\.ssh\id_ed25519" -Verbose

The Secure File Transfer Protocol (SFTP) server is a reliable protocol designed specifically for secure file transfers. Its primary purpose is to facilitate the secure exchange of files between machines by establishing a secure connection.

SFTP enables file transfers in various configurations, such as server-to-server or client-to-server setups. This versatile protocol ensures that files are transferred securely, even across networks that may be considered insecure or vulnerable to unauthorized access.

By leveraging the capabilities of SFTP, you can confidently send confidential files over networks, ensuring their privacy and integrity throughout the transfer process.

Please refer to the following steps to set up SFTP on Windows Server 2016.

1. At first, Download OpenSSH-Win64.zip from this link.

2. Create a folder called OpenSSH-Win64 at location C:\Program Files (x86) and extract the downloaded file into it.

openssh-win64

3. Right-click and open the command prompt with admin credentials and run the below command.

run-as-administrator

powershell.exe -file ”C:\Program Files (x86)\OpenSSH-Win64\install-sshd.ps1”

cmd

4. Go to the services.msc >> Find OpenSSH Authentication Agent and OpenSSH SSH Server.

5. Start both the service and change startup type from Manual to Automatic.

open-ssh-service

6. Go to the path C:\ProgramData\ssh and open the sshd_config file; change the root directory to the path where you want to upload your files using SFTP.

sshd-config

7. Create a user to log in for FTP. You can refer to Create User > Windows 2016 to create a user.

8. Provide the Read/Write folder permission to a newly created user and click on the OK button.

read-write-permission

9. Open your favorite FTP client. Here, we have used a Filezilla FTP client.

10. Click on Site Manager and enter the below details and click on the connect button.

  • Host: Enter Server IP Address.
  • Port: 22.
  • Protocol: SFTP- SSH File transfer.
  • User: Enter Newly Created User.
  • Password: User Password.

    connect

11. If there is a message that says Directory listing of «/» successful, it means FTP is working fine.

connected-successfully


That’s all.


Was this answer helpful?

Windows Server 2016 предлагает возможность настройки SFTP-сервера для безопасного обмена данными. SFTP (Secure File Transfer Protocol) является шифрованным протоколом, который обеспечивает защищенную передачу файлов между удаленными устройствами. В данной статье мы рассмотрим процесс настройки SFTP-сервера на сервере под управлением Windows Server 2016.

Настройка SFTP-сервера на Windows Server 2016 предлагает широкие возможности для безопасного обмена данными. С использованием шифрования данных и аутентификации пользователей, SFTP-сервер обеспечивает высокий уровень безопасности при передаче файлов.

Для настройки SFTP-сервера на Windows Server 2016 необходимо выполнить несколько шагов. Сначала необходимо установить и настроить OpenSSH, который является инструментом для поддержки SFTP-сервера в Windows Server 2016. Затем необходимо настроить права доступа для пользователей и определить папки для SFTP-сервера. Кроме того, можно настроить логирование и мониторинг событий на SFTP-сервере.

Содержание

  1. Windows Server 2016: настройка SFTP-сервера
  2. Установка Windows Server 2016
  3. Установка и настройка OpenSSH
  4. Генерация ключей для SFTP-сервера
  5. Настройка безопасности SFTP-сервера
  6. Настройка пользователей и прав доступа на сервере
  7. Настройка фаервола для безопасного обмена данными
  8. Тестирование доступа и передача данных через SFTP-сервер

Windows Server 2016: настройка SFTP-сервера

Для безопасного обмена данными между клиентами и сервером в Windows Server 2016 можно настроить SFTP-сервер. Это позволит обеспечить безопасный и защищенный канал для передачи файлов.

Вам понадобится установленная операционная система Windows Server 2016 и административные привилегии для настройки SFTP-сервера.

Следуйте этим шагам для настройки SFTP-сервера:

  1. Установите ОС Windows Server 2016 на сервер.
  2. Установите программу для настройки SFTP-сервера, например, OpenSSH или FileZilla Server. Выберите программу, которая соответствует вашим требованиям и инструкциям.
  3. Настройте программу SFTP-сервера, используя инструкции по установке и настройке. При этом убедитесь, что выбранный вами сервер SFTP использует SSL/TLS-защиту и аутентификацию.
  4. Настройте межсетевой экран Windows (Windows Firewall), чтобы разрешить входящие соединения на порт, который используется сервером SFTP.
  5. Создайте пользователей или группы пользователей для доступа к SFTP-серверу. Установите необходимые разрешения и ограничения для каждого пользователя.
  6. Убедитесь, что сервер SFTP работает должным образом, отправляя и принимая файлы через защищенное соединение.
Преимущества настройки SFTP-сервера:
1. Защищенный канал передачи данных.
2. Возможность ограничения доступа к файлам и каталогам.
3. Шифрование данных для предотвращения несанкционированного доступа.
4. Поддержка аутентификации пользователя.

Настройка SFTP-сервера в Windows Server 2016 позволит безопасно и эффективно обмениваться данными между клиентами и сервером.

Установка Windows Server 2016

Прежде чем приступить к установке Windows Server 2016, нужно убедиться, что ваш компьютер или сервер удовлетворяет системным требованиям операционной системы.

Далее необходимо приобрести или скачать образ Windows Server 2016 с официального сайта Microsoft. Скачанный образ можно записать на DVD или создать загрузочную флешку.

После этого при помощи загрузочной флешки или DVD нужно запустить процесс установки. Процесс установки Windows Server 2016 довольно прост и интуитивно понятен.

Во время установки вам потребуется выбрать язык установки, формат даты и времени, а также клавиатуру для ввода. Затем следует принять лицензионное соглашение.

Далее у вас будет выбор между «установкой» и «обновлением». Выберите «установку», если вы хотите установить систему на пустой жесткий диск, или «обновление», чтобы обновить уже существующую систему.

После этого вы должны выбрать диск, на который будет установлена операционная система. Помимо этого, вы можете выбрать другие параметры установки, такие как указание имени компьютера и пароля администратора.

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

Поздравляю, вы успешно установили Windows Server 2016!

Установка и настройка OpenSSH

Для обеспечения безопасного обмена данными по протоколу SFTP необходимо установить и настроить OpenSSH.

1. Установка OpenSSH.

Для установки OpenSSH на сервере Windows Server 2016 выполните следующие шаги:

  1. Откройте Консоль управления сервером.
  2. Перейдите в меню «Добавить роли и компоненты».
  3. В появившемся окне выберите «Установка с сервером и поставить роль в службу OpenSSH Server» в качестве новой роли.
  4. Нажмите «Далее» и установите роль на сервер.
  5. Завершите процесс установки и перезагрузите сервер.

2. Настройка OpenSSH.

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

  1. Откройте Консоль управления сервером.
  2. Перейдите в «Администрирование» и выберите «Сервер OpenSSH».
  3. В появившемся окне выберите «Конфигурация сервера OpenSSH».
  4. Настройте необходимые параметры безопасности, такие как порт и разрешенные пользователи.
  5. Сохраните изменения и перезапустите службу OpenSSH, чтобы применить настройки.

После установки и настройки OpenSSH на сервере Windows Server 2016, вы сможете безопасно обмениваться данными с помощью SFTP-протокола.

Генерация ключей для SFTP-сервера

Для обеспечения безопасной передачи данных по протоколу SFTP необходимо сгенерировать ключи для сервера. Ключи используются для шифрования и аутентификации соединения.

Генерация ключей выполняется с помощью утилиты OpenSSH Keygen, которая входит в состав сервера Windows. Последовательность действий при генерации ключей следующая:

  1. Откройте командную строку Windows с правами администратора.
  2. Перейдите в каталог, в котором будет сохранен приватный ключ:
cd C:\OpenSSH\keys

Примечание: в данном примере предполагается, что вы установили сервер OpenSSH по стандартному пути C:\OpenSSH.

  1. Сгенерируйте приватный ключ командой:
ssh-keygen -t rsa -b 4096 -f private.key

Эта команда создаст приватный ключ с алгоритмом шифрования RSA, длиной ключа 4096 бит и сохранит его в файле private.key.

  1. Введите путь, в котором будет сохранен публичный ключ или нажмите Enter для сохранения по умолчанию:
Enter file in which to save the key (C:\OpenSSH\keys\private.key):
  1. Введите парольный фразу для приватного ключа. Данная фраза будет использоваться для шифрования приватного ключа. Парольную фразу необходимо запомнить, так как она понадобится при настройке сервера:
Enter passphrase (empty for no passphrase):
  1. Подтвердите парольную фразу:
Enter same passphrase again:

После выполнения этих действий в каталоге C:\OpenSSH\keys будут созданы два файла: private.key (приватный ключ) и private.key.pub (публичный ключ).

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

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

1. Использование надежных паролей. Установите сложные и уникальные пароли для учетных записей пользователей на SFTP-сервере. Избегайте использования простых или очевидных паролей, таких как «123456» или «password». Лучше всего использовать комбинацию букв, цифр и специальных символов.

2. Аутентификация на основе ключей. Рекомендуется использовать аутентификацию на основе открытых ключей. Для этого необходимо сгенерировать пару ключей (приватный и публичный) и установить публичный ключ на SFTP-сервере.

3. Ограничение прав пользователей. Настраивайте права доступа пользователей на SFTP-сервере таким образом, чтобы они имели доступ только к необходимым файлам и директориям. Избегайте предоставления пользовательским учетным записям излишних прав доступа.

4. Шифрование данных. Включите шифрование данных при передаче через SFTP-сервер. Для этого можно использовать протокол SSH, который обеспечивает безопасную передачу данных между клиентом и сервером.

5. Обновление программного обеспечения. Регулярно обновляйте программное обеспечение SFTP-сервера, операционной системы и других компонентов системы. Обновления часто содержат исправления уязвимостей безопасности, поэтому их установка очень важна для поддержания безопасности сервера.

Мера безопасности Описание
Использование надежных паролей Создание сложных и уникальных паролей для пользователей SFTP-сервера
Аутентификация на основе ключей Использование открытых ключей для аутентификации пользователей
Ограничение прав пользователей Настройка прав доступа пользователей на сервере
Шифрование данных Включение шифрования данных при передаче через SFTP
Обновление программного обеспечения Регулярное обновление SFTP-сервера и операционной системы

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

Для обеспечения безопасности на сервере необходимо настроить пользователей и права доступа к файлам и папкам.

Для начала, создайте нового пользователя с помощью следующей команды:

useradd -m -s /sbin/nologin <имя_пользователя>

Здесь <имя_пользователя> — это желаемое имя нового пользователя.

После создания пользователя, нужно задать ему пароль командой:

passwd <имя_пользователя>

Далее, необходимо создать директорию для пользователей сервера, в которой будут храниться их файлы. Сделать это можно с помощью команды:

mkdir /home/sftp-users

Затем, измените права доступа к директории командой:

chmod 750 /home/sftp-users

Последний шаг — привязать пользователя к директории. Для этого отредактируйте файл /etc/ssh/sshd_config и добавьте или измените следующие строки:

Subsystem   sftp    internal-sftp
Match Group sftp-users
ChrootDirectory /home/sftp-users
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

В этом примере мы использовали группу пользователей sftp-users и директорию /home/sftp-users, которую мы создали ранее.

После внесения изменений, перезапустите службу SSH командой:

service ssh restart

Теперь пользователи сгруппированные в группу sftp-users смогут подключаться по SFTP и иметь ограниченный доступ только к своей директории.

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

Фаервол — это программное или аппаратное обеспечение, которое контролирует входящий и исходящий сетевой трафик и применяет различные правила для обеспечения безопасности сети.

В случае обмена данными по протоколу SFTP, необходимо открыть порт для принятия входящих соединений. Для этого необходимо выполнить следующие шаги:

1. Откройте Windows Defender Firewall

2. Нажмите на «Дополнительные настройки» в левой части окна

3. Выберите «Входящие правила»

4. Нажмите на «Создать правило»

5. В появившемся окне выберите тип правила «Порт»

6. Выберите «TCP» и введите номер порта, который будет использоваться для SFTP (например, 22)

7. Выберите «Разрешить подключения»

8. Выберите тип сети, для которой применяется правило (например, «общедоступная сеть»)

9. Назовите правило (например, «Открыть порт для SFTP»)

10. Нажмите «Закончить», чтобы создать правило

После настройки фаервола для принятия входящих соединений по протоколу SFTP, сервер будет готов к безопасному обмену данными.

Тестирование доступа и передача данных через SFTP-сервер

Осуществление проверки доступа к SFTP-серверу:

  1. Установите клиентское ПО для работы по протоколу SFTP (например, FileZilla).
  2. Откройте клиентское приложение и создайте новое подключение.
  3. Введите адрес SFTP-сервера, логин и пароль учетной записи.
  4. Установите порт подключения — стандартным является порт 22.
  5. Подтвердите установку соединения и дождитесь успешного подключения к серверу.

Передача данных через SFTP-сервер:

  1. Создайте новый локальный файл или выберите файл для загрузки на сервер.
  2. Выполните команду «Загрузить» или аналогичную в выбранном SFTP-клиенте.
  3. Выберите путь на сервере, куда будет загружен файл.
  4. Дождитесь успешной передачи файла на SFTP-сервер.

Процесс скачивания данных с SFTP-сервера:

  1. Выберите файл на SFTP-сервере, который необходимо скачать.
  2. Выполните команду «Скачать» или аналогичную в выбранном SFTP-клиенте.
  3. Выберите путь на локальном компьютере, куда будет сохранен скачанный файл.
  4. Дождитесь завершения процесса скачивания данных.

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



Posted in
: NetScaler

By Rasmus Kindberg


Translate with Google ⟶

4 years ago

For a recent customer engagement we needed to provide internal and external users with the ability to upload/download files through SFTP to a specific backend-server. For security reasons we decided to tunnel the SFTP traffic through the customer’s Netscaler, and so for this setup you need to do some Netscaler configuration and then the actual SFTP server configuration on the backend server.
The native FTP software available as an addon in IIS does not support SFTP, and we do not wish to use regular FTP since username/passwords will be sent in clear text over the network. FTPS was not an option for us since the FTP client the users will be using does not support it.
Another important factor or requirement is to have AD authentication available, so admins don’t have to manage specific SFTP accounts and also so users don’t have to remember an additional username/password for SFTP. So I looked at a few freeware options for SFTP server (Turbo SFTP for example), but none of them really worked that great. Finally I ended up using the OpenSSH version for Windows (https://github.com/PowerShell/Win32-OpenSSH/releases) since this satisfied all the requirements.
Below are the steps to installing and configuring OpenSSH for Windows.

  1. Download ”OpenSSH-Win64.zip” from https://github.com/PowerShell/Win32-OpenSSH/releases
  2. Extract downloaded zip file
  3. Create folder ”C:\Program Files (x86)\OpenSSH-Win64\” and copy the extracted files there
  4. Run below in cmd (run cmd as admin):
    powershell.exe -file ”C:\Program Files (x86)\OpenSSH-Win64\install-sshd.ps1”
  5. Run services.msc and change Startup Type from Manual to Automatic for the two new services ”OpenSSH Authentication Agent” and ”OpenSSH SSH Server”
  6. Edit file ”C:\ProgramData\ssh\sshd_config” in notepad and add below text at top of file. Note that any group names and folder paths specified in the config must be specified using lowercase letters (but whether the real group/folder names are lowercase or not doesn’t matter). See https://github.com/PowerShell/Win32-OpenSSH/wiki/sshd_config for more info
  7. #CUSTOM
    #Restricts logon through SFTP to only these users
    AllowGroups mydomain\somerandomadgroup
    #We specify that we only allow logons for connections originating from IP 192.168.1.101. #In this case this IP is the Netscaler Subnet IP, the IP the Netscaler will use to communicate with the backend server.
    #We don't want to allow any device/person, except our Netscaler, to be able to connect to our SFTP server.
    AllowUsers *@192.168.1.101
    #Specifies that we're using passwords and not SSH keys to authenticate
    AuthenticationMethods password
    #Forcing SFTP functionality, needed for ChrootDirectory parameter below
    ForceCommand internal-sftp
    #Specify the default folder the user sees after SFTP authentication. Without this, users will see C:\users\myuser\ as default folder, which is not usually preferable.
    ChrootDirectory C:\inetpub\wwwroot\ftpfolder
    #Below three parameters are recommended as best practice to prevent certain security bypassing
    AllowTcpForwarding no
    PermitTunnel no
    GatewayPorts no
  8. Restart service ”OpenSSH SSH Server” (any changes to config file above won’t take effect until service is restarted)
  9. Optional: Open port 22 in the Windows Firewall on the backend server so Netscaler can communicate with it.
  10. Now you can use SFTP to connect to this server using AD credentials (just entering sAMAccountName is sufficient). Only users in AD grup ’mydomain\SomeRandomADGroup’ are allowed to logon. Access to any subfolders in C:\inetpub\wwwroot\ftp\ through SFTP will be dictated by NTFS rights. I suggest using AD groups + NTFS rights to control which subfolders the users should be able to read/write to.

 
The Netscaler configuration is quite trivial. After below you probably want to create an internal and external dns, such as ’myapp.mydomain.com’, pointing to 192.168.1.15 internally and the external IP (which gets NATed to 172.16.1.155 in firewall) so that users can specify ’myapp.mydomain.com’ in their SFTP client (instead of IP addresses).

add ns acl A-ANY-CS-INTERNAL_15_SFTP-TCP_22 ALLOW -destIP = 192.168.1.15 -destPort = 22 -protocol TCP -priority 70
add ns acl A-ANY-CS-DMZ_155_SFTP-TCP_22 ALLOW -destIP = 172.16.1.155 -destPort = 22 -protocol TCP -priority 80
add server myserver.mydomain.local 192.168.2.25 -comment "SFTP server"
add service SVC-APPNAME-SFTP myserver.mydomain.local TCP 22 -healthMonitor YES -gslb NONE -maxClient 0 -maxReq 0 -usip NO -useproxyport YES -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO -appflowLog DISABLED -CIP ENABLED X-MS-Forwarded-Client-IP -netProfile NP_INTERNAL_SNIP
add lb monitor MON-APPNAME-SFTP TCP -LRTM ENABLED -destPort 22 -interval 20 -resptimeout 15 -netProfile NP_INTERNAL_SNIP-MON
bind service SVC-APPNAME_SFTP -monitorName MON-APPNAME-SFTP
add lb vserver LB-EXT_APPNAME_SFTP TCP 192.168.1.15 22 -persistenceType SOURCEIP -timeout 30
add lb vserver LB-INT_APPNAME_SFTP TCP 172.16.1.155 22 -persistenceType SOURCEIP -timeout 30
bind lb vserver LB-INT_APPNAME_SFTP SVC-APPNAME_SFTP
bind lb vserver LB-EXT_APPNAME_SFTP SVC-APPNAME_SFTP

Tags
: ftp, openssh, sftp

so i can show you once it will be

installed the open

ssh server service will be there

i’ll keep refreshing

okay open ssh ssh service is showing now

now we have to configure these two

services to start

on automatic mode at startup click apply

and then start the services

go to your ssh server service startup

type again

automatic apply and click on start

button

now we have done the step one and step

two now we have to configure the root

directory for open ssh server

by default it’s go in your operating

system

partition and then users but i want to

make the sftp

default path or root path in the e drive

like sftp root

so i need to point my sftp server by

default on this path

i’ll copy this one

and open notepad run as administrator

click open and you have to

change path for c program data

and then ssh once you will be in that

directory

you need to select all files and here’s

the file

sshd underscore config you need to open

that one

and now find the key ch root directory

this one i’ll paste my path

new path here

and put it on codes

now i have to remove this hash so

changes can take effect

i’ll save it on the same location close

it and now go back to your

ssh server service and restart it

okay it’s done no i’ll install

any ftp client like filezilla

once the download is completed i’ll

install this client

okay on the fifth part now we have to

create a local user or the domain user

to connect the sftp server i’ll go back

to my

screen

and now we have to create a new site

site manager

new site

ttlab sftp

server now go to the protocol

and select the sftp

i’ll mention the local ip address or the

hostname of the server

port number will be remain 22

username will be sftp usr1

and then the password

click ok now let’s try to connect that

server

and it’s connected successfully

let me show you the path that we have

already set in the server

it’s e volume and then sftp root

and once the user will upload the data

it

it should be showing here let’s try that

suppose user is trying to create a new

directory here

which is sftp

usr 1

data

click ok go back to your server

check yes the directory is created here

now let’s try to upload some file to

make sure

the user have appropriate permission

there

i’ll go back to my

c

users

and then test user

i’ll try to find some file from my

downloads

and let’s say if i can

let’s check if i can upload this setup

remote desktop manager file

so the way is just

simply drag and drop here

now you can see on the bottom the file

is uploading successfully

go back to your file server and confirm

if the data is uploaded there

yes the data is uploaded in the server

so i’ll

also share this document with you uh in

video’s description

you will find the url link of this blog

so it’s better to follow the

step-by-step guide so you can get the

better idea how the sftp

configured thanks for watching

[Music]

you

  • Windows server 2016 книги на русском
  • Windows server 2016 storage server что это
  • Windows server 2016 keys activation server
  • Windows server 2016 datacenter evaluation активация
  • Windows server 2016 security update