Astra Linux 1.6 (Smolensk). O sistema está pronto para funcionar com usuários comuns? Exemplos de muletas


Neutralização do usuário e o processo de instalação de um novo sistema operacional

Oi Habr. Hoje, queremos compartilhar a experiência de migrar uma organização (doravante - o Cliente) para o sistema operacional doméstico como parte da implementação dos requisitos de substituição de importação. É imediatamente necessário indicar que o Cliente selecionou e comprou este SO sozinho. Também gostamos da implantação, otimização deste sistema operacional e do cumprimento dos requisitos de proteção de informações.

Desafio


Existe um sistema de informações de estado da 2ª classe de segurança (doravante - SIG) com cerca de 1.000 condicionalmente do mesmo tipo de usuários, com uma gama estritamente definida de tarefas oficiais. O próprio GIS consiste em serviços da Web distribuídos em torno de 30 sites com bancos de dados locais. Também existem trabalhos remotos nos assentamentos. Ao mesmo tempo, há um domínio comum (mas não em todos os lugares), há bailes locais / corporativos. Em alguns lugares, o parque de computadores e equipamentos de escritório não é o primeiro frescor; os canais de transmissão entre os objetos não são tão quentes. Existem administradores de sistemas locais e administradores principais. Em geral, a situação padrão característica das instituições estatais de médio porte antes da grande migração para o software doméstico.

Problemas, testes, estudo



1. Conectamos a bola através do gerenciador de arquivos gráficos Astrov (fly-fm). Não há problemas em exibir nomes de arquivos russos nas bolas da "janela". Mas esses nomes se transformam em um conjunto de caracteres ilegíveis por uma pessoa ao copiar esses arquivos na área de trabalho e em outros locais do disco . Nós trabalhamos com desenvolvedores nessa questão, a questão é complexa, embora haja correções.

Existe uma maneira de montar bolas usando o Linux, independentemente dos recursos do software Astrov. O método funciona, mas leva tempo para testar em condições reais. Testes preliminares mostraram que os arquivos não são distorcidos quando exibidos e copiados, mas há problemas de compatibilidade com algumas versões do Windows Server. A essência dos problemas com a restrição de acesso aos arquivos na bola ao conectar um cliente Linux, testamos a conexão com várias opções recomendadas pelos desenvolvedores do pacote cifs-tools, responsável pela montagem da bola. Às vezes, usamos autofs; em outros casos, instruímos como “não há necessidade de fazer” com o que estão acostumados.

2. Associado ao primeiro. Ao montar bolas do Astrov fly-fm, os usuários não podem salvar arquivos do Firefox diretamente na "bola". Eles precisam fazer duas operações: no Firefox, eles primeiro salvam na área de trabalho e depois jogam o documento na bola. A mesma coisa para colocar o arquivo no site, primeiro eles o levam das bolas para a área de trabalho e depois os soltam em seus bancos de dados.

Isso se deve ao fato de o Firefox usar sua própria caixa de diálogo para abrir e gravar arquivos, na qual não há como apontar para o link simbólico das bolas que criamos no astrov fly-fm.

Esse problema não existiria se o Astra não usasse seu ambiente gráfico, mas alguns dos mais populares no Linux. Por enquanto, resta usar autofs ou escrever instruções aos funcionários sobre as regras para copiar e baixar arquivos.

3. Compartilhando impressoras USB na rede. Duas opções padrão: através dos copos e samba do servidor de impressão, o protocolo não decolou com as configurações padrão. Nós o transformamos no modo Cliente e o conectamos aos CUPS de outro computador e funcionou, apenas com a ressalva - um cliente pode ter apenas 1 servidor de impressão e o computador configurado no modo cliente não pode usar suas impressoras locais, porque o servidor de impressão está congestionado.

4. As instituições costumam usar macros em documentos da suíte de escritório anterior. Essas macros não são compatíveis com macros no Libre Office, porque no último eles são gravadas não no Visual Basic, mas em Java.

Além disso, os criadores do Astra jogaram fora tudo relacionado ao Java do kit de distribuição, uma vez que pertence à empresa americana Oracle. Ou seja, ainda é impossível escrever macros no escritório da Astrov. A única opção é emulação ou um computador próximo com o Windows.

Conclusões e decisões


Com base na análise da situação atual da infraestrutura, foi decidido que a automação da transição para o sistema operacional doméstico poderia causar problemas inesperados. Essa abordagem só poderia ser aplicada no gerenciamento (escritório central) - nesse caso, era possível responder rapidamente. Embora houvesse locais de trabalho e processos tecnológicos bastante típicos nas instalações locais nos distritos, isso não fornece padronização total e a possibilidade de uma “instalação silenciosa”.

O que ainda impedia a instalação simultânea via rede:

  • falta de um domínio comum;
  • zoológico de ferro e periferia;
  • O download da rede não é uma prioridade, você ainda precisa acessar a estação de trabalho remota e alterar a ordem de download (como resultado da falta de um domínio centralizado - não há capacidade operacional para instalar nenhum agente para pré-configuração);
  • canais de comunicação ruins com estações de trabalho remotas e entre objetos;
  • o processo técnico, embora na maioria das vezes padrão, mas na verdade nem todos os usuários foram transferidos de qualquer maneira, pois uma parte significativa possui tarefas que podem ser executadas até o momento apenas no Windows;
  • a reinstalação simultânea do sistema operacional em todos os computadores sem configuração adicional do usuário paralisa o trabalho de toda a instituição, o que é inaceitável.

Como resultado, decidiu-se formar a distribuição mais universal para implantação no local com as mãos. Além disso, foi necessário organizar canais de suporte técnico para administradores de sistemas em campo, para consultas e tradução de experiências com tarefas oficiais.

Em geral, no tópico de mudança para software doméstico: no momento, os problemas com a migração de muitos aplicativos não foram resolvidos. Completamente padrão e exótico (inclusive auto-escrito). Portanto, a migração para um novo sistema operacional agora inclui, entre outras coisas, encontrar soluções ideais para a realização de tarefas oficiais novamente e, possivelmente, uma mudança significativa nos processos tecnológicos existentes das organizações. O que, por sua vez, pode acarretar a necessidade de atualizar / revisar documentos de projeto e certificação e outras considerações filosóficas sobre o tema segurança da informação em todo o país.

A migração na organização considerada continua. As etapas são descritas, os seguintes objetos e outros trabalhos são selecionados para a transição para um novo sistema operacional. Além disso, este projeto está correlacionado com o plano lançado de cima para a transição para o software doméstico em nossos outros clientes e novos clientes. Enquanto o processo está progredindo difícil, embora às vezes com urgência, várias abordagens são testadas e aplicadas. Há muita informação para análises, a escolha de soluções, certamente cobriremos o mais longe possível e possível.

Mais detalhes técnicos, xamanismo e muletas.

Preparação e instalação da unidade flash


1. Para instalar, você precisará de uma unidade flash ou outra unidade USB NTFS externa com um volume não
menos de 16 GB. A imagem Porteus pesa 270MB. Este é essencialmente um Linux móvel, necessário apenas para executar nosso script de instalação. A imagem do Astra Linux instalado pesa 8 GB. Se desejar, você pode encolher a imagem no chão de um gigabyte e, em seguida, 8 gigabytes de unidade flash serão suficientes.

2. Copie a imagem do sistema e a árvore de diretórios para ela no sistema operacional portátil Porteus que modificamos levemente.

3. Torne a unidade flash inicializável executando o script:

/boot/Porteus-installer-for-Linux.com —  Linux /boot/Porteus-installer-for-Windows.exe —  Windows 

4. Inicialize a partir da unidade preparada e siga as instruções:



Para o Porteus, criamos um módulo contendo um script bash para implantar o Astra Linux no modo interativo.



