Comment puis-je configurer SSH pour qu'il soit limité à mon réseau local?

33

J'essaie de relier mon nouvel ordinateur portable fonctionnant sous 11.10 à mon ancien ordinateur portable fonctionnant sous 8.04 via mon routeur à l'aide de SSH.

Cette question est posée et répondue sur ubuntuforums ici:

http://ubuntuforums.org/showthread.php?t=1648965

J'ai pensé qu'il serait utile d'avoir une réponse plus définitive ici.

Remarque: je devais d'abord installer openssh-server sur l'ordinateur portable auquel je tentais de me connecter et ouvrir le port SSH de mon pare-feu à l'aide de firestarter.

Klenwell
la source
pouvez-vous s'il vous plaît nous dire ce qui n'est pas "définitif" assez sur la réponse de slooow sur ce fil? Sinon, votre question semble ambiguë.
d_inevitable
@d_inévitable Pour un, ce n'est pas la seule réponse et ce n'est pas autrement indiqué comme étant la bonne. C'est celui que j'aurais choisi, mais c'est pourquoi j'ai pensé qu'il serait utile de migrer cette question. Il peut également être utile d’inclure des instructions générales ou un lien utile sur la configuration de SSH entre deux ordinateurs locaux.
Klenwell

Réponses:

46

Vous pouvez restreindre l'accès à votre serveur ssh de plusieurs manières.

IMO le plus important est d'utiliser les clés ssh et de désactiver l'authentification par mot de passe.

Voir les pages wiki suivantes pour plus de détails

https://help.ubuntu.com/community/SSH/OpenSSH/Keys

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#Disable_Password_Authentication

Vous pouvez limiter l'accès à un sous-réseau spécifique de plusieurs manières. Je suppose que votre serveur ssh est sur le sous-réseau 192.168.0.0/16 avec une adresse IP de 192.168.0.10, ajustez en conséquence;)

Routeur

Une ligne de défense consiste à utiliser un routeur. Veillez à désactiver UPnP et à ne pas autoriser le transfert de port.

Configuration SSH

Vous pouvez définir plusieurs options dans /etc/ssh/sshd_config. L'un est l'adresse d'écoute. Si vous définissez une adresse d'écoute sur votre sous-réseau. Une adresse IP privée n'est pas routable sur Internet.

http://compnetworking.about.com/od/workingwithipaddresses/f/privateipaddr.htm

ListenAddress 192.168.0.10

Vous pouvez également utiliser les AllowUsers

AllowUsers [email protected]/16

Un peu lié, vous pouvez également changer le port

Port 1234

Voir http://manpages.ubuntu.com/manpages/precise/man5/sshd_config.5.html

Wrapper TCP

Comme indiqué dans le post du forum, vous pouvez utiliser TCP Wrapper. Le wrapper TCP utilise 2 fichiers /etc/hosts.allowet/etc/hosts.deny

Modifier /etc/hosts.allowet ajouter votre sous-réseau

sshd : 192.168.0.

Modifier /etc/hosts.denyet tout refuser

ALL : ALL

Voir aussi http://ubuntu-tutorials.com/2007/09/02/network-security-with-tcpwrappers-hostsallow-and-hostsdeny/

Pare-feu

Enfin, vous pouvez pare-feu sur votre serveur. Vous pouvez utiliser iptables, ufw ou gufw.

iptables

sudo iptables -I INPUT -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j REJECT

Veuillez ne pas utiliser DROP dans iptables, voir http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject

ufw

sudo ufw allow from 192.168.0.0/16 to any port 22

gufw a une interface graphique

GUFW

Voir https://help.ubuntu.com/community/UFW

https://help.ubuntu.com/community/IptablesHowTo

Panthère
la source
Certains réseaux utilisent 10.0.0.0 comme adresse IP. Dans ce cas, remplacez 192.168.0.0/24 par 10.0.0.0/8 pour permettre la plage 10.0.0.0-10.255.255.255. Si vous souhaitez n'autoriser qu'une seule adresse IP, utilisez quelque chose comme 192.168.1.2/32. Une explication très détaillée peut être trouvée sur [ serverfault.com/q/49765/51929](Comment fonctionne le sous-réseau?)
Lekensteyn
1
S'il vous plaît ne pas utiliser DROP dans iptables - Voir chiark.greenend.org.uk/~peterb/network/drop-vs-reject
Panther
Cette page ne mentionne pas les IP spoofées comme raison possible d'utiliser DROP over REJECT. Cette réponse sur Sec.SE explique pourquoi ce n’est pas vraiment pertinent (les paquets source sont plus gros que les paquets retournés).
Lekensteyn
@Lekensteyn - Je n'ai pas vu de discussion sur une adresse IP usurpée dans ce lien. Comme vous le suggérez, les discussions DDoS et IP usurpées vont au-delà de cette discussion et je ne suis pas convaincue que DROP est supérieur à REJECT pour beaucoup de choses. Les DDo sont complexes et sans information sur la cause des DDo, il est impossible de les défendre. Par exemple, j'ai vu WP utilisé en tant que DDoS et la résolution du problème se trouve dans la configuration appropriée de WP et dans peu ou rien avec iptables.
Panthère
ListenAddresssemble être la solution la plus simple et la plus élégante
code_monk
1

SSH (Secure Shell) est utilisé pour accéder et transférer des données en toute sécurité (paire RSA_KEYS utilisée). Vous pouvez accéder aux données en utilisant ssh de deux manières: 1. Ligne de commande 2. en utilisant le navigateur de fichiers

Ligne de commande: Pour cela, vous n'avez rien à installer. La première tâche est de vous connecter à un autre ordinateur.

ssh other_computer_username@other_computer_ip

Cette commande demandera un mot de passe, qui est le mot de passe de l'autre ordinateur (pour un nom d'utilisateur spécifique). Vous venez de vous connecter au shell d'un autre ordinateur. Pensez que ce terminal ressemble au terminal de votre ordinateur. Vous pouvez tout faire en utilisant shell vers un autre ordinateur que vous pouvez faire dans votre ordinateur

Navigateur de fichier: vous devez installer openssh-server

sudo apt-get install openssh-server

Pour vous connecter, allez dans fichier-> connectToServer

entrez la description de l'image ici

Shantanu
la source
Les instructions en ligne de commande ont été la première chose que j'ai essayée. J'ai été en mesure de cingler mon autre ordinateur à son adresse IP du réseau local. Mais quand j'essaie de SSH, ça se bloque. Je suppose donc que je dois d'abord configurer mon autre ordinateur pour autoriser l'accès SSH.
Klenwell
assurez-vous que votre routeur ne bloque pas le port 22 ou ssh
shantanu
Merci. Je savais déjà tout ce que vous avez mentionné d’expérience, mais c’était très facile de l’entendre de manière simple et structurée.
lakesare