BEM VINDO AO BLOG DO MARCOS CARRARO CRIADOR DO "CARRARO DASHBOARD". MUITO MAIS QUE UM SIMPLES BLOG.

segunda-feira, 10 de julho de 2017

Criando um Servidor PXE para Iniciar arquivos ISO para AcronisTrueImage recover/backup

Bom Dia,

Documentando processo para servidor de PXE com boot de arquivos em .ISO de sistemas operacionais na rede, ideal para equipamentos que não disponham de leitores e ou seja preciso disponibilizar um boot por ISO para o suporte.

1 - Habilitar login do root por ssh
Comente a seguinte linha no arquivo /etc/ssh/sshd_config

# PermitRootLogin without-password


2 - Definir um IP para a interface ligada aos computadores da rede
# vim /etc/network/interfaces

auto eth1
iface eth1 inet static
address  10.255.255.1
netmask 255.255.255.0



3 - Instalar o DHCP necessário para distribuir os IPs para as máquinas com os parâmetros para boot.

# apt-get install isc-dhcp-server

Após instalar o DHCP, vamos fazer uma cópia de segurança do arquivo de configuração
# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bkp

Feito este backup, vamos alterar o dhcpd.conf para habilitar o boot pela rede.
# vim /etc/dhcp/dhcpd.conf

default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;

subnet 10.255.255.0 netmask 255.255.255.0 {
  range 10.255.255.100 10.255.255.200;
  option broadcast-address 10.255.255.255;
  filename "pxelinux.0";
  allow booting;
  allow bootp;
}

4.0 - Ajustar diretórios
O diretório deve ficar conforme estrutura abaixo.

# mkdir -p /repositorio_imagens/boot/
# mkdir -p /repositorio_imagens/boot/pxelinux.cfg/
# mkdir -p /repositorio_imagens/boot/isos
# ln -s /repositorio_imagens/boot/isos/ /repositorio_imagens/isos
# touch /repositorio_imagens/boot/pxelinux.cfg/default

4.1 - Vamos instalar o TFTPD, que é o protocolo responsável por transferir os arquivos pelo PXE.
# apt-get install tftpd-hpa

Substitua o conteúdo do arquivo "tftpd-hpa" pelo seguinte arquivo

# vim /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -s /repositorio_imagens/boot/"

Onde "repositorio_imagens/boot" é um ponto de montagem de um disco de alguns terabytes que estarão armazenados todas minhas ISOS e imagens necessárias

5 - Vamos instalar o pxelinux que irá disponibilizar os arquivos necessários para montar a tela de boot

# apt-get install pxelinux syslinux

Vamos copiar os arquivos necessários para iniciar o menu do boot

# cp -vax /usr/lib/PXELINUX/pxelinux.0 /repositorio_imagens/boot/
# cp -vax /usr/lib/syslinux/modules/bios/ldlinux.c32 /repositorio_imagens/boot/
# cp -vax /usr/lib/syslinux/modules/bios/menu.c32 /repositorio_imagens/boot/
# cp -vax /usr/lib/syslinux/modules/bios/vesamenu.c32 /repositorio_imagens/boot/
# cp -vax /usr/lib/syslinux/modules/bios/libcom32.c32 /repositorio_imagens/boot/
# cp -vax /usr/lib/syslinux/modules/bios/libutil.c32 /repositorio_imagens/boot/
# cp -vax /usr/lib/syslinux/modules/bios/reboot.c32 /repositorio_imagens/boot/
# cp -vax /usr/lib/syslinux/modules/bios/poweroff.c32 /repositorio_imagens/boot/
# cp -vax /usr/lib/syslinux/memdisk /repositorio_imagens/boot/

6 - Agora vamos criar o arquivo responsável pelo menu e suas entradas para boot

# vim /repositorio_imagens/boot/pxelinux.cfg/default