O script examina a unidade de inicialização em busca de imagens do sistema, permite selecionar um disco para instalar o sistema, distribui a imagem e permite que você faça algumas configurações antes da inicialização do sistema.

Script
 #!/bin/sh # unmount swap disks for i in `cat /proc/swaps | grep dev | awk -F" " '{print $1}'`; do swapoff $i; done #variables DIALOG=${DIALOG=dialog} tempfile=`mktemp 2>/dev/null` || tempfile=/tmp/temp$$ tempfile1=`mktemp 2>/dev/null` || tempfile1=/tmp/temp$$ tempfile2=`mktemp 2>/dev/null` || tempfile2=/tmp/temp$$ tempfile3=`mktemp 2>/dev/null` || tempfile3=/tmp/temp$$ tempfile4=`mktemp 2>/dev/null` || tempfile4=/tmp/temp$$ #image selection setimage () { mdevs=`mount | grep fuseblk | awk -F" " '{print $3}'` cd / $DIALOG --backtitle "   :" \ --menu " " 15 80 5 \ `find $mdevs -name *.di -type f | awk '{print $0,"image"}'` 2> $tempfile retval=$? case $retval in 0) image=`cat $tempfile | awk -F/ '{print $6}'` input=`cat $tempfile` echo "  : $image" sleep 2;; 1) echo "  ." exit 0;; 255) echo "  ESC." exit 0;; esac } #disk selection setdisk () { sdisk=`mount | grep fuseblk | awk -F" " '{print $1}' | awk -F/ '{print $3}' | tr -d [0-9]` $DIALOG --backtitle "     $image :" \ --menu "`parted -l | grep -E "| \/"`" 15 80 5 \ `fdisk -l | grep " /"| grep "/dev/s" | awk -F" " '{print $2,$1}'| awk -F: '{print $1,$2}' | sed "/$sdisk/d"` 2> $tempfile1 retval=$? case $retval in 0) disk=`cat $tempfile1 | awk -F/ '{print $3}'` output=`cat $tempfile1` echo " $disk       $image" sleep 2;; 1) echo "  ." exit 0;; 255) echo "  ESC." exit 0;; esac } #cloning (dd process) cloning () { bs=`hdparm -I $output | grep "cache/buffer size" | awk -F" " '{print $4}'` umount -l $output"*" dd if=/dev/zero of=$output bs=512 count=1 clear sleep 1 echo "  $image   $disk..." #dd if=$input of=$output bs=$bs 2>/tmp/error & pid=$! dd if=$input of=$output bs=8M 2>/tmp/error & pid=$! sleep 2 while [ -d /proc/$pid ]; do kill -USR1 $pid && tail -n 2 /tmp/error | grep GB && sleep 10 && clear; done clear tail -n 3 /tmp/error echo "  ." rm /tmp/error sleep 2 } #resize second partition resizepart () { echo "     :" fdisk -l $output"2" | head -n 1 echo "    $disk..." parted $output rm 2 parted $output mkpart primary 2GB 100% resize2fs -f $output"2" e2fsck $output"2" echo "   :" fdisk -l $output"2" | head -n 1 sleep 2 } #hostname sethost () { $DIALOG --inputbox "  :" 10 80 2> $tempfile2 retval=$? case $retval in 0) hostn=`cat $tempfile2` mount $output"2" echo $hostn >/mnt/$disk"2"/etc/hostname hosts=/mnt/$disk"2"/etc/hosts /bin/cat << ENDFILE >$hosts 127.0.0.1 localhost 127.0.1.1 $hostn # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip-allnodes ff02::2 ip6-allrouters ENDFILE echo "   : `cat /mnt/$disk"2"/etc/hostname`" sleep 2;; 1) echo "  ." exit 0;; 255) echo "  ESC." exit 0;; esac } #adduser adduser () { $DIALOG --inputbox "  :" 8 40 --inputbox " :" 8 40 2> $tempfile3 retval=$? case $retval in 0) name=`awk '{print $1}' $tempfile3` pass=`awk '{print $2}' $tempfile3` passf=/mnt/$disk"2"/tmp/pass /bin/cat << ENDFILE >$passf parsec_pam del useradd -m -N -s /bin/bash -G cdrom,audio,video,floppy,plugdev,dialout,users $name echo -e "$pass\n$pass\n" | passwd $name passwd -w 14 -x 90 $name parsec_pam add ENDFILE chmod 755 $passf chroot /mnt/$disk"2" /tmp/pass echo " : $name" echo " : $pass" sleep 2;; 1) echo "  ." exit 0;; 255) echo "  ESC." exit 0;; esac } #kasperftp kasper () { $DIALOG --inputbox " ip  ftp    :" 10 80 2> $tempfile4 retval=$? case $retval in 0) kftp=`cat $tempfile4` obnovftp=/mnt/$disk"2"/opt/kaspersky/kesl/bin/kesl-obnovftp /bin/cat << ENDFILE >$obnovftp SourceType=Custom ConnectionTimeout=10 [CustomSources.item_1] URL=ftp://ftpuser:1qwertyuiop_0@$kftp/Updates Enabled=Yes ENDFILE echo "ip  ftp    : $kftp" sleep 2;; 1) echo "  ." exit 0;; 255) echo "  ESC." exit 0;; esac } autofs () { mcedit /mnt/$disk"2"/etc/auto.share } #statement state () { echo " $image    $disk." echo "     $disk:" fdisk -l /dev/$disk echo "ip  ftp    : `cat /mnt/$disk"2"/opt/kaspersky/kesl/bin/kesl-obnovftp | grep URL | awk -F@ '{print $2}' | awk -F/ '{print $1}'`" echo " : `cat /mnt/$disk"2"/etc/hostname`" echo " : $name" echo " : $pass" echo "  :" cat /mnt/$disk"2"/etc/group | grep $name | awk -F: '{print $1}' echo "  .  reboot   Ctrl+Alt+Del   ." } #program start: setimage setdisk cloning resizepart sethost adduser kasper autofs state exit 0 


