3

В настоящее время я пытаюсь подключиться к гостю Linux Mint через SSH на моем хосте Windows 10. Проще говоря, я пытаюсь успешно подключиться к гостю с учетом определенных правил брандмауэра.

Используя Virtual Box, я включил адаптер только для хоста для виртуальной машины Linux Mint.

При разрешении любого и всего трафика через порт 22 через брандмауэр с этим конкретным правилом разрешить все, я могу успешно подключиться к гостевой машине, используя SSH с моего хоста Windows.

Однако я хочу, чтобы гость Linux принимал только мой IP для SSH. Другими словами, я хочу, чтобы он принимал только мой IP для порта 22 (если это имеет смысл).

Я настроил брандмауэр Linux с этими правилами и не смог после успешного подключения:

GUEST IP 22/tcp ALLOW IN HOST IP 22/tcp

HOST IP 22/tcp ALLOW OUT GUEST IP 22/tcp

Примечание. Термины «GUEST IP» и «HOST IP» являются простыми местозаполнителями для ассоциативного IP-адреса с учетом контекста. В этом случае GUEST IP - это IP-адрес адаптера только для хоста из интерфейса eth1. Само собой разумеется, HOST IP представляет IP-адрес хоста, найденный на моем хосте Windows 10.

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

Моя текущая настройка:

  • Windows 10 (хост) с SSH-клиентом MobaXtrem и SSH-сервером FreeSSHd
  • Linux Mint 17 (гость) с openSSH клиентом и сервером
  • Брандмауэр Windows вообще не трогал
  • В настоящее время брандмауэр Linux отключен, но добавлен в упомянутые правила

Я хотел бы сообщить, что мой опыт работы с системами на базе Linux/Unix очень ограничен, так как он связан с использованием оболочек, SSH и настройкой брандмауэров.

Я буквально только что установил упомянутое программное обеспечение SSH день назад.

TL; DR: я хочу сделать так, чтобы мой гость Linux был настроен на прием только SSH-трафика с моего хост-компьютера.Я предполагаю, что это делается через IP, но я не уверен, как это сделать. После добавления вышеупомянутых правил брандмауэра к гостевой системе Linux, соединение перестало быть успешным, и каждая попытка прекращалась.

Дополнительная информация: - Я видел вокруг этих шеек лесных людей, упоминающих экспедирование порта; Я попробовал, не сработало. Видя, как мне удалось заставить его работать с адаптером только для хоста, я решил, что без этого решения все будет в порядке.

Кроме того, возможно ли вообще подключиться к моему хосту Windows через моего гостя Linux, используя SSH? Я пытался сделать это с моего терминала Linux, но он продолжал говорить, что у меня нет разрешения на это.

Если вам нужны разъяснения или дополнительная информация, пожалуйста, не стесняйтесь спрашивать.

Заранее спасибо!

- ТРГ

1 ответ1

3

TCP-соединения имеют два порта, источник и пункт назначения. Для исходящих соединений SSH порт назначения равен 22, но порт источника выбирается случайным образом. (Только очень немногие протоколы, например BGP, используют идентичные порты источника и назначения.)

Поэтому вам необходимо ослабить правила, чтобы:

allow incoming from hostIP (any)/tcp to guestIP 22/tcp
allow outgoing from guestIP 22/tcp to hostIP (any)/tcp

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

В iptables рабочий набор правил будет выглядеть так:

-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j REJECT

# (Well, *I think* this should work.)
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -j REJECT

(Включил "разрешить ICMP" потому что честно)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .