Procedimento hardening de Ubuntu: mudanças entre as edições

De wikiti
Ir para navegação Ir para pesquisar
 
(38 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 3: Linha 3:
= hardening =
= hardening =


Versão: 1.0
Versão: 1.2


Data: 30/04/2025
Data: 17/09/2026


Autor: reginaldo.lopes@unesp.br
Autor: reginaldo.lopes@unesp.br


Política: Art. 42-VIII-D, Art. 32 [https://www2.unesp.br/Home/ai/portaria12-unesp-05fev2025.pdf Política de Segurança Cibernética ]
Política: Art. 42-VIII-D, Art. 32 [https://www2.unesp.br/Home/ai/portaria12-unesp-05fev2025.pdf Política de Segurança Cibernética ]
TODO: Adicionar NTP da unesp.


== O que é ==
== O que é ==
Linha 20: Linha 18:


*Reduzir o risco de invasões e vazamentos.
*Reduzir o risco de invasões e vazamentos.
*Cumprir normas e requisitos de compliance (CIS Controls, ISO 27001, etc).
*Cumprir normas e requisitos de compliance (CIS Controls, NIST CSF, etc).
*Minimizar o impacto de falhas zero-day.
*Minimizar o impacto de falhas zero-day.
*Aumentar a resiliência do ambiente contra ataques automatizados e direcionados
*Aumentar a resiliência do ambiente contra ataques automatizados e direcionados
Linha 26: Linha 24:
== Uso ==
== Uso ==


'''Passo 1:''' Criar um arquivo <pre>touch hardening_ubuntu24.sh </pre>
'''Passo 1 ubuntu 26.04:'''
 
'''Passo 2:''' Permissão de execução <pre>chmod +x hardening_ubuntu24.sh </pre>
 
'''Passo 3:''' Copiar o código a baixo e colar no arquivo criado.
 
<pre>
<pre>
#!/bin/sh
wget https://git.reitoria.unesp.br/reginaldo.lopes/wiki-ti/raw/branch/main/hardening_ubuntu26.sh && chmod +x hardening_ubuntu26.sh && ./hardening_ubuntu26.sh
### BEGIN INFO
# Reginaldo.lopes 30/04/2025
# Versão 1.0
### END INFO
 
case "$1" in
 
up)
echo "Iniciando ...                    [ OK ]"
 
# Verifica se é Ubuntu 24.04
LSB_SR=$(lsb_release -sr) ; LSB_SI=$(lsb_release -si)
if [ "$LSB_SR" = "24.04" ] && [ "$LSB_SI" = "Ubuntu" ] ; then
VER="U24"
  else
echo ""
echo "Versao de sistema operacional invalido para este script"
echo ""
echo "Script homologado para Ubuntu  24.04 LTS"
echo ""
echo "Versao detectada:"
echo "================="
echo ""
lsb_release -a
echo ""
echo "Saindo do programa"
exit 1
fi
 
# Atualizar pacotes do sistema
echo "Atualizando pacotes do sistema..."
sudo apt update && sudo apt upgrade -y
 
# SSH
echo "Aplicando hardening no SSH..."
# Desativar encaminhamento X11, Rodar aplicações gráficas, ex: gedit
sudo sed -i 's/#X11Forwarding yes/X11Forwarding no/' /etc/ssh/sshd_config
 
# Desativar senhas vazias
sudo sed -i 's/#PermitEmptyPasswords yes/PermitEmptyPasswords no/' /etc/ssh/sshd_config
 
# Desativar encaminhamento TCP
echo "AllowTcpForwarding no" | sudo tee -a /etc/ssh/sshd_config
 
# Limitar tentativas de login SSH para mitigar ataques de força bruta
echo "MaxAuthTries 3" | sudo tee -a /etc/ssh/sshd_config
 
# Desativa completamente o login via SSH com o usuário root, mesmo com chave SSH.
# sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
 
echo "Criando banner"
# Banner no ssh
# Adiciona o comando para chamar o banner
echo "Banner /etc/issue.net" | sudo tee -a /etc/ssh/sshd_config
# Adiciona o banner no arquivo issue.net
cat << EOF > /etc/issue.net
*****************************************************
*  UNESP - UNIVERSIDADE ESTADUAL PAULISTA          *
*                                                  *
*  ACESSO RESTRITO SOMENTE A PESSOAS AUTORIZADAS !  *
*                                                  *
*  Qualquer acesso nao autorizado podera resultar  *
*  em severas penalidades civis e criminais.        *
*                                                  *
*  Equipe CSIRT Unesp                              *
*  security@unesp.br                                *
*                                                  *
*****************************************************
EOF
########
sudo systemctl restart ssh
 
;;
 
*)
echo " "
echo "Description: \e[1;32m  \e[0m"
echo "Script para adicionar camadas de segurança no ubuntu 24.04"
echo " "
echo "Options: "
echo " "
echo "\e[0;32m Hardening: \e[0m"
echo "  - up            Iniciar o Hardening"
echo " "
echo "Example: "
echo "./hardening_ubuntu24.sh up"
echo "./hardening_ubuntu24.sh siem"
echo "./hardening_ubuntu24.sh firewall"
echo " "
 
;;
esac
</pre>
</pre>


'''Passo 4:''' Executar o script <pre>./hardening_ubuntu24.sh </pre>
*TODO:
== Firewall ==
*EM DESENVOLVIMENTO.
*TODO: Adicionar no script /hardening_ubuntu24.sh firewall.
* firewallv4


'''Passo 1 ubuntu 24.04:'''
<pre>
<pre>
#!/bin/sh
wget https://git.reitoria.unesp.br/reginaldo.lopes/wiki-ti/raw/branch/main/hardening_ubuntu24.sh && chmod +x hardening_ubuntu24.sh && ./hardening_ubuntu24.sh
### BEGIN INIT INFO
# Provides:     firewall
# Required-Start:    $local_fs  $network $syslog
# Required-Stop:    $local_fs  $network $syslog
# Default-Start:    2 3 4 5
# Default-Stop:     0 1 6
# Short-Description: starts iptables rules
# Description:      starts iptables rules -  start-stop-daemon
### END INIT INFO
 
iptables=/sbin/iptables
 
case "$1" in
start)
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo "| Script de Firewall IPv4 - IPTABLES"
echo "| Criado por: CSIRT UNESP"
echo "| security@unesp.br"
echo "| Uso: /etc/init.d/firewall start|stop|restart"
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
 
