Configuration initiale d’un serveur Fedora 22

introduction

Lorsque vous vous connectez pour la première fois à une nouvelle Fedora 22, celle-ci n’est pas prête à être utilisée en tant que système de production. Un certain nombre d’étapes recommandées pour la personnaliser et la sécuriser, telles que l’activation d’un pare-feu.

Ce tutoriel va vous montrer comment donner à une nouvelle installation d’un serveur Fedora 22 un meilleur profil de sécurité et qu’il est prêt à être utilisé.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

  • Un Fedora 22 Droplet avec des clés SSH racine.

Vous pouvez suivre this section du didacticiel de clé SSH pour créer des clés si vous ne les avez pas et https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a -linux-server # comment-intégrer-votre-clé-publique-lors-de-créer-votre-serveur [cette section] du même tutoriel pour incorporer automatiquement votre clé SSH dans le compte racine de votre serveur lorsque vous créez votre Droplet.

Étape 1 - Création d’un compte d’utilisateur standard

Commencez par vous connecter à votre serveur en tant que * racine *.

ssh root@

L’exploitation en tant qu’utilisateur root pose un risque pour la sécurité. À cette étape, nous allons donc configurer un compte d’utilisateur sudo non root à utiliser pour le système et d’autres tâches informatiques. Le nom d’utilisateur utilisé dans ce tutoriel est * sammy *, mais vous pouvez utiliser le nom de votre choix.

Pour ajouter l’utilisateur, tapez:

adduser

Spécifiez un mot de passe fort pour l’utilisateur à l’aide de la commande ci-dessous. Vous serez invité à saisir le mot de passe deux fois.

passwd

Ajoutez ensuite l’utilisateur au groupe de roues, ce qui lui donne les privilèges sudo.

gpasswd -a  wheel

Déconnectez-vous de votre serveur et ajoutez votre clé SSH au nouveau compte d’utilisateur en exécutant ce qui suit sur votre ordinateur local.

ssh-copy-id @

Pour plus d’informations sur la manière de copier vos clés SSH de votre ordinateur local sur votre serveur, vous pouvez lire https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on -a-linux-server # comment-copier-une-clé-publique-sur-votre-serveur [cette section] du tutoriel SSH.

Enfin, reconnectez-vous en tant que nouvel utilisateur sudo non root. Vous ne serez pas invité à entrer un mot de passe car ce compte a maintenant des clés SSH.

ssh @

Étape 2 - Désactivation de l’authentification de la connexion racine et du mot de passe

Dans cette étape, nous allons sécuriser davantage les connexions SSH en désactivant les connexions racine et l’authentification par mot de passe.

Pour modifier les fichiers de configuration, vous devez installer un éditeur de texte. Nous utiliserons + nano + mais vous pouvez choisir celui que vous préférez.

Tout d’abord, appliquez toutes les mises à jour disponibles en utilisant:

sudo dnf update

Ensuite, pour installer + nano +, tapez:

sudo dnf install -y nano

Ouvrez maintenant le fichier de configuration du démon SSH pour le modifier.

sudo nano /etc/ssh/sshd_config