Alterações que fizemos na configuração do sistema


1. Ligue o teclado numérico na tela de boas-vindas do sistema, por padrão, ele foi desativado. Opção "NumLock = On" no arquivo de configuração:

/ etc / X11 / fly-dm / fly-dmrc

2. Artefatos eliminados e renderização lenta da janela para placas de vídeo integradas baseadas em chips Intel, ativando o modo de renderização UXA no arquivo:

/etc/X11/xorg.conf.d/20-intel.conf

 Section "Device" Identifier "Intel Graphics" Driver "intel" Option "AccelMethod" "uxa" Option "TearFree" "true" Option "Tiling" "true" EndSection Section "Extensions" Option "Composite" "Enable" Option "RENDER" "Enable" EndSection Section "ServerFlags" Option "AIGLX" "true" EndSection 

3. Foi adicionada a capacidade de tornar o servidor de impressão CUPS local um cliente de outro servidor. Isso permite que você use impressoras conectadas a outras máquinas Linux via USB quando houver problemas ao conectá-las na rede pela interface da web.

Arquivo criado:

/etc/cups/client.conf

 #ServerName 10.12.xx 

Aqui você precisa remover a linha de comentário e adicionar o endereço da máquina remota à impressora. Depois disso, a impressora estará imediatamente disponível para impressão.

4. Arquivos de configuração de mapeamento de fonte reescritos. Foi adicionada a capacidade de ativar e desativar a suavização no nível de todo o sistema, e não no nível do aplicativo.

Arquivos:

/etc/fonts/conf.avail/11-fontsalias.conf