UI vesamenu.c32
TIMEOUT 3600
PROMPT 0
MENU RESOLUTION 1024 768
MENU TITLE    PXE BOOT MENU
# Format is: MENU COLOR <Item> <ANSI Seq.> <foreground> <background> <shadow type>
MENU COLOR screen      0  #80ffffff #00000000 std      # background colour not covered by the splash image
MENU COLOR border      0  #ffffffff #ee000000 std      # The wire-frame border
MENU COLOR title       0  #ffff3f7f #ee000000 std      # Menu title text
MENU COLOR sel         0  #ff00dfdf #ee000000 std      # Selected menu option
MENU COLOR hotsel      0  #ff7f7fff #ee000000 std      # The selected hotkey (set with ^ in MENU LABEL)
MENU COLOR unsel       0  #ffffffff #ee000000 std      # Unselected menu options
MENU COLOR hotkey      0  #ff7f7fff #ee000000 std      # Unselected hotkeys (set with ^ in MENU LABEL)
MENU COLOR tabmsg      0  #c07f7fff #00000000 std      # Tab text
MENU COLOR timeout_msg 0  #8000dfdf #00000000 std      # Timout text
MENU COLOR timeout     0  #c0ff3f7f #00000000 std      # Timout counter
MENU COLOR disabled    0  #807f7f7f #ee000000 std      # Disabled menu options, including SEPARATORs
MENU COLOR cmdmark     0  #c000ffff #ee000000 std      # Command line marker - The '> ' on the left when editing an option
MENU COLOR cmdline     0  #c0ffffff #ee000000 std      # Command line - The text being edited
# Options below haven't been tested, descriptions may be lacking.
MENU COLOR scrollbar   0  #40000000 #00000000 std      # Scroll bar
MENU COLOR pwdborder   0  #80ffffff #20ffffff std      # Password box wire-frame border
MENU COLOR pwdheader   0  #80ff8080 #20ffffff std      # Password box header
MENU COLOR pwdentry    0  #80ffffff #20ffffff std      # Password entry field
MENU COLOR help        0  #c0ffffff #00000000 std      # Help text, if set via 'TEXT HELP ... ENDTEXT'

# OPCOES DE ESCOLHA MENU

LABEL GParted
MENU LABEL GParted
LINUX ../memdisk
INITRD ../isos/gparted-live-0.28.1-1-i686.iso
APPEND iso raw

LABEL memtest
MENU LABEL memtest86
LINUX ../memdisk
INITRD ../isos/memtest86+-5.01.iso
APPEND iso raw

LABEL discoLocal
MENU LABEL Disco Local
MENU DEFAULT
localboot

LABEL reiniciar
MENU LABEL Reiniciar
COM32 ../reboot.c32

LABEL desligar
MENU LABEL Desligar
COM32 ../poweroff.c32



7 - Baixar a ISO do memtest86
# cd /repositorio_imagens/isos
#  wget http://www.memtest.org/download/5.01/memtest86+-5.01.iso.zip
# apt-get instal unzip
# unzip memtest86+-5.01.iso.zip
# rm -rf memtest86+-5.01.iso.zip


8 - Baixar a ISO do GParted
# cd /repositorio_imagens/isos
# wget http://downloads.sourceforge.net/gparted/gparted-live-0.28.1-1-i686.iso

9 - Transfira a ISO do Acronis TrueImage para o diretório /repositorio_imagens/isos e criei a entrada no arquivo /repositorio_imagens/boot/pxelinux.cfg/default

LABEL acronisTrueImage
MENU LABEL AcronisTrue Image 
LINUX ../memdisk
INITRD ../isos/acronisTrueImage.iso
APPEND iso raw

9 - Preparação para fazer os backups e restores das imagens dos sistemas operacionais usando o AcronisTrueImage

Vamos utilizar o samba para fazer o leitura e transferência de arquivos para o servidor, poderíamos utilizar o NFS, porém a performance do mesmo fica minima coisa melhor que samba, então decidimos utilizar o samba.

# apt-get install samba

# mkdir -p /repositorio_imagens/imagens
# chmod 777 -R /repositorio_imagens/imagens

Altera o arquivo "/etc/samba/smb.conf" para o seguinte conteúdo

