Les services
On parle de services pour tous composants installés hors de l'installation par défaut, fonctionnant en arrière plan et offrant des mécanismes et valeurs ajoutées.
Sommaire
- 1 LDAP-AD/DNS
- 2 WEBMIN/Incinga
- 3 ICINGA
- 4 DNS
- 5 DHCP
- 6 Proxmox
- 7 Haproxy (Reverse Proxy et Load Balancing)
- 8 LXD/LXC
- 9 FIDO U2F
- 10 Apache
- 11 Tomcat
- 12 php
- 13 nodejs
- 14 PostgreSQL
- 15 WikiMedia
- 16 NextCloud
- 17 Services VPN
- 18 EyeFi
- 19 Guacamole
- 20 Xmind linux
- 21 OTP
- 22 Surveillance réseau
- 23 Agent SNMP
- 24 APC Back-UPS 1500
LDAP-AD/DNS
Service fournissant les bases de l'organisation informatique, la gestion des accès. Idéalement ce service peut être couvert par une infrastructure Microsoft, dans le cadre où celle-ci se justifie à frais raisonnable pour ne pas s'orienter vers des solutions libres
LDAP-AD
Service de base pour garantir l'annuaire et les politiques de la société
L'active directory permet de garantir un ensemble d'activité à travers les leaders du marché
- Mise en place d'une infrastructure AD répartie sur 3 sites, appuyant la répartition sur un schéma détaillé
Sinon, mise en place d'un openldap:
- Installation de LAMP
- Installation d'openLDAP avec Ubuntu 18.04 étapes d'installation
- Installation de l'interface de gestion, voici les instructions
SAMBA-AD
L'objectif d'utiliser non pas openLDAP mais un Active Directory à base de SAMBA, avec 2 contrôleurs de domaine.
WEBMIN/Incinga
Service de base pour garantir la gestion du l'infrastructure via l'interface Webmin (HTTPS)
- Installation du service WEBMIN
ICINGA
Outil de surveillance. Voir la description du produit
DNS
résolution de noms
L'intégration du DNS dans l'active directory promet une dynamique et sécurité suffisante
- Installation de base
DHCP
Le service de DHCP doit être couvert par les services Unix, tel un aiguilleur
Proxmox
L’étude du produit Proxmox amène à apprivoiser les concepts de logiciels libres ‘Open Source’ tel que la communauté CEPH, Let’s Encrypt, WebDav et le libvirt. Le logiciel libre est l’outil à utiliser et privilégier dans un cadre économique et certain, car il permet la transparence, l’évolution et le support du produit.
L'hyperconvergence intégré avec 3½ serveurs : 3 Fixes et 1 portable
Voir les détails sur Proxmox
Configuration des noeuds systèmes Proxmox
Optimisation des conteneurs LXC
- Utilisation des Linux Turnkey
- Création de conteneurs optimisés
Docker dans LXC
Et pourquoi, ne pas simplement exécuter les images Docker dans des conteneurs linux LXC. Exemple avec le forum Solaris ---NOTE---
Pour des raisons d'optimisation, Docker et l'orchestration K8s seront sur des machines virtuelles et non sur des Hôtes Hyperviseur tel que Proxmox.
Solutions de conteneurisation avec Docker
L'objectif est d'avoir la possibilité de gérer les conteneurs docker aux mêmes titre que LXC avec Proxmox
- Suivre la configuration de Portainer
- Suivre la solution K3S de Rancher
Haproxy (Reverse Proxy et Load Balancing)
Service permettant de gérer la répartition de charge des protocoles de publication Web HTTP/HTTPS (SLL/TLS)
- Ce service est installé sur un serveur dédié (suen01) dont l'infrastructure garantie sa disponibilité
- Ce service permet le proxy inversé (http://siteweb/liensurunautreserveur) avec redirection de port
- Ce service garantie la communication sécurisé SSL (TLS) de l'extérieur vers ce serveur (point d'entrée)
- Toute la charge Web doit passer par ce serveur
- La configuration détaillé: Haproxy installation
- Le fichier config Haproxy.cfg
LetsEncrypt
Service accompagnant le haproxy pour assurer le certificat et une reconnaissance du site à travers une communication sécurisée (SSL/TLS)
- Ce service est installé sur le serveur suen01
- La configuration détaillée de LetsEncrypt
Multiples domaines
Objectif:
+----------------------+ +--> | www.fredericcote.com | | +----------------------+ | | +------------------+ +--> | datalanding.com | +-----------+ +-------------+ | +------------------+ | KAFR01 +------> | route proxy +----+ +-----------+ +-------------+ | +------------+ +--> | jccote.ca | +------------+
Site jccote.ca
Ajustement DDNS sur le portail de GoDaddy dont le fichier est localisé sur KAFR01 /usr/local/sbin/gd-ddns.sh
#!/bin/bash mydomain="jccote.ca" myhostname="@" gdapikey="fYWJ8xX9BXJN_FKeszPjt15717cpp3FBqhC:KKDyndgzgwVp2GedcKgzRJ" logdest="local7.info" myip=`curl -s "https://api.ipify.org"` dnsdata=`curl -s -X GET -H "Authorization: sso-key ${gdapikey}" "https://api.godaddy.com/v1/domains/${mydomain}/records/A/${myhostname}"` gdip=`echo $dnsdata | cut -d ',' -f 1 | tr -d '"' | cut -d ":" -f 2` echo "`date '+%Y-%m-%d %H:%M:%S'` - Current External IP is $myip, GoDaddy DNS IP is $gdip" if [ "$gdip" != "$myip" -a "$myip" != "" ]; then echo "IP has changed!! Updating on GoDaddy" curl -s -X PUT "https://api.godaddy.com/v1/domains/${mydomain}/records/A/${myhostname}" -H "Authorization: sso-key ${gdapikey}" -H "Content-Type: application/json" -d "[{\"data\": \"${myip}\"}]" logger -p $logdest "Changed IP on ${hostname}.${mydomain} from ${gdip} to ${myip}" fi
LXD/LXC
Service offrant la virtualisation de machine à l'intérieur de master
- Ce service est nativement installé sur les serveurs proxmox
- la configuration LXD/LXC
Découvrir l’utilisation de LXC Tutoriel
Kubernetes
Orchestration des conteneurs essentiellement de type docker
- Le service maître (autonome grâce à proxmox) permet l'utilisation directe des conteneurs docker à travers une configuration sous LXC
- la configuration Kunernetes
K3S
Version allégée de K8S, à voir.
Désactivation IPv6
L'usage IPv6 n'est pas nécessaire. Pour une optimisation de la sécurité, il est désactivé sur toutes les machines.
- État des IP avant:
ip a
- Commande de désactivation
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
- Vérification de l'état après:
ip a
Modifier le fichier sysctl.conf
sudo nano /etc/sysctl.conf
Ajouter les deux éléments à la fin
net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1
FIDO U2F
Utilisation d'une clef de deuxième facteur d'authentification avec:
SSH U2F
Utilisation de chiffrement avec clef publique/privée de SSH
- Générer une clef
ssh-keygen
- Indiquer une phrase
- Copié la clef sur les autres connexions de serveurs
ssh-copy-id username@remote_host
- Exemple:
ssh-copy-id mael01
- Valider la session sur le serveur
- Si la session exige uniquement la phrase
- Restreindre le serveur cible à une session sans mot de passe (tuyau sécurisé sans mdp clair)
- Si la session exige uniquement la phrase
- Sur le serveur , rendre le tuyau SSH sécurisé sans mot de passe
sudo nano /etc/ssh/sshd_config
- Éditer la ligne (enlever le commentaire)
... PasswordAuthentication no ...
- Redémarrer le service
sudo systemctl restart ssh
Lancer la clef U2F
Apache
Plateforme Web qui est utilisé sur:
- Mael01 avec PHP pour une stabilité de répartition de charge entre serveur
- Mael02 est un clone de Mael01
Objectif d'améliorer la redondance et le non temps d'arrêt
SSL et certificat
- Copier le certificat généré par LetsEncrypt
- Prendre le cert.pem comme /etc/ssl/nginx/fredericcote.com.crt
- scp /etc/letsencrypt/live/fredericcote.com/cert.pem @mael:/etc/ssl/nginx/fredericcote.com.crt
- Prendre le privkey.pem comme /etc/ssl/nginx/fredericcote.com.key
- Prendre le cert.pem comme /etc/ssl/nginx/fredericcote.com.crt
- Redémarrer les services apaches
Utilisation de NGINX (projet à venir)
Suivre les recommandations NGINX pour l'intégration d'un proxy inversé avec Apache Tomcat
Debian
Voir l'installation en Debian de Ningx et PHP
- Ajouter la partie nécessaire à Nextcloud:
sudo apt install php7.3-fpm php7.3-common php7.3-pgsql php7.3-mysql php7.3-gmp php7.3-curl php7.3-intl php7.3-mbstring php7.3-xmlrpc php7.3-gd php7.3-xml php7.3-cli php7.3-zip php7.3-soap php7.3-imap php7.3-json php7.3-intl php-imagick php7.3-xml php7.3-zip php7.3-bz2 php7.3-ldap php7.3-smbclient php7.3-ftp php7.3-imap php7.3-exif php7.3-gmp php7.3-apcu php7.3-memcached php7.3-redis
sudo apt install postgresql-client
Ubuntu
Suivre cette démarche
Tomcat
Voir l'installation sur elen03 voir fedora - kafr02 selon ce guide
- Cette installation permettra de mettre en place une plateforme pour servlet tel que le client de Guacamole, voir ces instructions.
php
Service de traitement de langage Web qui est installé sur:
- Mael01 pour offrir la plateforme Wikimedia
nodejs
Service Web dont l’objectif est l’utilisation de cette plateforme sur tous les serveurs Fronts.
- L’utilisation du HAProxy est préconisée
PostgreSQL
Service de base de donnée fournissant l’ensemble des données centralisées du site. L’objectif est d’assurer un service mirroir des BD dans le cadre d’une expension de l’infrastructure ou d’une activité élevée. Il est installé sur:
- Suen01 : Nextcloud
- Suen02 : Wiki
Voir les possibilités de PostgreSQL Portable
Notions novices
Méthode en bash
Voir le lien: Création utilisateur et DB
Utilisation des bases:
su postgres
Création d'un compte:
createuser <utilisateur>
Création d'une BD:
createdb <basededonnees>
Affectation du mot de passe:
psql alter user <utilisateur> with encrypted password '<password>';
Affecter les pleins droits sur la BD:
grant all privileges on database <dbname> to <username> ;
Méthode en psql
Création d'une BD:
- CREATE DATABASE <basededonnees>;
Création d'un compte:
- CREATE USER <utilisateur> WITH password '<utilisateur>';
Affecter les pleins droits sur la BD:
- GRANT ALL privileges ON DATABASE <basededonnees> TO <utilisateur>;
Concept de la BD
L’objectif de la base de données est de permettre la rapidité de recherche. L’indexation est l'une des clefs permettant l'accélération de celle-ci La BD relationnelle, probablement la plus connue, est d'usage simple et agréable à l'apprentissage. Elle permet d'évoluer vers d'autres modèles.
Interface de gestion PGADMIN 4
L'installation se fait sur le serveur Web, voici le guide installation PgAdmin 4
WikiMedia
Service de documentation, il fournit la bibliothèque personnelle de l’entité Ensuelma. Ce système est installé sur
- Mael0X pour le portail
- Suen0X pour la BD
Fichier de config
Tous les paramètres du portail se situe dans le fichier de config LocalSettings.php
MFA U2F AuthO Double authentification
NextCloud
Service de gestion des fichiers, données numériques.
- Infrastructure en évolution continue... voir NextCloud
Configuration cible
- Service Web: Mael03 (cloner Mael03 vers les autres)
- Incluant: Apache/PHP
- Modification d'Apache vers Nginx: suivre la procédure
- Incluant: Apache/PHP
- Base de données: Suen02
- Config: PostgreSQL
- Répertoire Disque: Utilisation du lecteur USB 'suen01:/mnt/usb/Netbackup/'
Utilisation d’ONLYOFFICE
Lien d'accès: https://docs.fredericcote.com Instance Serveur: VM - FREN01 Package: Docker
sudo docker run -i -t -d -p 80:80 \ -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \ -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
Ou en SSL (note: intégration du certificat nécessaire... voir doc docker)
docker run -i -t -d -p 443:443 -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
Et il requiert les certificats renommé et déposé:
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt
Voir le Guide de configuration
Paramètrage dans l’interface NextCloud
- Document Editing Service address: https://docs.fredericcote.com
- Document Editing Service address for internal requests from the server : https://192.168.1.x:443/
- Server address for internal requests from the Document Editing Service:
- Secret key:
Compilation d'un Serveur de Document avec BD centralisée ;-(
Maintenance & Sauvegarde
- Utiliser la méthode proposée par NextCloud
- OSD de CEPH sur tous les disques autonomes.
DEDUPLICATION
- Utilisation de la commande fdupes pour retirer les doublons.
Mettre en place un script d'exécution et de validation automatique en générant un rapport et sélectionnant le bon fichier (le plus récent).
Config Haproxy ajouté
Services VPN
Le service VPN est une installation nécessaire pour garantir les communications entre les différentes zones (serveurs distants) posées aux différents endroits.
- Liste des serveurs concernés:
- fredericcote.com
- datalanding.com
- datalanding.fr
- gouvernement.live
- ensuelma.com
WireGuard
VPN récemment utilisé et efficace. Consomme moins de bande passante qu'OpenVPN. à creuser
OpenVPN
Tous les détails dans la configuration d'OpenVPN Configuration obsolète
Streisand
- Guide d'installation
- TAG: PROXY|VPN
EyeFi
Le service eyefi est utilisé depuis 2011, il sert de centralisation des photos à travers la carte SD Wifi. On sait qu'il existe depuis 2005. Simplement avec le temps, la compagnie la gestion des photos centralisé est passée dans les mains de sociétés variés, le nom de eye.fi fut remplacé par mobi eyefi. La plateforme d'accueil des photos devint Keenai au lieu de http://app.eyefi.com/. Différents liens permettent d'établir la méthode d'installation. Eye-fi server 3, ensuite il y a la référence au Eye-fi server 2, et surtout l' Explication originale. Il y a aussi le mec qui explique comment faire un serveur Eye-fi sur linux.
Configuration EyeFi Synology
La procédure employée est celle définie par Eye-fi server 2. C’est-à-dire que of 4 fichiers basiques sont copiés:
- conf file: /etc/eyefiserver.conf
- startup script: /etc/init.d/eyefiserver
- script: /usr/local/bin/eyefiserver.py
- log file: /var/log/eyefiserver.log (Ce fichier n’est pas copié mais généré à l’exécution du script)
Les fichiers à téléchager sont sur la version 3. Il faut suivre les étapes suivantes:
- Télécharger sur le Synology le github zippé:
wget https://github.com/jpage4500/eyefiserver3/archive/master.zip
- Dézipper le fichier
7z x master.zip cd eyefiserver3-master/
- Configuration du fichier eyefiserver.conf
vi eyefiserver.conf
Changer les lignes:
mac_0:00185624d1XX upload_key_0:11372bdd2cef8dc59d2945694dd550XX upload_dir:/volume1/MEDIA/PHOTOS/%%Y/%%m-%%b
- Configuration du fichier eyefi-notify.sh
vi eyefi-notify.sh
Changer les lignes:
sendmail -F "Synology NAS" -f admin@fredericcote.com -t admin@fredericcote.com << EOF
- Exécuter le script qui va copier et démarrer tout le service EyeFI
sudo ./eyefi-install.sh
Astuce EyeFi serveur
Redémarrer le service:
sudo /usr/local/bin/eyefi-restart.sh
Vérifier les logs:
cat /var/log/eyefiserver.log
Guacamole
Service permettant l'accès web au services RDP et autres (SSH, VNC).
Manuel d'installation Guacamole (site officiel)
Guide d’installation avec Ubuntu 18.04
Sinon, exécuter script d'installation simplifié avec le port 8080
- Il requiert une BD MySQL, seulement si on veut créer une base de comptes autonome
- Fonctionne seulement si bien optimisé et encadré
Installation simplifiée avec Docker
Utiliser la méthode linode
Installation optimisé LXC Guacamole
- Ubuntu / Nginx / Tomcat / Guacamole - Installation de base (TSSH - VNC - RDP[RemoteDesktop-RemoteAPP]) incluant PostgreSQL
- Extentions:
- TOTP
- OpenID
- LDAP
- Header
- QuickConnect
- Extentions:
Xmind linux
Le but ultime est d'avoir Xmind comme applet Java utilisant le moteur servlet Eclypse, rendant ainsi l'application complètement Web. L'alternative fonctionnelle est Xmind sous linux avec un Xwindows XFCE
Installation XFCE sur Ubuntu
[Information capturer sur le site its FOSS]
sudo apt install xfce4 tasksel
Mise en place de VNC server (tigervnc)
sudo apt -y install tigervnc-standalone-server
- VNC password au choix
vncpasswd
- Démarrage serveur VNC
tigervncserver -xstartup /usr/bin/xfce-session -geometry 800x600 -localhost no
- Pour arrêter VNC:
tigervncserver -kill :1
Installation Mate sur Ubuntu
sudo apt -y install ubuntu-mate-desktop
Prendre gdn3 <enter>
sudo reboot
Mise en place de VNC server (tigervnc)
sudo apt -y install tigervnc-standalone-server
- VNC password au choix
vncpasswd
- Démarrage serveur VNC
tigervncserver -xstartup /usr/bin/mate-session -geometry 800x600 -localhost no
- Pour arrêter VNC:
tigervncserver -kill :1
OTP
Service OTP(One-Time Password) permettant la synchronisation de son propre 2ième facteur d'authentification 2FA basé sur la librairie Golang OTP (gotp)
Yubikey
Application de Yubico sur le module d'authentification branchable (PAM) avec une clef matérielle sur une infrastructure Linux
Surveillance réseau
Le but est de s'assurer du fonctionnement de l'ensemble des périphériques à l'aide d'un tableau de bord et d'un système d'alertage
Observium
Système simple à installer
Agent Observium
L'installation de l'agent Unix sur tous les serveurs. Utiliser le script d'installation de l'agent agentobservium.sh
- Créer un fichier script
nano agentobservium.sh
- copier-coller le contenu du script
- Quitter et sauvegarder
- Permettre l'exécution du script
chmod +x agentobservium.sh
- L'exécuter
./agentobservium.sh
Validation du service
sudo service xinetd restart sudo systemctl status xinetd
Validation de l'agent
Tester via telnet le port 36602
telnet XXX 36602
Idéalement, pour voir le contenu, tester le telnet à partir du serveur Observium, car le contenu est bloqué en local
Si le port est bloqué:
iptables -I INPUT -s 192.168.1.11/0 -p tcp --dport 36602 -j ACCEPT iptables-save
Pour exécuter le script localement:
sudo chmod +x /usr/bin/observium_agent sudo /usr/bin/observium_agent
Autres produits monitoring
À analyser:
Agent SNMP
Suivre les instructions du fichier /etc/snmp/snmpd.conf
- Ne pas oublier de redémarrer le service
systemctl restart snmpd
APC Back-UPS 1500
Connecter sur SUMA03 en USB, voir la gestion sur installation APC sur linux