domingo, 28 de março de 2021

Criar um arquivo em BASH usando CAT com EOF

Para automatizar seus scripts, você pode usar o CAT com EOF para criar scripts em bash.

Exemplo:

cat << 'EOF' > /caminho_do_seu_script/Seu_Script.sh
    Seu Script
EOF

Sendo assim, você pode automatizar toda sua instalação em um só script.

quinta-feira, 25 de março de 2021

Como acessar o Linux Debian Buster + Lightdm por VNC simplificado

Cenário:

Linux Debian Buster 10

1. Instalar os seguintes pacotes:

apt-get update && apt-get install tightvncserver -y

2. Edite as seguintes configurações abaixo:

$ nano /etc/lightdm/lightdm.conf
#
# VNC Server configuration
#
# enabled = True if VNC connections should be allowed
# port = TCP/IP port to listen for connections on
#
[VNCServer]
enabled=true
port=5900
width=1024
height=768
depth=8

3. Reinicie o lightdm.conf:

/etc/init.d/lightdm restart

Basta acessar com VNCVIEW!



Instalação e Configuração para ThinClient com Debian Buster 10 Netinst + FreeRDP + Painel com Yad

Thinclient será qualquer máquina/notebook/arduíno para conexão remota com o servidor

Adotaremos que cada usuário terá sua Máquina virtual com o nome no HOSTNAME da máquina:

Exemplo: 
 Usuario: Seu usuário
 Hostname: Nome da Máquina

O usuário padrão para todas as Maquinas Virtuais criada é de acordo com sua preferência, no nosso caso adotaremos como "usuário" para melhor definição dos códigos abaixo.
Pacotes Necessáros:
> Desktop: lxde-Core
> Login: lightdm
> Video: xorg
> Acesso Remoto: FreeRDP
> Painel de Login Personalizado: Yad
Link para a ISO do Debian Buster 10 Netinst: Download da ISO Debian Buster 10 Netinst

A instalação do SO Debina Buster 10 Netinst nos Thinclient
"Instale as configurações padrões e selecione apenas a opção SERVIDOR SSH para futuras instalações e configurações da máquina para THINCLIENT"
Após o final da instalação do SO no thinclient, acesse com o PUTTY via SSH e siga as instruções
1.Cope e Cole no arquivo  para criar o script de Instalação do ThinClient:

nano thinclientinstall.sh


# --------------------------- Inicio do Script do ThinClientInstall.sh ---------------------------
#!bin/bash
echo "#################################################################"
echo "# Criando diretório para os arquivos do Thinclient System       #"
echo "#################################################################"
mkdir /opt/THINCLIENT
sleep 2
echo "#################################################################"
echo "# Arquivo Criado                                                #"
echo "#################################################################"
ls /opt/
sleep 3
clear
echo "#################################################################"
echo "# Arquivo AUTOSTART do LIGHTDM para iniciar o PAINEL.SH         #"
echo "# Contem Comando Para Desativar o BLOQUEIO DE TELA AUTOMATICO   #"
echo "#################################################################"
sleep 2
cat << 'EOF' > /opt/THINCLIENT/autostart
#Scrpit do Painel Inicial
/etc/xdg/lxsession/LXDE/painel.sh
#Desativa bloqueio automático de tela lightdm
@xset s noblack
@xset s off
@xset -dpms
EOF
sleep 2
echo "#################################################################"
echo "# Arquivo Criado                                                #"
echo "#################################################################"
ls /opt/THINCLIENT/
cat /opt/THINCLIENT/autostart
sleep 3
clear
#################################################################
# Arquivo do PAINEL.SH                                          #
# Contém botões LOGIN REINICIAR e DESLIGAR                      #
#################################################################
cat << 'EOF' > /opt/THINCLIENT/painel.sh
#!/bin/bash
# Loop do PAINEL.SH para está sempre carregado
while true;
do
# Painel YAD
action=$(yad --maximized --borders=300 --center --title "Painel de Acesso Remoto" \
 --form --center --text="<b>Seja Bem-Vindo!</b>" --image "calligraplan" \
 --undecorated \
 --field="<b>Login</b>":fbtn 'bash -c "/etc/xdg/lxsession/LXDE/rdp.sh"'\
 --field="<b>Sair</b>":fbtn 'bash -c "pkill -KILL -u $USER"' \
 --no-buttons)
