Proteger um servidor baseado em Raspbian.
Princípios básicos para proteger um servidor baseado em Raspbian.
Logo depois de gravar o cartão SD, e admitindo o funcionamento headless
- Colocar os seguintes ficheiros em /BOOT
- ssh (ficheiro em branco com este nome, sem extensão)
- wpa_supplicant.conf
Conteúdo de wpa_supplicant.conf
update_config=1
ctrl_interface=/var/run/wpa_supplicant
network={
scan_ssid=1
ssid="nome da rede"
psk="pass"
}
Aquando do primeiro boot:
- Aceder via SSH (user: pi; password. raspberry)
- Configurar IP Fixo:
Para isso modificar o conteúdo do ficheiro /etc/dhcpcd.conf segundo o modelo (ajustar valores e comentários de acordo com necessidade):
###################################################### # Modelo: IP diferente para redes diferentes # # O endereço arping deve ser o router # ou outra máquina disponível. É necessário # conhecer o endereço dos servidores Se nenhum. # dos arpings encontrar um servidor activo então # o endereço será atribuído por DHCP. ###################################################### interface wlan0 arping 192.168.1.1 # arping xxx.xxx.x.xxx #colocar o IP de outros routers possiveis profile 192.168.1.1 static ip_address=192.168.1.xxx/24 #o IP escolhido static routers=192.168.1.1 static domain_name_servers=192.168.1.1 profile 192.168.0.254 static ip_address=192.168.0.44/24 static routers=192.168.0.254 static domain_name_servers=192.168.0.254Fazer o upgrade e update:
sudo apt-get update sudo apt-get upgrade -yConfigurar Hostname e outras opções básicas:
sudo raspi-config - Selecionar Hostname, mudar o nome de raspberrypi para xxxxxx
- Modificar LOCALE e timezone no menu
- Modificar distribuição da memória / expand filesystem
Modificar password do user actual (pi)
passwdAdicionar novo utilizador
sudo adduser xxxxxx sudo passwd xxxxx #mudar a password do novo user (que será criado em /home/xxxxxx/Adicionar utilizador XXXXXX com permissões SUDO
sudo visudo #(fazer scroll e duplicar linha root com novo username)atribuir ao novo user as mesmas permissões e grupos do user pi
groups pi sudo passwd NOVOUSER group xxxEncerrar sessão e iniciar com novo user Remover user pi
sudo deluser pi (ou sudo deluser --remove-all-files pi)ou
sudo passwd --lock pi #pode-se fazer o mesmo a outras contas como rootRemover user pi do grupo sudo:
sudo deluser pi sudoe
sudo sed -ri -e 's/pi ALL=(ALL) NOPASSWD: ALL/# pi ALL=(ALL) NOPASSWD: ALL/' /etc/sudoers.d/010_pi-nopasswdObrigar o uso de password no sudo
sudo nano /etc/sudoers.d/010_pi-nopasswd pi ALL=(ALL) PASSWD: ALL #(substituir pi pelo user que quisermos mudar)Mudar que users podem aceder via ssh
sudo nano /etc/ssh/sshd_config #adicionar no final deste ficheiro: AllowUsers xxxxx aaaaa cccccc nnnnnn # Impedir acesso root via ssh (o acesso pode depois ser obtido por sudo) PermitRootLogin noApós alterar é necessário reiniciar o sshd
sudo systemctl restart sshCron job diário para fazer o update ————— Cron
crontab -e (a primeira vez vai pedir para indicar qual o editor - nano)# m h d m s command # * * * * * command to execute # ┬ ┬ ┬ ┬ ┬ # │ │ │ │ │ # │ │ │ │ │ # │ │ │ │ └───── dia da semana (0 - 7) (0 a 6 = Domingo a Sábado) # │ │ │ └────────── mês (1 - 12) # │ │ └─────────────── dia do mês (1 - 31) # │ └──────────────────── hora (0 - 23) # └───────────────────────── minuto (0 - 59) Ver tarefas: ``` crontab -l ``` Exemplo: ``` 0 1 * * * /usr/bin/apt-get update 0 10 * * * /usr/bin/apt-get upgrade -y ``` Configurar o Serviço timesyncd Editar **/etc/systemd/timesyncd.conf**; ``` [Time] NTP=0.pt.pool.ntp.org FallbackNTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org #RootDistanceMaxSec=5 #PollIntervalMinSec=32 #PollIntervalMaxSec=2048 ``` Em falta: - Fail2Ban
- Firewall