*Méthode pour un CHATON Hentou Nous avons loué un serveur NS3 chez OVH pour pouvoir définir des méthodes de mise en place d'un mini-chaton qui pourra servir par la suite à quelques petites structures, en profitant des promo OVH un espace coute une trentaine d'€/mois Ce pad fait suite aux pad et a la discusion sur Framateam: hentoù devenir chaton https://semestriel.framapad.org/p/chatoyant-a349 https://semestriel.framapad.org/p/chatoyant-couches https://semestriel.framapad.org/p/chatoyantes Je vais tester plusieurs méthodes pour trouver la plus simple en mise en place. *Installation hyperviseur Proxmox Je suis l'utilisateur technique du serveur , j'ai donc un accès dans mon manager OVH L'interface d'OVH, dans Barre metal cloud / serveurs dédiés permet l'accès à la page de la configuration ici pour nous : ns316267.ip-xxx-xxx-xxx.eu ( le serveur est à Graveline) Je lance l'installation d'un système Proxmox v8 et reçois un mail avec son ip et le mot de passe root l'interface https://iptruc:8006 est alors directement accessible , sans certificat. et le ssh aussi. l'installation par l'image d'OVH se fait sur raid1 sur les SSD en lvm + 4to en lvm solo La première installation est sur le proxmox v8 .... j'ai trop de pb de routage.. Je repasse sur un proxmox v7 (comme à la maison) A faire verif truc corosync autour de la duree de vie des ssd (disabled) ok il n'etait pas en route plan en gros: 1 coller un lxc avec tailscale en minimal pour avoir un accès oob au cas où mauvaise config dans opn, histoire de pas perdre d'accès ssh : ok install vm opensense pour proxy nat et firewall ?? c'est encore en question ... faire vm avec traefik ou haproxy pour gérer le reverse et le flux 80/443 (avec du coup fwd depuis opn) pour voir si facile a suivre sinon se contenter des NC en reverse_proxy faire une lxc avec proxymanager routage IPv6 /56 ?? route via opn avec slaac ? desactiver acces 8006 proxmox , desactiver root, mettre fail2ban install VM nethserver 7 Nextcloud/mattermost/mail? ... install VM yunohost install VM Nethserver 8 pour voir ou il en sont pour le moment une idée du premier bazar: Internet <==> Serveur/OVH( une seule IP) ==> PVE Proxmox ==> VM Firewall/Proxy Opensence|pfsence|ipfire | reveserse-poxy pfsence | par structure |--> VM Nethserver (reverse_proxy,certificats) + Nextcloud + Mattermost + LDAP |--> VM Yunhost + appli autres structures... |-->VM NS | -->VM YHN *Post installation Proxmox: un ptit script tout fait : *bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)" ✓ Corrected Proxmox VE Sources ✓ Disabled 'pve-enterprise' repository ✓ Enabled 'pve-no-subscription' repository ✓ Enabled 'ceph package repositories' ✓ Added 'pvetest' repository ✓ Disabled subscription nag (Delete browser cache) ✓ Disabled high availability ✓ Updated Proxmox VE ✓ Completed Post Install Routines * Sécurisons un peu plus l'accès basique des trucs de de https://vdillenschneider.fr/architecture-de-services-avec-proxmox-sur-un-serveur-kimsufi histoire de ne pas avoir de login root et un login avec un user par clé ssh *User login apt install sudo # création de l'utilisateur useradd -m USERNAME # mot de passe passwd USERNAME # ajout dans le groupe sudo gpasswd -a USERNAME sudo # ssh mkdir /home/USERNAME/.ssh touch /home/USERNAME/.ssh/authorized_keys chmod 600 /home/USERNAME/.ssh/authorized_keys chown USERNAME:USERNAME /home/USERNAME/.ssh/authorized_keys # Placer ensuite le contenu de vos clés publiques SSH dans ce fichier # ou avec: sur mon pc linux, mon user étant gepeto ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub user@ip ssh 'user@ip ' # fonctionne *No root login modif du fichier /etc/ssh/sshd_config , vi ou nano pour invalidre l'accès root et ouvrir le ssh sur un autre port que le 22 vi /etc/ssh/sshd_config # Modifier ensuite les lignes suivantes du fichier Port 7422 PermitRootLogin no Relancer ensuite le service SSH service ssh restart fail2ban semble ne pas fonctionner... je laisse juste pour l'instant le ssh, on passera ensuite de toute manière par le firewall *Réseau de base ajout dans /etc/network/interfaces auto lo iface lo inet loopback iface eno1 inet manual iface eno2 inet manual auto vmbr0 iface vmbr0 inet static address 37.187.129.43/24 gateway 37.187.129.254 bridge-ports eno1 bridge-stp off bridge-fd 0 hwaddress 00:25:90:AC:8F:6E auto vmbr1 iface vmbr1 inet static address 10.0.0.1/24 bridge-ports none bridge-stp off bridge-fd 0 post-up echo 1 > /proc/sys/net/ipv4/ip_forward # ouverture du reseau 10. entre vmbr0 et vmbr1 post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j SNAT --to-source 37.187.129.43 post-up iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1 # fermeture post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o vmbr1 -j SNAT --to-source 37.187.129.43 post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1 3 reinstallations complètes pour en arriver la ;) auto lo iface lo inet loopback iface eno1 inet manual auto vmbr0 iface vmbr0 inet static address 37.187.XX.XX/24 gateway 37.187.XX.254 bridge-ports eno1 bridge-stp off bridge-fd 0 hwaddress 00:25:90:AC:8F:6E#WANauto vmbr2 iface vmbr2 inet static address 192.168.9.1/24 bridge-ports none bridge-stp off bridge-fd 0#LAN post-up echo 1 > /proc/sys/net/ipv4/ip_forward post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j SNAT --to-source 37.187.XX.XX post-up iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1 post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o vmbr1 -j SNAT --to-source 37.187.XX.XX post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1# post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2:80 post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 443 -j DNAT --to-destination 10.0.0.2:443 post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2:80 post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 443 -j DNAT --to-destination 10.0.0.2:443 post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 7422 -j DNAT --to-destination 10.0.0.2:7422 post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 7422 -j DNAT --to-destination 10.0.0.2:7422 post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 7806 -j DNAT --to-destination 10.0.0.2:7806 post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 7806 -j DNAT --to-destination 10.0.0.2:7806 *Tailscale faire une LXC ubuntu, en prenant le bridge vmbr1, param mini par défaut ok pour le reste, prendre un nom correcte pour s'y retrouver genre hentou-tailscale... bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/ubuntu.sh)" y installer tailscale bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/add-tailscale-lxc.sh)" relancer la lxc y ouvrir une console et faire tailscale up pour obtenir la page d'autentification tailscale et prendre en compte le réseau on reboot pour mon pc fedora/gnome j'ai installé ensuite https://extensions.gnome.org/extension/6139/tailscale-qs/ avec ensuite sudo tailscale set --operator=$USER pour valider le tout https://login.tailscale.com/admin/machines donne la liste des machines de mon réseau je peux faire des ssh root@tailscale ! ou (en test) Faire une LXC alpine, si connecter\\ apk update apk add tailscale rc-update add tailscale default modif du fichier pour tailscaled --tun=userspace-networking --socks5-server=localhost:1055 & *Restriction de l'accès proxmox pour n'accéder qu'a travers le réseau local , ssh ou tailscale # Création du fichier de configuration pour restreindre l'accès à l'interface Web de Proxmox vi /etc/default/pveproxy # Insérer le contenu suivant ALLOW_FROM="127.0.0.1,192.168.0.0/22" DENY_FROM="all" POLICY="allow" # Relancer le service sudo service pveproxy restart *Routage de tailscale vers la console proxmox ouvrir dans la page https://login.tailscale.com/admin/machines sur la ligne du serveur vu par tailscale la partie edit route setting et autoriser le reroutage ensuite en local https://192.168.0.254:8006 fonctionne pour moi *un point Étape Proxmox et accès au VPS On peut faire une sauvegarde de cette ensemble comme base de départ Je test par ailleurs NS8 , pour le moment je le trouve nu peu trop fouillis, peut être mes habitudes son encore en décalage... mais le coté tout en contener me prive d'un accès simple par exemple à d'éventuelles modification de fichier a l'intérieur, ex: modif facile fichier/script d'un CMS d'un site en particulier... sans doute une manip faisable mais bon... Du coup dans cette idée je préfère encore NS7 Je test aussi Cpanel/Plesk/Webmin en VM ... qui seraient sans doute aussi des solutions dans le cas ou on pense le bazar comme un hébergeur de structures qui n'ont pas en fait tellement de relation les unes avec les autres, on contraire d'une approche NS7 qui se placerait plutot en monolitique... d'ou le fichier /etc/networks/interface pour la config du reseau proxmox j'ai passé 2 jours sur ce putain de fichier ! rien ne marchait . des pistes , surtout en rapport avec l'architecture genre kimsufi ou so you start: https://www.ma-solution.fr/configuration-serveur-reseau-proxmox-heberge-chez-ovh/ !!! fonctionne http://www.admin6.fr/2012/03/regles-de-routage-simple-avec-iptables/ pour info https://wiki.abyssproject.net/fr/proxmox/proxmox-with-one-public-ip https://lowendtalk.com/discussion/182736/basic-setup-of-proxmox-in-an-ovh-environment-kimsufi-example-with-nat-and-ipv6-enabled-containers *Retour sur IPFire en cherchant le truc qui s'installe le plus simplement et qui offre un service, et une doc pas trop prise de tete , je reviens sur IPFire, une vm 4go, RAM 1024, 1 proc, vmbr1 10.0.0.2/24 et vmbr2 192.168.9.254 ssh root@37.187.129.43 -L 444:192.168.9.254:444 acces sur https://localhost:444 https://wiki.ipfire.org/configuration/firewall/rules/port-forwarding/red_to_server_on_green on renvoit tout sur 192.168.9.201 la machine ynh-1 yunohost qui fera le reverse proxy NET--> vmbr0 proxmox--> 10.0.0.2 vmbr1 IPFire 192.168.9.254 80&443->192.168.9.201 yunohost test Nginx Proxy Manager LXC https://tteck.github.io/Proxmox/ 192.168.9.2 ssh root@37.187.129.43 -L 8555:192.168.9.2:81 http://localhost:8555/ admin apres Initial Login username admin@example.com password changeme création du premier certificat let'sencrypt , ne pas utiliser DNS chalenge ! ok et avec le dns chalenge ovh il faut d’abord mettre a jour l'appli python d'ou un ssh sur la lxc et apt install python3-certbot-dns-ovh ensuite 1 créer le certificat dans l'onglet (sans cette négociation avec le dns ovh) 2 créer les hosts qui reprennent les certificats crées fonctionne bien , reste a savoir si des YNH derriere sans certificat seraient bien gérés en simple http sans faire chier... net->prox>lxc reverseproxymanager-> lxc ynh-3 ... OUI!!! pas de pb reverseproxymanager s'occupe bine des certificats qui sont servis comme il faut au serveurs yunohost, wikisss derriere, devrait aussi fonctionner pour le reste donc la methode lxc reverseproxymanager est validée! j'ai plusieurs dokuwiki sur un YNH en suivant l'install classique, juste ne pas se soucier des certificats...puisqu'ils sont sur le reverseproxy idée de passer le plus de service derriere des LXC Alpine, deja il y a les https://tteck.github.io/Proxmox/ https://blog.simos.info/how-to-create-a-minimal-container-image-for-lxc-lxd-with-distrobuilder/ et idee de faire un lxc alpine aux petits ognons https://wiki.alpinelinux.org/wiki/Production_Web_server:_Lighttpd , des sites statics (hugo) ou des wiki sans base de donnée (dokuwiki) par ex ================================LALLA *Test Yunohosts(s) NET-> IPFire->YNH utilisé en reverse proxy | +-> YNH autre +-> YNH autres ... +->Tipi ? d'ou dans la console proxmox *bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/yunohost.sh)" ip 192.168.9.202/24 sur vmbr2 on fait pointer 80,443 par IPFire et premier acces https://ynh-1.hentou.ovh doit déboucher sur la post-install , domaine ... de ynh install dans ynh de l'appli reverse proxy https://blog.genma.fr/?Nginx-de-Yunohost-en-reverse-proxy pour info pointe ynh-3 vers 192.168.9.203 ce qui laissee la possibliité d'avoir la gestion des DNS et certificats OVH dans le premier YNH ...? *en suspend/test Nethserver 7 en première VM je laisse de coté, NS7 n'a que peu d'appli dispo, meme si juste nextcloud,mattermost,mail et sites suffisent pour une petite structure , YNH est plus versatil et permet de tester/utiliser bien plus de ogiciel L'idée principale était de simplifier un peu, plutot que d'utiliser un firewall extérieur, autre VM,ipfire ou pfsence/opnsense... on pourrait utiliser le firewall intégré dans nethserver7 qui est deja pas mal et bien intégré a toute modification... en plus NS7 intégre un reverse-proxy ... Nous aurions donc Internet <==> Serveur/OVH( une seule IP) ==> PVE Proxmox ==> VM Nethserver7 ( FirewallProxy, reverse_proxy, certificats) | + VM YNH 1 .... + VM NS7 2 pour une autre structure + VM YNH 2 ... + etc MAIS on pourrait simplifier en n'utlisant QUE des yunohost en plein de LXC ... sinon: Installation de NS7 dans une VM 100Go RAM 8Go net0->vmbr1 et net1-> vmbr2 apres le boot en console , faire le network-recovery pour déclarer l'ip 10.0.0.2 (seule ip de ce reseau vmbr1(net0) modifier /etc/sysconfig/network-scripts/ifcfg-eth1 pour une GATEWAY=10.0.0.1 modifier /var/lib/nethserver/db/networks pour ajouter aussi la GW en 10.0.0.1 rebooter et tenter un ping ovh.net ssh root@37.187.129.43 -L 9090:10.0.0.2:9090 doit donner acces à l'interface d'administration installer après maj , le firewall, webserver,ldap(par la creation user) *A revoir: *Firewall OPNSense télécharger le fichier https://opnsense.org/download/ (iso !) dans un terminal pve dans /mnt/SD4T/template/iso bunzip2 pour le décompresser, on doit avoir un .iso faire une interface virtuelle réseau : vmbr2 juste avec l'ip 192.168.1.254/24 et fabriquer une VM OPNSense 8Go,RAM 2048 au boot , laisser faire , on doit avoir vtnet0 (vmbr1) qui sera le WAN vtnet1 (vmbr2) LAN on peut inverser les attributions dans la partie hardware de la VM suivre par ex l'installation : https://blog.zwindler.fr/2020/03/02/deploiement-de-proxmox-ve-6-pfsense-sur-un-serveur-dedie/ login installer et pas root pour une installation ! boot gpt 'classique' et pas zfs, installation dans ds0 apres reboot , il faut repondre y pour refaire la config et directement vtnet0 Enter (pour la WAN) et vtnet1 Enter(pour la LAN) ... juste avant le premier reboot , suprimer le boot cd et vérifier que la VM boot bien sur le dd WAN->vtnet0 LAN ->vtnet1 2 modif les IP WAN 10.0.02 /24 LAN 192.168.9.254 /24 une fois que cela est validé , l'accès Tailscale sur 192.168.9.254 fonctionne ou *ssh -p 7422 user@IP_PUB_PROXMOX -L 8443:192.168.9.254:443 devrait donner acces au https://localhost:8443 Suivre la procédures , sans changer , nouveau mot de passe.... accepter la mise à jour qui en fonctionnant montre que la connexion fonctionne passer le port du gui sur 444 au lieu de 443 dans System/administration ssh root@37.187.129.43 -L 8443:192.168.9.254:444 du coup après pour l'acces gui installer nginx reverse proxy dans firmware plugin et acme pour let'sencrypt cf https://forum.opnsense.org/index.php?topic=19305.0 NON Firewall PFsense https://all-it-network.com/proxmox-pfsense/ la configue se passe de la meme maniere WAN 192.168.0.254 /24 pas d'ipv6 LAN 192.168.5.253 /24 et acces http://192.168.1.253 , admin pass pfsense suivre le guide de paramétrage ok Bon je patouille sur le routage , à trouver un truc correcte et pas trop compliquer a suivre/reproduire ... ok maintenant suite: https://community.spiceworks.com/how_to/177181-opnsense-haproxy-as-reverse-proxy-for-self-hosted-services *Reverse proxy nginx reverse-proxy manager apres quelques tests, je trouve plus pratique...https://nginxproxymanager.com/setup/ , un script pour l'installer directement 1 de https://tteck.github.io/Proxmox/: on installe une LXC avec Nginx Proxy Manager *bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nginxproxymanager.sh)" acces sur 192.168.5.111:81 *Email: admin@example.com *Password: changeme revoir pve->opensense->reverseproxy ... pourquoi, si ça marche? https://gist.github.com/Akanoa/afef9cbc6b4f90a78f2c841017932589 pour firewall->opnsense https://doc.ataxya.net/books/proxmox-ve/page/securisation-basique-de-son-proxmox#bkmrk-2.5-utilisation-de-p https://doc.ataxya.net/books/proxmox-ve/page/cloud-init .... *Améliorations? * apres backup(s) voir script de remise en place, voir si une remise en place totale est possible ?, on pourrait ptrt avoir pour l'installation : install pve/script de restoration de toutes les lxc/vm/ upload de qlq part... faire un backup des backup. taille? ipfire 750Mo,reverseproxy 600Mo,YNH 750Mo .. donc un total en gros de 2.2Go pour toute l'installation de base ! cool... pb? reparam de tailscale?