====== 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