On va installer MariaDB server sur le serveur
sudo dnf install -y mariadb-server mariadb
sudo systemctl enable --now mariadb
On lance cette jolie commande
sudo mysql_secure_installation
cela va vous afficher plusieur ligne :
On setup le user vaultaire
mysql -u root -p
CREATE DATABASE vaultaire;
CREATE USER 'vaultaire'@'%' IDENTIFIED BY 'fksjesjKFLJEMjdiqz57dqzD4fzq';
GRANT ALL PRIVILEGES ON vaultaire.* TO 'vaultaire'@'%';
FLUSH PRIVILEGES;
la conf de mariaDB service
sudo nano /etc/my.cnf.d/mariadb-server.cnf
# Ajoute/modifie ces lignes sous [mysqld] :
skip-networking=0
bind-address = 0.0.0.0
port = 3306
on desactive le connection via root via autre que localhost
sudo systemctl stop mariadb
sudo mysqld_safe --skip-grant-tables &
mysql -u root
UPDATE mysql.user SET host='localhost' WHERE user='root' AND host='%';
FLUSH PRIVILEGES;
# exit terminal SQL
rm -rf /var/lib/mysql/mysql.sock
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
reboot
D'abord, assurez-vous que SELinux est désactivé :
sudo vi /etc/selinux/config
Modifiez la ligne suivante pour SELINUX=disabled
:
SELINUX=disabled
Créez un nouvel utilisateur vaultaire
:
sudo useradd -m -s /bin/bash vaultaire
Placez le binaire Vaultaire CLI dans le dossier /usr/local/bin/
:
mv /mnt/vaultaire_cli/vaultaire_cli /usr/local/bin/vaultaire
chown root:root /usr/local/bin/vaultaire
chmod 750 /usr/local/bin/vaultaire
Créez les dossiers nécessaires pour le binaire et les logs :
# Création du dossier pour Vaultaire
mkdir /opt/vaultaire
mv /mnt/serveur/vaultaire_serveur /opt/vaultaire/vaultaire_serveur
mv /mnt/serveur/web_packet /opt/vaultaire/web_packet
chown -R vaultaire:vaultaire /opt/vaultaire
chmod -R 700 /opt/vaultaire
# Création du dossier pour les logs
mkdir /var/log/vaultaire
chown -R vaultaire:vaultaire /var/log/vaultaire
chmod -R 700 /var/log/vaultaire
# Création du dossier SSH pour Vaultaire
mkdir /opt/vaultaire/.ssh
chown -R vaultaire:vaultaire /opt/vaultaire/.ssh
chmod -R 700 /opt/vaultaire/.ssh
Créez un fichier de service systemd pour Vaultaire :
echo "[Unit]
Description=Vaultaire Service
After=network.target
[Service]
User=vaultaire
Group=vaultaire
ExecStart=/opt/vaultaire/vaultaire_serveur
WorkingDirectory=/opt/vaultaire
Environment=HOME=/home/vaultaire
Environment=USER=vaultaire
LimitNOFILE=4096
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
PrivateTmp=false
ProtectSystem=full
ProtectHome=yes
ReadOnlyPaths=/etc /usr /lib /bin
ReadWritePaths=/home/vaultaire /var/log/vaultaire /tmp
#RestrictAddressFamilies=AF_INET AF_INET6
LimitMEMLOCK=2048mo
[Install]
WantedBy=multi-user.target" | sudo tee /etc/systemd/system/vaultaire.service > /dev/null
vous devez crée un fichier /opt/vaultaire/serveur_conf.yaml
serveurlistenport: "6666"
file-path:
socketpath: "/opt/vaultaire/vaultaire.sock"
privatekeypath: "/opt/vaultaire/.ssh/private_key.pem"
publickeypath: "/opt/vaultaire/.ssh/public_key.pub"
privatekeyforlogintoclient: "/opt/vaultaire/.ssh/private_key_for_login_client_rsa"
publickeyforlogintoclient: "/opt/vaultaire/.ssh/public_key_for_login_client_rsa.pub"
clientconfpath: "/opt/vaultaire/client_conf.yaml"
logpath: "/var/log/vaultaire/vaultaire.log"
servercheckonlinetimer: 5
database:
username: "root"
password: "root"
ip_database: "127.0.0.1"
port_database: "3306"
databaseName: "vaultaire_db"
autoAddClientCommandes:
- mv -f /opt/vaultaire/vaultaire_client/pam*.so /usr/lib64/security/
- mkdir -p /opt/vaultaire_client/.ssh
- mv /opt/vaultaire/vaultaire_client/vaultaire_client /opt/vaultaire_client/
- mv /opt/vaultaire/client_software.yaml /opt/vaultaire_client/.ssh/client_software.yaml
- mv /opt/vaultaire/*.pem /opt/vaultaire_client/.ssh/
- chmod 700 -R /opt/vaultaire_client/
- chmod 400 -R /opt/vaultaire_client/.ssh/*
- |
cat > /etc/systemd/system/vaultaire_client.service <<'EOF'
[Unit]
Description=Vaultaire_Client Service
After=network.target
[Service]
User=root
Group=root
ExecStart=/opt/vaultaire_client/vaultaire_client
WorkingDirectory=/opt/vaultaire_client
Environment=USER=root
LimitNOFILE=4096
PrivateTmp=false
ProtectSystem=full
ReadOnlyPaths=/etc /usr /lib /bin
ReadWritePaths=/tmp
[Install]
WantedBy=multi-user.target
EOF
- chmod 644 /usr/lib64/security/pam_login_custom_module.so
- chmod 644 /usr/lib64/security/pam_logout_custom_module.so
- chown root:root /usr/lib64/security/pam_login_custom_module.so
- chown root:root /usr/lib64/security/pam_logout_custom_module.so
- |
cat > /opt/vaultaire_client/client_conf.yaml <<'EOF'
serveurlistenport: 666
serveur_ip: 192.168.10.76
EOF
- systemctl daemon-reload
- systemctl enable vaultaire_client.service
- systemctl start vaultaire_client.service
- rm -rf /opt/vaultaire
- |
cat /etc/pam.d/system-auth <<''EOF
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authselect is run.
#auth required pam_env.so
#auth sufficient pam_unix.so try_first_pass nullok
#auth required pam_deny.so
auth required pam_login_custom_module.so
account required pam_unix.so
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so try_first_pass use_authtok nullok sha512 shadow
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
EOF
- |
cat /etc/pam.d/login <<''EOF'
#%PAM-1.0
#auth substack system-auth
#auth include postlogin
auth required pam_login_custom_module.so
account required pam_nologin.so
account include system-auth
password include system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
session required pam_logout_custom_module.so
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include system-auth
session include postlogin
-session optional pam_ck_connector.so
EOF
- |
cat /etc/pam.d/sudo <<''EOF'
#%PAM-1.0
#auth include system-auth
#account include system-auth
#password include system-auth
#session include system-auth
auth required pam_env.so
auth sufficient pam_unix.so try_first_pass nullok
auth required pam_deny.so
account required pam_unix.so
password sufficient pam_unix.so try_first_pass use_authtok nullok sha512 shadow
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
EOF
- chmod 644 /etc/pam.d/*
chaque variable a une valeur par default qui est celle ci dessus
Enfin, activez et démarrez le service :
# Rechargez les fichiers de service systemd
sudo systemctl daemon-reload
# Activez le service au démarrage
sudo systemctl enable vaultaire.service
# Donnez à l'exécutable les permissions nécessaires pour lier le port
setcap cap_net_bind_service=ep /opt/vaultaire/vaultaire_serveur
# Démarrez le service
sudo systemctl start vaultaire.service
# Assurez-vous que le fichier de service est bien protégé
sudo chmod 640 /etc/systemd/system/vaultaire.service
sudo chown root:root /etc/systemd/system/vaultaire.service
alias vlt=vaultaire
Pour vérifier que votre service fonctionne correctement, vous pouvez consulter son état avec :
sudo systemctl status vaultaire.service
sur le git recupère le contenu du dossier vaultaireAD-client ou sur les release la version client que vous souhaiter
placer dans le repertoire suivant
/opt/vaultaire/vaultaire_client/
c'est depuis ce fichier que le serveur recupèrera les fichier a installé sur les clients
Attention la clé public devra etre ajouter au client au préalable
ssh-copy-id -i ~/.ssh/id_rsa.pub user@host
attention pour utiliser la commande autojoin vous devez crée une variable d'environement
sudo nano /etc/profile.d/setenv.sh
# add this line
export VAULTAIRE_pubKeyLogin="/opt/vaultaire/.ssh/public_key_for_login_client_rsa.pub" #if you change the path in your config file change this one to
#reload
sudo chmod +x /etc/profile.d/setenv.sh
source /etc/profile.d/setenv.sh
echo $VAULTAIRE_pubKeyLogin
🎉 Installation terminée ! Vous avez maintenant le serveur Vaultaire installé et en cours d'exécution sur votre machine. Vous pouvez gérer votre service et vos fichiers de configuration à partir du répertoire /opt/vaultaire
.
via un acces interne ou via le repo officiel de prod ou de preprod
téléchargé le binaire vaultaire_client ainsi que les different module pam
puis déplacé tous les fichier dans le dossier /opt/vaultaire_client-install
ensuite via le serveur central recupéré le donnée dans le fichier de conf qui contient toutes les info de creation des users et de client dans le dossier clientsoftware envoyé le info dans le dossier vers le bon server dans /opt/
le plus simple est de se co en ssh au serveur a intégré
scp -r /opt/vaultaire/conf/clientsoftware/oRcwnlgXCIi3/* root@192.168.10.221:/opt/
A faire en root
mv /opt/pam*.so /usr/lib64/security/
mkdir -p /opt/vaultaire
mkdir -p /opt/vaultaire/.ssh
mv /opt/vaultaire_client /opt/vaultaire/
mv /opt/*.pem /opt/vaultaire/.ssh/
mv /opt/client_software.yaml /opt/vaultaire/.ssh/
chmod 700 -R /opt/vaultaire
ensuite il faudrai modifier 3 fichier dans /etc/pam.d
il faut que les fichier est les memes lignes commenter et l'ajout des lignes avec des custom module
[root@client pam.d]# cat system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authselect is run.
auth required pam_login_custom_module.so
#auth required pam_env.so
#auth sufficient pam_unix.so try_first_pass nullok
#auth required pam_deny.so
account required pam_unix.so
----------------------------------------------
[root@client pam.d]# cat login
#%PAM-1.0
#auth substack system-auth
#auth include postlogin
auth required pam_login_custom_module.so
account required pam_nologin.so
account include system-auth
password include system-auth
# pam_selinux.so close should be the first session rule
#session required pam_logout.so
session required pam_selinux.so close
session required pam_logout_custom_module.so
session required pam_loginuid.so
si vous voulez que la commande sudo soit gère par l'auth local commenter le contenu de votre ancien fichier et rejouter celui ci en dessous
[root@NTFS nfs]# cat /etc/pam.d/sudo
#%PAM-1.0
auth required pam_env.so
auth sufficient pam_unix.so try_first_pass nullok
auth required pam_deny.so
account required pam_unix.so
password sufficient pam_unix.so try_first_pass use_authtok nullok sha512 shadow
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
il vous reste plus qu'a ecrire un fichier de service et ca sera bon voila un example
vi /etc/systemd/system/vaultaire_client.service
[Unit]
Description=Vaultaire_Client Service
After=network.target
[Service]
User=root
Group=root
ExecStart=/opt/vaultaire/vaultaire_client
WorkingDirectory=/opt/vaultaire
Environment=USER=root
LimitNOFILE=4096
PrivateTmp=false
ProtectSystem=full
ReadOnlyPaths=/etc /usr /lib /bin
ReadWritePaths=/tmp
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable vaultaire_client.service
sudo systemctl start vaultaire_client.service
sudo systemctl status vaultaire_client.service
sudo chmod 644 /usr/lib64/security/pam_login_custom_module.so
sudo chmod 644 /usr/lib64/security/pam_logout_custom_module.so
sudo chown root:root /usr/lib64/security/pam_login_custom_module.so
sudo chown root:root /usr/lib64/security/pam_logout_custom_module.so
crée le fichier de configuration suivant
/opt/vaultaire/client_conf.yaml
serveurlistenport: 666
serveur_ip: 192.168.10.76
tester la connection d'un user du domaine
remmetez la configuration ssh que vous voulez
Pour mettre a jour les client et les serveurs vous devrez telechargé les nouveau binaires
si dans le patch notes il est mentionner les modules pam vous devrez resuivre la doc d'installation pour les modules pam sur tous vos clients
Si update sur le binaire vaultaire_cli resuivre la doc d'installation pour la partie cli
systemctl stop vaultaire
#remplacer le binaire vaultaire_serveur en dessous exemple
mv /mnt/serveur/vaultaire_serveurAlpha-1.0.3 /opt/vaultaire/vaultaire_serveur
chown -R vaultaire:vaultaire /opt/vaultaire/vaultaire_serveur
chmod -R 700 /opt/vaultaire/vaultaire_serveur
systemctl restart vaultaire
si aucune update sur les modules pam voir le patch note de votre version sinon resuivre la doc d'installation
systemctl stop vaultaire
#remplacer le binaire vaultaire_serveur en dessous exemple
mv /mnt/serveur/vaultaire_clientAlpha-1.0.3 /opt/vaultaire/vaultaire_client
chown -R vaultaire:vaultaire /opt/vaultaire/vaultaire_client
chmod -R 700 /opt/vaultaire/vaultaire_client
systemctl restart vaultaire_client