Skip to main content

Installation Proxy

Nous allons voir l'installation et la configuration du proxy ainsi que des règles iptables qui vont bien pour que la communication puisse se faire entre l'IMC et les switch.

Je ne détaille pas l'installation de base de l'OS du serveur. J'indique juste ci-dessous les caractéristiques de base de celui-ci:

Serveur Reverse Proxy:

    Debian 12.12 (devrait fonctionner tout pareil avec la 13, à tester) vCPU: 2 RAM: 4 Service de bases installés:
      SSH
      Installation du proxy:

      J'ai fait quelques tentatives, avec apache2, nginx et squid.

      Le plus simple à configurer dans notre contexte a été squid pour moi, je fais donc le tutos avec celui-ci.

        Installation du package squid:
        apt install squid squid-openssl
        cd /etc/squid
          Création des certificats nécessaires au bon fonctionnement du proxy
            IMC ne vérifie pas la validité du certificat, il est donc possible d'utiliser un certificat auto-signé (ce qui sera notre cas)
            # Création de la clefs et du certificat pour l'authorité de certification racine
            openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout squidCA.pem -out squidCA.pem
            # Export du certificat au format DER
            openssl x509 -in squidCA.pem -outform DER -out squid.der
            # Attribution des bons droits pour que le certificat soit lisible par Squid et uniquement par lui
            chown proxy:proxy squidCA.pem
            chmod 400 squidCA.pem
            # Création du certificat du serveur (pas sûr de l'utilité de celui-ci)
            openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout bump.key -out bump.crt
            
            # Génération de la base de donnée de génération des certificats
            /usr/lib/squid/security_file_certgen -c -s /var/spool/squid/ssl_db -M 4MB
            # Attribution des droits à cette base de données
            chown -R proxy:proxy /var/spool/squid
              Edition du fichier de configuration squid
                Nous ferons un fichier minimaliste contenant uniquement les informations dont nous avons besoin
                # On déplace le fichier de configuration original
                mv squid.conf squid.conf.orig
                # On créer notre fichier de configuration
                nano /etc/squid/squid.conf
                  Contenu du fichier squid.conf:
                  # allow all requests
                  acl all src 0.0.0.0/0
                  http_access allow all
                  
                  # Make sure your custom config is before the "deny all" line
                  http_access deny all
                  
                  # Ports
                  http_port 3127
                  https_port 3128 intercept ssl-bump \
                    cert=/etc/squid/squidCA.pem \
                    generate-host-certificates=on \
                    dynamic_cert_mem_cache_size=64MB
                  
                  # SSL certificate generation
                  sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/spool/squid/ssl_db -M 64MB
                  sslcrtd_children 32 startup=5 idle=1
                  sslproxy_cert_error allow all
                  
                  # SSL-Bump
                  acl step1 at_step SslBump1
                  ssl_bump peek step1
                  ssl_bump bump all
                  
                    On redémarre le service squid
                    systemctl status squid

                    Le service squid est prêt à remplir son rôle de proxy entre l'IMC et les switch.

                    Il faut maintenant préparer les règles iptables afin de rediriger le traffic correctement

                    Configuration d'iptables
                      Installation d'iptables-persistent, ce qui permettra de sauvegarder les règles à la fin
                      apt install iptables-persistent
                        Configuration de la règle de redirection
                          Le proxy sera définit comme routeur sur le serveur IMC Nous interceptons le paquet en provenance d'IMC et à destination du port 443 pour le rediriger vers le port du proxy (ici: 3128)
                          iptables -t nat -A PREROUTING -p tcp -s 192.168.1.1 --dport 443 -j REDIRECT --to-port 3128

                          Cette règle de NAT est suffisante pour faire fonctionner le proxy et la liaison entre IMC et les RestAPI des switch Aruba.

                          Cependant, dans IMC, nous configurerons une route statique forçant IMC à passer par le proxy pour les échanges avec ces switch. Il faut donc configurer d'autres règles afin de relayer les autres services (SSH, snmp, ...).

                          ## Régles utiles pour les flux IMC vers switch
                          # NAT les demandes IMC avec un masquerade (sera vu par le switch comme venant du serveur proxy)
                          iptables -t nat -A POSTROUTING -s 10.255.20.4 -j MASQUERADE
                          
                          # NAT les traps SNMP et le SSH (pour la sauvegarde en mode SFTP Server)
                          iptables -t nat -A PREROUTING -p udp -d 10.255.20.30 --dport 161 -j DNAT --to-destination 10.255.20.4
                          iptables -t nat -A PREROUTING -p tcp -d 10.255.20.30 --dport 22 -j DNAT --to-destination 10.255.20.4
                            Sauvegarde des règles iptables
                            iptables-save > /etc/iptables/rules.v4