echo ""
echo "Iniciando Firewall [ OK ]"
 
iflo="lo"
ifext="< INTERFACE ex:eth0>"
ip="<IP ex:192.168.0.1>"
#monitor="< ZABBIX>"
ntp="200.145.255.25"
 
echo "Definindo variaveis [ OK ]"
 
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ipt_REJECT
/sbin/modprobe ip_conntrack_tftp
 
echo "Carregamento de Modulos [ OK ]"
 
$iptables -Z
$iptables -F
$iptables -X
$iptables -F -t nat
$iptables -X -t nat
$iptables -F -t mangle
$iptables -X -t mangle
 
echo "Zerando regras e tabelas [ OK ]"
 
$iptables -I INPUT -d $ip -s 200.145.6.254 -j ACCEPT
$iptables -I OUTPUT -s $ip -d 200.145.6.254 -j ACCEPT
$iptables -P INPUT DROP
$iptables -P FORWARD DROP
$iptables -P OUTPUT DROP
$iptables -N valid-src
$iptables -N valid-dst
$iptables -N ssh-rules
$iptables -I INPUT -i $ifext -j valid-src
$iptables -I OUTPUT -o $ifext -j valid-dst
 
 
echo "Criando Politicas Padrao [ OK ]"
 
#Regras de Seguranca
# Source and Destination Address Sanity Checks
# Drop packets from networks covered in RFC 1918 (private nets)
iptables -A valid-src -s 10.0.0.0/8    -j DROP
iptables -A valid-src -s 172.16.0.0/12  -j DROP
iptables -A valid-src -s 192.168.0.0/16 -j DROP
iptables -A valid-src -s 224.0.0.0/4    -j DROP
iptables -A valid-src -s 240.0.0.0/5    -j DROP
iptables -A valid-src -s 127.0.0.0/8    -j DROP
iptables -A valid-src -s 0.0.0.0/8      -j DROP
iptables -A valid-src -d 255.255.255.255 -j DROP
iptables -A valid-src -s 169.254.0.0/16  -j DROP
iptables -A valid-src -s $ip        -j DROP
iptables -A valid-dst -d 224.0.0.0/4    -j DROP
 
