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