====== Installer un serveur Olimex A20, LIME 2 ====== Page plus maintenue Serveur remplacé par un ORANGE PI 3B [[homeserver:orangepi3b|Orange PI 3B]] {{:homeserver:logo.png?200|}}{{:homeserver:lime2-server-.jpg?150|}}{{:homeserver:a20-olinuxino-lime2.png?200|}}{{:homeserver:lime2-server5.jpg?200|}} **Caractéristiques** * A20-OLinuXino-LIME2-s16M * Cortex-A7 Dual core 1Ghz processor * 1GB of RAM * 32GB micro SD flash card * Gigabit Ethernet * Only 2W power consumption * UPS build in Lipo battery up to 3 h stand alone work * Metal Box for the computer and hard disk * Option for SATA HDD and SSD --- **ICI version 128Go SSD** * Power supply 5V 2A adapter included * Ethernet cable included | * Allwinner A20 dual-core ARM Cortex-A7 @ 1GHz * 1024Mb de mémoire vive * 1 port Etherntet 1Gbit * 1 port SATA (à utiliser avec le SATA-CALBESET) * 2 ports USB 2.0 (puissance électrique limitée) * 1 port MicroSD supportant les cartes jusqu'a 64Gb. ===== Liens / références ===== * [[https://yunohost.org/#/docs | Documentation de Yunohost]] * [[https://yunohost.org/#/install_on_arm_board_fr|Yunohost sur ARM]] * [[https://yunohost.org/#/images | Images yunohost]] * [[https://build.yunohost.org/yunohost-stretch-3.4.2.4-lime2-stable.img.zip | Image yunohost mais version 3]] * [[http://images.olimex.com/release/a20/ | Images Olimex ]] * [[http://images.olimex.com/release/a20/A20-OLinuXino-buster-minimal-20201217-194545.img.7z | L'image minimal buster ]] * [[https://wiki.labriqueinter.net/doku.php?id=howto:install_sata|Transférer micro SD à SATA]] * [[https://olimex.wordpress.com/tag/sata/|Transférer micro SD à SATA]] * [[https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/LIME2-SERVER/LIME2-SERVER-User-Manual.pdf|Manuel de l'Olimex A20, Lime2]] ===== Préconfiguration du FAI free ===== Ce serveur fera de l'autohégerment dérrière [[https://www.free.fr/freebox/freebox-mini-4k/|une box free mini 4K]]. ==== Espace abonné ==== Voici les préalables de configuration de votre freebox (**espace abonné**) * Demander une adresse IP fixe V4 full-stack * Personnaliser mon reverse DNS. * Blocage du protocole SMTP sortant : demander le déblocage. Attention pour le rDNS, la littérature indique que ce réglage bien que disponible n'est en fait pas pris en compte par free. Voir la section Problèmes pour plus de détails [[https://cbiot.fr/dokuwiki/homeserver:olinolinux#problemes_rencontres|->]] ==== Configuration de la freebox ==== A réaliser une fois le serveur mis en route **Dans la configuration de mafreebox, plusieurs étapes :** * IP fixe sur le serveur * Demander une DMZ sur le serveur * Demander la redirection des ports Rediriger ces ports Web: 80 (HTTP), 443 (HTTPS) SSH: 22 XMPP: 5222 (clients), 5269 (servers) Email: 25, 587 (SMTP), 993 (IMAP) **Ce qui donne concrètement :** {{:homeserver:2020-12-29_16-59.png?800|}} ===== Graver l'image sur la carte micro SD ===== L'olimex A20 est une **image ARM**, la carte ne peut booter qur sur le microSD. La carte SD sera utilisée pour le premier démarrage du serveur puis le système sera transférer vers le disque SATA. La carte pourra alors être retirée pour les prochains boots. L'image yunohost étant en version 3, le choix s'est porté sur [[https://images.olimex.com/release/a20/| l'image oilmex debian buster (stable)]] depuis laquelle sera installée par la suite yunohost. __**A réaliser depuis n'importe quel PC. Ici PC sous Linux.**__ Il faut une carde microSD de classe 10 # apt-get install p7zip $ 7za e A20-OLinuXino-buster-minimal-20201217-194545.img.7z $ ls A20-OLinuXino-buster-minimal-20201217-194545.img* A20-OLinuXino-buster-minimal-20201217-194545.img A20-OLinuXino-buster-minimal-20201217-194545.img.7z A20-OLinuXino-buster-minimal-20201217-194545.img.md5 Insérer la carte micro SD (class 10, ici une 32Ga) [701710.426868] mmc0: cannot verify signal voltage switch [701710.575537] mmc0: new ultra high speed SDR104 SDHC card at address 0001 [701710.576310] mmcblk0: mmc0:0001 SD 29.2 GiB [701710.594672] mmcblk0: p1 **On flashe la carte** dd if=/home/ragnarok/Téléchargements/A20-OLinuXino-buster-minimal-20201217-194545.img of=/dev/mmcblk0 ===== Premier démarrage du serveur ===== ==== Detecter le serveur sur le réseau local ==== Brancher le serveur (alim et RJ45). Pour un LIME2, le démonter au préalable et connecter la batterie. Puis on scanne le réseau local. # arp-scan --local Interface: wlp1s0, type: EN10MB, MAC: f4:8c:50:06:5a:90, IPv4: 192.168.0.36 Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.0.15 68:a3:78:2a:e3:8c FREEBOX SAS 192.168.0.46 30:1f:9a:d0:33:ba IEEE Registration Authority 192.168.0.17 a4:9b:4f:17:1e:60 HUAWEI TECHNOLOGIES CO.,LTD 192.168.0.29 00:71:cc:bd:cc:2b Hon Hai Precision Ind. Co.,Ltd. 192.168.0.25 cc:25:ef:49:af:42 Apple, Inc. 192.168.0.11 6c:88:14:ad:7a:08 Intel Corporate 192.168.0.48 e4:fd:a1:db:eb:2d HUAWEI TECHNOLOGIES CO.,LTD 192.168.0.30 a4:38:cc:cf:c1:e7 Nintendo Co.,Ltd 192.168.0.254 68:a3:78:78:86:f3 FREEBOX SAS Le serveur est l'interface 192.168.0.46 30:1f:9a:d0:33:ba IEEE Registration Authority //(**IEEE Registration Authority** indique la carte du serveur, dans le doute, faites un** # arp-scan --local** **avant** et **après démarrage du serveur** afin de voir l'IP ajoutée)// ==== Se connecter au serveur ==== On s'y connecte par ssh. Le couple login / password de sortie d'usine est : login **olimex** passwd **olimex** $ ssh olimex@192.168.0.46 olimex@192.168.0.46's password: Linux a20-olinuxino 5.8.18-olimex #122632 SMP Wed Dec 16 12:27:58 UTC 2020 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. olimex@a20-olinuxino:~$ ==== Transfert du système de la microSD vers le disque SATA ==== Le disque SSD ou HD fourni n'est pas formaté et le système est à ce stade sur la carte microSD. Dans un premier temps : * **formater le disque SATA** * **puis transférer le système de la carte au SATA.** === Formatage du disque SATA === Utiliser **cfdisk**: olimex@a20-olinuxino:~ sudo cfdisk /dev/sda olimex@a20-olinuxino:~$ sudo fdisk -l Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors Disk model: SPCC Solid State Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 58522E38-9E19-A84B-A1AA-6116052AD257 Device Start End Sectors Size Type /dev/sda1 2048 250069646 250067599 119.2G Linux filesystem **Puis formatage en ext4:** olimex@a20-olinuxino:~$ sudo mkfs.ext4 /dev/sda1 mke2fs 1.44.5 (15-Dec-2018) Discarding device blocks: done Creating filesystem with 31258449 4k blocks and 7815168 inodes Filesystem UUID: 31e2f011-36dd-4013-930e-02fa62333233 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (131072 blocks): done Writing superblocks and filesystem accounting information: done === Transfert microSD -> SATA === On transfère ensuite le système de la carte vers le disque. On utilise l'utilitaire ** olinuxino-sd-to-sata**, disponible dans l'image de l'olimex. olimex@a20-olinuxino:~$ sudo /sbin/olinuxino-sd-to-sata Detecting board... Detecting the root device... Root partition: /dev/mmcblk0p1 Root device: /dev/mmcblk0 Detecting SATA device... SATA partition: /dev/sda1 SATA device: /dev/sda Checking disk size... Required blocks: 1355024 Available blocks: 250069680 Unmount target device... umount: /dev/sda1: not mounted. Copying MBR record... Resizing partition... e2fsck 1.44.5 (15-Dec-2018) ext2fs_open2: Bad magic number in super-block e2fsck: Superblock invalid, trying backup blocks... e2fsck: Bad magic number in super-block while trying to open /dev/sda1 The superblock could not be read or does not describe a valid ext2/ext3/ext4 filesystem. If the device is valid and it really contains an ext2/ext3/ext4 filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock: e2fsck -b 8193 or e2fsck -b 32768 resize2fs 1.44.5 (15-Dec-2018) resize2fs: Bad magic number in super-block while trying to open /dev/sda1 Couldn't find valid filesystem superblock. Formating disk... Copying disk... 632,730,175 99% 6.06MB/s 0:01:39 (xfr#21054, to-chk=0/26998) Configuring... Cleanup... Writing u-boot-sunxi-with-spl On peut booter même si la carte est retirée car le secteur de boot a été copié sur le SPI flash memory. . ===== Installation de yunohost ===== ==== Sans curl ==== A ce stade j'ai eu un soucis avec l'installation de yunohost car curl ne gérait par correctement les certificats de sécurité. Donc installation à la main par récupération du script d'installation $ wget https://install.yunohost.org/ $ mv index.html yunohost_install.sh Lancement du script d'installation de yunohost. Elle prend un certain temps, faire du café ;) $ sudo bash yunohost_install.sh [INFO] Running upgrade_system [INFO] Running install_script_dependencies [INFO] Running create_custom_config [INFO] Running confirm_installation [INFO] Running manage_sshd_config [INFO] Running fix_locales Generating locales (this might take a while)... en_GB.UTF-8... done en_US.UTF-8...^[[C done Generation complete. /etc/environment: line 1: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory [INFO] Running setup_package_source [INFO] Running apt_update [INFO] Running register_debconf [INFO] Running workarounds_because_sysadmin_sucks [INFO] Workaround for avahi : creating avahi user with uid 954 [INFO] Running install_yunohost_packages [INFO] Running restart_services [INFO] Installation logs are available in /var/log/yunohost-installation_20201226_122427.log [ OK ] YunoHost installation completed ! =============================================================================== You should now proceed with Yunohost post-installation. This is where you will be asked for : - the main domain of your server ; - the administration password. You can perform this step : - from the command line, by running 'yunohost tools postinstall' as root - or from your web browser, by accessing : - https://192.168.0.46/ (local IP, if self-hosting at home) If this is your first time with YunoHost, it is strongly recommended to take time to read the administator documentation and in particular the sections 'Finalizing your setup' and 'Getting to know YunoHost'. It is available at the following URL : https://yunohost.org/admindoc =============================================================================== Attention, il faut régler le soucis de **curl** car sinon **vous ne pourrez pas utiliser de certifcat Let's encrypt pour vos noms de domaines** ==== Avec curl ==== Pour régler le soucis de curl. Curl n'est pas installé par défaut, l'installer et de suite régénérer les certificats # sudo apt install curl # sudo update-ca-certificates -f Curl est opérationnel, yunohost peut s'installer alors facilement par # curl https://install.yunohost.org | bash ===== Post installation de yunohost ===== Comme stipulé à la fin de l'installation de yunohost, on récupère le lien de post configuration de yunohost et on peut finir l'installation via un navigateur internet (elle peut être faite aussi en CLI, lire la documentation de yunohost dans ce cas) {{:homeserver:2020-12-26_13-52.png?800|}} L'ajout de l'user admin sera réalisée et il est impossible, pour des raisons de sécurité de se connecter avec le compte root. Dès lors se connecter ssh admin@mon_non_de_domaine.ext Pour aller plus loin sur la sécurisation de yunohost : * [[https://yunohost.org/#/security| Sécurité Yunohost ]] * [[https://cbiot.fr/dokuwiki/ssh-fail2ban| Sécuriser fail2ban et ssh ]] ===== Relier un domaine à son yunohost ===== C'est dans le panel d'administration sur **DOMAINES, AJOUTER UN DOMAINES** {{:homeserver:2020-12-29_17-31.png?400|}} Yunohost vous fournira tous les données nécessaires pour remplir correctement la zone DNS du registar où vous avez acheté le nom de domaine. {{:homeserver:2020-12-29_17-33.png?400|}} Se connecter au panel d'administration de son registar et renseigner la zone DNS à partir des dernières informations. Il se peut qu'un **temps de prise en compte soit nécessaire** le temps de diffusion de la mise à jour de ces entrées. **Demander un certificat SSL et Let’s Encrypt** {{:homeserver:2020-12-29_17-38.png?400|}} ===== Problèmes rencontrés ===== ==== curl ==== Suite à l'installation de l'image d'Olimex ARM, j'ai du demandé la mise à jour des certificats afin que curl fonctionne correctement # sudo update-ca-certificates -f ==== Blacklist de mail ==== Le rapport de diagnostic de yunohost permet de voir les soucis de configuration. Il se peut que l'IP attribuée soit blacklistée, dans ce cas, suivre les indications afin de demander son déblocage. ==== rDNS Free ==== [[https://www.mail-tester.com/| Mail tester]] est un utilitaire en ligne gratuit afin de tester sa configuration mail (limité à 3 test gratuits par jour dans sa version gratuite). Il semble que free ne tiennent pas compte de la configuration rDNS bien qu'il soit possible de la modifier dans l'espace abonné. Vous perdez donc 0,3 points. Ce qui reste acceptable. Pas trouvé de solution à ce jour. Utiliser nslookup pour vérifier le rDNS $ nslookup 82.65.208.68 68.208.65.82.in-addr.arpa name = 82-65-208-68.subs.proxad.net. Authoritative answers can be found from: Le résultat attendu est : crust.ovh ... Bien que correctement enregistrer et paramétrer pour mon nom de domaine, la prise en charge n'est pas effective. Les forums free et yunohost le confirment. Solutions : * utiliser un VPN pour le rDNS * suivre les conseils de mail-tester avec le hostname (cette dernière solution ne semble pas porter ses fruits...) ==== rDNS Free AJOUT DU 10 OCTOBRE 2023 ==== Free a corrigé le bug du reverseDNS sur l'IPv4 ça fonctionne dès lors nslookup 82.65.208.68 68.208.65.82.in-addr.arpa name = crust.ovh. Authoritative answers can be found from: ==== NO_FM_NAME_IP_HOSTN ==== Alors là, je comprends très peu la situation. Car pour un autre nom de domaine réglé exactement pareil, pas de soucis. {{:homeserver:2020-12-27_20-51.png?400|}} Mais ça fait perdre 2.5 points par rapport à spam assassin ce qui peut être génant. J'ai réglé ce soucis dans le paramétrage de mon compte mail (client et webmail) en mettant un nom composé plus qu'un nom simple dans le nom du compte. * crust -->> -2,5 points * Crust Your Mind -->> ça passe Honnêtement, je ne comprends pas pourquoi. Solution trouvée sur le forum yunohost : https://forum.yunohost.org/t/office-360-qui-refuse-mes-mails-yunohost/11521/10 ==== Rapport de mail-tester ==== **Sans la configuration Nom + Prénom :** {{:homeserver:2020-12-29_20-24_1.png?400|}} **Avec la configuration Nom Prénom dans le client mail et le webmail :** {{:homeserver:2020-12-29_20-24.png?400|}} Et 10/10 depuis que le reverseDNS en ipv4 est fonctionnel ! ===== Divers ===== ==== Batterie ==== **Sur batterie** cat /sys/bus/i2c/devices/0-0034/axp20x-battery-power-supply/power_supply/axp20x-battery/uevent POWER_SUPPLY_NAME=axp20x-battery POWER_SUPPLY_TYPE=Battery POWER_SUPPLY_PRESENT=1 POWER_SUPPLY_ONLINE=1 POWER_SUPPLY_STATUS=Discharging POWER_SUPPLY_VOLTAGE_NOW=4037000 POWER_SUPPLY_CURRENT_NOW=508000 POWER_SUPPLY_CONSTANT_CHARGE_CURRENT=1200000 POWER_SUPPLY_CONSTANT_CHARGE_CURRENT_MAX=1200000 POWER_SUPPLY_HEALTH=Good POWER_SUPPLY_VOLTAGE_MAX_DESIGN=4200000 POWER_SUPPLY_VOLTAGE_MIN_DESIGN=2900000 POWER_SUPPLY_CAPACITY=97 **Sur secteur** cat /sys/bus/i2c/devices/0-0034/axp20x-battery-power-supply/power_supply/axp20x-battery/uevent cat /sys/bus/i2c/devices/0-0034/axp20x-battery-power-supply/power_supply/axp20x-battery/uevent POWER_SUPPLY_NAME=axp20x-battery POWER_SUPPLY_TYPE=Battery POWER_SUPPLY_PRESENT=1 POWER_SUPPLY_ONLINE=1 POWER_SUPPLY_STATUS=Charging POWER_SUPPLY_VOLTAGE_NOW=4215000 POWER_SUPPLY_CURRENT_NOW=800000 POWER_SUPPLY_CONSTANT_CHARGE_CURRENT=1200000 POWER_SUPPLY_CONSTANT_CHARGE_CURRENT_MAX=1200000 POWER_SUPPLY_HEALTH=Good POWER_SUPPLY_VOLTAGE_MAX_DESIGN=4200000 POWER_SUPPLY_VOLTAGE_MIN_DESIGN=2900000 POWER_SUPPLY_CAPACITY=89 **Pour plus de simplicité, réaliser l'alias** $ cat .bash_aliases alias battery="cat /sys/bus/i2c/devices/0-0034/axp20x-battery-power-supply/power_supply/axp20x-battery/uevent" $ source ~/.bashrc ==== Deconnexion SSH auto ==== Dans le .bashrc # Export TMOUT # Délai inactivité avant deconnexion TMOUT=600 ==== Outils yunohost essentiels (CLI) ==== Tableau ci dessous obsolète. Utiliser ce lien https://cbiot.fr/site/yunohost.pdf |sudo yunohost firewall list |Liste les ports ouverts| |sudo yunohost app list | Liste les applications installées| |sudo yunohost app info horde| Donne des informations sur l'application passée en IP| |sudo yunohost domain list| Liste les domaines gérés par l'instance yunohost| |sudo yunohost tools update| Mise à jour de la liste des paquets| |sudo yunohost tools upgrade system | Mise à jour du système| |sudo yunohost tools upgrade apps | Mise à jour des applications | |sudo yunohost tools app upgrade NAME_APP | Mise à jour de l'application NAME_APP | |sudo yunohost diagnosis run| Lancer un diagnostique système| |sudo yunohost diagnosis run --force| Force la réitération d'un diagnostic système| |sudo yunohost diagnosis show| Affiche le bilan du diagnostique système| |sudo yunohost diagnosis show --issues| Affiche que les erreurs d'un diagnostique système| |sudo yunohost backup create| Crée une sauvegarde complète du système| |sudo yunohost backup create --apps |Crée une sauvegarde des applications| |sudo yunohost backup create --system | Crée une sauvegarde des données système| |sudo yunohost backup create --system data_mail |Crée une sauvegarde des mails| |sudo yunohost backup list|Liste les sauvegardes effectuées| |yunohost tools basic-space-cleanup|Nettoyage basic du sytème (cache apt, logs, etc.)| ==== Ajouter un fichier de swap ==== **Créer un fichier de swap de 2go** $ sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress On peut utiliser cette commande. $ sudo fallocate -l 4G /swapfile Mais personnellement, ça ne passe pas. Donc préférer la précédente **Appliquer les droits suivants** $ sudo chmod 600 /swapfile **Vérifier** $ ls -lh /swapfile -rw------- 1 root root 2.0G Dec 31 15:28 /swapfile **Transformer ce fichier en swap** $ sudo mkswap /swapfile Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=a5644688-4d53-4e30-a388-f2a023741ebf **Appliquer le swap** $ sudo swapon /swapfile **Vérifier la bonne prise en charge** $ sudo swapon -s Filename Type Size Used Priority /swapfile file 2097148 0 -2 **Pour rendre le montage permanent, ajouter à fstab** $ sudo nano /etc/fstab Ajouter ces lignes # Add swap /swapfile none swap defaults 0 0 **Vérifier** $ free total used free shared buff/cache available Mem: 1021080 229364 582704 13976 209012 754220 Swap: 0 0 0 ==== Etre informé des mises à jour ==== **Installer simplement ces 2 paquets :** $ sudo apt install apt-listchanges apticron ==== Rapport mail quotidien de fail2ban ==== **Créer un répertoire de scripts pour **admin**** $ mkdir scripts **Créer le fichier fail2ban-status-ban.sh** $ nano fail2ban-status-ban.sh #!/bin/sh # Script de rapport fail2ban # Prend en compte tous les jails # dest=mon_adress_mail@domaine.extension msg=$(fail2ban-client status | sed -n 's/,//g;s/.*Jail list://p' | xargs -n1 fail2ban-client status); echo "$msg" | mail -s "Rapport Fail2ban De $(hostname) $(date)" $dest Juste adapter la variable **dest**. **Positionner un cron chez le root** $ sudo crontab -e # Rapport de fail2ban 15 6,19 * * * /home/admin/scripts/fail2ban-status-ban.sh Vous recevrez **quotidiennement** à 6h15 et à 19h15 un rapport de fail2ban sous cette forme **par mail** : Status for the jail: dovecot |- Filter | |- Currently failed: 0 | |- Total failed: 0 | `- File list: /var/log/mail.log `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list: Status for the jail: nginx-http-auth |- Filter | |- Currently failed: 0 | |- Total failed: 0 | `- File list: /var/log/nginx/xmpp-upload.crust.ovh-error.log /var/log/nginx/error.log /var/log/nginx/crust.ovh-error.log `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list: Status for the jail: pam-generic |- Filter | |- Currently failed: 1 | |- Total failed: 2314 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list: Status for the jail: postfix |- Filter | |- Currently failed: 0 | |- Total failed: 2 | `- File list: /var/log/mail.log `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list: Status for the jail: recidive |- Filter | |- Currently failed: 7 | |- Total failed: 701 | `- File list: /var/log/fail2ban.log `- Actions |- Currently banned: 38 |- Total banned: 38 `- Banned IP list: 49.88.112.110 49.88.112.68 221.181.185.222 222.187.222.105 221.181.185.136 221.181.185.141 222.187.222.55 221.181.185.135 222.187.222.53 49.88.112.75 221.181.185.19 222.187.238.57 222.187.238.93 218.93.208.28 221.131.165.85 221.181.185.148 222.187.227.224 221.131.165.86 221.131.165.124 221.181.185.18 221.181.185.221 221.181.185.199 221.181.185.223 221.181.185.198 221.181.185.36 218.93.207.94 221.181.185.143 221.181.185.149 222.187.224.30 222.187.238.39 222.187.227.177 221.181.185.29 221.131.165.119 218.93.207.40 218.93.207.84 222.187.238.87 221.131.165.87 221.181.185.200 Status for the jail: sshd |- Filter | |- Currently failed: 1 | |- Total failed: 7588 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 0 |- Total banned: 703 `- Banned IP list: Status for the jail: yunohost |- Filter | |- Currently failed: 0 | |- Total failed: 0 | `- File list: /var/log/nginx/xmpp-upload.crust.ovh-error.log /var/log/nginx/error.log /var/log/nginx/crust.ovh-error.log /var/log/nginx/xmpp-upload.crust.ovh-access.log /var/log/nginx/access.log /var/log/nginx/crust.ovh-access.log `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list: ==== Etre notifié des connexion ssh par SMS ==== * https://cbiot.fr/dokuwiki/ssh-fail2ban#avoir_un_rapport_de_connexion_ssh ==== Installer bpytop, moniteur de ressources ==== **bpytop** est un moniteur de ressources qui permet d'afficher les statistiques et de gérer l'usage du(es) processeur(s), des processus, de la mémoire et du réseau. git clone https://github.com/aristocratos/bpytop.git cd bpytop sudo make install **Pour le desinstaller** sudo make uninstall ==== Installer **pflogsumm** , un analyseur de mails ==== sudo apt install pflogsumm Tester les mails du jour : sudo /usr/sbin/pflogsumm -d today /var/log/mail.log Automatiser la tâche et être notifié par mail sudo crontab -e # Stats Mail ( pflogsumm ) 00 19 * * * /usr/sbin/pflogsumm -d today /var/log/mail.log | mail -s "Postfix Rapport du `date`" yourmail@domain.tld avec yourmail@domain.tld --> adresse mail et vous recevrez un rapport détaillé tous les soirs à 19h. ==== Redirigé si IP renseignée plutôt que le nom de domaine ==== Par défaut, si on entre son IPv4 plutôt que son nom de domaine, on tombe sur la page d'administration de son yunohost. Pour personnaliser la redirection, éditer le fichier : sudo nano /etc/nginx/conf.d/default.d/redirect_to_admin.conf Apporter les modifications suivantes : location / { # return 302 https://$http_host/yunohost/admin; return 302 https://crust.ovh ; } En précisant votre nom de domaine ou l'URL précise de redirection. Relancer nginx. sudo systemctl reload nginx.servic ==== Envoyer un mail à tous les utilisateurs du système ==== Voici un script (minimal) qui fonctionne Créer un fichier **mail-all-users.sh** #!/bin/bash # Test validité des arguments if [[ $# -ne 2 ]]; then echo "Nombre argument incorrect" echo "2 arguments nécessaires : le sujet et le nom du fichier du corps du mail" exit else echo "Nombre d'arguments correct" # Test que le second argument soit un fichier if [[ -f $2 ]]; then echo "Second argument valide" else echo "Le fichier indiqué n'est pas valide" exit fi fi corps=$(cat $2) users=$(ldapsearch -x -LLL uid=* | grep uid: | cut -d: -f2) for line in $users do echo $corps | mail -s "$1" $line done Il suppose que le corps du mail soit saisi dans un fichier au même niveau d’arborescence que le script Lancement du script mail-all-users.sh parametre1 parametre2 Avec **paramètre 1** le __sujet du mail__ et **paramètre 2** __le nom du fichier contenant le corps du mail __ Exemple pour un fichier corps se nommant test_corps.txt au même niveau d’arborescence que le script, ça donnerait mail-all-users.sh "sujet du jour" test_corps.txt ==== Script de reboot si perte réseau ==== Voici un script (minimal) qui fonctionne Créer un fichier **server-down.sh** #!/bin/bash if ping -c1 www.lemonde.fr >/dev/null 2>&1 ; then echo "$(date) : Serveur connectivité OK." exit 1 else echo "$(date) : Serveur connectivité DOWN, reboot." >> /var/log/server-down.log echo "$(dmesg | tail -5) >> /var/log/server-down.log" echo "=================================================================" /usr/sbin/reboot fi Le positionner sur un cron (ici toutes les 5 minutes) # Server Down */5 * * * * /home/admin/scripts/server-down.sh > /dev/null 2>&1 Ebentuellement positonner un second script sur un cron qui envoie un mail en cas de reboot du serveur Le script **server-down-mail.sh** # Rapport de reboot @reboot sleep 120 && /home/admin/scripts/server-down-mail.sh > /dev/null 2>&1