(excusez-moi d'avance, je suis un pro-windows récemment converti en ubuntu ... si mes questions sont évidentes, dites-le-moi).
Je veux construire un serveur Ubuntu connecté en permanence à Internet. Je ne possède qu'une adresse IP. L’objectif principal du serveur est de servir de contrôleur de code source (probablement pas encore choisi git ou svn ...), mais aussi d’autres utilisations occasionnelles (partage de fichiers avec la famille ou le client, sauvegarde personnelle, hôte d’applications Web Je peux écrire, etc. J'aimerais également pouvoir accéder à tout moment à l'ordinateur pour l'administrer, même derrière le proxy d'un client n'autorisant que le protocole http ou https.
Quelles sont les étapes standard pour y parvenir?
merci d'avance ;)
Lorsqu'il est correctement configuré, OpenSSH est sûr, même sur le port standard. Le fait de l'éloigner du port standard vous évite que vos fichiers journaux soient remplis par des tentatives de connexion non autorisées. Plus de détails sur la fin.
Il est très dangereux d'accéder à votre serveur si vous ne possédez pas le contrôle de l'ordinateur sur lequel vous devez vous connecter (ce qui, à mon avis, est la raison pour laquelle vous devez utiliser un plugin de navigateur).
OpenVPN peut être configuré pour partager TCP ports avec un serveur HTTP/HTTPS, à partir de sa page de manuel :
--port-share host port
Lorsqu’il est exécuté en mode serveur TCP, partagez le port OpenVPN avec une autre application, telle qu’un serveur HTTPS. Si OpenVPN détecte une connexion à son port qui utilise un protocole non OpenVPN, il connectera par proxy la connexion au serveur sur l'hôte: port. Actuellement conçu uniquement pour fonctionner avec HTTP/HTTPS, il serait théoriquement possible de l'étendre à d'autres protocoles tels que ssh.
Il n'est pas recommandé d'utiliser OpenVPN avec une connexion TCP en raison de sa surcharge (établissement de liaison TCP à 3 voies). Si vous n'avez pas le choix, vous pouvez essayer.
En utilisant OpenVPN, vous pouvez éviter toute restriction de port qui vous est imposée et sécuriser la connexion. Veuillez vous référer à Comment puis-je configurer OpenVPN pour pouvoir utiliser Internet en toute sécurité à partir d'un hotspot non sécurisé? pour un guide sur la configuration d'OpenVPN.
Vous ne pouvez pas partager de ports à moins qu'une application ne la prenne en charge (comme OpenVPN), je dois donc vous décevoir à ce sujet.
L'authentification par mot de passe sans limiter les tentatives de connexion pose des problèmes. Pour cette raison, il est préférable d'utiliser l'authentification basée sur une clé et de désactiver complètement l'authentification basée sur un mot de passe.
Sudo apt-get install openssh-server
/etc/ssh/sshd_config
. Pour commencer l’édition, lancez Sudo nano /etc/ssh/sshd_config
. Recherchez la ligne #PasswordAuthentication yes
et remplacez-la par PasswordAuthentication no
. Par défaut, SSH écoute sur le port 22. Si vous souhaitez le modifier, utilisez un port inférieur à 1024 pour des raisons de sécurité. (changez la ligne avec Port 22
)Pour plus de sécurité, vous pouvez configurer une liste d'utilisateurs autorisés à se connecter. Ajouter une ligne avec:
AllowUsers someuser
Remplacez someuser
par le nom d'utilisateur du compte autorisé à se connecter. Plusieurs noms d'utilisateur doivent être séparés par un espace.
ssh-keygen -t rsa
. Entrez les valeurs souhaitées et choisissez une phrase secrète sécurisée.~/.ssh/id_rsa.pub
dans le fichier /home/someuser/.ssh/authorized_keys
sur votre serveur. someuser
est l'utilisateur qui devrait être autorisé à se connecter. (c'est une seule ligne qui doit être copiée, jamais copier le contenu d'un fichier qui commence par -----BEGIN RSA PRIVATE KEY
Rechargez la configuration de votre serveur SSH:
Sudo reload ssh