HiveOS ;)
Segurança
Instalar rootkit
Instalar ids suricata
Instalar fail2ban
Instalar portknock
Instalar log de acessos via iptables
Info
Dados de acesso inicial usr
usere pwd1Usar 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
Copiar
Farm Hashemhttps://the.hiveos.farm> farm > setting > farm hash;Formatar pen drive usando
sd card formatter;Gravar imagem
hiveos-0.6-208-beta@210818.imgcom balenaEtcherem em usb/nvme;Desconectar e reconectar dispositivo;
Adicionar letra de unidade para partição
HIVE;Copiar arquivo rig-config-example.txt e salvar como
rig.conf;Editar rig.conf e colar
Farm HashemFARM_HASH;Identificar ip;
$ nmap -A -p 22 192.168.100.0/24
$ ssh user@192.168.100.103 # 1
- Após boot verificar se está funcionando;
$ miner
$ nvidia-driver-update`
- Expanda o disco;
$ disk-expand
$ df -h /
$ free -h
- 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
Port 2322
Protocol 2
PermitRootLogin no
PasswordAuthentication no
Reiniciar serviço
$ service ssh restart
Alterar para root após login
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
- https://192.168.100.118:8006 root
<passwd>
- Ativar virtualização em placa mae (vt-d, vt-x, iommu)
Configurar 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
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
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