Почему я не могу использовать SSH с этими правилами брандмауэра?

Почему я не могу использовать SSH с этими правилами брандмауэра?

В настоящее время я пытаюсь подключиться к гостевой системе 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-адрес адаптера host-only из интерфейса 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

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», посколькучестно)

Связанный контент