Slack est une une plate-forme de communication collaborative assez chouette à utiliser. J’essaye donc d’y intégrer plusieurs outils et donc je me suis demandé comment je pouvais configurer des notifications SSH Slack. Comme vous pouvez vous en douter la réponse se trouve ci-dessous 🙂
Configurer des notifications SSH Slack : Setup Slack
Avant de « travailler » coté serveur(s), vous allez devoir créer un Wek Hook sur Slack.
https://votre-domaine.slack.com/apps/manage/custom-integrations
Une fois la manipulation effectuée, récupérez l’URL du Web Hook et conservez la
Configurer des notifications SSH Slack : Configuration serveur(s)
Maintenant il s’agira de se connecter à toutes les machines qui devront envoyer des notifications, et de créer un script
sudo nano /etc/ssh/notify.sh
Ajoutez le code suivant en remplacant YOUR_SLACK_WEBHOOK_URL par l’URL récupérée sur Slack
#!/bin/sh if [ "$PAM_TYPE" != "close_session" ]; then url="YOUR_SLACK_WEBHOOK_URL" channel="#ssh-logins" host="`hostname`" content="\"attachments\": [ { \"mrkdwn_in\": [\"text\", \"fallback\"], \"fallback\": \"SSH login: $PAM_USER connected to \`$host\`\", \"text\": \"SSH login to \`$host\`\", \"fields\": [ { \"title\": \"User\", \"value\": \"$PAM_USER\", \"short\": true }, { \"title\": \"IP Address\", \"value\": \"$PAM_RHOST\", \"short\": true } ], \"color\": \"#F35A00\" } ]" curl -X POST --data-urlencode "payload={\"channel\": \"$channel\", \"mrkdwn\": true, \"username\": \"ssh-bot\", $content, \"icon_emoji\": \":computer:\"}" $url & fi
Rendez le script exécutable avec la commande suivante
sudo chmod +x /etc/ssh/notify.sh
Puis modifier le fichier /etc/pam.d/sshd en y ajoutant le code suivant (en fin de fichier convient parfaitement)
session optional pam_exec.so seteuid /etc/ssh/notify.sh
Vous pouvez maintenant recharger la configuration du serveur SSH et effectuer un test en vous connectant
sudo service ssh reload
Voici le type de notification que vous devriez recevoir
Source