Archives par étiquette : attaque

Configurer SSH de façon sécuritaire

Introduction

Dans cet article, je ferai le tour de la connexion, autant du côté client (PC sous Windows) que du côté serveur (Linux sous CentOS).  Voici les étapes qui seront couvertes :

  1. Comment générer une clé publique et privée avec PuTTY
  2. Comment utiliser les clés générées avec PuTTY
  3. Déposer la clé publique sur le serveur
  4. Tester la clé publique sur le serveur
  5. Configurer le serveur SSH pour que le tout soit un peu plus sécuritaire

Évidemment, avant de débuter, il est préférable de télécharger PuTTY (la version « Installer » car elle contient d’autres logiciels qui nous seront utiles).  Ci ce lien (l’original) ne fonctionne plus, faites une recherche pour PuTTY dans votre moteur de recherche préféré.

1. Comment générer une clé publique et privée avec PuTTY

Une fois PuTTY téléchargé et installé, ouvrez le logiciel PuTTYgen qui sert à la génération de clés.  Par défaut, on vous suggère une clé SSH2-RSA de 1024bits.  Ceci est déjà très bon mais si vous désirez des paramètres différents, je ne couvrirai pas cette partie dans cet article.

PuTTYgen

Cliquez pour agrandir

Ensuite, lancez la génération en cliquant sur « Generate » et en bougeant la souris sur la zone grise pour générer la clé.  Assurez-vous de mettre un identifiant (habituellement votre adresse courriel) dans la partie « Key Comment » pour identifier votre clé.  Ainsi, ce sera plus simple si jamais vous avez plus d’une clé dans le fichier « authorized_keys » qui sera couvert plus loin dans l’article.

Par la suite, entrez un mot de passe dans la section « Key passphrase » et « Confirm passphrase ».  Ceci est une mesure de sécurité supplémentaire empêchant quelqu’un qui trouverais le fichier de votre clé privée de s’en servir façilement.  Il devra avoir la clé ainsi que le mot de passe de la clé pour s’en servir.

Finalement, sauvegardez les deux clés sur votre ordinateur pour utilisation future.  Vous pouvez aussi les mettre sur votre clé USB ou tout autre média portable, ce qui vous permettra de vous en servir un peu partout.  Même si vous avez un mot de passe, essayez tout de même de ne pas perdre la clé.  Si ça vous arrive, générez vous rapidement une autre clé et effacez votre clé publique de tous les endroits où vous l’avez mise.

2. Comment utiliser les clés générées avec PuTTY

Première chose que je fais à ce point, je copie le raccourci de PuTTY Authentication Agent (Pageant) dans mon menu « Démarrage » (startup) de Windows pour qu’il démarre automatiquement à chaque redémarrage.  L’icône apparaîtra dans la barre de tâches près de l’heure.

Pageant

Cliquez pour agrandir

Ensuite, il faut double cliquer sur l’icône de Pageant et cliquer sur le bouton « Add Key ».  Si vous avez plusieurs clés, vous pouvez toutes les sélectionner et les ajouter d’un seul coup.  Si vous avez le même mot de passe pour toutes les clés sélectionnées, le logiciel ne vous le demandera qu’une seule fois.

Notez qu’il s’agit ici de vos clés privées.  Les clés publiques seront utilisées plus loin au cours de l’article.

3. Déposer la clé publique sur le serveur

Par la suite, cliquez avec le bouton de droite sur l’icône de Pageant et sélectionnez « New Session ».  Vous y retrouverez la prochaine boîte de dialogue dans laquelle vous pourrez configurer et sauvegarder les différents serveurs auxquels vous désirez vous connecter.

PuTTY Configuration

Cliquez pour agrandir

Pour la cause de l’article, faites simplement entrer l’adresse IP du serveur auquel vous voulez vous connecter (ou le nom d’hôte de ce serveur).  Il est toujours préférable d’entrer l’adresse IP du serveur au cas où un problème DNS devait survenir.