Código
 <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <alias> <family>serif</family> <prefer><family>PT Sans</family></prefer> </alias> <alias> <family>sans-serif</family> <prefer><family>PT Sans</family></prefer> </alias> <alias> <family>sans</family> <prefer><family>PT Sans</family></prefer> </alias> <alias> <family>monospace</family> <prefer><family>PT Sans</family></prefer> </alias> <alias> <family>mono</family> <prefer><family>PT Sans</family></prefer> </alias> <match> <test name="family"><string>Arial</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> <match> <test name="family"><string>Helvetica</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> <match> <test name="family"><string>Verdana</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> <match> <test name="family"><string>Tahoma</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> <match> <!-- Insert joke here --> <test name="family"><string>Comic Sans MS</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> <match> <test name="family"><string>Times New Roman</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Serif</string> </edit> </match> <match> <test name="family"><string>Times</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> <match> <test name="family"><string>Courier New</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> <match> <test name="family"><string>Arimo</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> <match> <test name="family"><string>Roboto</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> <match> <test name="family"><string>OpenSymbol</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> <match> <test name="family"><string>Noto Sans</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> <match> <test name="family"><string>Carlito</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> <match> <test name="family"><string>Fixed</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> <match> <test name="family"><string>Lucida</string></test> <edit name="family" mode="assign" binding="strong"> <string>PT Sans</string> </edit> </match> </fontconfig> 


/etc/fonts/conf.avail/12-noaa.conf

Código
 <?xml version = '1.0'?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <!-- /etc/fonts/local.conf file for local customizations --> <fontconfig> <match target="font" > <edit mode="assign" name="hinting" > <bool>true</bool> </edit> </match> <match target="font" > <edit mode="assign" name="antialias" > <bool>false</bool> </edit> </match> <match target="font" > <edit mode="assign" name="embeddedbitmap" > <bool>false</bool> </edit> </match> <match target="font" > <edit mode="assign" name="hintstyle" > <const>hintfull</const> </edit> </match> <match target="font" > <edit mode="assign" name="autohint" > <bool>false</bool> </edit> </match> <match target="font" > <edit mode="assign" name="lcdfilter" > <const>lcdlight</const> </edit> </match> <match target="font" > <edit mode="assign" name="rgba" > <const>rgb</const> </edit> </match> <match target="pattern" > <edit mode="assign" name="dpi" > <double>96</double> </edit> </match> </fontconfig> 


/etc/fonts/conf.avail/13-aa.conf

Código
 <?xml version = '1.0'?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <!-- /etc/fonts/local.conf file for local customizations --> <fontconfig> <match target="font" > <edit mode="assign" name="hinting" > <bool>true</bool> </edit> </match> <match target="font" > <edit mode="assign" name="antialias" > <bool>true</bool> </edit> </match> <match target="font" > <edit mode="assign" name="embeddedbitmap" > <bool>false</bool> </edit> </match> <match target="font" > <edit mode="assign" name="hintstyle" > <const>hintslight</const> </edit> </match> <match target="font" > <edit mode="assign" name="autohint" > <bool>false</bool> </edit> </match> <match target="font" > <edit mode="assign" name="lcdfilter" > <const>lcdlight</const> </edit> </match> <match target="font" > <edit mode="assign" name="rgba" > <const>rgb</const> </edit> </match> <match target="pattern" > <edit mode="assign" name="dpi" > <double>96</double> </edit> </match> </fontconfig> 


Os scripts são responsáveis ​​por ativar e desativar a suavização:

/ usr / local / bin / aaon
/ usr / local / bin / aaoff

5. Uma pasta de rede foi adicionada para digitalização das MFPs da rede, o que permite salvar imagens usando o protocolo smb. Para o arquivo de configuração padrão do servidor Samba:

/etc/samba/smb.conf

seção introduzida:

 [scan] path = /var/scan comment = scan read only = no guest ok = no guest only = no valid users = scan create mask = 0666 directory mask = 0777 

bem como uma seção comentada para criar rapidamente uma pasta de troca pública:

 #[share] #path = /var/share #comment = share #read only = no #guest ok = yes #create mask = 0666 #directory mask = 0777 

varredura de usuário samba com varredura de senha registrada no sistema