echo "BLOQUEIO DE IPs INVALIDOS [ OK ]"
 
# Protecoes na pilha TCP/IP do Kernel
echo "BLOQUEIO DE ICMP BROADCAST [ OK ]"
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "PROTECAO CONTRA IP SPOOFING [ OK ]"
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
echo "BLOQUEIO DE REDIRECIONAMENTO ICMP [ OK ]"
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo 0 >$f
done
echo "PROTECAO CONTRA SYNFLOOD [ OK ]"
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "PROTECAO CONTRA RESPONSE BOGUS [ OK ]"
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "HABILITANDO SECURE REDIRECTS [ OK ]"
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
echo "PROTECAO CONTRA REDIRECIONAMENTOS DE ROTA [ OK ]"
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo "SYN - FLOOD [ OK ]"
 
$iptables -A INPUT -p icmp -d $ip --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
$iptables -A INPUT -p icmp -d $ip --icmp-type echo-reply -m limit --limit 1/s -j ACCEPT
$iptables -A OUTPUT -p icmp -s $ip --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
$iptables -A OUTPUT -p icmp -s $ip --icmp-type echo-reply -m limit --limit 1/s -j ACCEPT
 
echo "Aplicando limites ICMP [ OK ]"
 
echo "Regras de Segurança Aplicadas [ OK ]"
 
#Regras de INPUT
$iptables -A INPUT -p ALL  -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -p tcp  -d $ip --dport 22 -j ssh-rules
#Regras de OUTPUT
$iptables -A OUTPUT -p ALL  -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A OUTPUT -s $ip -d $ntp -p udp --dport 123 -j ACCEPT
$iptables -A OUTPUT -p tcp  -s $ip --dport 53 -j ACCEPT
$iptables -A OUTPUT -p udp  -s $ip --dport 53 -j ACCEPT
$iptables -A OUTPUT -p tcp  -s $ip -m multiport --dport 80,443 -j ACCEPT
 
echo "Regras básicas de INPUT/FORWARD [ OK ]"
 
$iptables -A INPUT -p ALL -i $iflo -j ACCEPT
$iptables -A OUTPUT -p ALL -o $iflo -j ACCEPT
 
echo "Habilitando Conexões Locais [ OK ]"
 
# SSH - Liberações
$iptables -A ssh-rules -p tcp  -d $ip -s <IP Acesso SSH ex: 200.145.dti.dti> --dport 22 -j ACCEPT
$iptables -A ssh-rules -p tcp  -d $ip --dport 22 -j DROP
 
echo "Acesso SSH Restrito [ OK ]"
 
#$iptables -A INPUT -p tcp -i $ifext -d $ip -s $monitor --dport 10050 -j ACCEPT
#echo "Acesso Zabbix [ OK ]"
 
# Descomentar abaixo para serviço WEB
#$iptables -A INPUT -p tcp -s <IP para acessar sua pág> -d $ip -m multiport --dport 443,3000 -j ACCEPT
#echo "HTTPS [ OK ]"
 
# Descomentar abaixo para serviço MYSQL
#$iptables -A INPUT -p tcp  -d $ip --dport 3306 -j ACCEPT
#echo "MYSQL [ OK ]"
 
# Descomentar abaixo para serviço POSTGRE
#$iptables -A INPUT -p tcp  -d $ip --dport 5432 -j ACCEPT
#echo "POSTGRE [ OK ]"
 
# Descomentar abaixo para serviço de backup - Bacula
#$iptables -A INPUT -p udp -i $ifext -s <IP do bacula> -d $ip -m multiport --dport 9101:9103 -j ACCEPT
#$iptables -A INPUT -p tcp -i $ifext -s <IP do bacula> -d $ip -m multiport --dport 9101:9103 -j ACCEPT
#echo "Servidor Bacula [ OK ]"
 
 
#service fail2ban restart
#echo "Restarting fail2ban service [ OK ]"
 
echo "----------------------------------------------"
echo ""
echo ""
echo "Firewall Ativado"
echo ""
echo ""
;;
 
stop)
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo "| Script de Firewall IPv4 - IPTABLES"
echo "| Criado por: CSIRT UNESP"
echo "| security@unesp.br"
echo "| Uso: /etc/init.d/firewall start|stop|restart"
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
 
echo ""
echo "Parando Firewall [ OK ]"
 
$iptables -P INPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptables -P OUTPUT ACCEPT
 
echo "Criando Politicas Padrao(ACCEPT) [ OK ]"
 
$iptables -Z
$iptables -F
$iptables -X
$iptables -F -t nat
$iptables -X -t nat
$iptables -F -t mangle
$iptables -X -t mangle
 
echo "Zerando regras e tabelas [ OK ]"
 
echo ""
;;
 
restart)
$0 stop
sleep 2
$0 start
#service fail2ban restart
;;
status)
# The 'status' option should return one of the LSB-defined return-codes,
# in particular, return-code 3 should mean that the service is not
# currently running. This is particularly important for Ansible's 'service'
# module, as without this behaviour it won't know if a service is up or down.
RETVAL=0
;;
*)
echo " Usage: {start|stop|restart}"
;;
esac
</pre>
</pre>




* firewallv6
'''Passo 2:''' executar conforme descrição do script
<pre>
#!/bin/sh
### BEGIN INIT INFO
# Provides:     firewallv6
# Required-Start:    $local_fs  $network $syslog
# Required-Stop:    $local_fs  $network $syslog
# Default-Start:    2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts ip6tables rules
# Description:       starts ip6tables rules -  start-stop-daemon
### END INIT INFO


iptables=/sbin/ip6tables


case "$1" in
'''Passo 3:''' Adicione a chave SSH e restart o SSH <pre>sudo systemctl restart ssh</pre>
start)
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo "| Script de Firewall IPv6 - IPTABLES"
echo "| Criado por: CSIRT UNESP"
echo "| security@unesp.br"
echo "| Uso: /etc/init.d/firewall start|stop|restart"
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"


echo ""
== Firewall ==
echo "Iniciando Firewall [ OK ]"


iflo="lo"
* Disponível no harderning
ifext="< INTERFACE ex:eth0>"
ip="<IP ex2801:88:1000:bf::25> "
#netapp=""
#monitor="< ZABBIX>"
ntp="2801:88:ffff:b0b0::255"


echo "Definindo variaveis [ OK ]"
=== Firewall v4 ===


/sbin/modprobe ip_tables
'''Passo 1:''' wget -O /etc/init.d/firewallv4 https://git.reitoria.unesp.br/reginaldo.lopes/wiki-ti/raw/branch/main/firewallv4 && chmod 755 /etc/init.d/firewallv4 && update-rc.d firewallv4 defaults
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ipt_REJECT
/sbin/modprobe ip_conntrack_tftp


echo "Carregamento de Modulos [ OK ]"
'''Passo 2:''' Modificar o script <IP>, <ifext>, <IP Acesso SSH ex: 200.145.dti.dti>, etc.


$iptables -Z
$iptables -F
$iptables -X
$iptables -F -t nat
$iptables -X -t nat
$iptables -F -t mangle
$iptables -X -t mangle


echo "Zerando regras e tabelas [ OK ]"
=== Firewall v6 ===


$iptables -P INPUT DROP
'''Passo 1:''' wget -O /etc/init.d/firewallv6 https://git.reitoria.unesp.br/reginaldo.lopes/wiki-ti/raw/branch/main/firewallv6 && chmod 755 /etc/init.d/firewallv6 && update-rc.d firewallv6 defaults
$iptables -P FORWARD DROP
$iptables -P OUTPUT DROP
$iptables -N valid-src
$iptables -N valid-dst
$iptables -N ssh-rules
$iptables -I INPUT -i $ifext -j valid-src
$iptables -I OUTPUT -o $ifext -j valid-dst


'''Passo 2:''' Modificar o script <IP>, <ifext>, <IP Acesso SSH ex: 200.145.dti.dti>, etc.


echo "Criando Politicas Padrao [ OK ]"
== checklist rápido antes de colocar em produção ==


#Regras de Seguranca
[ ] Somente as portas estritamente necessárias para o serviço devem permanecer abertas.


echo 1 > /proc/sys/net/ipv4/tcp_syncookies
[ ] Acesso administrativo com chave SSH.
echo "SYN - FLOOD [ OK ]"
echo "----------------------------------------------"
echo "Seguranca [ OK ]"


[ ] Realizar todas as atualizações antes de colocar em produção.


#Regras de INPUT
[ ] Os logs devem ser enviados para o Wazuh desde o primeiro boot.
$iptables -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -p ipv6-icmp -j ACCEPT
$iptables -A INPUT -p tcp -d $ip --dport 22 -j ssh-rules
#Regras de OUTPUT
$iptables -A OUTPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A OUTPUT -p ipv6-icmp -j ACCEPT
$iptables -A OUTPUT -s $ip -d $ntp -p udp --dport 123 -j ACCEPT
$iptables -A OUTPUT -p tcp -m state --state NEW  -s $ip --dport 53 -j ACCEPT
$iptables -A OUTPUT -s $ip -p udp --dport 53 -j ACCEPT
$iptables -A OUTPUT -p tcp -m state --state NEW  -s $ip --dport 80 -j ACCEPT
$iptables -A OUTPUT -p tcp -m state --state NEW  -s $ip --dport 443 -j ACCEPT


[ ] Configurar backup conforme a necessidade da VM.


echo "Regras de INPUT/FORWARD [ OK ]"
[ ] Scanear a VM com o [https://wiki-ti.unesp.br/index.php/RUNBOOK_Identifica%C3%A7%C3%A3o_de_vulnerabilidades_com_OpenVAS Greenbone].


$iptables -A INPUT -p ALL -i $iflo -j ACCEPT
[ ] Alterar senha local e colocar no Gerenciador de senhas.
$iptables -A OUTPUT -p ALL -o $iflo -j ACCEPT


echo "Habilitando Conexões Locais [ OK ]"
== Histórico de Revisões do Documento ==


$iptables -A ssh-rules -p tcp -m state --state NEW  -d $ip -s <IP> --dport 22 -j ACCEPT
Versão 1.0 Versão Inicial


Versão 1.1 NTP e SSH.


echo "Acesso SSH Restrito [ OK ]"
Versão 1.2 apt full-upgrade e install openssh-server.


#$iptables -A INPUT -p tcp -i $ifext -d $ip -s $monitor --dport 10050 -j ACCEPT
Versão 1.3 Download do firewall no script.
#$iptables -A OUTPUT -p tcp -o $ifext -s $ip -d $monitor --dport 10051 -j ACCEPT
#echo "Acesso Zabbix                            [ OK ]"


Versão 1.4 checklist rápido.


# Descomente abaixo para servidor WEB
== Referências ==
#$iptables -A INPUT -p tcp -i $ifext -d $ip -m multiport --dport 80,443 -j ACCEPT
[https://downloads.cisecurity.org/#/ Cis controls]
#echo "HTTP"
 
#$iptables -A INPUT -p udp -i $ifext -s XXXXXXXXXXXXX -d $ip -m multiport --dport 9101:9103 -j ACCEPT
#$iptables -A INPUT -p tcp -i $ifext -s XXXXXXXXXXXXX -d $ip -m multiport --dport 9101:9103 -j ACCEPT
#echo "Servidor Bacula [ OK ]"
 
echo "----------------------------------------------"
echo ""
echo ""
echo "Firewall Ativado"
echo ""
echo ""
;;
 
stop)
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo "| Script de Firewall IPv6 - IPTABLES"
echo "| Criado por: CSIRT UNESP"
echo "| security@unesp.br"
echo "| Uso: /etc/init.d/firewall start|stop|restart"
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
 
echo ""
echo "Parando Firewall [ OK ]"
iptables=/sbin/ip6tables
 
$iptables -P INPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptables -P OUTPUT ACCEPT
 
echo "Criando Politicas Padrao(ACCEPT) [ OK ]"
 
$iptables -Z
$iptables -F
$iptables -X
$iptables -F -t nat
$iptables -X -t nat
$iptables -F -t mangle
$iptables -X -t mangle
 
echo "Zerando regras e tabelas [ OK ]"
 
echo ""
;;
 
restart)
$0 stop
sleep 2
$0 start
service fail2ban restart
;;
 