Vous pouvez maintenant cliquer sur « Open », ce qui ouvrira un terminal vers le serveur en question.  Évidemment, il faut que le service sshd soit démarré et que le port 22 soit ouvert en TCP pour que le tout fonctionne.

Connectez-vous en tant que l’utilisateur désiré et entrez votre mot de passe pour la dernière fois pour cet utilisateur sur ce serveur.  Ensuite, vérifiez si le dossier « .ssh » existe dans le dossier de l’utilisateur en tapant « ls -la ».  S’il n’existe pas, créez le avec « mkdir .ssh ».

Une fois le dossier créé, entrez dedans avec « cd .ssh » et creez un nouveau fichier texte nommé « authorized_keys ».  Insérez votre clé publique générée et affichée dans PuTTYgen en entier (voir image de PuTTYgen au début de l’article).

Pour vous assurer de la sécurité de ce dossier et du fichier en question, vous pouvez appliquer les permissions « 600 » au fichier authorized_keys et les permissions 700 au dossier « .ssh ».  Dans une telle situation, seulement cet utilisateur pourra voir et modifier le tout.

4. Tester la clé publique sur le serveur

Puisque nous avons déjà inséré la clé dans PuTTY à l’étape 2, il ne reste qu’à se connecter.  Je vais donc vous donner un truc pour vous connecter plus rapidement encore.  Cliquez avec le bouton de droite de la souris sur l’icône de Pageant et sélectionnez « New Session ».

Dans la fenêtre de configuration de session, entrez l’adresse IP du serveur dans « Host name (or IP address) ».  Insérez un nom pour reconnaître ce serveur dans la case « Saved Sessions ».  Ensuite, allez dans le menu de gauche dans la section « Connexion – Data » et entrez le nom d’utilisateur voulu dans la case « Auto-login username ».  Ensuite, allez dans la section « Connexion – SSH – Auth » et cochez la case « Allow agent forwarding » qui vous permettera de vous promener d’un serveur à l’autre ayant la même clé sans problèmes. Finalement, retournez dans la section « Session » et cliquez sur « Save », puis cliquez sur « Cancel » ou « X » pour fermer cette fenêtre.

Maintenant, testez le tout en cliquant avec le bouton droit de la souris sur l’icône de Pageant, ensuite allez dans « Saved Sessions » et cliquez sur la session du serveur que nous venons de configurer.  Vous devriez vous connecter sans même entrer d’utilisateur ou de mot de passe!  Quelle joie!

5. Configurer le serveur SSH pour que le tout soit un peu plus sécuritaire

Connectez-vous sur le serveur et allez dans le dossier « /etc/ssh/ » et ouvrez le fichier « sshd_config » dans votre éditeur texte favori.  Assurez vous d’avoir les lignes suivantes :

PermitRootLogin without-password
PubkeyAuthentication yes
PasswordAuthentication no

Avec ces lignes, vous vous assurez que personne ne peut se connecter à distance à cette boîte avec un mot de passe.  Tout les utilisateurs SSH doivent avoir une clé d’installée sur le serveur (il est donc important de ne pas effacer ou corrompre les clés sans quoi vous ne pourrez plus vous connecter à moins de vous déplacer physiquement au serveur).

Redémarrez SSH avec « service sshd restart » pour prendre les modifications en effet et amusez vous!  Et voilà, nous avons déjà établi une bonne sécurité en peu d’efforts et sans même toucher a iptables.  Évidemment, si vous pouvez vous connecter d’un endroit ayant une IP fixe, il est bien de bloquer tous les accès sauf cette IP dans iptables.  Par contre, ceci à pour défaut que si vous êtes à l’extérieur du bureau ou de la maison et que vous désirez accéder au serveur, vous ne pourrez pas puisque cette IP ne sera pas allouée.  Une méthode peut aussi être qu’un seul de vos serveur alloue les connexions de n’importe quelle IP et que les autres serveurs acceptent les connexions de vos bureaux, de votre maison ainsi que de ce serveur en particulier.  Il devient en quelques sortes, le « gateway » ssh.