6. Um esqueleto de configurações foi criado para usuários locais recém-registrados do sistema. Ele contém pequenas alterações na aparência da área de trabalho, configurações alteradas para aplicativos do usuário, certificados para conectar o navegador aos recursos de rede necessários, etc. Algumas mudanças serão descritas em detalhes posteriormente no texto.

7. Um arquivo de configuração de serviço rc-local foi criado para o subsistema de inicialização do Linux. Isso possibilita, se necessário, carregar qualquer script no estágio de inicialização do sistema.

Arquivos:

/etc/rc.local

 #!/bin/sh -e exit 0 

/etc/systemd/system/rc-local.service

 [Unit] Description=/etc/rc.local Compatibility ConditionPathExists=/etc/rc.local [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 StandardOutput=tty RemainAfterExit=yes SysVStartPriority=99 [Install] WantedBy=multi-user.target 

8. Adicionados drivers Xerox proprietários para algumas impressoras de rede.

9. O pacote autofs está instalado e configurado. Permite conectar pastas de rede por meio de cifs-utils no nível do sistema. Para arquivar:

/etc/auto.master

linha adicionada:

 /mnt /etc/auto.share --ghost --timeout=60 

criou um arquivo de configuração com instruções dentro:

/etc/auto.share

10. Um script foi gravado para inicializar o servidor de atualização do Kaspersky Anti-Virus e verificar as atualizações do banco de dados:

/ usr / local / bin / kasperftp

 #!/bin/sh echo " ,    ..." /opt/kaspersky/kesl/bin/kesl-control --stop-task 6 sleep 2 echo "   ." /opt/kaspersky/kesl/bin/kesl-control --set-settings 6 --file /opt/kaspersky/kesl/bin/kesl-obnovftp echo " ..." /opt/kaspersky/kesl/bin/kesl-control --start-task 6 /opt/kaspersky/kesl/bin/kesl-control -W exit 0 

11. Adicionado papel de parede da área de trabalho e um tema personalizado para a tela de boas-vindas do sistema.

Conexão de impressoras.

As impressoras são configuradas através da página de configuração do CUPS em um navegador em: 127.0.0.1 : 631 ou localhost : 631

A página foi traduzida para o russo e é intuitiva. Para instalar a impressora, você precisa de direitos de administrador do sistema. Para publicar impressoras na rede, você precisa ativar dois itens nas configurações do servidor.

Ao adicionar uma impressora de rede, geralmente é usado o AppSocket / HP JetDirect ou o Internet Printing Protocol (ipp) com um endereço IP.

Se a impressora de rede não se conectar usando esses métodos, você poderá tornar o servidor de impressão CUPS local um cliente de outro servidor editando o arquivo /etc/cups/client.conf , indicando nele o endereço de rede da máquina com as impressoras conectadas. Nesse caso, você não precisa instalar nenhum driver. Embora exista um grande número de drivers no banco de dados do CUPS, às vezes é necessária a instalação de drivers de marca.

Para algumas impressoras de rede Xerox, já instalamos drivers proprietários e um configurador, o comando:

 xeroxprtmgr 

Se uma impressora for detectada, será necessário selecioná-la e especificar o nome da fila, que também é o nome da impressora no sistema. Alguns modelos de impressora, por padrão, estão configurados para imprimir uma página com um número para cada trabalho individual. Encontre esta opção nas configurações da fila e desative-a.

Se você possui uma impressora HP, é melhor usar drivers de marca também pré-instalados no sistema. Vá para o painel de controle> equipamento> instale o plug-in HP adicional e, em seguida, instale> impressoras, faxes, scanners HP.

Scanners

Para instalar o scanner, é necessário inserir o comando scanimage -L no terminal do administrador do sistema. Se um scanner for encontrado, você verá a saída com seu nome. Se a saída estiver vazia, você deve procurar drivers de marca na Internet.

Por enquanto é tudo. Compartilhe sua experiência na implementação do sistema operacional doméstico nos comentários.

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


All Articles