Я только недавно начал использовать эту замечательную ОС, и, хотя у меня есть опыт работы с сетями Windows, я очень плохо знаком с тем, как я могу выполнять определенные задачи в FreeNAS 9.3 (FreeBSD), особенно с джейлами.
По сути, я пытаюсь выяснить, как маршрутизировать трафик из одной тюрьмы в другую, все это управляется и настраивается из самой хост-системы (желательно один набор правил, поэтому мне нужно только подключиться к хосту и настроить все там, если происходят изменения),
Итак, вот мой макет (default-gateway - это мой маршрутизатор на .1):
FreeBSD ip = .50 igb0 ipfw0 bridge0 epair0a epair1a default-gw = .1 -> openvpn-client-jail ip = .201 epair0b default-gw = .1 -> другие ip-тюрьмы = .200 epair1b default-gw = .1
Поэтому я хочу добиться, чтобы «other-jail» в .200 не связывался через мой маршрутизатор, а вместо этого отправлял весь трафик в «openvpn-jail» в .201
В настоящее время я включил pf на своем хосте (.50), но еще не создал никаких правил. Это та часть, где я был бы рад, если бы кто-то мог взяться за руки и объяснить это мне на примерах.
Я предполагаю, что мне придется изменить шлюз по умолчанию для "другой тюрьмы" на .201, или он должен быть хостом в .50, что в конечном итоге я бы установил правила, правильно?
Должен ли я просто включить шлюз ipv4 (на хосте или на прокси-сервере?) и создать правило "rdr" на этой машине тогда? Что-то вроде:
rdr на epair1a inet proto tcp для порта {пользовательский порт приложения} -> epair0a
Поэтому я попытался сделать это и отредактировал свой rc.conf на своем хосте следующим образом:
pf_enable="YES"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
gateway_enable="YES"
#alias
ifconfig_igb0_alias0="inet 192.168.1.201 netmask 255.255.255.0"
ifconfig_igb0_alias1="inet 192.168.1.200 netmask 255.255.255.0"
Затем я добавил .201 (openvpn jail) в качестве шлюза по умолчанию для .200 (другой jail), но у меня были проблемы с подключением, поэтому я пошел в openvpn jail, добавил его в rc.conf и перезагрузил jail:
gateway_enable="YES"
Тюрьмы теперь могут успешно пинговать друг друга, и хозяин может также пинговать каждого из них. Другая машина внутри этой сети также может видеть обе тюрьмы, подобные этой. Запуск traceroute в другой тюрьме показывает, что он проходит через .201 openvpn jail. Однако он не может общаться с внешним миром, поэтому пинг Google или Yahoo никуда не денутся.
Но ... оказывается, что если я остановлю службу openvpn, моя другая тюрьма сможет добраться до внешнего мира, и traceroute покажет, что она идет по маршруту .201 -> .1, что правильно и работает. Но как только я запускаю сервис openvpn, другой джейл не может общаться ни с чем снаружи, только с устройствами в моей локальной сети. В этом случае traceroute показывает .201 в качестве первого перехода, но после этого это просто * * *, * * * ...
Нужно ли устанавливать правило pf? Но он уже работает без одного, если демон openvpn остановлен, может ли он иметь какое-то отношение к openvpn, не позволяющему другой машине отправлять свой трафик через клиента, подобного этому?