Skip to main content

HiveOS ;)

Segurança

  • Instalar rootkit

  • Instalar ids suricata

  • Instalar fail2ban

  • Instalar portknock

  • Instalar log de acessos via iptables

Info

  • Dados de acesso inicial usr user e pwd 1

  • Usar monitor vga conectado na placa mãe.

  • Não bootar hiveos com wifi conectado antes de configurar, pois gera erro "no limit".

  • Não conectar vga de mineração antes de configurar wifi, transferir para ssd e trocar senhas.

  • Placa Mãe Asus z97, não da boot em hiveos quando wifi adaptador está conectado e sequencia de boot for "UEFI OS (ASGARD/PEN) ...".

  • Placa Mãe Asus z97, somente exibe log de boot quando opção diferente de boot "UEFI OS (ASGARD/PEN) ...".

  • Placa Mãe Asus z97, usar load optmized;

  • Placa Mãe Asus z97 > boot > launch csm > enabled (boot device control: legacy oprom only);

Instalação

  1. Copiar Farm Hash em https://the.hiveos.farm > farm > setting > farm hash;

  2. Formatar pen drive usando sd card formatter;

  3. Gravar imagem hiveos-0.6-208-beta@210818.img com balenaEtcherem em usb/nvme;

  4. Desconectar e reconectar dispositivo;

  5. Adicionar letra de unidade para partição HIVE;

  6. Copiar arquivo rig-config-example.txt e salvar como rig.conf;

  7. Editar rig.conf e colar Farm Hash em FARM_HASH;

  8. Identificar ip;

$ nmap -A -p 22 192.168.100.0/24
$ ssh user@192.168.100.103 # 1
  1. Após boot verificar se está funcionando;