# Le a ação selecionada
action=$(echo $action  | cut -d \| -f1)
# Chama o Painel YAD Novamente
exec $action &
done
EOF
sleep 2
echo "#################################################################"
echo "# Arquivo Criado                                                #"
echo "#################################################################"
ls /opt/THINCLIENT/
cat /opt/THINCLIENT/painel.sh
sleep 3
clear
#################################################################
# Arquivo de Conexao Remota RDP.SH                              #
#################################################################
cat << 'EOF' > /opt/THINCLIENT/rdp.sh
#!/bin/bash
while true;
do
# Variáveis recebe valores padrões
SERVER=
PORT=
DOMAIN=
# Nome do usuário padrão definido na Instalação do Debian Buster 10 Netinst foi USUARIO
LOGIN=
PASSWORD=
# Formulário do YAD para receber as informações de LOGIN
FORMULARY=$(yad --on-top --center \
 --window-icon="gtk-execute" --image="debian-logo" --item-separator="," \
 --title "Sistema de Acesso Remoto - NOME_DA_EMPRESA" \
 --form --borders=100 --center --columns=1 --height=300 --width=550 \
 --field="Hostname" $SERVER "" \
 --field="Porta" $PORT "" \
 --field="Usuario" $LOGIN "" \
 --field="Senha":H $PASSWORD "" \
 --field="Dominio":H $DOMAIN "" \
 --button="Conectar":0 \
 --button="Sair":1 )
[ $? != 0 ] && exit
#Carrega as informações inseridas
SERVER=$(echo $FORMULARY | awk -F '|' '{ print $1 }')
PORT=$(echo $FORMULARY   | awk -F '|' '{ print $2 }')
LOGIN=$(echo $FORMULARY | awk -F '|' '{ print $3 }')
PASSWORD=$(echo $FORMULARY | awk -F '|' '{ print $4 }')
DOMAIN=$(echo $FORMULARY | awk -F '|' '{ print $5 }')
# Carrega no FREERDP e carrega o programa
RES=$(xfreerdp /v:$SERVER:$PORT /cert-ignore /f /sec-rdp /d:$DOMAIN /u:$LOGIN /p:$PASSWORD)
break
done
EOF
sleep 2
echo "#################################################################"
echo "# Arquivo Criado                                                #"
echo "#################################################################"
ls /opt/THINCLIENT/
cat /opt/THINCLIENT/rdp.sh
sleep 3
clear
#################################################################
# Altera o arquivo GRUB para carregar automaticamente o sistema selecionado  #
#################################################################
#cat << 'EOF' > /opt/THINCLIENT/grub
#GRUB_DEFAULT=0
#GRUB_TIMEOUT=0
#GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet"
#GRUB_CMDLINE_LINUX=""
#EOF
#sleep 2
#echo "#################################################################"
#echo "# Arquivo Criado                                                #"
#echo "#################################################################"
#ls /opt/THINCLIENT/
#cat /opt/THINCLIENT/grub
#sleep 3
#clear
#################################################################
# Cria arquivo do LIGHTDM para login automático                 #
#################################################################
#cat << 'EOF' > /opt/THINCLIENT/lightdm.conf
#[Seat:*]
# Cadastra o usuario padrao para login automático
#autologin-user=user
# Define o tempo para login automático
#autologin-user-timeout=0
#EOF
#sleep 2
#echo "#################################################################"
#echo "# Arquivo Criado                                                #"
#echo "#################################################################"
#ls /opt/THINCLIENT/
#cat /opt/THINCLIENT/lightdm.conf
#sleep 3
#clear
echo "#################################################################"
echo "# Script de Instalação dos pacotes necessários para carregar    #"
echo "# todo o sistema do Thinclient                                  #"
echo "#################################################################"
apt-get update
apt-get --no-install-recommends install xorg lightdm lxde-core -y
apt-get install krfb remmina-plugin-rdp freerdp2-shadow-x11 freerdp2-x11 freerdp2-wayland yad at-spi2-core -y
sleep 2
echo "#################################################################"
echo "# Pacotes Instalados                                            #"
echo "#################################################################"
sleep 3
clear
echo "#################################################################"
echo "# Backup de todos os arquivos padrões do sistema                #"
echo "# que serão alterados                                           #"
echo "#################################################################"
mv /etc/xdg/lxsession/LXDE/autostart /etc/xdg/lxsession/LXDE/autostart.bkp
#mv /etc/default/grub /etc/default/grub.bkp
#mv /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.bkp.conf
sleep 2
ls /etc/xdg/lxsession/LXDE/
ls /etc/default/
ls /etc/lightdm/
sleep 2
echo "#################################################################"
echo "# Backups Criados                                               #"
echo "#################################################################"
sleep 3
clear
echo "#################################################################"
echo "# Copiando os arquivos criados                   #"
echo "# os arquivos do sistema                                        #"
echo "#################################################################"
cp /opt/THINCLIENT/autostart /etc/xdg/lxsession/LXDE/autostart
#cp /opt/THINCLIENT/grub /etc/default/grub
#cp /opt/THINCLIENT/lightdm.conf /etc/lightdm/lightdm.conf
cp /opt/THINCLIENT/painel.sh /etc/xdg/lxsession/LXDE/painel.sh
cp /opt/THINCLIENT/rdp.sh /etc/xdg/lxsession/LXDE/rdp.sh
sleep 2
ls /etc/xdg/lxsession/LXDE/
#ls /etc/default/
#ls /etc/lightdm/
sleep 2
echo "#################################################################"
echo "# Arquivos Copiados                                             #"
echo "#################################################################"
sleep 3
clear
#################################################################
# Define o acesso a execução e torna todos executáveis          #
#################################################################
#chmod 755 /etc/default/grub
#chmod 755 /etc/lightdm/lightdm.conf
chmod 755 /etc/xdg/lxsession/LXDE/autostart
chmod 755 /etc/xdg/lxsession/LXDE/painel.sh
chmod +x /etc/xdg/lxsession/LXDE/painel.sh
chmod 755 /etc/xdg/lxsession/LXDE/rdp.sh
chmod +x /etc/xdg/lxsession/LXDE/rdp.sh
sleep 2
#################################################################
# Reiniciando o sistema após a instalação e configuração        #
#################################################################
sudo reboot
# --------------------------- Fim do Script do ThinClientInstall.sh ---------------------------


