====== Debian 10 Docker ====== ===== Build à la mano ===== C'est le job de l'excellent Ansible, mais il faut l'utiliser très souvent pour être à l'aise et assuré. So, ici c'est une procédure manuelle (pour le vieux débile que je suis :-)). ==== ssh config ==== * Changer le port d'écoute. Ne pas oublier d'ouvrir le nouveau port sur le firewall. * Supprimer l'accès ''ssh'' à ''root''. # nano /etc/ssh/sshd_config # Port 22 Port wxyz # nano /etc/ssh/sshd_config #PermitRootLogin yes PermitRootLogin no #PasswordAuthentication yes PasswordAuthentication no #X11Forwarding yes X11Forwarding no Si un autre user sudoer existe, sinon attendre l'opération [[#operating_user]]. Redémarrer le service sshd et tester la connexion sur le nouveau port depuis un second terminal. systemctl restart sshd.service ==== apt ==== Des fournisseurs proposent des images vraiment minimalistes qu'il faut initialiser avant de pouvoir installer des softs. apt update apt upgrade ==== fail2ban ==== apt install fail2ban Ajouter le port ssh modifié précédement. # nano /etc/fail2ban/jail.d/custom.conf [sshd] port=22,wxyz maxretry = 2 ==== operating user ==== Créer un user s'il n'existe pas. Certaines images proposent un user ''debian'' par défaut, d'autre pas. On va créer un user avec un tout autre nom, qui sera ''sudoer'' et qu'il faudra connaître pour se connecter en ssh (on va supprimer accès root ssh). # useradd [options] LOGIN # -m, --create-home create the user's home directory # -U, --user-group create a group with the same name as the user useradd -m -U -s /bin/bash tintin # adduser USER GROUP # Add an existing user to an existing group adduser tintin sudo Adding user 'tintin' to group 'sudo' ... Done. Vérifier que le group sudo peut agir sans mot de passe : # nano /etc/sudoers # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) NOPASSWD:ALL su tintin -c "mkdir /home/tintin/.ssh" su tintin -c "chmod o-x,o-r /home/tintin/.ssh" cp .ssh/authorized_keys /home/tintin/.ssh/ chown tintin:tintin /home/polux/.ssh/authorized_keys Si ce n'avait pas été fait précédemment redémarrer le service ''sshd''. systemctl restart sshd.service Tester le login avec ce user ... ==== email smtp ==== L'intérêt d'utiliser un MTA local est sa ''queue'', pour le re-essaye d'envoi en cas de problème sur les Internets. sudo apt install exim4-daemon-light mailutils Configurer le SPF du domaine. Email à destination du nouveau user ''tintin'' : ils seront expédiés à tintin@, ou bien modifié ''/etc/aliases''. Pas besoin de toucher à ''/etc/email-addresses'' === Avec smarthost === sudo dpkg-reconfigure exim4-config # cat /etc/exim4/update-exim4.conf.conf # # dc_eximconfig_configtype='satellite' dc_other_hostnames='' dc_local_interfaces='127.0.0.1 ; ::1' dc_readhost='' dc_relay_domains='' dc_minimaldns='false' dc_relay_nets='' dc_smarthost='' CFILEMODE='644' dc_use_split_config='false' dc_hide_mailname='true' dc_mailname_in_oh='true' dc_localdelivery='mail_spool' Et pour l'identification auprès du smarthost: # sudo cat /etc/exim4/passwd.client # Example: ### target.mail.server.example:login:password :: === Direct smtp === mailname doit correspondre reverse de l'ip. ==== git ==== # install git sudo apt install git # generate ssh key, the public one will be used in gitlab repository deploy key ssh-keygen Ajouter la clé publique au dépôt pour permettre le clone. ==== docker ==== sudo apt install docker.io docker-compose