Marcos Max

Wiki Max - TI

View on GitHub

Bash & Scripts Úteis

Git — dia a dia

git clone https://github.com/user/repo.git
git status
git add .
git commit -m "mensagem"
git push origin main
git pull origin main
git checkout -b nova-feature       # criar branch
git merge nova-feature
git log --oneline --graph
git reset --soft HEAD~1            # desfaz último commit, mantém arquivos
git diff

Docker — essenciais

docker ps -a
docker start / stop nome_container
docker exec -it nome_container bash
docker logs -f nome_container
docker images
docker rm nome_container
docker rmi nome_imagem
docker system prune -a            # limpa tudo que não está em uso
docker stats
docker inspect nome_container

Operação da stack Zabbix/Grafana em Docker.

Proxmox — CLI

qm list                            # VMs
qm start / stop / reboot 100
qm snapshot 100 snap1 --description "antes da atualização"
qm rollback 100 snap1
pct list                           # containers LXC
pct enter 101
pvecm status                       # cluster
pvesm status                       # storage
vzdump 100 --compress zstd --storage local   # backup

nmap — scanner de rede

nmap -sn 192.168.1.0/24            # hosts ativos (ping scan)
nmap 192.168.1.1                   # portas comuns
nmap -p- 192.168.1.1               # todas as portas
nmap -sV -O 192.168.1.1            # versão + OS
nmap -F 192.168.1.0/24             # rápido (top 100)
nmap --script vuln 192.168.1.1     # scripts de vulnerabilidade
nmap -oN resultado.txt 192.168.1.0/24

iptables — referência rápida

Opção Função Exemplo
-A Adiciona regra ao fim da cadeia iptables -A INPUT -p tcp --dport 22 -j ACCEPT
-I Insere em posição específica iptables -I INPUT 1 -s 192.168.1.10 -j DROP
-D Remove regra iptables -D INPUT -p tcp --dport 22 -j ACCEPT
-L Lista regras iptables -L -v -n
-F Limpa todas as regras iptables -F INPUT
-P Política padrão iptables -P INPUT DROP
-t nat Tabela NAT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Firewall básico completo:

# Limpa regras antigas
iptables -F; iptables -t nat -F; iptables -t mangle -F

# Políticas padrão
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Loopback e conexões estabelecidas
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH e bloqueio de Telnet
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 23 -j DROP

# NAT de saída
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Salvar
iptables-save > /etc/iptables/rules.v4

Automação de rede em Python (NAPALM)

Biblioteca multi-vendor (Cisco, Juniper, Arista) para coletar dados e configs:

from napalm import get_network_driver

driver = get_network_driver('ios')   # ios | iosxr | nxos_ssh | junos | eos
device = driver(hostname='192.168.1.1', username='admin', password='***', timeout=30)
device.open()

facts = device.get_facts()
print(facts['hostname'], facts['model'], facts['os_version'])

for name, data in device.get_interfaces().items():
    print(name, 'UP' if data['is_up'] else 'DOWN', f"{data['speed']}Mbps")

print(device.get_config(retrieve='running')['running'])
device.close()

Para SSH multi-vendor incluindo MikroTik, a biblioteca Netmiko complementa o NAPALM.

Modelo de script Bash com argumentos

#!/usr/bin/env bash
set -euo pipefail

# Uso:
#   ./script.sh <inicio> [fim]
#   ./script.sh 3000 3500

INICIO="${1:?informe o valor inicial}"
FIM="${2:-$INICIO}"

for n in $(seq "$INICIO" "$FIM"); do
    echo "Processando $n..."
done

Veja também: Linux · Windows