Samba como ADDC no Solaris 11.4

1. Introdução


Quando instalei o pacote Samba pela primeira vez no Solaris, verificou-se que não havia função ADDC neste pacote. Pesquisas longas na Internet me levaram a respostas desse tipo - o pacote Samba no Solaris não suporta essa função, e alguns escreveram que essa função geralmente é impossível de implementar no Solaris. Mais pesquisas me levaram ao fato de que tudo depende da falta de uma ACL Posix no zfs, bem como no python, usado no Solaris. Para resolver esses problemas, você deve usar um disco rígido com o sistema de arquivos ufs, além de criar python (assim como Samba) a partir do código-fonte.

Preparação


Todas as ações que realizo no VMware ESXI, antes de instalar o sistema, adicionam outro disco rígido à máquina virtual. Em seguida, você precisa fazer o download do código fonte do Python e do Samba (para a raiz do sistema de arquivos).

wget https://download.samba.org/pub/samba/stable/samba-4.8.8.tar.gz wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz 

Descompacte arquivos e renomeie pastas para mais conveniência

 gzip -d samba-4.8.8.tar.gz gzip -d Python-2.7.15.tgz tar -xvf Python-2.7.15.tar tar -xvf samba-4.8.8.tar mv Python-2.7.15 python mv samba-4.8.8 samba 

Em seguida, você precisa instalar o gcc e algumas dependências

 pkg install gcc pkg install pkgconfig pkg install automake pkg install autoconf 

Definir variáveis ​​para criar versões x64

 export CPP="/usr/gcc/7/bin/gcc -E" export CC="/usr/gcc/7/bin/gcc" export CFLAGS="-m64 -std=gnu99 -fPIC -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" export LDFLAGS="-m64 -L/usr/lib -R/usr/lib" export CXXFLAGS="-m64" 

Crie o sistema de arquivos ufs em um disco rígido adicional (especifique o nome usado por você)

 newfs /dev/dsk/c1t1d0s2 

Em seguida, você precisa registrar esse disco rígido no arquivo vfstab (não um erro de digitação, no Solaris esse arquivo é chamado dessa maneira). Adicione esta linha a este arquivo.

 /dev/dsk/c1t1d0s2 /dev/dsk/c1t1d0s2 /ADDC ufs fsck yes - 

Crie um diretório de montagem e monte o disco rígido nele

 mkdir /ADDC mount /dev/dsk/c1t1d0s2 /ADDC 

Montagem e instalação


Você pode começar a construir o Samba e o Python. Vá para o diretório com o código-fonte Solaris descompactado e construa. A montagem do samba leva muito tempo.

 cd /samba ./configure --prefix=/ADDC gmake gmake install 

Você não precisa especificar parâmetros adicionais para criar python, a instalação será realizada no diretório / usr / local

 cd /python ./configure gmake gmake install 

Após criar o python, você precisa adicionar o caminho ao python recém-criado na variável path

 export PATH="/usr/local/bin:/usr/sbin:/usr/bin" 

IMPORTANTE: Para que tudo funcione corretamente, você deve especificar a variável PATH conforme indicado neste exemplo, o caminho / usr / local / bin deve estar em primeiro lugar.
Após estas etapas, usar o Samba como um ADDC não será um problema; para isso, você precisa executar o script samba-tool

 /ADDC/bin/samba-tool domain provision --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=office.virusslayer.su --domain=virusslayer --host-name=ad --host-ip=192.168.1.105 --function-level=2008_R2 --adminpass=Password123456 

Indique a região, domínio, nome do host que você precisa, no host-ip usado para este host.

O próximo passo é configurar o kerberos. Para isso, é necessário alterar os seguintes arquivos

 /etc/krb5/krb5.conf /etc/krb5/kdc.conf 

O arquivo krb5.conf precisa ser convertido para

 [libdefaults] default_realm = OFFICE.VIRUSSLAYER.SU dns_lookup_realm = false dns_lookup_kdc = true default_tgs_enctypes = aes256-cts-hmac-sha1-96 default_tkt_enctypes = aes256-cts-hmac-sha1-96 permitted_enctypes = aes256-cts-hmac-sha1-96 [realms] OFFICE.VIRUSSLAYER.SU = { kdc = kdc.office.virusslayer.su admin_server = kdc.office.virusslayer.su } 

kdc.conf

 [realms] OFFICE.VIRUSSLAYER.SU = { profile = /etc/krb5/krb5.conf acl_file = /etc/krb5/kadm5.acl kadmind_port = 749 max_life = 8h 0m 0s max_renewable_life = 7d 0h 0m 0s default_principal_flags = +preauth } 