Conclusion

Il s’agit donc simplement de générer des clés (ou plutôt une paire de clés) et de garder sécuritairement votre clé privée et de distribuer votre clé publique sur tous les serveurs sur lesquels vous désirez vous connecter de façon sécuritaire et empêcher les connexions n’ayant pas de clé approuvée (dans le fichier à cet effet sur le serveur) d’accéder en SSH tout simplement.

Une fois que vous l’avez fait une fois, cette procédure s’applique en a peine 5 minutes sur les serveurs subséquents que vous voudrez configurer.  Une méthode rapide et efficace d’éviter les attaques de type « Brute Force ».

Comment protéger mon ordinateur

Pourquoi?

Il y a plusieurs bonnes raisons de protéger votre ordinateur.  Plus principalement, je parlerai ici des virus, des logiciels espion et des pirates informatique (attaques et hameçonnage), qui sont trois phénomènes importants pour lesquels tous les ordinateurs (particulièrement ceux fonctionnant sous Microsoft Windows*) devraient être protégés.  De plus, les méthodes proposées ici sont gratuites, généralement simples d’utilisation et peuvent vous éviter de perdre vos données importantes (photos, documents, etc.), de vous faire voler votre identité ainsi que de vous faire utiliser votre ordinateur à votre insu pour proférer des attaques massives.

Comment les virus fonctionnent?

Question mark

Comment ça fonctionne?

Généralement parlant, un virus est un logiciel qui a la capacité de se copier d’un ordinateur à un autre via un média de communication (réseau local, internet, copie de disques, clé USB, courriel, etc.).  Celui-ci peut par la suite simplement engorger l’espace disque disponible sur votre ordinateur, effacer des fichiers importants pour le bon fonctionnement du système ou effacer vos fichiers personnels et autres.

Comment les logiciels espion fonctionnent?

Un logiciel espion ne se copie pas comme un virus.  Il doit être installé dans l’ordinateur.  Par contre, l’installation peut se faire avec ou (plus souvent) sans consentement de l’utilisateur.  Il peut venir sous forme de barre d’outil pour le logiciel de navigation internet, sous forme de script ou « cookie » sur un site web et autres.  Ces logiciels servent à identifier vos habitudes de navigation sur internet, à savoir ce que vous tapez en tout temps (incluant vos mot de passe, carte de crédit, etc.), oui oui, même sur les sites sécurisés!

Comment les pirates font-ils?

Nous parlerons ici de deux des multiples choses que les pirates peuvent faire, ce qui vous protègera de la majorité de leurs tentatives.  Les attaques massives distribuées par déni de service (DDoS) ainsi que le hameçonnage.  Les attaques DDoS (Distributed Denial of Service) consistent à prendre le contrôle de centaines, voir, milliers d’ordinateurs non-protégés à distance et de les utiliser pour envoyer des attaques sur un site en particulier sans arrêt, ce qui a pour effet de faire arrêter de fonctionner ce site web.  Le hameçonnage quant à lui, consiste à faire croire à quelqu’un qu’il est sur son site de banque, de courriels, ou tout autre site sur lequel il est habitué d’aller et auquel il a confiance, et de capter les informations critiques de cette personne (mot de passe, numéro de carte et nip, etc.).

La protection par antivirus

AVG Logo

AVG Logo

Il existe des logiciels anti-virus payants pour les particuliers mais je ne suis pas de l’avis qu’il faut payer (en tant que particulier) une compagnie qui peut possiblement créer des virus pour par la suite nous dire de se prémunir de leur anti-virus.  C’est pourquoi je vous propose un logiciel gratuit parmis tant d’autres, qui fonctionne autant en français qu’en d’autres langues et j’ai nommé : AVG.  Ce logiciel gratuit (ayant une lisence payante mais peu coûteuse pour les entreprises) contient toutes les fonctionnalités nécessaires pour protéger votre ordinateur contre les virus, les courriels contenant des virus, certains logiciels espion et les liens vers des sites dangeureux sur internet.