CRTL+X e Y e ENTER
chmod 755 thinclientinstall.sh
chmod +x thinclientinstall.sh
sh thinclientinstall.sh

quinta-feira, 18 de março de 2021

Executar o Hyper-V em uma Máquina Virtual com a Virtualização Aninhada

A virtualização aninhada é um recurso que permite executar o Hyper-V em uma VM (máquina virtual) do Hyper-V.

Configurar a virtualização aninhada

  1. Crie uma máquina virtual. Consulte os pré-requisitos acima para as versões necessárias do sistema operacional e da VM.
  2. Enquanto a máquina virtual está no estado DESLIGADO, execute o seguinte comando no host físico do Hyper-V. Isso habilita a virtualização aninhada para a máquina virtual.
    Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

  1. Iniciar a máquina virtual.
  2. Instale o Hyper-V na máquina virtual, exatamente como você faria para um servidor físico. Para obter mais informações sobre a instalação do Hyper-V consulte Instalar o Hyper-V.

Desabilitar Virtualização Aninhada

Você pode desabilitar a virtualização aninhada para uma máquina virtual interrompida usando o seguinte comando do PowerShell:

    Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false

Falsificação de endereço MAC

Para que os pacotes de rede sejam roteados por meio de dois comutadores virtuais, a falsificação de endereço MAC precisa estar habilitada no primeiro nível (L1) do comutador virtual. Isso pode ser concluído com o comando do PowerShell a seguir.

    Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On


Como mostrar a versão do Linux Debian

 Para mostrar a versão do Linux do Debian, rode o seguinte comando: $ cat /etc/*release* | grep CODENAME | cut -d "=" -f 2 Debian ...