У меня есть два VMs (в VirtualBox), они оба - Сервер Ubuntu 18.10 (космический):
Server
, имеет два NICs: один в NAT, другом в intnetClient
, имеет только один NIC, в intnet, для общения с Server
Теперь я хотел бы сделать Server
шлюз, и таким образом, я включил передачу IP (путем изменения sysctl.conf
, перезапущенный это и так далее.
Когда я проверяю sudo ufw status
(на Server
), говорит это inactive
. Хорошо. Но я не могу проверить с помощью ping-запросов внешний IP-адрес на Client
пока я не установил iptables на Server
с
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
Как только я нажимаю Enter, проверяю с помощью ping-запросов введенную команду Client
действительно работает. Но почему, так как UFW неактивен??
UFW быть неактивным не имеет никакого отношения к нему.
В iptables
язык, у Вас должен быть a MASQUERADE
набор правила в таблице NAT для трафика для работы, будучи переданным исходящий независимо. Иначе система не будет знать, что сделать с пакетами. Это остается случаем, даже если Вы непосредственно используете iptables
управлять *filter
правила (для установки INPUT
, OUTPUT
, и т.д. списки управления доступом и такой, или даже только к ALLOW
весь трафик в тех policysets) - NAT всегда находится в игре, и необходимо добавить правило NAT разобрать переданную транспортную подмену к Интернету как основной IP сервера.
Поэтому необходимо добавить правило, ли с помощью UFW или не для того, чтобы заставить систему понимать, как перевести пакет и направить его через сервер к Интернету, и таким образом как автоматически обработать реверс, направляющий также.
Эта СУТЬ GitHub, которую я нашел, имеет довольно хорошее объяснение того, что сделать для этого для UFW:
Заключительный шаг должен добавить NAT к конфигурации ufw. Добавьте следующее к/etc/ufw/before.rules незадолго до правил фильтра.
# NAT table rules *nat :POSTROUTING ACCEPT [0:0] # Forward traffic through eth0 - Change to match you out-interface -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE # don't delete the 'COMMIT' line or these nat table rules won't # be processed COMMIT
У меня также было подобное наблюдение, однако в моем случае ниже происходит
, я использую Ubuntu 18.04