Executando verificação de segurança...
1

Como corrigir o erro de RPC no RSAT/SAMBA

O que é o RSAT

O RSAT (Remote Server Administration Tools) é um conjunto de ferramentas da Microsoft que permite aos administradores gerenciar servidores Windows a partir de um computador com Windows 10 ou Windows 11. Para se conectar a um servidor usando o RSAT, é necessário habilitar o recurso de gerenciamento remoto no servidor e abrir a porta TCP 5985 (WinRM) ou a porta TCP 5986 (WinRM over HTTPS) no firewall do servidor. Essas portas são usadas para permitir a comunicação remota entre o servidor e a estação de trabalho do administrador que está usando o RSAT. Mas como estamos falando de SAMBA, o processo muda um pouquinho, vamos ver a seguir:

Para o funcionamento adequado do Samba como um controlador de domínio, é necessário permitir o tráfego de rede nas seguintes portas:

TCP:

88 (Kerberos)
135 (RPC Endpoint Mapper)
139 (NetBIOS Session Service)
389 (LDAP)
445 (SMB)
464 (Kerberos Change/Set Password)
636 (LDAP SSL)
3268 (Global Catalog)
3269 (Global Catalog SSL)

UDP:
53 (DNS)
88 (Kerberos)
123 (NTP)
137 (NetBIOS Name Service)
138 (NetBIOS Datagram Service)
389 (LDAP)
445 (SMB)
464 (Kerberos Change/Set Password)
445 (Direct-hosted SMB traffic without NetBIOS)

O erro RPC (Remote Procedure Call) é um problema comum ao conectar o RSAT ao domínio Samba. Isso ocorre porque a porta 445, que é usada para comunicação entre o RSAT e o Samba, pode estar bloqueada pelo firewall ou não configurada corretamente no arquivo smb.conf. Neste tutorial, mostraremos como corrigir esse erro.

Uma das mensagens de erro que podem aparecer durante a utilização do RSAT pode se parecer com essa:

Bom, chega de papo e vamos corrigir isso!

Passo 1 - Verificar as portas abertas

Para começar, verifique se as portas TCP: 135, 139, 389, 445, 3268, 3269, 49152 e UDP: 137, 138, 139, 389, 445, 464, 636, 3268 estão abertas. Use o seguinte comando para listar todas as portas abertas:

sudo firewall-cmd --list-ports

Se uma ou mais não estiverem na lista, use o comando a seguir para abri-las:

sudo firewall-cmd --add-port=135/tcp --add-port=137/tcp --add-port=138/tcp --add-port=139/tcp --add-port=145/tcp --add-port=389/tcp --add-port=445/tcp --add-port=3268/tcp --add-port=3269/tcp --add-port=135/udp --add-port=137/udp --add-port=138/udp --add-port=139/udp --add-port=145/udp --add-port=389/udp --add-port=445/udp --add-port=3268/udp --add-port=3269/udp --permanent

ou

sudo firewall-cmd --add-port={135/tcp,137/tcp,138/tcp,139/tcp,145/tcp,389/tcp,445/tcp,3268/tcp,3269/tcp,135/udp,137/udp,138/udp,139/udp,145/udp,389/udp,445/udp,3268/udp,3269/udp} --permanent

O comando acima abre as portas informadas de forma permanente. Você pode editar o comando informando apenas as portas que faltam ou liberar uma a uma conforme abaixo:

sudo firewall-cmd --add-port=88/tcp --permanent sudo firewall-cmd --add-port=135/tcp --permanent sudo firewall-cmd --add-port=139/tcp --permanent sudo firewall-cmd --add-port=389/tcp --permanent sudo firewall-cmd --add-port=445/tcp --permanent sudo firewall-cmd --add-port=464/tcp --permanent sudo firewall-cmd --add-port=636/tcp --permanent sudo firewall-cmd --add-port=3268/tcp --permanent sudo firewall-cmd --add-port=3269/tcp --permanent sudo firewall-cmd --add-port=53/udp --permanent sudo firewall-cmd --add-port=88/udp --permanent sudo firewall-cmd --add-port=123/udp --permanent sudo firewall-cmd --add-port=137/udp --permanent sudo firewall-cmd --add-port=138/udp --permanent sudo firewall-cmd --add-port=389/udp --permanent sudo firewall-cmd --add-port=445/udp --permanent sudo firewall-cmd --add-port=464/udp --permanent sudo firewall-cmd --add-port=445/tcp --direct --permanent

Para que as alterações entrem em vigor, é necessário recarregar as configurações do firewall com o seguinte comando:

sudo firewall-cmd --reload

Passo 2 - Configurar o arquivo smb.conf

O arquivo smb.conf é responsável pela configuração do Samba. Verifique se a seção [global] do arquivo contém as seguintes linhas:

client min protocol = SMB2
client max protocol = SMB3
server min protocol = SMB2
server max protocol = SMB3

Essas linhas definem a versão do protocolo SMB que o Samba deve usar para se comunicar com o RSAT. Certifique-se de que elas estejam presentes e sem comentários(o símbolo # no início da linha).

Antes de alterar o arquivo vamos fazer um backup!

Para realizar o backup numerado do arquivo antes da alteração com o caminho absoluto, basta executar o seguinte comando no terminal:

sudo cp /etc/samba/smb.conf{,.backup.$(date +%Y%m%d%H%M%S)}

Neste comando, utilizamos o utilitário cp para copiar o arquivo smb.conf para um novo arquivo com a extensão .backup seguida da data e hora atual no formato YYYYMMDDHHMMSS. O símbolo {} é usado para indicar o arquivo original, e a sintaxe {,.backup.$(date +%Y%m%d%H%M%S)} é usada para gerar o nome do arquivo de backup. O comando sudo é utilizado para executar a cópia com privilégios de superusuário.

Dessa forma, o arquivo original será preservado com um nome diferente, permitindo que você possa recuperá-lo caso necessário.

Abra o arquivo smb.conf com o editor de texto VIM com o seguinte comando:

sudo vim /etc/samba/smb.conf

Apague todo o conteúdo e cole o conteúdo abaixo. Não esqueça de ajustar os parâmetros como o nome do domínio e outros necessários.

# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]

        workgroup = SAMBA
        server string = Samba Server %v
        netbios name = NOME_DO_SEU_DOMINIO
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

	dns forwarder = IP_DO_SEU_DNS_FORWARDER

        # Configurações para o RSAT
        rpc_server:tcpip = no
        rpc_daemon:spoolssd = embedded
        rpc_server:spoolss = embedded
        rpc_server:winreg = embedded
        rpc_server:ntsvcs = embedded
        rpc_server:eventlog = embedded
        rpc_server:srvsvc = embedded
        rpc_server:svcctl = embedded
        rpc_server:default = external

        client min protocol = SMB2
        client max protocol = SMB3
        server min protocol = SMB2
        server max protocol = SMB3

[homes]

        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]

        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]

        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775

Salve as alterações no arquivo e saia do editor VIM pressionando a tecla ESC, digitar :wq e pressionar Enter.

Passo 3 - Reiniciar o serviço do Samba

Após verificar as portas e configurar o arquivo smb.conf, reinicie o serviço do Samba para que as alterações entrem em vigor. Use o seguinte comando para reiniciar o serviço:

sudo systemctl restart samba-ad-dc.service

Lembre-se de testar a configuração usando o comando "testparm" após as alterações.

Conclusão

Com as configurações acima, você deve ser capaz de conectar o RSAT ao domínio Samba sem o erro RPC. Lembre-se de que a versão do protocolo SMB pode variar dependendo do seu ambiente. Verifique as versões suportadas pelo seu sistema antes de configurá-las no arquivo smb.conf.