Я пытаюсь использовать Ubuntu в качестве роутера, ограничивая компьютер в моей частной сети тем, к чему он может подключаться в Интернете.
В Ubuntu есть две сетевые карты, одна из которых подключена к Интернету (enp0s3), другая - к одному частному ПК (enp0s8).
Для начала я хотел посмотреть, смогу ли я просто разрешить DNS из личного ящика через Ubuntu. Я следовал некоторым инструкциям, чтобы добавить некоторые правила «разрешения маршрута», например:
ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), allow (routed)
New profiles: skip
To Action From
-- ------ ----
8.8.8.8 on enp0s3 ALLOW FWD Anywhere on enp0s8
8.8.4.4 on enp0s3 ALLOW FWD Anywhere on enp0s8
10.0.1.5 on enp0s8 ALLOW FWD Anywhere on enp0s3
10.0.1.5 - мой частный ПК. Используя Wireshark, я вижу, что DNS-запросы выполняются как на enp0s3, так и на enp0s8, но те, которые на enp0s3, не имеют ответа.
Итак, немного почитав, я обнаружил, что мне нужно настроить NAT и маскировку, поэтому я добавил в правила следующее:
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Forward traffic through eth0 - Change to match you out-interface
-A POSTROUTING -s 10.0.1.0/24 -o enp0s3 -j MASQUERADE
# don't delete the 'COMMIT' line or these nat table rules won't
# be processed
COMMIT
Это сработало, но слишком хорошо. Теперь весь трафик выходит и возвращается на мой частный ПК, по умолчанию запрещается исходящий и другие правила UFW, кажется, все обойдено.
Итак, мой вопрос прост: я хочу, чтобы частный ПК получал подключение через Ubuntu, например, с предоставленным NAT, но с исходящими ограничениями, как я думал, я изначально настроил с использованием командных строк ufw. Есть ли способ, которым я могу заставить правила UFW так или иначе применяться после того, как NAT делает свое дело?
TIA.
Кажется, что направляющие/передающие правила являются абсолютно отдельными к нормальным правилам брандмауэра. Я перемещаю материал NAT в after.rules и изменил правило по умолчанию для "направленного" трафика для "отклонения". Кажется, что POSTROUTING происходит после значения по умолчанию отклоняют правило, применяется - поэтому, если что-то будет отклонено правилом по умолчанию, то это не будет туземное поднятый с постели. Возможно добавить пользовательские правила, конечно (вида "ufw, маршрут позволяют..."), и они могут разрешить трафик, прежде чем значение по умолчанию отклонит, применяется, и это будет затем поднято с постели как ожидалось.