С помощью встроенного пакета 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).
Чтобы проверить, установлен ли пакет:
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 Мб).
- Распакуйте содержимое архива в целевой каталог, к примеру:
C:\OpenSSH-Win
- Запустите командную строку PowerShell с правами администратора и перейдите в каталог OpenSSH:
cd C:\OpenSSH-Win
- Добавьте путь к каталогу OpenSSH в переменную окружения Path;
- Установите сервер OpenSSH:
.\install-sshd.ps1
должно появиться зеленое сообщение “sshd and ssh-agent services successfully installed”).
Настройка 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
Откройте в любом текстовом редакторе конфигурационный файл «C:\ProgramData\SSH\sshd_config», найдите и проверьте значение директивы Subsystem sftp. Здесь должен быть указан файл sftp-server.exe.
Рассмотрим полезные директивы в конфигурационном файле 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
для доменных пользователей), под которой осуществляется подключение (возможно также настроить авторизацию по ключам). При первом подключении появится окно с предупреждением о том, что ключ хоста отсутствует в локальном кеше.
При первом подключении появится окно с предупреждением о том, что ключ хоста отсутствует в локальном кеше.
Если все настроено правильно, клиент должен подключиться к SFTP серверу и отобразить список файлов в домашнем каталоге пользователя (по умолчанию каталог с профилем пользователя).
С помощью привычного интерфейса файлового менеджера можно безопасно копировать файлы между сервером и клиентом по защищённому протоколу SFTP.
Для подключения к SFTP серверу из PowerShell можно использовать модуль Posh-SSH. Вы можете скачать установить модуль из PowerShell Gallery или офлайн:
Install-Module -Name Posh-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
Чтобы скачать файл с удаленного 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 сессию:
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 аутентификации по ключам
Вы можете настроить SFTP аутентификацию по ключам. В этом случае при подключении к SFTP серверу вам не нужно будет указывать пароль пользователя.
Подробно настройка SSH аутентификации по ключам описана в этой статье.
Для этого нужно:
- Создать на вашем компьютере (SFTP клиент) ключи для пользователя, под которым вы будете подключаться к серверу:
ssh-keygen -t ed25519
- Утилита сгенерирует два файла
id_ed25519
(закрытый ключ для клиента) и
id_ed25519.pub
(открытый ключ для сервера); - Теперь нужно добавить ваш 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.
3. Right-click and open the command prompt with admin credentials and run the below command.
powershell.exe -file ”C:\Program Files (x86)\OpenSSH-Win64\install-sshd.ps1”
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.
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.
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.
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.
11. If there is a message that says Directory listing of «/» successful, it means FTP is working fine.
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-сервере.
Содержание
- Windows Server 2016: настройка SFTP-сервера
- Установка Windows Server 2016
- Установка и настройка OpenSSH
- Генерация ключей для SFTP-сервера
- Настройка безопасности SFTP-сервера
- Настройка пользователей и прав доступа на сервере
- Настройка фаервола для безопасного обмена данными
- Тестирование доступа и передача данных через SFTP-сервер
Windows Server 2016: настройка SFTP-сервера
Для безопасного обмена данными между клиентами и сервером в Windows Server 2016 можно настроить SFTP-сервер. Это позволит обеспечить безопасный и защищенный канал для передачи файлов.
Вам понадобится установленная операционная система Windows Server 2016 и административные привилегии для настройки SFTP-сервера.
Следуйте этим шагам для настройки SFTP-сервера:
- Установите ОС Windows Server 2016 на сервер.
- Установите программу для настройки SFTP-сервера, например, OpenSSH или FileZilla Server. Выберите программу, которая соответствует вашим требованиям и инструкциям.
- Настройте программу SFTP-сервера, используя инструкции по установке и настройке. При этом убедитесь, что выбранный вами сервер SFTP использует SSL/TLS-защиту и аутентификацию.
- Настройте межсетевой экран Windows (Windows Firewall), чтобы разрешить входящие соединения на порт, который используется сервером SFTP.
- Создайте пользователей или группы пользователей для доступа к SFTP-серверу. Установите необходимые разрешения и ограничения для каждого пользователя.
- Убедитесь, что сервер 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 выполните следующие шаги:
- Откройте Консоль управления сервером.
- Перейдите в меню «Добавить роли и компоненты».
- В появившемся окне выберите «Установка с сервером и поставить роль в службу OpenSSH Server» в качестве новой роли.
- Нажмите «Далее» и установите роль на сервер.
- Завершите процесс установки и перезагрузите сервер.
2. Настройка OpenSSH.
Для настройки OpenSSH на сервере выполните следующие шаги:
- Откройте Консоль управления сервером.
- Перейдите в «Администрирование» и выберите «Сервер OpenSSH».
- В появившемся окне выберите «Конфигурация сервера OpenSSH».
- Настройте необходимые параметры безопасности, такие как порт и разрешенные пользователи.
- Сохраните изменения и перезапустите службу OpenSSH, чтобы применить настройки.
После установки и настройки OpenSSH на сервере Windows Server 2016, вы сможете безопасно обмениваться данными с помощью SFTP-протокола.
Генерация ключей для SFTP-сервера
Для обеспечения безопасной передачи данных по протоколу SFTP необходимо сгенерировать ключи для сервера. Ключи используются для шифрования и аутентификации соединения.
Генерация ключей выполняется с помощью утилиты OpenSSH Keygen, которая входит в состав сервера Windows. Последовательность действий при генерации ключей следующая:
- Откройте командную строку Windows с правами администратора.
- Перейдите в каталог, в котором будет сохранен приватный ключ:
cd C:\OpenSSH\keys
Примечание: в данном примере предполагается, что вы установили сервер OpenSSH по стандартному пути C:\OpenSSH.
- Сгенерируйте приватный ключ командой:
ssh-keygen -t rsa -b 4096 -f private.key
Эта команда создаст приватный ключ с алгоритмом шифрования RSA, длиной ключа 4096 бит и сохранит его в файле private.key.
- Введите путь, в котором будет сохранен публичный ключ или нажмите Enter для сохранения по умолчанию:
Enter file in which to save the key (C:\OpenSSH\keys\private.key):
- Введите парольный фразу для приватного ключа. Данная фраза будет использоваться для шифрования приватного ключа. Парольную фразу необходимо запомнить, так как она понадобится при настройке сервера:
Enter passphrase (empty for no passphrase):
- Подтвердите парольную фразу:
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-серверу:
- Установите клиентское ПО для работы по протоколу SFTP (например, FileZilla).
- Откройте клиентское приложение и создайте новое подключение.
- Введите адрес SFTP-сервера, логин и пароль учетной записи.
- Установите порт подключения — стандартным является порт 22.
- Подтвердите установку соединения и дождитесь успешного подключения к серверу.
Передача данных через SFTP-сервер:
- Создайте новый локальный файл или выберите файл для загрузки на сервер.
- Выполните команду «Загрузить» или аналогичную в выбранном SFTP-клиенте.
- Выберите путь на сервере, куда будет загружен файл.
- Дождитесь успешной передачи файла на SFTP-сервер.
Процесс скачивания данных с SFTP-сервера:
- Выберите файл на SFTP-сервере, который необходимо скачать.
- Выполните команду «Скачать» или аналогичную в выбранном SFTP-клиенте.
- Выберите путь на локальном компьютере, куда будет сохранен скачанный файл.
- Дождитесь завершения процесса скачивания данных.
Проверка доступа и передача данных через 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.
- Download ”OpenSSH-Win64.zip” from https://github.com/PowerShell/Win32-OpenSSH/releases
- Extract downloaded zip file
- Create folder ”C:\Program Files (x86)\OpenSSH-Win64\” and copy the extracted files there
- Run below in cmd (run cmd as admin):
powershell.exe -file ”C:\Program Files (x86)\OpenSSH-Win64\install-sshd.ps1” - Run services.msc and change Startup Type from Manual to Automatic for the two new services ”OpenSSH Authentication Agent” and ”OpenSSH SSH Server”
- 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
-
#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
- Restart service ”OpenSSH SSH Server” (any changes to config file above won’t take effect until service is restarted)
- Optional: Open port 22 in the Windows Firewall on the backend server so Netscaler can communicate with it.
- 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