Переведите исходный адрес всех пакетов, оставив конкретный интерфейс с nftables

Я выполняю Сервер Ubuntu 18-04 VM на хосте Zorin.

Я желаю перевести исходный адрес всех пакетов, уезжающих через enp0s3 к 192.168.1.120 с nftables. Это - то, что я сделал:

apt install nftables

modprobe nft_nat

modprobe nft_chain_nat_ipv4

nft add table nat

nft add chain nat post { type nat hook postrouting priority 0 \; }

nft add chain nat pre { type nat hook prerouting priority 0 \; }

nft add rule nat postrouting oif enp0s3 snat to 192.168.2.120

Я добираюсь:

Error: Could not process rule: No such file or directory

Согласно этому сообщению здесь

"Примечание: Вам, вероятно, придется создать/etc/modules-load.d/nftables.conf со всеми связанными модулями nftables, которых Вы требуете как записи для systemd сервиса для работы правильно. Можно получить список модулей с помощью этой команды: $ lsmod | grep '^nf' Иначе, Вы могли закончить со страшной Ошибкой: не Мог обработать правило: Никакая такая ошибка файла или каталога".

Вывод $ lsmod | grep '^nf':

nft_chain_nat_ipv4     16384  2    
nf_conntrack_ipv4      16384  1    
nf_defrag_ipv4         16384  1 nf_conntrack_ipv4    
nf_nat_ipv4            16384  1 nft_chain_nat_ipv4    
nft_nat                16384  0    
nf_nat                 32768  2 nft_nat,nf_nat_ipv4    
nf_conntrack          131072  4    
nft_nat,nf_conntrack_ipv4,nf_nat_ipv4,nf_nat    
nf_tables_inet         16384  4    
nf_tables_ipv6         16384  1 nf_tables_inet    
nf_tables_ipv4         16384  2 nf_tables_inet    
nf_tables              90112  5     
nft_nat,nft_chain_nat_ipv4,nf_tables_ipv6,nf_tables_ipv4,nf_tables_i$    
nfnetlink              16384  1 nf_tables

Я вырезал и вставил это в /etc/modules-load.d/nftables.conf файл без успеха.

Кто-либо знает, как я могу разрешить эту ошибку?

Править:

Я изменил порядок, я добавил цепочки, я добавил "пред" цепочка сначала и вторая цепочка "сообщения". Теперь я получаю другую ошибку:

nft add rule nat postrouting oif eno1 snat to 192.168.2.120
<cmdline>:1:40-41: Error: syntax error, unexpected to
add rule nat postrouting oif eno1 snat to 192.168.2.120
                                       ^^

Эта ошибка кажется нечетной мне, когда я получил этот синтаксис для nftables страницы справочника:

Использование инструкций NAT

создайте подходящую установку таблицы/цепочки для всех дальнейших примеров

добавьте, что туземная таблица добавляет, что цепочечная туземная предварительная маршрутизация {вводит туземный приоритет рычага перед маршрутизацией 0;} добавляют, что цепочечная туземная постмаршрутизация {вводит туземный постприоритет маршрутизации рычага 100;}

переведите исходные адреса всех пакетов, уезжающих через eth0 для обращения 1.2.3.4

добавьте правило туземный oif eth0 snat постмаршрутизации к 1.2.3.4

0
задан 24 September 2018 в 23:30

2 ответа

Хорошо, я понял это.

"postrouting" - это не крючок, а название цепочки. Поскольку моя цепочка была названа "пост", правильный синтаксис:

nft add rule nat post oif enp0s3 snat to 192.168.2.120
0
ответ дан 28 October 2019 в 00:15

Правилом должно быть NFT, добавляет правило туземное сообщение "адрес подсети enp0s3" snat к 192.168.2.120

Пример адреса подсети enp0s3 может быть похожим на 10.4.0.1/16

0
ответ дан 28 October 2019 в 00:15

Другие вопросы по тегам:

Похожие вопросы: