Acabo de instalar Raspbian 10 (Buster) en mi Raspberry Pi 3b+, resinstalando Pi-Hole e instalado Nginx en vez de lighttpd y haciéndolo me di cuenta que siempre repito los mismos pasos así que los voy a dejar aquí documentados. No se realizan tan a menudo como para necesitar un script o ansible.
Muchos al principio creen que se necesita un monitor y un teclado para instalar y configurar una raspberry pero no es así, una vez copiada la imagen a la tarjeta SD, disco o lo que sea que vayamos a utilizar creamos el archivo "ssh" sin extensión en la partición boot. Iniciamos la máquina y accedemos por ssh con la ip (para conocer la ip quizá debamos acceder al router de nuestra red). El usuario por defecto es "pi" y la contraseña "raspberry", a continuación podemos proceder utilizando "sudo" o con root.
Añadimos un usuario
$ sudo adduser usuario
Como el objetivo de esto es cargarnos el usuario pi y dejar nuestro usuario como administrador, vamos a darle permisos al usuario
$ usermod -a -G sudo usuario
Nos desconectamos de la sesión con el usuario pi y conectamos con el nuevo usuario.
$ deluser pi --remove-home
Este comando se carga al usuario pi y además elimina la carpeta home del usuario. (/home/pi/)
Actualizamos la máquina y mientras se actualiza podemos iniciar una nueva sesión para seguir modificando cosas ( dirección ip, claves ssh, nombre de la máquina)
$ apt update && apt upgrade
Si queremos cambiar la IP que tiene asignada por defecto desde la propia raspberry modificamos el archivo /etc/dhcpcd.conf
interface eth0
static ip_address=192.168.1.10/24
static routers=192.168.1.1
static domain_name_servers=127.0.0.1
Le cambiamos el nombre a la máquina editando /etc/hosts y /etc/hostname, una vez guardados los archivos reiniciamos. El primer archivo es muy fácil, borramos el contenido y escribimos el nombre que queramos el segundo debe quedar así:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 nombre
Con el usuario que hemos creado:
cd
mkdir .ssh
cd .ssh
touch authorized_keys
chmod 600 authorized_keys
cd ..
chmod 700 .ssh
ssh-keygen -b 4096
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
Ahora con la clave pública (id_rsa.pub) podremos generar un archivo .ppk con puttygen para PuTTY.
Editamos el archivo sshd_config (/etc/ssh/)
PermitRootLogin no
StrictModes yes
RsaAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
AllowUsers nuestrousuario
Reiniciamos el servicio ssh
$ systemctl restart sshd
Y listo, ya tenemos la raspberry configurada, para mayor seguridad en sshd_config podemos cambiar el puerto
Port 20022
Editamos /etc/modprobe.d/raspi-blacklist.conf y reiniciamos.
#wifi
blacklist brcmfmac
blacklist brcmutil
#bt
blacklist btbcm
blacklist hci_uart