Niveau Niveau confirmé

Première connexion (SSH) et configuration initiale d'un serveur dédié

Tutorieldéveloppement

Publié par le , mis à jour le (320474 lectures)

développement ssh

Comment se connecter en ligne de commande par SSH au serveur dédié pour l'administrer. Configuration initiale du serveur, comment se logger en root, comment éditer les fichiers, les commandes apt.

Connexion SSH au serveur et première configuration

Manuel

Tous les tutoriaux sont basés sur un serveur exemple sous Linux Debian (ou équivalent, par exemple Ubuntu), nommé test.alsacreations.com pour lequel nous disposons d'un utilisateur nommé dew et d'un accès root (super-administrateur) avec son propre mot de passe.

Ces accès sont créés, soit par vous-même lors de l'installation, soit fournis par votre hébergeur de serveur dédié après l'installation du système.

Afin d'administrer le serveur dédié avec ces identifiants, il est nécessaire de se connecter en ligne de commande par SSH (Secure Shell).

Sous Linux

Ouvrez une console, et utilisez la commande ssh test.alsacreations.com -l dew

En précisant le port 22 (par défaut) : ssh test.alsacreations.com -l dew -p 22

Sous Windows : Putty

Le meilleur client SSH existant sous Windows à l'heure actuelle est Putty. Il vous suffira de préciser l'adresse de votre serveur (et éventuellement le port si celui-ci diffère du port 22 par défaut pour SSH) pour vous y connecter.

Putty SSH

N'hésitez pas à personnaliser l'affichage dans Window > Colours (couleur de fond, police) pour vous sentir comme chez vous. Dans Window > Translation vous pourrez choisir le jeu de caractères (ISO / UTF-8) si les caractères accentués ne s'affichent pas correctement.

Root (super-administrateur)

Afin de configurer votre serveur, vous aurez besoin de lancer des commandes en mode super-administrateur. C'est un utilisateur qui a le maximum de privilèges sur la machine. Normalement vous avez du choisir son mot de passe lors de l'installation de votre serveur.

Sous Ubuntu

Utilisez sudo avant chaque commande. Par exemple : sudo apt-get install nano

Sous Debian

Utilisez tout simplement la commande su puis entrez le mot de passe root, ou installez sudo comme pour Ubuntu avec apt-get install sudo puis définissez les droits grâce à visudo.

Manuel

Pour avoir plus d'informations sur une commande ou un programme, utilisez le manuel Linux en tapant man suivi du nom de la commande.

  • ls : Liste le contenu du répertoire courant
  • cd : Change de répertoire (ex : cd /etc/ )
  • mv : Déplace (ou renomme) un fichier
  • cp : Copie un fichier
  • rm : Supprime un fichier (récursivement : -rf)
  • rmdir : Supprime un répertoire
  • mkdir : Crée un répertoire

Les fichiers de configuration sont en général tous stockés dans /etc/, les programmes exécutables dans /bin/ ou /usr/bin/, les fichiers documents (web, mail, mysql) dans /var/ et les répertoires utilisateurs dans /home/ sauf pour root qui dispose de /root/.

Modifier le mot de passe root

N'hésitez pas à modifier le mot de passe surtout si celui-ci vous a été attribué par défaut. Identifiez-vous d'abord en root (voir ci-dessus) puis entrez la commande :

passwd root

Edition des fichiers

Pour éditer les fichiers en ligne de commande (via SSH) de nombreux éditeurs de texte existent. Si vous débutez sous Linux Ubuntu ou Debian, nous vous conseillons nano, qui est relativement simple d'accès. Vous pouvez l'installer grâce à apt-get install nano. Sinon, préférez vi (ou vim) qui est très puissant. C'est cet éditeur que nous utiliserons dans les tutoriaux de cette section.

Quelques commandes vi de base :

  • i : Insérer du texte
  • a : Ajouter du texte
  • Echap : Sortir du mode choisi précédemment (i ou a)
  • x : Effacer un caractère
  • dd : Effacer/couper une ligne
  • Y : Copier une ligne
  • p : Coller une ligne
  • o : Insérer une nouvelle ligne
  • u : Annuler la dernière action
  • :w : Enregistrer le fichier
  • :q : Quitter
  • :q! : Quitter sans sauvegarder
  • /mot_à_chercher : Rechercher un mot
  • n : Rechercher le mot suivant
  • :g/mot1/s//mot2/g : Rechercher dans tous le fichier le mot1 pour le remplacer par le mot2

L'éditeur par défaut du système est modifiable via les alternatives. Pour remplacer nano par vi (ou l'inverse) utilisez : update-alternatives --config editor

Configuration SSH

