Skip to content

Instantly share code, notes, and snippets.

@fnovoac
Last active May 30, 2021 18:35
Show Gist options
  • Save fnovoac/009acfefb8135ad8523cbc2bd8eae912 to your computer and use it in GitHub Desktop.
Save fnovoac/009acfefb8135ad8523cbc2bd8eae912 to your computer and use it in GitHub Desktop.
################################################################
# copiar la imagen a la SD y luego crear un archivo llamado "SSH" para activar el ssh y configurarlo remotamente
################################################################
# programa de configuración (activar SSH, configurar WIFI, etc)
sudo raspi-config
# nos agregamos como usuarios
sudo adduser newuser
# al grupo administradores
sudo gpasswd -a newuser adm
# al gruposudo
sudo gpasswd -a newuser sudo
# al grupo de video
sudo usermod -aG video newuser
# debemos loguearnos en otra sesion para comprobar que todo está OK
# probramos que tengamos los accesos necesarios
sudo whoami
# bloqueamos el acceso con el usuario "pi"
sudo passwd -l pi
# para no tener que ingresar el password dentro de una sesion
sudo visudo
# al final del arcivo agregamos:
newuser ALL=(ALL) NOPASSWD:ALL
# actualizamos el sistema
sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y
# configuramos la red
sudo nano /etc/dhcpcd.conf
sudo nano /etc/resolv.conf
# configuramos actualizacions automáticas
sudo apt install unattended-upgrades
# actualizamos este archivo.
sudoedit /etc/apt/apt.conf.d/50unattended-upgrades
# tenemos que agregar éstas lineas:
"origin=Raspbian,codename=${distro_codename},label=Raspbian";
"origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";
# verificamos los servicios que se estan ejecutando
systemctl --type=service --state=active
# podemos desactivar los servicios que no necesitemos
sudo systemctl disable --now bluetooth.service
sudo systemctl disable --now alsa-state.service
sudo systemctl disable --now alsa-restore.service
sudo systemctl disable --now rsyslog.service
# podemos verificar los puertos abiertos
netstat -an
# instalamos un firewall sencillo
sudo apt install ufw -y
# en caso salga error de IpTables:
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo reboot
sudo ufw allow 22/tcp comment "SSH"
sudo ufw allow 8123/tcp comment "Home Assistant"
...
sudo ufw enable # comprobamos primero en otra sesion qu tenemos acceso
# especificamos los usuarios que tendrán acceso por SSH
sudoedit /etc/ssh/sshd_config
# agremos el siguiente texto y grabamos
AllowUsers user1,user2,user3
# si queremos bloquear los intentos de acceso | al final debemos abrir una nueva sesion y probar
sudo apt install fail2ban -y
sudoedit /etc/fail2ban/jail.local
# agregamos lo siguient al archivo vacío
[DEAFULT]
bantime = 1h
banaction = ufw
[sshd]
enabled = true
sudo systemctl enable --now fail2ban
sudo systemctl restart sshd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment