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é!