Как я могу настроить SSH так, чтобы он был ограничен моей локальной сетью?

33

Я пытаюсь связать мой новый ноутбук с 11.10 и мой старый ноутбук с 8.04 через мой маршрутизатор, используя SSH.

Этот вопрос задают и отвечают на Ubuntuforums здесь:

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

Я думал, что было бы полезно иметь более точный ответ здесь.

Примечание: мне нужно было сначала установить openssh-сервер на ноутбук, к которому я пытался подключиться, и открыть порт SSH в брандмауэре с помощью firestarter.

klenwell
источник
Можете ли вы сказать нам, что недостаточно "окончательно" об ответе slooow в этой теме? В противном случае ваш вопрос кажется неоднозначным.
d_inevitable
@d_inevitable Во-первых, это не единственный ответ, и он не указан как правильный. Это тот, который я бы выбрал, но именно поэтому я подумал, что было бы полезно перенести этот вопрос. Это может также помочь включить общие указания или полезную ссылку при настройке SSH между двумя локальными машинами.
klenwell

Ответы:

46

Вы можете ограничить доступ к вашему SSH-серверу разными способами.

ИМО самым важным является использование ключей ssh ​​и отключение аутентификации по паролю.

Смотрите следующие вики-страницы для деталей

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

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

Вы можете ограничить доступ к определенной подсети несколькими способами. Я предполагаю, что ваш ssh-сервер находится в подсети 192.168.0.0/16 с IP-адресом 192.168.0.10, измените его соответствующим образом;)

маршрутизатор

Одной из линий защиты является использование маршрутизатора. Обязательно отключите UPnP и не разрешайте переадресацию портов.

Конфигурация SSH

Вы можете установить несколько параметров в /etc/ssh/sshd_config. Одним из них является адрес для прослушивания. Если Вы установили адрес прослушивания в своей подсети. Частный IP-адрес не маршрутизируется через Интернет.

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

ListenAddress 192.168.0.10

Вы также можете использовать AllowUsers

AllowUsers you@192.168.0.0/16

Несколько связанный, вы также можете изменить порт

Port 1234

См. Http://manpages.ubuntu.com/manpages/precise/man5/sshd_config.5.html.

TCP-обертка

Как указано в сообщении на форуме, вы можете использовать TCP Wrapper. TCP-обертка использует 2 файла, /etc/hosts.allowи/etc/hosts.deny

Отредактируйте /etc/hosts.allowи добавьте свою подсеть

sshd : 192.168.0.

Редактировать /etc/hosts.denyи отрицать все

ALL : ALL

Смотрите также http://ubuntu-tutorials.com/2007/09/02/network-security-with-tcpwrappers-hostsallow-and-hostsdeny/

Межсетевой экран

Последнее вы можете брандмауэр вашего сервера. Вы можете использовать iptables, ufw или 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

Пожалуйста, не используйте DROP в iptables, см. 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 имеет графический интерфейс

Gufw

Смотрите https://help.ubuntu.com/community/UFW

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

пантера
источник
Некоторые сети используют 10.0.0.0 в качестве IP-адреса, в этом случае замените 192.168.0.0/24 на 10.0.0.0/8, чтобы разрешить диапазон 10.0.0.0-10.255.255.255. Если вы хотите разрешить только один IP-адрес, используйте что-то вроде 192.168.1.2/32. Очень подробное объяснение можно найти на [ serverfault.com/q/49765/51929 ]( Как работает подсеть ?)
Лекенштейн
1
Пожалуйста, не используйте DROP в iptables - см. Chiark.greenend.org.uk/~peterb/network/drop-vs-reject
Panther
На этой странице не упоминаются поддельные IP-адреса в качестве возможной причины использования DROP over REJECT. Этот ответ на Sec.SE объясняет, почему он на самом деле не актуален (исходные пакеты больше, чем возвращенные пакеты).
Лекенштейн
@Lekensteyn - я не видел обсуждение поддельной IP в этой ссылке. Как вы предполагаете, DDoS и поддельный IP выходят за рамки этого обсуждения, и я не уверен, что DROP превосходит REJECT по многим параметрам. DDos являются сложными и без информации о причине DDos невозможно защитить. Например, я видел WP, используемый в качестве DDoS, и решение проблемы заключается в правильной настройке WP и мало или совсем не связано с iptables.
Пантера
ListenAddressкажется самым простым и элегантным решением
code_monk
1

ssh (безопасная оболочка) используется для безопасного доступа и передачи данных (используется пара RSA_KEYS). Вы можете получить доступ к данным с помощью ssh двумя способами: 1. Командная строка 2. с помощью файлового браузера

Командная строка: для этого вам не нужно ничего устанавливать. Первая задача - войти на другой компьютер.

ssh other_computer_username@other_computer_ip

Эта команда запросит пароль, который является паролем другого компьютера (для определенного имени пользователя). Вы только что вошли в оболочку другого компьютера. Думаю, этот терминал похож на терминал вашего компьютера. Вы можете сделать все, используя оболочку для другого компьютера, что вы можете сделать на своем компьютере

Файловый браузер: необходимо установить openssh-сервер

sudo apt-get install openssh-server

Для входа перейдите в файл-> connectToServer

введите описание изображения здесь

Шантану
источник
Направление командной строки было первым, что я попробовал. Я смог проверить связь с другим компьютером по IP-адресу локальной сети. Но когда я пытаюсь SSH, он зависает. Поэтому я предполагаю, что мне нужно сначала настроить другой компьютер, чтобы разрешить доступ по SSH.
klenwell
убедитесь, что ваш роутер не блокирует 22 порта или ssh
shantanu
Спасибо. Я уже знал все, что вы упомянули из опыта, но было очень легко услышать это просто и структурировано от кого-то другого.
Озеро