mirror of
https://github.com/rustdesk/doc.rustdesk.com.git
synced 2024-11-07 17:04:32 +01:00
Merge pull request #439 from Xp96/master
Translation into Brazilian Portuguese
This commit is contained in:
commit
4a106ceda5
366
content/self-host/client-deployment/_index.pt.md
Normal file
366
content/self-host/client-deployment/_index.pt.md
Normal file
@ -0,0 +1,366 @@
|
||||
---
|
||||
title: Implantação de cliente
|
||||
weight: 400
|
||||
pre: "<b>2.4. </b>"
|
||||
---
|
||||
|
||||
A maneira mais simples é usar um cliente personalizado, https://twitter.com/rustdesk/status/1788905463678951787.
|
||||
|
||||
Você pode implementar o cliente personalizado usando vários métodos, alguns dos quais são abordados em [Configuração do Cliente](https://rustdesk.com/docs/pt/self-host/client-configuration/).
|
||||
|
||||
Como alternativa, você pode usar scripts de implementação em massa com seu RMM, Intune etc. O script irá gerar a ID e a senha. Você deve coletar essas informações ou dividi-las em scripts diferentes para coletar a ID e a senha separadamente.
|
||||
|
||||
A senha permanente aleatória pode ser alterada para uma senha de sua preferência. Para fazer isso, altere o conteúdo dentro dos `()` após `rustdesk_pw` para a senha desejada no PowerShell e na linha correspondente para qualquer outra plataforma.
|
||||
|
||||
### PowerShell
|
||||
|
||||
```ps
|
||||
$ErrorActionPreference= 'silentlycontinue'
|
||||
|
||||
# Atribua o valor de senha aleatória à variável password
|
||||
$rustdesk_pw=(-join ((65..90) + (97..122) | Get-Random -Count 12 | % {[char]$_}))
|
||||
|
||||
# Obtenha sua string de configuração do seu portal da Web e preencha abaixo
|
||||
$rustdesk_cfg="configstring"
|
||||
|
||||
################################### Please Do Not Edit Below This Line #########################################
|
||||
|
||||
# Execute como administrador e permaneça no diretório atual
|
||||
if (-Not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
|
||||
{
|
||||
if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000)
|
||||
{
|
||||
Start-Process PowerShell -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command `"cd '$pwd'; & '$PSCommandPath';`"";
|
||||
Exit;
|
||||
}
|
||||
}
|
||||
|
||||
# Esta função retornará a versão mais recente e o link de download como um objeto
|
||||
function getLatest()
|
||||
{
|
||||
$Page = Invoke-WebRequest -Uri 'https://github.com/rustdesk/rustdesk/releases/latest' -UseBasicParsing
|
||||
$HTML = New-Object -Com "HTMLFile"
|
||||
try
|
||||
{
|
||||
$HTML.IHTMLDocument2_write($Page.Content)
|
||||
}
|
||||
catch
|
||||
{
|
||||
$src = [System.Text.Encoding]::Unicode.GetBytes($Page.Content)
|
||||
$HTML.write($src)
|
||||
}
|
||||
|
||||
# Link de exemplo atual: https://github.com/rustdesk/rustdesk/releases/download/1.2.6/rustdesk-1.2.6-x86_64.exe
|
||||
$Downloadlink = ($HTML.Links | Where {$_.href -match '(.)+\/rustdesk\/rustdesk\/releases\/download\/\d{1}.\d{1,2}.\d{1,2}(.{0,3})\/rustdesk(.)+x86_64.exe'} | select -first 1).href
|
||||
|
||||
# correção de bug - às vezes é necessário substituir "about:"
|
||||
$Downloadlink = $Downloadlink.Replace('about:', 'https://github.com')
|
||||
|
||||
$Version = "unknown"
|
||||
if ($Downloadlink -match './rustdesk/rustdesk/releases/download/(?<content>.*)/rustdesk-(.)+x86_64.exe')
|
||||
{
|
||||
$Version = $matches['content']
|
||||
}
|
||||
|
||||
if ($Version -eq "unknown" -or $Downloadlink -eq "")
|
||||
{
|
||||
Write-Output "ERROR: Version or download link not found."
|
||||
Exit
|
||||
}
|
||||
|
||||
# Crie um objeto para retornar
|
||||
$params += @{Version = $Version}
|
||||
$params += @{Downloadlink = $Downloadlink}
|
||||
$Result = New-Object PSObject -Property $params
|
||||
|
||||
return($Result)
|
||||
}
|
||||
|
||||
$RustDeskOnGitHub = getLatest
|
||||
|
||||
|
||||
$rdver = ((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\RustDesk\").Version)
|
||||
|
||||
if ($rdver -eq $RustDeskOnGitHub.Version)
|
||||
{
|
||||
Write-Output "RustDesk $rdver is the newest version."
|
||||
Exit
|
||||
}
|
||||
|
||||
if (!(Test-Path C:\Temp))
|
||||
{
|
||||
New-Item -ItemType Directory -Force -Path C:\Temp > null
|
||||
}
|
||||
|
||||
cd C:\Temp
|
||||
|
||||
Invoke-WebRequest $RustDeskOnGitHub.Downloadlink -Outfile "rustdesk.exe"
|
||||
Start-Process .\rustdesk.exe --silent-install
|
||||
Start-Sleep -seconds 20
|
||||
|
||||
$ServiceName = 'Rustdesk'
|
||||
$arrService = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
|
||||
|
||||
if ($arrService -eq $null)
|
||||
{
|
||||
Write-Output "Installing service"
|
||||
cd $env:ProgramFiles\RustDesk
|
||||
Start-Process .\rustdesk.exe --install-service
|
||||
Start-Sleep -seconds 20
|
||||
}
|
||||
|
||||
while ($arrService.Status -ne 'Running')
|
||||
{
|
||||
Start-Service $ServiceName
|
||||
Start-Sleep -seconds 5
|
||||
$arrService.Refresh()
|
||||
}
|
||||
|
||||
cd $env:ProgramFiles\RustDesk\
|
||||
.\rustdesk.exe --get-id | Write-Output -OutVariable rustdesk_id
|
||||
|
||||
.\rustdesk.exe --config $rustdesk_cfg
|
||||
|
||||
.\rustdesk.exe --password $rustdesk_pw
|
||||
|
||||
Write-Output "..............................................."
|
||||
# Mostre o valor da variável ID
|
||||
Write-Output "RustDesk ID: $rustdesk_id"
|
||||
|
||||
# Mostre o valor da variável Password
|
||||
Write-Output "Password: $rustdesk_pw"
|
||||
Write-Output "..............................................."
|
||||
```
|
||||
|
||||
### Windows batch/cmd
|
||||
|
||||
```bat
|
||||
@echo off
|
||||
|
||||
REM Define o valor da senha aleatória para a variável password
|
||||
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
|
||||
set alfanum=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
|
||||
set rustdesk_pw=
|
||||
for /L %%b in (1, 1, 12) do (
|
||||
set /A rnd_num=!RANDOM! %% 62
|
||||
for %%c in (!rnd_num!) do (
|
||||
set rustdesk_pw=!rustdesk_pw!!alfanum:~%%c,1!
|
||||
)
|
||||
)
|
||||
|
||||
REM Preencha a string de configuração (configstring) obtida do portal web
|
||||
set rustdesk_cfg="configstring"
|
||||
|
||||
REM ############################### Por favor, não edite abaixo desta linha #########################################
|
||||
|
||||
if not exist C:\Temp\ md C:\Temp\
|
||||
cd C:\Temp\
|
||||
|
||||
curl -L "https://github.com/rustdesk/rustdesk/releases/download/1.2.6/rustdesk-1.2.6-x86_64.exe" -o rustdesk.exe
|
||||
|
||||
rustdesk.exe --silent-install
|
||||
timeout /t 20
|
||||
|
||||
cd "C:\Program Files\RustDesk\"
|
||||
rustdesk.exe --install-service
|
||||
timeout /t 20
|
||||
|
||||
for /f "delims=" %%i in ('rustdesk.exe --get-id ^| more') do set rustdesk_id=%%i
|
||||
|
||||
rustdesk.exe --config %rustdesk_cfg%
|
||||
|
||||
rustdesk.exe --password %rustdesk_pw%
|
||||
|
||||
echo ...............................................
|
||||
REM Mostrar o valor da variável ID
|
||||
echo RustDesk ID: %rustdesk_id%
|
||||
|
||||
REM Mostra o valor da variável de senha
|
||||
echo Password: %rustdesk_pw%
|
||||
echo ...............................................
|
||||
```
|
||||
|
||||
### MSI
|
||||
|
||||
Você também pode usar msi em vez de `rustdesk.exe --silent-install`.
|
||||
|
||||
https://rustdesk.com/docs/en/client/windows/msi/
|
||||
|
||||
### macOS Bash
|
||||
|
||||
```sh
|
||||
#!/bin/bash
|
||||
|
||||
# Define o valor da senha aleatória para a variável password
|
||||
rustdesk_pw=$(openssl rand -hex 4)
|
||||
|
||||
# Preencha a string de configuração (configstring) obtida do portal web
|
||||
rustdesk_cfg="configstring"
|
||||
|
||||
################################### Por favor, não edite abaixo desta linha #########################################
|
||||
|
||||
# Verifica se o script está sendo executado como root
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "Este script deve ser executado como root."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Define o caminho para o arquivo rustdesk.dmg
|
||||
dmg_file="/tmp/rustdesk-1.2.6-x86_64.dmg"
|
||||
|
||||
# Define o ponto de montagem para o DMG (diretório temporário)
|
||||
mount_point="/Volumes/RustDesk"
|
||||
|
||||
# Baixa o arquivo rustdesk.dmg
|
||||
echo "Baixando o RustDesk agora"
|
||||
|
||||
if [[ $(arch) == 'arm64' ]]; then
|
||||
curl -L https://github.com/rustdesk/rustdesk/releases/download/1.2.6/rustdesk-1.2.6-aarch64.dmg --output "$dmg_file"
|
||||
else
|
||||
curl -L https://github.com/rustdesk/rustdesk/releases/download/1.2.6/rustdesk-1.2.6-x86_64.dmg --output "$dmg_file"
|
||||
fi
|
||||
|
||||
# Monta o arquivo DMG no ponto de montagem especificado
|
||||
hdiutil attach "$dmg_file" -mountpoint "$mount_point" &> /dev/null
|
||||
|
||||
# Verifica se a montagem foi bem-sucedida
|
||||
if [ $? -eq 0 ]; then
|
||||
# Move o conteúdo do DMG montado para a pasta /Applications
|
||||
cp -R "$mount_point/RustDesk.app" "/Applications/" &> /dev/null
|
||||
|
||||
# Desmonta o arquivo DMG
|
||||
hdiutil detach "$mount_point" &> /dev/null
|
||||
else
|
||||
echo "Falha ao montar o DMG do RustDesk. Instalação abortada."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Executa o comando rustdesk com --get-id e armazena a saída na variável rustdesk_id
|
||||
cd /Applications/RustDesk.app/Contents/MacOS/
|
||||
rustdesk_id=$(./RustDesk --get-id)
|
||||
|
||||
# Aplica a nova senha ao RustDesk
|
||||
./RustDesk --server &
|
||||
/Applications/RustDesk.app/Contents/MacOS/RustDesk --password $rustdesk_pw &> /dev/null
|
||||
|
||||
/Applications/RustDesk.app/Contents/MacOS/RustDesk --config $rustdesk_cfg
|
||||
|
||||
# Kill all processes named RustDesk
|
||||
rdpid=$(pgrep RustDesk)
|
||||
kill $rdpid &> /dev/null
|
||||
|
||||
echo "..............................................."
|
||||
# Check if the rustdesk_id is not empty
|
||||
if [ -n "$rustdesk_id" ]; then
|
||||
echo "RustDesk ID: $rustdesk_id"
|
||||
else
|
||||
echo "Failed to get RustDesk ID."
|
||||
fi
|
||||
|
||||
# Echo the value of the password variable
|
||||
echo "Password: $rustdesk_pw"
|
||||
echo "..............................................."
|
||||
|
||||
echo "Please complete install on GUI, launching RustDesk now."
|
||||
open -n /Applications/RustDesk.app
|
||||
```
|
||||
|
||||
### Linux
|
||||
|
||||
```sh
|
||||
#!/bin/bash
|
||||
|
||||
# Define um valor aleatório para a senha e armazena na variável password
|
||||
rustdesk_pw=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)
|
||||
|
||||
# Preencha a string de configuração (configstring) obtida do portal web
|
||||
rustdesk_cfg="configstring"
|
||||
|
||||
################################### Por favor, não edite abaixo desta linha #########################################
|
||||
|
||||
# Verifica se o script está sendo executado como root
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "Este script deve ser executado como root."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Identifica o Sistema Operacional (SO)
|
||||
if [ -f /etc/os-release ]; then
|
||||
# freedesktop.org e systemd
|
||||
. /etc/os-release
|
||||
OS=$NAME
|
||||
VER=$VERSION_ID
|
||||
|
||||
UPSTREAM_ID=${ID_LIKE,,}
|
||||
|
||||
# Retorna para ID_LIKE se ID não for 'ubuntu' ou 'debian'
|
||||
if [ "${UPSTREAM_ID}" != "debian" ] && [ "${UPSTREAM_ID}" != "ubuntu" ]; then
|
||||
UPSTREAM_ID="$(echo ${ID_LIKE,,} | sed s/\"//g | cut -d' ' -f1)"
|
||||
fi
|
||||
|
||||
elif type lsb_release >/dev/null 2>&1; then
|
||||
# linuxbase.org
|
||||
OS=$(lsb_release -si)
|
||||
VER=$(lsb_release -sr)
|
||||
elif [ -f /etc/lsb-release ]; then
|
||||
# Para algumas versões do Debian/Ubuntu sem o comando lsb_release
|
||||
. /etc/lsb-release
|
||||
OS=$DISTRIB_ID
|
||||
VER=$DISTRIB_RELEASE
|
||||
elif [ -f /etc/debian_version ]; then
|
||||
# mais antigos Debian, Ubuntu, etc.
|
||||
OS=Debian
|
||||
VER=$(cat /etc/debian_version)
|
||||
elif [ -f /etc/SuSE-release ]; then
|
||||
# mais antigos SuSE etc.
|
||||
OS=SuSE
|
||||
VER=$(cat /etc/SuSE-release)
|
||||
elif [ -f /etc/redhat-release ]; then
|
||||
# mais antigos Red Hat, CentOS, etc.
|
||||
OS=RedHat
|
||||
VER=$(cat /etc/redhat-release)
|
||||
else
|
||||
# Retorna para uname, por exemplo, "Linux <versão>". Isso também funciona para BSD, etc.
|
||||
OS=$(uname -s)
|
||||
VER=$(uname -r)
|
||||
fi
|
||||
|
||||
# Instala o RustDesk
|
||||
|
||||
echo "Instalando RustDesk"
|
||||
if [ "${ID}" = "debian" ] || [ "$OS" = "Ubuntu" ] || [ "$OS" = "Debian" ] || [ "${UPSTREAM_ID}" = "ubuntu" ] || [ "${UPSTREAM_ID}" = "debian" ]; then
|
||||
wget https://github.com/rustdesk/rustdesk/releases/download/1.2.6/rustdesk-1.2.6-x86_64.deb
|
||||
apt-get install -fy ./rustdesk-1.2.6-x86_64.deb > null
|
||||
elif [ "$OS" = "CentOS" ] || [ "$OS" = "RedHat" ] || [ "$OS" = "Fedora Linux" ] || [ "${UPSTREAM_ID}" = "rhel" ] || [ "$OS" = "Almalinux" ] || [ "$OS" = "Rocky*" ] ; then
|
||||
wget https://github.com/rustdesk/rustdesk/releases/download/1.2.6/rustdesk-1.2.6-0.x86_64.rpm
|
||||
yum localinstall ./rustdesk-1.2.6-0.x86_64.rpm -y > null
|
||||
else
|
||||
echo "Sistema operacional não suportado"
|
||||
# Aqui você poderia pedir permissão ao usuário para tentar instalar mesmo assim
|
||||
# se eles disserem sim, então faça a instalação
|
||||
# se eles disserem não, saia do script
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Executa o comando rustdesk com --get-id e armazena a saída na variável rustdesk_id
|
||||
rustdesk_id=$(rustdesk --get-id)
|
||||
|
||||
# Aplica a nova senha ao RustDesk
|
||||
rustdesk --password $rustdesk_pw &> /dev/null
|
||||
|
||||
rustdesk --config $rustdesk_cfg
|
||||
|
||||
systemctl restart rustdesk
|
||||
|
||||
echo "..............................................."
|
||||
# Verifica se o rustdesk_id não está vazio
|
||||
if [ -n "$rustdesk_id" ]; then
|
||||
echo "RustDesk ID: $rustdesk_id"
|
||||
else
|
||||
echo "Falha para pegar RustDesk ID."
|
||||
fi
|
||||
|
||||
# Exiba o valor da variável de senha
|
||||
echo "Password: $rustdesk_pw"
|
||||
echo "..............................................."
|
||||
```
|
@ -0,0 +1,38 @@
|
||||
---
|
||||
title: Azure
|
||||
weight: 16
|
||||
---
|
||||
|
||||
### Configuração
|
||||
|
||||
1. Faça login no [portal do Azure](https://portal.azure.com).
|
||||
2. Procure e selecione **Microsoft Entra ID**.
|
||||
3. No menu à esquerda, selecione [Registros de aplicativo](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps), clique em **Novo registro**.
|
||||
![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/1-Azure-NewRegistration.png)
|
||||
4. Abra o console do RustDesk Pro, na página de **Configurações**, clique no módulo **OIDC**. Em seguida, copie a **URL de retorno**. **Observação**: A **URL de retorno** não é editável, a parte `Caminho` é fixada em `api/oidc/callback`, e a parte `Protocol://Host:Port` é a origem da página web atual. Se você abri-lo através do endereço `http://localhost:8000/<caminho>`, então a **URL de retorno** é `http://localhost:8000/api/oidc/callback`. Se for aberto através do endereço `https://192.168.0.1:8000/<caminho>`, então a **URL de retorno** é `https://192.168.0.1:8000/api/oidc/callback`. Como o Azure deve usar `https://` ou `http://localhost`, selecione o endereço apropriado para abrir o console do RustDesk Pro.
|
||||
![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/12-RustDesk-Callback.png)
|
||||
![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/2-Azure-Register-RecirectURIs-Restrictions.png)
|
||||
5. Insira o **Nome**, selecione os **Tipos de conta suportados** e cole o **URI de redirecionamento** do RustDesk Pro.
|
||||
![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/2-Azure-Register.png)
|
||||
6. No RustDesk Pro, clique em **Novo provedor de autenticação**.
|
||||
![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/3-RustDesk-NewAuthProvider.png)
|
||||
7. No Azure, selecione o aplicativo que deseja usar, clique em **Visão geral** e copie a **ID do aplicativo (cliente)**.
|
||||
![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/4-Azure-ClientID.png)
|
||||
8. No RustDesk Pro, cole a **ID do cliente**.
|
||||
![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/5-RustDesk-ClientID.png)
|
||||
9. No Azure, em **Certificados e segredos**, crie um novo segredo de cliente ou selecione um existente, geralmente Novo.
|
||||
![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/6-Azure-NewOrSelectClientSecret.png)
|
||||
10. No Azure, copie o valor do segredo do cliente. **Observação**: Esse valor só é visível quando você registra pela primeira vez. Ele não fica mais visível depois que você sai da página. Por favor, mantenha este valor em segurança.
|
||||
![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/7-Azure-CopySecretValue.png)
|
||||
11. No RustDesk Pro, cole o valor do segredo do cliente.
|
||||
![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/8-RustDesk-FillClientSecret.png)
|
||||
12. No RustDesk Pro, preencha o campo **Emissor** com `https://login.microsoftonline.com/<Directory (tenant) ID>/v2.0`. Substitua `<ID do diretório (locatário)>` pela sua `ID do diretório (locatário)`. A **ID do diretório (locatário)** está no painel Visão geral do aplicativo do Azure.
|
||||
![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/9-RustDesk-Issuer.png)
|
||||
![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/10-Azure-TenantID.png)
|
||||
13. No Azure, selecione o menu **Autenticação**. Em seguida, configure a autorização escolhendo **Tokens de ID (usados para fluxos implícitos e híbridos)**.
|
||||
![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/11-Azure-Auth.png)
|
||||
|
||||
### Referências
|
||||
|
||||
- [Configurar um provedor OpenID Connect com o Azure AD](https://learn.microsoft.com/pt-br/power-pages/security/authentication/openid-settings)
|
||||
- [OpenID Connect na plataforma de identidade da Microsoft](https://learn.microsoft.com/pt-br/entra/identity-platform/v2-protocols-oidc)
|
Loading…
Reference in New Issue
Block a user