Como instalar e configurar um servidor FTP no Windows através do PowerShell
Se queres saber como instalar e configurar um servidor FTP no Windows através do PowerShell acompanha-nos ao longo deste breve tutorial onde o faremos em passos simples.
Este tutorial complementa o que já fizemos através do ambiente gráfico e a que demos o título de Como instalar e configurar um servidor FTP no Windows (IIS){target="_blank" rel="noopener"}.
NOTA: Diante de todas as linhas foi acrescentada uma cerquilha (#), que é colocada por razões de segurança, uma vez que, em caso de copiar uma destas linhas por erro, ela não será executada (a cerquilha é usada para comentar código, pelo que se torna não executável). Para poder ser executado, deve retirar-se o carácter "#" de todas as linhas.
Como instalar e configurar um servidor FTP no Windows através do PowerShell?
Pré-requisitos ou pré-configuração.
Para concluir de forma satisfatória este tutorial e poder instalar e configurar um servidor FTP no Windows através do PowerShell será necessário:
Por um lado, estar registado na Plataforma Plenit com uma organização e estar registado na mesma após fazer Iniciar sessão{target="_blank" rel="noopener"}.
Por outro lado, ter subscrito uma Subscrição de Servidores{target="_blank" rel="noopener"}
Ter um servidor Windows operativo dentro da subscrição.
Passo 1. Instalar e configurar um servidor FTP no Windows através do PowerShell
A primeira coisa que faremos será instalar a funcionalidade de servidor FTP, para o que se deverá iniciar a consola do PowerShell, ou a do PowerShell ISE. Tal como comento ultimamente, o mais desejável seria usar o ISE (por assim dizer, o IDE da Microsoft), já que nos permite fazer testes, ver onde falha, etc.
Uma vez na consola (ou ISE) do PowerShell, deverão executar os comandos "Install-WindowsFeature" (1).
# Install-WindowsFeature Web-FTP-Server -IncludeAllSubFeature
# Install-WindowsFeature Web-Server -IncludeAllSubFeature -IncludeManagementTools
# Import-Module WebAdministration
Onde:
O comando "Install-WindowsFeature" instala a funcionalidade do Windows que lhe passarmos como parâmetro.
O modificador "-IncludeAllSubFeature" instala todas as opções que a funcionalidade do Windows tiver.
O modificador "-IncludeManagementTools" instala as ferramentas administrativas dessa funcionalidade.
\
Passo 1. Fazemos a implementação do serviço de FTP através do PowerShell
Uma vez feito isto, continuamos a instalação importando o módulo de administração do FTP através de o comando "Import-Module" (2).
\
Passo 1. Importamos o módulo de administração do FTP através do PowerShell
De seguida, configura-se o novo site FTP para prestar serviço.
Este terá uma série de características que deverão ser configuradas, podendo lançar-se diretamente um comando como o seguinte:
*# New-WebFtpSite -Name \ -Port -PhysicalPath *
Onde:
O comando "New-WebFtpSite" implementa o novo site de FTP.
"-Name " descreve o nome que daremos ao site de FTP.
"-Port " é um número que indica por que porta escuta o FTP.
"-PhysicalPath " é o caminho do servidor onde estão os dados do FTP.
Desta forma, poderia ficar assim:
# New-WebFtpSite -Name 'FTP Site Nacho' -Port '21' -PhysicalPath 'C:\datos\ftproot'
Poderíamos substituir diretamente aí e teríamos a configuração feita, mas isto é um pouco uma chapuza, pelo que costumam usar-se variáveis para poder melhorar a utilização em ocasiões futuras.
Para ter tudo mais organizado, criaremos algumas variáveis, tal como comentávamos, que serão as seguintes:
"-Name " descreve o nome que daremos ao site de FTP, sendo a variável "$Name".
"-Port " é um número que indica por que porta escuta o FTP, sendo a variável "$Port".
"-PhysicalPath " é o caminho do servidor onde estão os dados do FTP, sendo a variável "$Root".
Tendo isto em conta, configura-se tudo e termina-se executando os seguintes comandos (3):
# $Name = 'FTP Site Nacho'
# $Root = 'C:\datos\ftproot'
# $Port = 21
# New-WebFtpSite -Name $Name -Port $Port -PhysicalPath $Root
\
Passo 1. Configuramos o site de FTP para o serviço
Neste momento já foi instalado o servidor de FTP em si, e ficará configurar, adicionar utilizadores, repositórios, assegurando-o, etc.
Neste ponto, para mim, a primeira coisa seria criar um utilizador (e o seu grupo associado) para poder testar que podemos fazer a ligação e não simples. Assim, se depois o assegurarmos fechando portas ou configurando certificados, teremos a certeza de que esta parte estava a funcionar.
Neste caso, primeiro criamos um grupo para os utilizadores com capacidade de ligar ao FTP, uma vez que é melhor criar um grupo ao qual se possam depois adicionar.
Para criar o grupo de FTP (4) usamos:
# $FTPUserGroupName = «Utilizadores de FTP»
# $ADSI = [ADSI]»WinNT://$env:ComputerName»
# $FTPUserGroup = $ADSI.Create(«Group», «$FTPUserGroupName»)
# $FTPUserGroup.SetInfo()
# $FTPUserGroup.Description = «Os membros deste grupo podem ligar ao FTP»
# $FTPUserGroup.SetInfo()
\
Passo 1. Criamos o grupo de FTP para o serviço
Neste caso, faremos utilização dos comandos do ADSI para a implementação do grupo, usando como sempre certas variáveis para tornar a configuração mais simples.
O seguinte seria criar o utilizador com o qual se vão fazer as ligações ao FTP (5).
# $FTPUserName = «ftpnacho»
# $FTPPassword = 'Contrasenya123!'
# $CreateUserFTPUser = $ADSI.Create(«User», «$FTPUserName»)
# $CreateUserFTPUser.SetInfo()
# $CreateUserFTPUser.SetPassword(«$FTPPassword»)
# $CreateUserFTPUser.SetInfo()
\
Passo 1. Criamos um utilizador para as ligações de FTP
Uma vez feito isto, deve-se adicionar ao grupo de FTP do sistema (6), executando para isso:
# $UserAccount = New-Object System.Security.Principal.NTAccount(«$FTPUserName»)
# $SID = $UserAccount.Translate([System.Security.Principal.SecurityIdentifier])
# $Group = [ADSI]»WinNT://$env:ComputerName/$FTPUserGroupName,Group»
# $User = [ADSI]»WinNT://$SID»
# $Group.Add($User.Path)
\
Passo 1. Adicionamos o utilizador de FTP ao grupo de FTP do sistema
Neste momento deve-se ativar a autenticação básica do site FTP e em seguida autorizar o grupo do Windows (7) que contém o utilizador FTP para que possa ter acesso ao site FTP e, portanto, possa fazer utilização do serviço.
Para isso devem executar-se os seguintes comandos:
[# $FTPSitePath][ = ][«IIS:\Sites\][$FTPSiteName][«]
[# $BasicAuth][ = ]['ftpServer.security.authentication.basicAuthentication.enabled']
[[# ]Set-ItemProperty][ -Path ][$FTPSitePath][ -Name ][$BasicAuth][ -Value ][$True]
[# $Param][ = @][{]
[[# ]Filter][ = ][«/system.ftpServer/security/authorization»]
[ [# ]Value = @][{]
[ [# ]accessType = ][«Allow»]
[ [# ]roles = ][«][$FTPUserGroupName][«]
[ [# ]permissions = ][1]
[[# ]}]
[ [# ]PSPath = 'IIS:\']
[ [# ]Location = ][$FTPSiteName]
[[# ]}]
[[# ]Add-WebConfiguration][ @][param]
\
Passo 1. Configuramos a autenticação básica para o nosso site de FTP
O passo seguinte é alterar a política de SSL e as permissões de ficheiros (NTFS) na pasta raiz do servidor FTP (8), ou seja, onde são guardados todos os ficheiros carregados pelos utilizadores do serviço.
Para isso executamos os seguintes comandos:
# $SSLPolicy = @(
# 'ftpServer.security.ssl.controlChannelPolicy',
# 'ftpServer.security.ssl.dataChannelPolicy'
# )
# Set-ItemProperty -Path $FTPSitePath -Name $SSLPolicy[0] -Value $false
# Set-ItemProperty -Path $FTPSitePath -Name $SSLPolicy[1] -Value $false
\
Passo 1. Alteramos a política de SSL e as permissões de ficheiros na pasta raiz do servidor FTP
O passo seguinte é executar os seguintes comandos para configurar as permissões NTFS na pasta raiz e assim permitir que possam aceder e trabalhar sobre esta pasta aqueles utilizadores que pertençam ao grupo de FTP.
# $UserAccount = New-Object System.Security.Principal.NTAccount(«$FTPUserGroupName»)
# $AccessRule = [System.Security.AccessControl.FileSystemAccessRule]::new($UserAccount,
# 'ReadAndExecute',
# 'ContainerInherit,ObjectInherit',
# 'None',
# 'Allow'
# )
# $ACL = Get-Acl -Path $FTPRootDir
# $ACL.SetAccessRule($AccessRule)
# $ACL | Set-Acl -Path $FTPRootDir
Por último, para que todas as alterações tenham efeito deve reiniciar a instância do FTP (9), para isso deve executar-se:
# Restart-WebItem «IIS:\Sites\$Name» -Verbose
\
Passo 1. Reiniciamos o serviço de FTP a partir da consola do PowerShell
Com isto já terminou o processo de configuração do FTP.
Conclusões e próximos passos:
Ao longo deste tutorial vimos como realizar a** instalação e configurar um servidor FTP no Windows através do PowerShell** dentro de um dos servidores Windows alojados dentro da Plenit.
Se o que leste até agora te pareceu interessante, podes aprofundar mais sobre alguns serviços relacionados; é possível que os seguintes tutoriais te interessem:
Como implementar um novo servidor na Plenit{target="_blank" rel="noopener"}.
Como criar um túnel VPN site-to-site na Plenit{target="_blank" rel="noopener"}.
Como criar modelos num servidor para reutilizá-los no Desktop Remoto{target="_blank" rel="noopener"}.
Como criar um VPC e associar um TIER na Plenit{target="_blank" rel="noopener"}.
Esperamos que, com este pequeno guia, não tenhas problemas ao configurar o teu servidor FTP de forma rápida e funcional, mas, se os tiveres, não hesites em contactar-nos para que possamos dar-te uma ajuda.
Obrigado pela tua confiança.
Última atualização
Isto foi útil?

