Renforcement d'un serveur domestique

5

Je songe à installer un serveur Web modeste en utilisant du vieux matériel et Ubuntu 12.04 ou Debian 6. Je suis conscient qu'en exposant une machine de mon réseau local au monde extérieur, je deviens vulnérable aux attaques et aux violations de la sécurité. Cela étant, et comme je n’ai presque aucune expérience en matière de sécurisation d’ordinateurs sous Linux, je voudrais vous demander quelques recommandations sur la procédure à suivre pour sécuriser ce serveur Web, d’autant plus que d’autres ordinateurs de mon réseau local contiennent des informations sensibles ( sur les comptes de banque à domicile et autres). Merci beaucoup.

NetStudent
la source

Réponses:

5

Premièrement, vous en êtes probablement conscient, mais si vous avez une adresse IP dynamique, vous aurez besoin d’un DNS dynamique comme DynDNS ou DNSexit .

Pour ce qui est de la sécurisation, je pense qu’utiliser iptables(ou une interface graphique de pare-feu comme firestarter si vous préférez) l’ouverture du port 80 uniquement pour la connexion entrante est suffisant pour un serveur domestique si vous n’avez pas besoin d’ouvrir le port ssh (port 22) ou ftp (21). ) et vous n’installerez pas de serveur de messagerie.

Si votre site comporte une page de connexion ou si vous devez ouvrir ssh, ftp ou smtp, je vous recommande d'installer au moins un élément tel que fail2ban pour interdire les adresses IP qui tentent des connexions sans succès afin qu'elles n'essayent pas indéfiniment.

Une chose importante à noter est que vous devez consulter vos journaux, les garder facilement installés logwatch(ils devraient se trouver dans vos dépôts par défaut sur Debian et Ubuntu) pour vous alerter par courrier quotidiennement ou hebdomadairement. Vous apprendrez rapidement à trouver ce qui ne va pas en les lisant fréquemment.

Si vous devez vous connecter de l'extérieur pour administrer le serveur, utilisez un VPN et, de toute façon, maintenez le système d'exploitation toujours à jour!

Mise à jour: Pour SSH et sftp, je pense que fail2ban + uniquement les clés ssh (ou les clés + mot de passe mais pas uniquement le mot de passe) est le minimum dont vous avez besoin (et n'autorisez pas l'accès root).

Si les ordinateurs que vous utilisez pour vous connecter ont une adresse IP fixe, ouvrez le pare-feu uniquement pour ces adresses IP entrantes.

Un VPN crypté (j'utilise openvpn ) aide également beaucoup à sécuriser votre accès.
Jetez un coup d'œil ici au didacticiel officiel "rapide" . En 15-30 minutes, vous disposerez d'un serveur VPN opérationnel pour un client, un serveur. Pour une meilleure configuration avec l’authentification du certificat client et une autorité de certification (votre propre autorité de certification gratuite), vous devrez prendre quelques minutes de plus: D

Si vos sites nécessitent MySQL ou pour toute autre raison, vous devez administrer MySQL (ou une autre base de données) à partir d'Internet. Si vous n'utilisez pas de VPN, utilisez un tunnel ssh pour vous connecter à un port local de votre ordinateur et le tunnel crypte la connexion au serveur afin que vous n’ayez pas besoin d’ouvrir le port de la base de données, consultez les arguments -Let . Je ne voudrais pas installer phpmyadmin pour écouter sur une adresse IP publique car cela ouvre votre base de données au monde entier. Si vous avez besoin, je peux mettre un exemple de script pour un tunnel ici.-Dman ssh

laurent
la source
Merci! Oui, j'en suis conscient et je pense que je vais utiliser NoIP ou DynDN. De l'autre côté, j'ai vraiment besoin d'ouvrir des ports SSH et SFTP ... Que dois-je faire dans ce cas?
NetStudent
1
Réponse édité pour SSH et SFTP
laurent