La continuation du titre serait «tout en ayant une connaissance limitée de la sécurité Internet».
J'ai récemment mis en place un petit serveur avec un ordinateur bas de gamme exécutant debian dans le but de l'utiliser comme un dépôt git personnel. J'ai activé ssh et j'ai été assez surpris de la rapidité avec laquelle il a souffert d'attaques par force brute et similaires. Ensuite, j'ai lu que c'était assez courant et j'ai appris les mesures de sécurité de base pour conjurer ces attaques (beaucoup de questions et de doublons sur le défaut de serveur le traitent, voir par exemple celui-ci ou celui-ci ).
Mais maintenant, je me demande si tout cela en vaut la chandelle. J'ai décidé de configurer mon propre serveur principalement pour le plaisir: je pouvais simplement compter sur des solutions tierces telles que celles proposées par gitbucket.org, bettercodes.org, etc. Bien qu'une partie du plaisir consiste à se renseigner sur la sécurité Internet, je n'ai pas assez de temps pour y consacrer pour devenir un expert et être presque certain que j'ai pris les bonnes mesures de prévention.
Afin de décider si je vais continuer à jouer avec ce projet de jouet, je voudrais savoir ce que je risque vraiment de faire. Par exemple, dans quelle mesure les autres ordinateurs connectés à mon réseau sont-ils également menacés? Certains de ces ordinateurs sont utilisés par des personnes ayant des connaissances encore moindres que les miennes exécutant Windows.
Quelle est la probabilité que je rencontre de réels problèmes si je respecte des directives de base telles qu'un mot de passe fort, un accès root désactivé pour ssh, un port non standard pour ssh et éventuellement la désactivation de la connexion par mot de passe et l'utilisation d'une des règles fail2ban, denyhosts ou iptables?
Autrement dit, y a-t-il de gros méchants loups que je devrais craindre ou s'agit-il principalement de chasser les enfants de script?
keyboard-interactive
authentification et utilisez uniquement l'pubkey
authentification.Réponses:
IMO SSH est l'une des choses les plus sûres à écouter sur Internet. Si vous êtes vraiment inquiet, écoutez-le sur un port haut de gamme non standard. J'aurais toujours un pare-feu (au niveau de l'appareil) entre votre box et Internet et j'utiliserais simplement la redirection de port pour SSH, mais c'est une précaution contre les autres services. SSH lui-même est sacrément solide.
Des personnes ont parfois frappé mon serveur SSH domestique (ouvert à Time Warner Cable). Jamais eu d'impact réel.
Certaines mesures supplémentaires que vous pouvez prendre pour rendre SSH plus sûr sont d'empêcher les tentatives répétées à partir de la même adresse IP pour une machine domestique, quelque chose comme
dans / etc / ssh / sshd_config, ce qui restreindra le nombre de connexions pouvant être créées sur une ligne avant de se connecter avec succès.
la source
La configuration d'un système d'authentification à clé publique avec SSH est vraiment triviale et prend environ 5 minutes à configurer .
Si vous forcez toutes les connexions SSH à l'utiliser, cela rendra votre système à peu près aussi résistant que vous pouvez l'espérer sans investir BEAUCOUP dans l'infrastructure de sécurité. Franchement, c'est tellement simple et efficace (tant que vous n'avez pas 200 comptes - alors ça devient compliqué) que ne pas l'utiliser devrait être une infraction publique.
la source
Je gère également un serveur git personnel ouvert sur le monde sur SSH, et j'ai également les mêmes problèmes de force brute que vous, donc je peux comprendre votre situation.
TheFiddlerWins a déjà abordé les principales implications en matière de sécurité de l'ouverture de SSH sur une IP accessible au public, mais le meilleur outil IMO en réponse aux tentatives de force brute est Fail2Ban - un logiciel qui surveille vos fichiers journaux d'authentification, détecte les tentatives d'intrusion et ajoute des règles de pare-feu à la
iptables
pare-feu local de la machine . Vous pouvez configurer à la fois le nombre de tentatives avant une interdiction et la durée de l'interdiction (ma valeur par défaut est de 10 jours).la source
Une autre façon de gérer cela est de configurer un VPN. Plutôt que de vous connecter directement aux ports SSH de votre serveur domestique, vous vous connectez d'abord au VPN, puis exécutez tout votre trafic via la connexion cryptée et sécurisée.
La façon idéale de gérer cela est avec un pare-feu qui intègre un point de terminaison VPN, mais vous pouvez également configurer un ordinateur Windows pour agir en tant que serveur VPN.
Voici un exemple:
http://www.howtogeek.com/135996/
Gardez maintenant à l'esprit qu'une configuration de sécurité appropriée impliquerait un ordinateur public (ou semi-public) isolé de votre réseau interne. Un serveur Web ou tout ordinateur hébergeant des services accessibles au public doit être en dehors du réseau sécurisé de votre domicile ou de votre bureau. Vous utiliseriez 2 routeurs pour créer une zone de sécurité, ou une zone démilitarisée, entre vous et Internet.
De cette façon, si votre serveur est piraté, il ne peut pas être utilisé comme vecteur pour attaquer vos autres ordinateurs.
Ainsi, la configuration ressemblerait à ceci:
la source
Les réponses sont très bonnes, je ne recommanderais que deux choses:
la source