Dans ce fichier, recherchez la directive + PermitRootLogin +. Décommentez-le (cela signifie de supprimer le caractère + # + de départ) et réglez-le sur * no *.

PermitRootLogin no

De même, recherchez la directive + PasswordAuthentication + et définissez-la également sur * no *.

PasswordAuthentication no

Enregistrez et quittez le fichier, puis rechargez la configuration pour mettre vos modifications en place.

sudo systemctl reload sshd

Si quelqu’un essaie de se connecter en tant que * root * maintenant, la réponse doit être + Autorisation refusée (publickey, gssapi-keyex, gssapi-with-mic) +.

[[step-3-­--configuring-the-time-zone]] === Étape 3 - Configuration du fuseau horaire

Au cours de cette étape, vous apprendrez à modifier l’horloge système en indiquant votre fuseau horaire local. L’horloge par défaut est définie sur UTC.

Tous les fuseaux horaires connus se trouvent dans le répertoire + / usr / share / zoneinfo / +. Regardez les fichiers et les répertoires dans + / usr / share / zoneinfo / +.

ls /usr/share/zoneinfo/

Pour que l’horloge utilise le fuseau horaire local, recherchez votre pays ou votre région dans ce répertoire, localisez le fichier de zone situé en dessous, puis créez un lien symbolique vers le répertoire + / etc / localtime +. Par exemple, si vous vous trouvez dans la partie centrale des États-Unis, où le fuseau horaire est * Central * ou * CST *, le fichier de zone sera + / usr / share / zoneinfo / US / Central +.

Créez un lien symbolique à partir de votre fichier de zone vers + / etc / localtime +.

sudo ln -sf /usr/share/zoneinfo/ /etc/localtime

Vérifiez que l’horloge est maintenant réglée sur l’heure locale en affichant le résultat de la commande + date +.

date

La sortie ressemblera à quelque chose comme:

Wed Mar 25 14:41:20 CST 2015

Le * CST * dans cette sortie confirme qu’il s’agit de l’heure centrale.

Étape 4 - Activer un pare-feu

Un nouveau serveur Fedora 22 ne possède aucune application de pare-feu active. Dans cette étape, nous allons apprendre à activer l’application de pare-feu IPTables et à nous assurer que les règles d’exécution persistent après un redémarrage.

Le paquet IPTables est déjà installé, mais pour être activé, vous devez installer le paquet + iptables-services +.

sudo dnf install -y iptables-services

Vous pouvez ensuite activer IPTables pour qu’il démarre automatiquement au démarrage.

sudo systemctl enable iptables

Ensuite, démarrez IPTables.

sudo systemctl start iptables

IPTables sur Fedora 22 est livré avec un ensemble de règles par défaut. L’une de ces règles autorise le trafic SSH. Pour afficher les règles par défaut, tapez:

sudo iptables -L

La sortie devrait indiquer:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Ces règles sont des règles d’exécution et seront perdues si le système est redémarré. Pour enregistrer les règles d’exécution actuelles dans un fichier afin qu’elles persistent après un redémarrage, tapez:

sudo /usr/libexec/iptables/iptables.init save

Les règles sont maintenant enregistrées dans un fichier nommé + iptables + dans le répertoire + / etc / sysconfig +.

Étape 5 (facultatif) - Autoriser le trafic HTTP et HTTPS

Dans cette section, nous verrons comment modifier les règles de pare-feu pour autoriser les services des ports 80 (HTTP) et 443 (HTTPS).

Les règles IPTables par défaut autorisent le trafic SSH par défaut, mais HTTP et son cousin relativement plus sécurisé, HTTPS, sont des services utilisés par de nombreuses applications. Par conséquent, vous pouvez également autoriser ceux-ci à traverser le pare-feu.

Pour continuer, ouvrez le fichier de règles de pare-feu en tapant:

sudo nano /etc/sysconfig/iptables

Il vous suffit d’ajouter deux règles, une pour le port 80 et une autre pour le port 443, après la règle pour le trafic SSH (port 22). Les lignes ci-dessous en rouge sont celles que vous allez ajouter; les lignes avant et après sont incluses dans le contexte pour vous aider à trouver où ajouter les nouvelles règles.

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT


-A INPUT -j REJECT --reject-with icmp-host-prohibited

Pour activer le nouveau jeu de règles, redémarrez IPTables.

sudo systemctl restart iptables

Étape 6 (facultatif) - Installation de Mlocate

La commande + Locate + est un utilitaire très utile pour rechercher l’emplacement des fichiers dans le système. Par exemple, pour trouver un fichier appelé * exemple *, vous devez taper:

locate example

Cela va scanner le système de fichiers et imprimer l’emplacement ou les emplacements du fichier sur votre écran. Il existe aussi des moyens plus avancés d’utiliser + local +.

Pour rendre la commande disponible sur votre serveur, vous devez d’abord installer le package + mlocate +.

sudo dnf install -y mlocate

Ensuite, exécutez la commande + updatedb + pour mettre à jour la base de données de recherche.

sudo updatedb

Après cela, vous devriez pouvoir utiliser + local + pour rechercher un fichier par son nom.

Conclusion

Au terme de la dernière étape, votre serveur Fedora 22 doit être configuré, raisonnablement sécurisé et prêt à être utilisé!