Afin de sécuriser l'accès SSH au serveur, éditons le fichier /etc/ssh/sshd_config. Nous allons changer le port de connexion par défaut pour éviter quelques attaques par bruteforce sur le port 22, qui est bien connu pour héberger ce service. N'oubliez pas de préciser ce nouveau port (dans Putty ou en ligne de commande ssh sous Linux) à la prochaine connexion.

vi /etc/ssh/sshd_config

Port 1337                  # Changer le port par défaut
PermitRootLogin no         # Ne pas permettre de login en root
Protocol 2                 # Protocole v2
AllowUsers dew             # N'autoriser qu'un utilisateur

Redémarrez le service SSH après ces modifications :

/etc/init.d/ssh restart

Configuration de base du réseau

Vérifiez que le hostname de votre machine est correct ou personnalisez-le en éditant /etc/hostname. Celui-ci doit aussi refléter le reverse configuré auprès de votre hébergeur ou datacenter.

vi /etc/hostname

Dans notre cas exemple, nous préciserons test.alsacreations.com

Vérifiez le fichier /etc/hosts

vi /etc/hosts

Celui-ci doit ressembler à peu près à cela, avec votre propre adresse IP et nom de domaine :

127.0.0.1       localhost  test
88.150.120.130  test.alsacreations.com  test

Nous allons également optimiser quelque peu la sécurité réseau du serveur au passage. Ne procédez à ces modifications que si vous savez ce que vous faites.

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "1024" > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

Editez le fichier /etc/resolv.conf pour vérifier ou ajouter les serveurs DNS à utiliser :

vi /etc/resolv.conf

nameserver ip_serveur_dns_1
nameserver ip_serveur_dns_2

Après ces quelques changements nous pouvons redémarrer le service réseau :

/etc/init.d/networking restart

Ou plus radicalement redémarrer le serveur :

reboot

Attendez quelques minutes puis reconnectez-vous. Vérifiez les changements grâce aux commandes suivantes :

hostname -f
doit retourner le FQDN soit test.alsacreations.com dans notre exemple
hostname -s
doit retourner le nom court, soit test
hostname -d
doit retourner le domaine, soit alsacreations.com
hostname -i
retourne l'adresse IP

Administration

Mises à jour grâce à APT

APT est un gestionnaire de paquets très performant. Il va permettre d'ajouter ou de retirer des programmes à la distribution Linux. Pour commencer, mettons la liste des paquets à jour depuis les serveurs de référence : apt-get update

Puis procédons à une mise à jour du système. Les paquets seront remplacés par leurs mises à jour : apt-get upgrade

Voici quelques commandes APT très utiles :

apt-get dist-upgrade
Met à jour la distribution complète
apt-get install paquet
Installe le paquet mentionné
apt-get install paquet -s
Simulation d'installation
apt-get remove paquet
Désinstallation/suppression du paquet
apt-get remove paquet --purge
Désinstallation complète (fichiers de configuration compris)
apt-cache show paquet
Informations sur le paquet
apt-cache search paquet
Recherche dans les paquets disponibles
apt-cache depends paquet
Dépendances
apt-cache madison paquet
Versions disponibles
apt-cache policy paquet
Versions et possibilités
apt-get clean
Vide le cache disque des paquets

Services, démons

Dans la suite des tutoriaux, nous allons installer un certain des services (web, ftp, mail) aussi appelés démons (daemons en anglais). Sous Linux Debian, Ubuntu et variantes ceux-ci s'administrent via des scripts localisés dans /etc/init.d, prenant en argument la plupart du temps les termes start (démarrer), stop (arrêter), restart (redémarrer), reload (recharger la configuration sans redémarrer). Exemple : /etc/init.d/apache restart. Il faut bien entendu être identifié en root (super-administrateur) pour réaliser ces opérations.

NTP

NTP permet de synchroniser l'heure du serveur avec des horloges atomiques. Sous Debian Etch il existe déjà openntpd. Vous pouvez équiper votre système grâce à apt-get install ntp ntpdate. Editez /etc/ntp.conf ou /etc/default/ntpdate pour vérifier la configuration et éventuellement modifier les adresses des serveurs avec ceux les plus proches de chez vous puis redémarrez le service : /etc/init.d/ntp restart.

Divers

Installons quelques outils qui seront bien utiles (à ne faire que si cela vous semble pertinent) :

apt-get install zip unzip gcc libc6-dev linux-kernel-headers diff wget bzip2 make

Pour gérer les jeux de caractères et les locales n'hésitez pas à invoquer :

dpkg-reconfigure locales

Fin

Voilà votre système prêt à être configuré grâce aux autres tutoriaux. Dans tous les cas, vous pouvez faire appel au manuel sous Linux via la commande man suivie du nom de la rubrique à consulter (en général le nom de la commande ou du paquet installé).