mirror of
https://github.com/lgcosta/pf-linux-port.git
synced 2026-11-12 23:38:03 -03:00
Novo pipeline de video: scripts/screencast/render.py roda uma fase em um pty,
emula o terminal com pyte, gera frames PNG e mux com ffmpeg (H.264,
yuv420p, +faststart, sem trilha de audio). Fallback de encoder: libx264 ->
libopenh264 -> VP9.
Fases (scripts/screencast/phases/, uma sessao real contra o lab por video):
1. implementacao no kernel - fontes OpenBSD + compat + build limpo do pf.ko
2. ativacao - insmod, /dev/pf, pfctl -e, pfctl -s info
3. regras basicas - tabela, anchor, keep state, block drop
4. roteamento - route-to e reply-to (provado com tcpdump nas 2 interfaces)
5. balanceamento - pool round-robin, pool source-hash, dup-to
6. QOS - filas hfsc, pfctl -s queue -v, transferencia de 2 MB pela fila
Os videos ficam versionados em out/screencast/ (.gitignore ajustado para
nao ignorar *.mp4) e o indice/texto de descricao do YouTube em
docs/{en,pt-BR}/screencast.md.
Correcoes na propria demo (encontradas gravando): a acao de uma regra no pf
e pass OU block (nunca os dois); as regras de um anchor vivem em um ruleset
proprio (pfctl -a <anchor> -f); o nc do QOS precisa rodar na VM do servidor,
nao no firewall; o rotulo 'FASE x/6' vem do numero da fase, nao da posicao
na lista de gravacao.
31 lines
879 B
Bash
Executable File
31 lines
879 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Fase 2 - ativacao: carregar pf.ko, habilitar o firewall, ver o estado.
|
|
set -u
|
|
cd "$(dirname "$0")"
|
|
. ./lib.sh
|
|
|
|
banner "FASE 2 - ATIVACAO"
|
|
|
|
bold "# o modulo ainda nao esta carregado"
|
|
p0 "rmmod pf 2>/dev/null; lsmod | grep '^pf ' || echo 'pf: not loaded'"
|
|
p0 "ls -l /dev/pf 2>/dev/null || echo '/dev/pf: ausente enquanto pf nao carrega'"
|
|
echo
|
|
|
|
bold "# carregando o motor PF no kernel"
|
|
p0 "insmod /opt/pf/pf.ko && echo 'pf.ko carregado no kernel'"
|
|
p0 "dmesg | tail -4"
|
|
p0 "lsmod | grep '^pf '"
|
|
p0 "ls -l /dev/pf"
|
|
echo
|
|
|
|
bold "# habilitando o firewall"
|
|
p0 "/opt/pf/pfctl -e && echo 'pf habilitado'"
|
|
p0 "/opt/pf/pfctl -si | head -6"
|
|
echo
|
|
|
|
bold "# o ruleset comeca vazio (a politica padrao do pf e bloquear, com return)"
|
|
p0 "/opt/pf/pfctl -sr"
|
|
p0 "/opt/pf/pfctl -sf | head -5"
|
|
echo
|
|
green " motor ativo: /dev/pf respondendo, pfctl sobre a ABI de ioctl do OpenBSD"
|