В настоящее время я пытаюсь подключиться к гостевой системе 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», посколькучестно)