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 -L
et .
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.-D
man ssh