Para iniciar automaticamente e parar, tive que escrever um script simples no bash

 #!/usr/bin/bash case $1 in start|-start) /ADDC/sbin/samba /ADDC/sbin/smbd /ADDC/sbin/nmbd ;; stop|-stop) rm /ADDC/var/run/*.pid pkill -15 samba pkill -15 smbd pkill -15 nmbd ;; v|-v) /ADDC/sbin/samba -V ;; config|-config) cat /ADDC/etc/smb.conf ;; restart|-restart) rm /ADDC/var/run/*.pid pkill -15 samba pkill -15 smbd pkill -15 nmbd /ADDC/sbin/samba /ADDC/sbin/smbd /ADDC/sbin/nmbd ;; esac 

Coloque esse script no arquivo (que o criou anteriormente) / usr / bin / sambactl, torne-o executável e copie-o para os diretórios rc3.d, rc0.d para iniciar automaticamente e parar o Samba

 touche /usr/bin/sambactl chmod +x /usr/bin/sambactl cp /usr/bin/sambactl /etc/rc3.d/Ssambactl cp /usr/bin/sambactl /etc/rc0.d/Ksambactl 

Para uma operação correta, é necessário alterar o servidor DNS do sistema (o arquivo resolve.conf não precisa ser alterado, as alterações são salvas apenas até a reinicialização). Para isso, editamos o serviço e atualizamos o status (especifique o endereço IP do sistema atual como servidor)

 svccfg -s dns/client setprop config/nameserver="192.168.1.105" svcadm refresh dns/client 

Após essas manipulações, você pode iniciar o Samba e também adicionar uma entrada dns

 /usr/bin/sambactl /ADDC/bin/samba-tool dns add office.virusslayer.su -U administrator office.virusslayer.su kdc.office.virusslayer.su A 192.168.1.105 

Confira o trabalho dos kerberos

 kinit administrator 

Se tudo estiver correto e a senha for digitada corretamente, o ticket será criado no diretório / tmp / volatile-user / 0
A instalação do Kerberos não foi concluída, você também precisa configurar o servidor de sincronização de horário, para isso, criar o arquivo /etc/inet/ntp.conf, iniciar o serviço de horário e fazer as alterações necessárias nesse arquivo

 server 127.127.1.0 prefer server 0.europe.pool.ntp.org server 1.europe.pool.ntp.org server 2.europe.pool.ntp.org server 3.europe.pool.ntp.org driftfile /var/ntp/ntp.drift restrict 192.168.1.0 255.255.255.0 nomodify notrap 

Na linha restrita, especifique a sub-rede cujo acesso ao servidor de horário será permitido

Iniciar e atualizar o serviço

 svcadm enable ntp svcadm refresh ntp 

Para editar políticas de grupo, você pode usar o Remote Administration Tools (RSAT), essas ferramentas podem ser baixadas aqui

 Windows 8.1 https://www.microsoft.com/ru-ru/download/details.aspx?id=39296 Windows 10 https://www.microsoft.com/ru-RU/download/details.aspx?id=45520 Windows 7 https://www.microsoft.com/ru-ru/download/details.aspx?id=7887 

Após a instalação do RSAT no Windows 7, essas ferramentas devem ser ativadas no painel de controle (ativar ou desativar os recursos do Windows). Depois que o computador for inserido no domínio, inicie o editor de política de grupo. Na Política de Domínio Padrão, edite a política responsável pelo servidor de horário.

imagem

Nesta seção, você deve habilitar a opção "Ativar cliente NTP do Windows", "Configurar cliente NTP do Windows", definir o tipo de NTP, especificar NtpServer office.virusslayer.su

Além disso, você pode configurar o firewall, editar o arquivo /etc/firewall/pf.conf (trazendo-o para o seguinte formulário).

 set skip on lo0 pass quick on lo0 from any to any no state pass in quick on net0 proto {tcp,udp} from any to any port {22,53,123,135,137,464,389,515,636,631,445,139,88,3268,3269,49152:65535} flags S/SA modulate state pass out quick on net0 proto tcp from any to any port {80,443,21,20,53} flags S/SA modulate state pass out quick on net0 proto udp from any to any port=53 keep state pass out quick on net0 proto icmp from any to any block from any to any fragment block from any to any block all 

Inicie o serviço e especifique o arquivo com as regras

 svcadm enable firewall pfctl -f /etc/firewall/pf.conf 

Conclusão


Como você pode ver nesta publicação no Solaris, é possível usar o Samba como um ADDC, embora seja muito mais complicado do que qualquer outro sistema operacional.

Source: https://habr.com/ru/post/pt438910/


All Articles