[global]
   workgroup = SUPORTE
   server string = Servidor de Backup e Restore
   netbios name = repositorio
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   server role = standalone server
   map to guest = bad user
   usershare allow guests = yes
   security = user
   guest account = nobody
   oplocks = false
   level2 oplocks = false
   fake oplocks = no
   locking = no
   posix locking = false
   strict locking = false
   kernel oplocks = no
   socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=20480 SO_RCVBUF=20480
   os level = 2
   domain logons = no
   preferred master = no
   domain master = no
   veto files = /autorun.inf/*.pif/*.com/*.mp3/*.wav/*.pif/*.mpg/*.mpeg

[REPOSITORIO]
   path = /repositorio_imagens/imagens
   browseable = yes
   public = yes
   read only = no
   writable= yes
   create mask = 0777
   directory mask = 0777
   csc policy = disable




Read More

segunda-feira, 12 de dezembro de 2016

Controlando Sessão remota win 2012 R2

Bom Dia,

Uma dica rápida.

Até o 2008 Server, para controlar uma sessão do usuário era preciso habilitar na conta do usuário a controle remoto, e depois conectar no mesmo usando o gerenciador de tarefas em usuários conectados.

No Windows 2012 isso mudou, a forma mais rápida que encontrei para contornar a situação foi.

- Habilitar no usuário o controle remoto e interagir com a sessão, sem ele permitir ou não.

- Criado uma GPO para liberar o controle remoto sem a autorização do usuário
Configurações do Computador -> Modelos Administrativos -> Componentes do Windows -> Serviços de Área de Trabalho Remota -> Host de Sessão da Área de Trabalho -> Conexões
   A Opção a ser configurada é a "Definir Regras para o controle de sessão do usuário dos Serviços de Área de Trabalho Remota."

- Depois execute no menu iniciar via mstsc mesmo para gerenciar a sessão, exceto que é preciso informar o ID da sessão do usuário no servidor. Para saber o ID da sessão executa no CMD o "qwinsta"

mstsc /shadow:ID_SESSAO_USUARIO /control /noConsentPrompt



Forte Abraço, e uma ótima semana a todos.

Read More

quinta-feira, 17 de novembro de 2016

Lenovo Error 1962 - Xenserver

Buenas,

Erro 1962 ao dar boot pós instalação do XenServer.

- Boot Legacy
- Boot Secure disable
- Virtualization Enable

Para resolver é preciso iniciar o boot pelo CD, e não pressionar enter, digite menu.c32 , ele vai redirecionar para uma tela, onde tem várias opções, selecione a primeira opção "install", e pressione "tab" vamos editar as opções de instalação, antes dos caracteres "---" adicione o seguinte comando "disable-gpt" .

Imagens de exemplo.
- BOOT PELO CD, MENU.C32






- OPÇÃO PARA ADICIONAR ANTES DO "---"
Read More

quinta-feira, 10 de novembro de 2016

Configurando servidor NTP para Ubiquiti Unifi

Olá Caros leitores e leitoras.

Dei um tempo para novas postagens, devido dos afazeres que estão tomando muito de meu tempo, e também do ciclismo o qual participo de provas.

Recentemente precisei fazer a configuração de um servidor NTP para que as antenas do Unifi buscassem dele a data e a hora.

No meu caso tenho a controladora instalada em um Debian.

Para isso vamos criar um arquivo chamado config.properties

Primeiro é preciso acessr o linux da controladora, e ir a pasta onde ficará salvo este arquivo.

# cd /usr/lib/unifi/data/sites/default/

Em vermelho é o site padrão, onde esta o ambiente que desejamos configurar, para descobrir qual é o seu site padrão ao acessar a url da controladora a mesma informa qual é o nome do site...

https://192.168.30.9:8443/manage/site/default/devices/1/50/uap/performance

Também em vermelho destacado.

Primeiramente crie o arquivo
# touch config.properties


Feito isso é preciso editar o mesmo
# vim config.properties


Adicione a seguinte linha, pool.ntp.br é o dns dos servidores de NTP do Brasil.

config.ntp_server=pool.ntp.br

Salve o arquivo.

Porém é preciso fazer com que as antenas se provisionem novamente, para isso acesse algum ssid do seu wifi e ative o "Guest", aplique, aguarde ele replicar para as antenas, e depois desabilite o "Guest", isso irá replicar para elas as configurações.

Forte abraço a todos!


Read More

quinta-feira, 12 de maio de 2016

Engenharia reversa Shell Script compilado com SHC

Bom Dia,

Ando afastado do blog por alguns motivos particulares, e de estudos, desculpem-me, logo voltarei a postar mais material bacana.

Vamos lá, hoje tinha um script compilado, coisa antiga, sem o source, e precisava saber o que realmente ele fazia, foi então que precisei fazer um 'dump' para pegar o que ele executava.

Algumas pesquisas, algumas leituras, alguns testes, até chegar a este processo.

- Vamos na verdade iniciar o script porém logo em seguida vamos matar o mesmo, para pegar o que ficou na memória, e fazer esse 'DUMP'

- Vamos aumentar o tamanho do 'core' do linux para 1Mb
# ulimit -c 1000000

- Agora vem o pulo do gato, vamos executar o script, com um sleep de alguns microssegundos, e logo em seguida vamos matar ele mesmo $! , repare que nosso script tem o '.sh.x', isso não é regra, o script pode estar somente com '.sh', como sem nenhum ponto.

# ./script.sh.x & ( sleep 0.02 && kill -SIGSEGV $! )

Ao rodar o 'script' o sistema vai retornar um errro "[1]+  Segmentation fault      (core dumped) ./script.sh.x", vai ser criado um arquivo chamado "core.alguma_coisa" , dentro dele vai ter o conteúdo do script, porém vai estar bem poluído, para tal, vamos limpar o mesmo.

# cat core.alguma_coisa| strings

Agora você vai ter a saida em texto puro do script.

Lembrando, somente, utilize esse procedimento quando você é autor do binário, caso contrário estará violando as leis.

Forte Abraço Marcos Carraro.



Read More

quinta-feira, 16 de julho de 2015

Automatizando a instalação do Debian Jessie 8.1 com preseed

Buenas,

Mudando um pouco, já que o Centos ainda não esta dando suporte a ARM, esta consumindo muito recurso quando preciso poupar os mesmos (Tem projeto nascendo) então como na vida muitas vezes temos pequenos desvios...

Neste caso vamos ver como automatizar a instalação do Debian Jessie, porém o usuário somente particiona o disco, o restante é feito automaticamente.

Para isso, vamos baixar a ISO original ~650mb
# cd ~
# wget http://cdimage.debian.org/debian-cd/8.1.0/amd64/iso-cd/debian-8.1.0-amd64-CD-1.iso

Montar a ISO para poder copiar os arquivos
# mount -o loop debian-8.1.0-amd64-CD-1.iso /mnt
# mkdir ~/iso
# rsync -a -H --exclude=TRANS.TBL /mnt/ ./iso

Alterando o isolinux.cfg para iniciar a instalação automaticamente e carregar o arquivo preseed.cfg
# vim iso/isolinux/isolinux.cfg
O conteúdo do arquivo é este

default install
prompt 1
timeout 240
display message.txt
F1 message.txt

label install
    menu label ^Instalacao Servidor
    linux /install.amd/vmlinuz
    initrd /install.amd/initrd.gz
    append cdrom-detect/try-usb=true preseed/file=/cdrom/preseed.cfg locale=en_US keyboard-configuration/xkb-keymap=br-abnt2 languagechooser/language-name=English  countrychooser/shortlist=US DEBCONF_DEBUG=5 video=vesa:ywrap,mtrr vga=788 --- quiet

No arquivo message.txt no diretório iso/isolinux/message.txt é o texto que sera mostrado quando o CD iniciar seu boot..


Criando o arquivo preseed.cfg com o seguinte conteudo, esta dividido em grupos de configuração, praticamente ele é auto descritivo.

### USO GERAL
debconf debconf/priority string critical
unknown debconf/priority string critical
d-i debconf/priority string critical

### TECLADO E IDIOMA
d-i console-keymaps-at/keymap select br-abnt2
d-i debconf/language string en_US
d-i languagechooser/locale string en_US

d-i debian-installer/keymap select br-abnt2
d-i debian-installer/language string en
d-i debian-installer/locale string en_US

## OPERACOES COM O CD
d-i cdrom-checker/start boolean false
d-i cdrom-detect/load_media boolean false

### REDE
#d-i netcfg/link_wait_timeout string 1
#d-i netcfg/dhcp_timeout string 1
d-i netcfg/use_dhcp false
d-i netcfg/disable_dhcp boolean true
d-i netcfg/dhcp_failed note
d-i netcfg/choose_interface select eth0
d-i netcfg/hostname string servidor1
d-i netcfg/get_ipaddress string 10.10.10.1
d-i netcfg/get_netmask string 255.255.255.0
d-i netcfg/get_gateway string 10.10.10.1
d-i netcfg/get_nameservers string 10.10.10.1
d-i netcfg/confirm_static boolean true

### CONTA DO USUARIO
d-i passwd/root-login boolean true
d-i passwd/make-user boolean false
### Senha Padrao `printf "abc123!" | mkpasswd -s -m md5`
d-i passwd/root-password-crypted password $1$Gy43AnD3$TkVbQupeEhkrDN4llbPvr0

### USUARIO COMUN (CONTA DESABILITADE SOMENTE USAR ROOT)
d-i passwd/user-fullname boolean false
d-i passwd/username boolean false
d-i passwd/user-password boolean false
d-i passwd/user-password-again boolean false


### HORA
d-i clock-setup/utc boolean true
d-i time/zone string America/Sao_Paulo
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string pool.ntp.br


### PARTICIONAMENTO MANUAL SUPRIME CONFIRMACAO
d-i partman-auto/init_automatically_partition select Manual
d-i partman/confirm boolean true 
d-i partman/confirm_nooverwrite boolean true 

## DESABILITA O MIROR DOWNLOAD DE PACOTES DURANTE A INSTALACAO
d-i mirror/country string manual
d-i mirror/http/hostname string http.us.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string

### CONFIGURACOES DO ATP-GET
d-i apt-setup/use_mirror boolean false


### PACOTES EXTRAS QUE SERAM INSTALADOS
tasksel tasksel/first multiselect standard, ssh-server
d-i pkgsel/include string vim

### NAO ENVIA INFORMACOES REFERENTE A PACOTES UTILIZADOS
popularity-contest popularity-contest/participate boolean false

### INSTALA O GRUB
d-i grub-installer/only_debian boolean true
d-i grub-installer/bootdev string default

### TERMINA A INSTALACAO E REINICIA
d-i finish-install/reboot_in_progress note

## REMOVE O GATEWAY E O DNS PADRAO DA INSTALACAO
d-i preseed/late_command string  sed -i '/gateway/d' /target/etc/network/interfaces ; sed -i '/dns-nameservers/d' /target/etc/network/interfaces ; echo > /target/etc/resolv.conf


Após fazer todas alterações, salve este conteúdo dentro do arquivo iso/preseed.cfg .

Agora atualize o MD5 dos arquivos
# cd ~/iso
# md5sum `find -follow -type f` > md5sum.txt
# cd ..

Agora vamos criar a iso do nosso novo sistema
# genisoimage -o LinuxNovo.iso -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat ./iso

Feito, você criou uma ISO de instalação automática, ou quase automática...

Obs:. Na ultima linha d-i preseed/late_command eu posso rodar comandos de pós instalação, também pode ser criado um script para fazer estes ajustes, também pode fazer um chroot /target e rodar comandos na nova instalação, 
Obs2:. /target é a pasta onde esta montada a nova instalação, então tudo que for alterado dentro desta estrutura afeta diretamente a nova instalação

Fonte: https://www.debian.org/releases/stable/i386/apb.html
Fonte2: https://www.debian.org/releases/jessie/example-preseed.txt

Forte abraço a todos,
Marcos Carraro

Read More

quarta-feira, 8 de julho de 2015

Procurando conteúdo dentro de arquivo + mostrar nome do arquivo

Buenas,

Imagine a seguinte situação, você tem um projeto em /var/www/htmll/projeto1/ onde você precisa encontrar a palavra "conteudo_especial" porém você precisa saber em qual arquivo esta este conteudo.

Para isso o nosso querido linux é muito bom.

Vamos lá.

grep -H -r -i "conteudo_especial" .

Simples assim o -i é para olhar letras maisculas e minusculas, o -r é recursivo entra em cada pasta e procura, o -H vai mostrar o nome do arquivo que encontrou a palavra.

Forte abraço,
Marcos Carraro.
Read More

Posts que a turma mais esta lendo...

Posts que a turma mais esta lendo...

Marcos Carraro