CÓDIGO DA DISCIPLINA: DEE345
Departamento de Engenharias e Exatas - UFPR/Palotina
Docente de Segurança da Informação
TMOUT
.Hardening reduz a superfície de ataque, essencial para conformidade com LGPD, PNSI e ISO 27001/27002.
Visa proteger o “elo mais fraco” — o usuário ou configurações padrão inseguras — e garantir conformidade com ISO 27001/27002.
wazuh-control start
). wazuh.comclamscan -r /etc --bell -i
). clamav.netNota: O ataque à Sabesp (2024). https://g1.globo.com/sp/sao-paulo/noticia/2024/10/22/sabesp-e-alvo-de-ataque-cibernetico-e-registra-instabilidade-na-rede-digital.ghtml
Prática: Configure Wazuh em uma VM Ubuntu para monitorar logs. Escaneie /etc com ClamAV usando arquivo EICAR.
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && sudo chmod 644 /usr/share/keyrings/wazuh.gpg
echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee -a /etc/apt/sources.list.d/wazuh.list
sudo apt update && sudo apt install wazuh-manager
sudo apt install wazuh-agent
sudo /var/ossec/bin/agent-auth -m IP_DO_SERVIDOR
sudo systemctl start wazuh-agent
sudo apt install clamav clamav-daemon
echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /tmp/eicar.txt
clamscan --infected --recursive /etc/
http://IP_DO_SERVIDOR:55000
SSH seguro protege acessos remotos, essencial para LGPD e PNSI.
# /etc/ssh/sshd_config
Port 5849
# comente ou remova a linha 'Port 22'
sudo systemctl restart sshd
# /etc/ssh/sshd_config
PermitRootLogin no
Isso impede logins diretos como root, forçando uso de contas menos privilegiadas + sudo
.
sudo systemctl restart sshd
O Fail2ban monitora logs de serviços e bane automaticamente IPs que apresentam comportamento malicioso, como múltiplas tentativas de login com falha.
Instale e configure /etc/fail2ban/jail.local
:
# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 5849
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
ignoreip = 192.168.0.0/24
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd
# SSHGuard alternativo
sshguard -l /var/log/auth.log
# /etc/knockd.conf
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
[closeSSH]
sequence = 9000,8000,7000
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
knock 192.168.0.155 7000:tcp 8000:tcp 9000:tcp
sshguard -l /var/log/auth.log
. sshguard.netssh-audit servidor:5849
. github.com/ssh-auditPrática: Configure SSH em uma VM com porta 5849, bloqueio de root, Fail2ban e port knocking. Use ssh-audit para validar segurança.
# /etc/profile ou /etc/bash.bashrc
TMOUT=180
readonly TMOUT
export TMOUT
# Tmux
tmux set -g lock-after-time 180
# Screen
screen -L -Logfile /var/log/screen.log
Fechará a sessão após 180 segundos de inatividade.
tmux set -g lock-after-time 180
. tmux.github.ioscreen -L
. gnu.org/software/screenPrática: Configure TMOUT=180 e Tmux com bloqueio em uma VM. Use Screen para registrar comandos e analise logs.
nmap -sC -sV -p- 192.168.0.0/24
— Escaneia todas as portas com scripts padrões e identifica serviços.
semanage port -a -t ssh_port_t -p tcp 5849
getenforce
setenforce 1
semanage port -a -t ssh_port_t -p tcp 5849
aa-status # mostra perfis carregados
aa-complain /usr/sbin/sshd
Assistente interativo para hardening.
oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_standard \
/usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml
lynis audit system --pentest
— Auditoria de segurança que sugere melhorias cisofy.com/lynis.
rkhunter --check --report-warnings-only
. rkhunter.sourceforge.nettshark -i eth0 -w captura.pcap
— Captura e análise de tráfego.
msfconsole
— Framework de exploração para testar defesas.
Proxy para testes de segurança web.
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
— Teste de força bruta em hashes de senhas.
make menuconfig
. grsecurity.netPrática: Escaneie uma VM com Rkhunter e Lynis. Configure SELinux em modo enforcing e ajuste portas SSH.
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256
autorunsc -a * -c > autoruns.csv
. docs.microsoft.com/sysinternalsmbsacli /target 127.0.0.1 /nvc
. microsoft.com/mbsaMinicurso de referência: Hardening Windows – Prof. Peter Lopes
# /etc/sysctl.d/99-hardening.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
fs.suid_dumpable = 0
sudo sysctl --system
# auditd para monitorar sshd_config
sudo apt install auditd
sudo auditctl -w /etc/ssh/sshd_config -p wa -k ssh_cfg_changes
# AIDE para verificar integridade
sudo apt install aide
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
sudo aide --check
# Tripwire
tripwire --init; tripwire --check
# OSSEC
ossec-control start
# Exemplo de consulta SQL
osqueryi "SELECT name, path FROM kernel_modules WHERE path LIKE '%ssh%';"
sudo apt install nftables
cat <
# Nftables
nft add rule inet filter input tcp dport 5849 limit rate 5/second accept
# UFW
sudo ufw allow 58472/tcp comment 'SSH custom port'
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 5849/tcp comment 'SSH custom port'
sudo ufw enable
tripwire --check
. github.com/Tripwire/tripwire-open-sourceossec-control start
. www.ossec.netPrática: Configure Tripwire e OSSEC em uma VM. Implemente Nftables com rate-limiting para SSH.
Uso de ferramentas para gerenciar acesso à internet: Squid (proxy HTTP), SquidGuard (filtragem de URLs), sarg (relatórios de acesso), e DansGuardian (filtro de conteúdo). Essas soluções são comuns em redes corporativas e educacionais para controle de navegação, segurança, e monitoramento. Abaixo, detalho cada ferramenta com exemplos práticos, saídas, e cenários educacionais.
Aviso Ético: Configure proxies e filtros apenas em redes autorizadas. Monitorar acessos sem consentimento viola a LGPD (Lei nº 13.709/2018) e políticas de privacidade.
Squid é um proxy HTTP de alto desempenho que armazena em cache e controla requisições web. SquidGuard é um plugin que filtra URLs com base em blacklists, bloqueando categorias como pornografia, redes sociais, ou malwares.
Você é um administrador de rede em um laboratório educacional (rede 192.168.1.0/24). Configure um proxy Squid com SquidGuard para bloquear sites de redes sociais em uma máquina (192.168.1.100).
sudo apt-get update
sudo apt-get install squid squidguard
Saída Esperada: Pacotes instalados sem erros.
Explicação: Instala o Squid (proxy) e SquidGuard (filtro).
Crie o diretório para blacklists e baixe a Shallalist:
sudo mkdir -p /etc/squidguard/db
cd /etc/squidguard/db
sudo wget https://www.shallalist.de/Downloads/shallalist.tar.gz
sudo tar xzf shallalist.tar.gz
Saída Esperada:
BL/socialnet/domains BL/socialnet/urls
Explicação: A Shallalist contém listas de domínios/URLs por categoria (ex.: socialnet para redes sociais).
Crie um arquivo de configuração básico:
cat > /etc/squidguard/squidGuard.conf <
Explicação: Bloqueia a categoria `socialnet` (ex.: facebook.com). `pass none` nega tudo por padrão, exceto o que for explicitamente permitido.
Edite `/etc/squid/squid.conf`:
echo "url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf" | sudo tee -a /etc/squid/squid.conf
Explicação: Direciona requisições do Squid para o SquidGuard.
sudo squidguard -C all
sudo systemctl restart squid
Saída Esperada: Serviços reiniciados sem erros.
Explicação: `squidguard -C all` compila blacklists. O Squid reinicia para aplicar mudanças.
Configure um cliente (ex.: navegador em 192.168.1.10) para usar o proxy (192.168.1.100:3128). Acesse `facebook.com`.
Saída Esperada:
Access Denied: Site blocked by SquidGuard (socialnet)
Verifique logs:
tail -f /var/log/squid/access.log
Saída Esperada:
1623456789.123 192.168.1.10 TCP_DENIED/403 0 CONNECT facebook.com:443 - HIER_NONE/- -
Explicação: Confirma que o acesso foi bloqueado.
Testar com curl:
curl -x http://192.168.1.100:3128 http://facebook.com
Saída Esperada:
403 Forbidden: Access denied by SquidGuard
Monitorar em tempo real:
tail -f /var/log/squidguard/squidGuard.log
Saída Esperada:
2025-06-12 10:15:00 [192.168.1.10] facebook.com blocked (socialnet)
#!/bin/bash
cd /etc/squidguard/db
sudo wget -O shallalist.tar.gz https://www.shallalist.de/Downloads/shallalist.tar.gz
sudo tar xzf shallalist.tar.gz
sudo squidguard -C all
sudo systemctl restart squid
sarg gera relatórios HTML a partir dos logs do Squid, detalhando consumo de banda, sites acessados, e padrões de navegação.
Você precisa gerar um relatório semanal de navegação para identificar os sites mais acessados na rede do laboratório.
sudo apt-get install sarg
Saída Esperada: Pacote instalado.
Edite `/etc/sarg/sarg.conf`:
sudo nano /etc/sarg/sarg.conf
Defina:
access_log /var/log/squid/access.log
output_dir /var/www/html/squid-reports
Explicação: Especifica o log do Squid e o diretório de relatórios (acessível via navegador).
Para o dia anterior:
sudo sarg -o /var/www/html/squid-reports
Saída Esperada:
SARG: Records in file: 1234, reading: 100.00% Report generated in /var/www/html/squid-reports
Acesse `http://192.168.1.100/squid-reports` no navegador.
Saída Esperada:
HTML Report: - Top sites: www.google.com (50MB), www.youtube.com (30MB) - User 192.168.1.10: 80MB downloaded
Agende via cron:
sudo crontab -e
Adicione:
0 0 * * * /usr/bin/sarg -o /var/www/html/squid-reports
Explicação: Gera relatórios diários à meia-noite.
Verificar logs brutos:
tail -f /var/log/squid/access.log
Saída Esperada:
1623456789.123 192.168.1.10 TCP_MISS/200 123456 GET http://www.google.com -
Gerar relatório para um período específico:
sarg -o /var/www/html/squid-reports -d 2025-06-01/2025-06-07
DansGuardian é um filtro de conteúdo que analisa URLs, frases, e padrões de texto, funcionando com o Squid para bloquear páginas indevidas.
Você precisa bloquear sites com conteúdo sensível (ex.: palavras-chave proibidas) em uma rede escolar.
sudo apt-get install dansguardian
Saída Esperada: Pacote instalado.
Edite `/etc/dansguardian/dansguardian.conf`:
sudo nano /etc/dansguardian/dansguardian.conf
Ajuste:
filterport = 8080
proxyip = 192.168.1.100
proxyport = 3128
Explicação: Define a porta do DansGuardian (8080) e conecta ao Squid (3128).
Adicione palavras proibidas:
sudo nano /etc/dansguardian/lists/bannedphraselist
Exemplo:
violence
gambling
Adicione URLs proibidas:
sudo nano /etc/dansguardian/lists/bannedurllist
Exemplo:
casino.com
Redirecione tráfego HTTP para o DansGuardian:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Explicação: Intercepta requisições HTTP automaticamente.
sudo systemctl restart dansguardian
Saída Esperada: Serviço reiniciado.
Acesse um site proibido (ex.: `casino.com`) ou busque “gambling” no Google.
Saída Esperada:
Access Denied: Content blocked by DansGuardian
Verifique logs:
tail -f /var/log/dansguardian/access.log
Saída Esperada:
2025-06-12 10:15:00 192.168.1.10 DENIED casino.com (bannedurllist)
Salvar regras iptables:
sudo iptables-save > /etc/iptables/rules.v4
Testar com curl:
curl -x http://192.168.1.100:8080 http://casino.com
Saída Esperada:
403 Forbidden: Blocked by DansGuardian
Ilustração do tráfego web passando pelo proxy e filtros:
Explicação: O cliente envia no Squid, que passa pelos filtros SquidGuard e DansGuardian antes de acessar a internet. Relatórios são gerados pelo sarg.
Alunos devem praticar em laboratórios, documentar configurações (ex.: logs, relatórios HTML), configurações e explorar alternativas modernas como Zabbix para monitoramento. A ética é crucial: respeite as leis de privacidade e obtenha políticas antes de monitorar acessos.
Recursos Adicionais:
Lembrete: Monitoramento de rede pode ser detectado por usuários ou sistemas de segurança. Configure com notificações claras de monitoramento.
/etc/ssh/sshd_config
?Port 5849
.
Port 5849
, não outras variações.
maxretry
define o número máximo de tentativas antes do bloqueio.
maxretry
.
ufw default deny incoming
e depois ufw enable
.
default deny incoming
antes de habilitar.
/etc/sysctl.d/99-hardening.conf
, qual parâmetro desativa o IP forwarding?net.ipv4.ip_forward = 0
desativa o forwarding IPv4.
net.ipv4.ip_forward = 0
.
TMOUT=180
, readonly TMOUT
e export TMOUT
.
TMOUT
, não TIMEOUT ou TMOUT_SEC.
getenforce
mostra o estado e setenforce 1
habilita enforcement.
getenforce
e setenforce
, não selinuxctl.
nft add rule inet filter input tcp dport 5849 ct state new accept
.
dport 5849
e ct state new accept
no table inet filter.