Où se procurer AVG gratuit?

Vous n’avez qu’à télécharger la version gratuite de la protection de base sur http://free.avg.com/ (pour la version française, cliquez sur le bouton pour changer de langue, sélectionnez la région « France » et ensuite le language « Français »).  Par la suite, installez le logiciel sur votre ordinateur et assurez-vous que le logiciel se met-à-jour automatiquement et régulièrement (au moins 1 fois par jour).  Vous êtes maintenant protégé contre une panoplie de virus et logiciels espions.

Protection accrue contre les logiciels espion

SpyBot Icon

SpyBot Icon

Pour éviter d’avoir plusieurs logiciels qui vérifient les logiciels espion et d’oublier de les faire vérifier votre ordinateur régulièrement, je choisis personnellement le logiciel « SpyBot » qui est aussi disponible en plusieurs langues, dont le Français.  Vous pouvez télécharger ce logiciel sur le site du fabricant au http://www.safer-networking.org/.  Lors de l’installation du logiciel, je recommande de ne pas activer la protection « TeaTimer ».  Malgré qu’elle peut vous protéger contre certains logiciels espion, elle est très fastidieuse à utiliser.  Une fois l’installation terminée, assurez-vous d’utiliser l’outil de vaccination qui préviendra une bonne partie des logiciels espions d’être installés sur votre ordinateur sans même avoir a faire tout vérifier votre disque dur.  La vérification manuelle (scan) du disque dur ainsi que les mises-à-jour sont tout de même bonnes à faire de temps en temps (au moins 1 fois par mois).

Les pare-feu (firewall)

La majorité des pare-feu venant avec les systèmes d’exploitation et routeurs vous protègent des gens qui veulent pénétrer dans votre ordinateur à partir d’internet.  Par contre, si un nouveau virus (non détecté par l’anti-virus) ou script d’attaque d’un pirate est installé sur votre poste à votre insu par une faille de sécurité logicielle ou simplement « physiquement » (a partir d’un disque, clé USB ou autre), ce qui sortira de votre ordinateur ne sera pas vérifié.  Vous pourriez donc être accusé d’avoir attaqué une autre personne ou compagnie sans même en être au courant.

Pour pallier à ce problème, vous pouvez installer un logiciel pare-feu qui fera le filtrage des données entrantes et sortantes de votre ordinateur et lorsqu’un programme inconnu voudra envoyer des données sur le réseau ou internet, votre pare-feu vous en avertira.  De cette façon, vous pouvez approuver tous les logiciels connus (une fois approuvé, ce logiciel est gardé en mémoire par le pare-feu) et refuser tout logiciel inconnu.  Par contre, cette technique n’est pas recommandée aux utilisateurs débutants car elle nécessite un peu plus de compréhension au niveau logiciel sur l’ordinateur.

Les formulaires

Un bref commentaire pour déconseiller fortement d’activer le remplissage automatique des champs de formulaires puisque ceci permettera à toute personne accédant à votre ordinateur d’avoir accès à ces données et de les utiliser à votre place, tout particulièrement si vous n’êtes pas la seule personne à avoir accès à l’ordinateur en question (famille, amis, enfants, collègues de travail, etc.).

Conclusion

Il existe énormément de risques sur internet mais avec un bon anti-virus tenu à jour, un bon anti logiciel espion et un bon pare-feu, il est possible de prévenir plus de 99% des risques de l’informatique.  En utilisant ces techniques, le dernier virus que j’ai personnellement eu remonte à l’année 1997 (plus de 12 ans), autant au bureau qu’à la maison.

Légende

* Pourquoi les ordinateurs sous Microsoft Windows plus que MacOS ou Linux ou autre?  Simplement parce qu’ils sont plus de 90% de la clientèle sur le marché donc les pirates se concentrent sur ceux-ci…  Ce serait probablement le même problème si MacOS ou Linux possèderait 90% du marché.