$ miner
$ nvidia-driver-update`
  1. Expanda o disco;
$ disk-expand 
$ df -h /
$ free -h
  1. Tranferir instalação hiveos do usb para ssd/nvme if = origem, of = destino;
$ fdisk -l
$ dd if=/dev/sda of=/dev/nvme0n1 bs=10M count=800 status=progress

Wifi

Adaptador Wifi EDUP 1300 - EP-AC1689 (8812BU Chipset)

$ lsusb # ID 0bda:b812 Realtek Semiconductor Corp. RTL88x2bu [AC1200 Techkey]
$ sudo apt update && sudo apt -y install build-essential dkms git bc
$ git clone https://github.com/cilynx/rtl88x2bu && cd rtl88x2bu
$ VER=$(sed -n 's/\PACKAGE_VERSION="\(.*\)"/\1/p' dkms.conf)
$ sudo rsync -rvhP ./ /usr/src/rtl88x2bu-${VER}
$ sudo dkms add -m rtl88x2bu -v ${VER}
$ sudo dkms build -m rtl88x2bu -v ${VER}
$ sudo dkms install -m rtl88x2bu -v ${VER}
$ sudo modprobe 88x2bu
$ wifi
$ ifconfig wlan0
$ iwconfig wlan0

Ferramentas

Instalar ferremantas

$ apt-get install nmap net-tools

SSH

  • Verificar porta em execução
$ netstat -tulnp | grep ssh
  • Verificar porta da configuração
$ grep -i port /etc/ssh/sshd_config
  • Configurações importantes de segurança

    • Trocar porta

    • Usar somente protocolo 2

    • Desativar login root

    • Desativar login usando password

/etc/ssh/sshd_config
Port 2322
Protocol 2
PermitRootLogin no
PasswordAuthentication no

Reiniciar serviço

$ service ssh restart 

Alterar para root após login

~/.profile
sudo -s

Testar acesso com nova configurações

$ ssh -i ~/.ssh/id_rsa_snowball -p 2322 user@192.168.100.118 

Firewall

  • TODO: liberar somente 80, 443, 2322 (inbound ) e all (outbound)

  • TODO: bloquear porta 4200 (shellinaboxd) e 5900 (vnc)

Misc

Trocar senha

$ hive-passwd <new_password>

Testar rede após firewall

$ net-test

Auditoria de serviços

$ sudo ss -plunt

ProxMox

Info

  • B450M Steel Legend ASRock (P3.30 07/13/2020)

  • AMD Ryzen 7 2700 (KVM yes)

  • Z97M-PLUS/BR ASUS (2903 02/22/2016)

  • INTEL I7-4790 3.60GHz (KVM 2.1; VT-x yes; VT-d yes)

Passagem de GPU

  • Ativar virtualização em placa mae (vt-d, vt-x, iommu)

Configurar grub

/etc/default/grub
GRUB_CMDLINE_LINUX="intel_iommu=on pcie_acs_override=downstream vfio-pci.ids=10de:1184,10de:0e0a hugepages=5120 bonding.updelay=1000 bonding.mode=4 bonding.miimon=100 bonding.lacp_rate=1 init=/usr/lib/systemd/systemd dolvm" 
$ update-grub
$ reboot
$ dmesg | grep -e DMAR -e IOMMU # DMAR: IOMMU enabled

Configurar módulos

/etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
$ update-initramfs -u -k all
$ dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
$ find /sys/kernel/iommu_groups/ -type l

Configurar blacklist

/etc/modprobe.d/blacklist.conf
blacklist i915
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist nouveau
blacklist nvidia

Identificar id gpu

$ lspci | grep 3070 # 03:00.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3070 Ti] (rev a1)
$ lspci -n -s 03:00.0 # 03:00.0 0300: 10de:2482 (rev a1)

GPG ;)

Instalação

Instalar e verificar versão

$ sudo apt install gnupg
$ gpg --version

Gerar chave

gerar chave e verificar

$ gpg --gen-key # n4w3b n4w3b@n4w3b.com.br
$ gpg --list-secret-keys
$ gpg --list-keys

Listar chaves

listar chaves públicas

$ gpg --list-keys

listar chaves privadas

$ gpg --list-secret-keys

Encriptar arquivo

encriptar arquivo, usando chave pública e saída em formato binário

$ gpg --encrypt --recipient n4w3b@n4w3b.com.br message.txt

encriptar arquivo, usando chave pública e saída em formato texto

$ gpg --encrypt --armor --recipient n4w3b@n4w3b.com.br message.txt

Desencriptar arquivo

desencriptar arquivo

$ gpg --output message1.txt --decrypt message.txt.gpg
$ diff -s message.txt message1.txt

Exportar chave

exportar chave pública

$ gpg --list-keys
$ gpg --armor --output n4w3b-pub-gpg-key.asc --export n4w3b@n4w3b.com.br

exportar chave privada

$ gpg --list-secret-keys
$ gpg --armor --output n4w3b-priv-gpg-key.asc --export-secret-keys n4w3b@n4w3b.com.br

Importar chave

importar chave pública

$ gpg --import n4w3b-pub-gpg-key.asc
$ gpg --list-keys

importar chave privada

$ gpg --import n4w3b-priv-gpg-key.asc

Remover chave

deletar chave pública

$ gpg --list-keys
$ gpg --delete-keys n4w3b@n4w3b.com.br

deletar chave privada

$ gpg --list-secret-keys
$ gpg --delete-secret-keys crazy@n4w3b.com.br

Keyserver

enviar chave pública para keyserver

$ gpg --list-keys
$ gpg --keyserver pgp.mit.edu --send-key 87E2857D75EFDCE14A2A324AA8D554457216379E

procurar chave pública no keyserver

$ gpg --keyserver pgp.mit.edu --search-keys "n4w3b@n4w3b.com.br"

importar chave pública do keyserver

$ gpg --keyserver pgp.mit.edu --recv A8D554457216379E
$ gpg --list-keys

Confiar em chave

configurar confiança na chave 5 = I trust ultimately

$ gpg --list-keys
$ gpg --edit-key n4w3b@n4w3b.com.br
$ gpg › trust
$ gpg › quit

Docker

Instalar docker

$ sudo apt-get update
$ sudo apt install -y docker.io
$ sudo systemctl status docker
$ docker --version # Docker version 20.10.7, build 20.10.7-0ubuntu1~18.04.3

Instalar docker-compose

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version # docker-compose version 1.25.0, build 0a186604

Monitoramento

DuckDNS

Dependencias

$ apt-get install curl

Configurar editor crontab

$ select-editor

Instalar e configurar

$ mkdir duckdns
$ cd duckdns
$ vi duck.sh
echo url="https://www.duckdns.org/update?domains=snowball99&token=3cd6d785-31e1-493f-84d7-08ca444840a4&ip=" | curl -k -o /var/log/duckdns/duck.log -K -
$ chmod 700 duck.sh
$ crontab -e
*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1
$ ./duck.sh
$ cat /var/log/duckdns/duck.log

Ferramentas

Multicast DNS

$ sudo apt install -y avahi-daemon
$ ping snow-ball
$ ping devmaster

Firewall

Política padrão

$ ufw status verbose
$ ufw default deny incoming
$ ufw default allow outgoing

Liberar porta

$ ufw allow 111  # ...
$ ufw allow 2322 # ssh
$ ufw allow 9000 # minio
$ ufw allow 9001 # minio
$ ufw allow 9009 # portainer

Log, info status

$ ufw show added
$ ufw enable
$ ufw status verbose
$ ufw logging on
$ ufw logging medium
$ touch /var/log/ufw.log && chown syslog:syslog /var/log/ufw.log

Novo usuário

Criar novo usuário, definir senha e grupo

$ useradd vps -m -s /bin/bash -c "Adminitrative VPS"
$ password vps
$ usermod -aG docker vps

Copiar chave pública para acesso ssh

$ mkdir /home/vps/.ssh
$ cp .ssh/authorized_keys /home/vps/.ssh