*)
echo " Usage: {start|stop|restart}"
;;
esac
</pre>


* Executar o comando "chmod 755 /etc/init.d/firewall"
[https://www.youtube.com/watch?v=5WUVslckejA Youtube - Hardening, Superfície de Ataque e Priorização de Vulnerabilidades ]


* Para que o script inicie sempre no boot do sistema, execute o comando "update-rc.d firewall defaults"
[[Arquivo:Hardening.pdf|Hardening, Superfície de Ataque e Priorização de Vulnerabilidades (PDF)]]
 
== Referências ==
[https://downloads.cisecurity.org/#/ Cis controls]

Edição atual tal como às 12h57min de 17 de setembro de 2026


hardening

Versão: 1.2

Data: 17/09/2026

Autor: reginaldo.lopes@unesp.br

Política: Art. 42-VIII-D, Art. 32 Política de Segurança Cibernética

O que é

Hardening é o processo de reforçar a segurança de sistemas, servidores, aplicações e redes, reduzindo a superfície de ataque por meio da eliminação de vulnerabilidades, configurações padrão inseguras e serviços desnecessários.

Por que usar?

  • Reduzir o risco de invasões e vazamentos.
  • Cumprir normas e requisitos de compliance (CIS Controls, NIST CSF, etc).
  • Minimizar o impacto de falhas zero-day.
  • Aumentar a resiliência do ambiente contra ataques automatizados e direcionados

Uso

Passo 1 ubuntu 26.04:

wget https://git.reitoria.unesp.br/reginaldo.lopes/wiki-ti/raw/branch/main/hardening_ubuntu26.sh && chmod +x hardening_ubuntu26.sh && ./hardening_ubuntu26.sh


Passo 1 ubuntu 24.04:

wget https://git.reitoria.unesp.br/reginaldo.lopes/wiki-ti/raw/branch/main/hardening_ubuntu24.sh && chmod +x hardening_ubuntu24.sh && ./hardening_ubuntu24.sh


Passo 2: executar conforme descrição do script


Passo 3: Adicione a chave SSH e restart o SSH

sudo systemctl restart ssh

Firewall

  • Disponível no harderning

Firewall v4

Passo 1: wget -O /etc/init.d/firewallv4 https://git.reitoria.unesp.br/reginaldo.lopes/wiki-ti/raw/branch/main/firewallv4 && chmod 755 /etc/init.d/firewallv4 && update-rc.d firewallv4 defaults

Passo 2: Modificar o script <IP>, <ifext>, <IP Acesso SSH ex: 200.145.dti.dti>, etc.


Firewall v6

Passo 1: wget -O /etc/init.d/firewallv6 https://git.reitoria.unesp.br/reginaldo.lopes/wiki-ti/raw/branch/main/firewallv6 && chmod 755 /etc/init.d/firewallv6 && update-rc.d firewallv6 defaults

Passo 2: Modificar o script <IP>, <ifext>, <IP Acesso SSH ex: 200.145.dti.dti>, etc.

checklist rápido antes de colocar em produção

[ ] Somente as portas estritamente necessárias para o serviço devem permanecer abertas.

[ ] Acesso administrativo com chave SSH.

[ ] Realizar todas as atualizações antes de colocar em produção.

[ ] Os logs devem ser enviados para o Wazuh desde o primeiro boot.

[ ] Configurar backup conforme a necessidade da VM.

[ ] Scanear a VM com o Greenbone.

[ ] Alterar senha local e colocar no Gerenciador de senhas.

Histórico de Revisões do Documento

Versão 1.0 Versão Inicial

Versão 1.1 NTP e SSH.

Versão 1.2 apt full-upgrade e install openssh-server.

Versão 1.3 Download do firewall no script.

Versão 1.4 checklist rápido.

Referências

Cis controls

Youtube - Hardening, Superfície de Ataque e Priorização de Vulnerabilidades

Arquivo:Hardening.pdf