Поиск файлов во всех каталогах по имени и копирование в другой каталог с помощью rsync

У меня есть два совершенно разных метода решения этой проблемы:

iptables с зонами conntrack

Зоны Contrack позволяют использовать несколько экземпляров conntrack (для каждого сетевого пространства имен ).

Путем добавления тега исходной -зоны к пакету и, таким образом, к потоку можно иметь два экземпляра conntrack, разделяющих (наполовину созданный )поток на две части :обычные пакеты и соответствующие пакеты, каждый в своем собственном потоке. Таким образом, обычные правила NAT будут продолжать работать и могут выполняться дважды вместо одного :один раз для обычных пакетов и один раз для соответствующих пакетов.

Вместо того, чтобы дублировать тест, после одного теста, выполненного на пакете, будет поставлена ​​отметка.

iptables -t raw -A PREROUTING -d dstip/32 -p udp -m udp --dport 27035 -m u32 --u32 "0x0>>0x16&0x3c@0x8=0xffffffff&&0x0>>0x16&0x3c@0xc=0x54536f75&&0x0>>0x16&0x3c@0x10=0x72636520&&0x0>>0x16&0x3c@0x14=0x456e6769&&0x0>>0x16&0x3c@0x18=0x6e652051&&0x0>>0x16&0x3c@0x1c=0x75657279" -j MARK --set-mark 1
iptables -t raw -A PREROUTING -m mark --mark 1 -j CT --zone-orig 1
iptables -t nat -A PREROUTING -p udp -m mark --mark 1 -j REDIRECT --to-ports 21010

Пример результатов conntrack:

# conntrack -E -p udp --orig-port-dst 27035
    [NEW] udp      17 30 src=10.0.3.1 dst=10.0.3.66 sport=52670 dport=27035 [UNREPLIED] src=10.0.3.66 dst=10.0.3.1 sport=27035 dport=52670
    [NEW] udp      17 30 src=10.0.3.1 dst=10.0.3.66 sport=52670 dport=27035 zone-orig=1 [UNREPLIED] src=10.0.3.66 dst=10.0.3.1 sport=21010 dport=52670
 [UPDATE] udp      17 30 src=10.0.3.1 dst=10.0.3.66 sport=52670 dport=27035 src=10.0.3.66 dst=10.0.3.1 sport=27035 dport=52670
 [UPDATE] udp      17 30 src=10.0.3.1 dst=10.0.3.66 sport=52670 dport=27035 zone-orig=1 src=10.0.3.66 dst=10.0.3.1 sport=21010 dport=52670

nftables с notrack и изменение поля заголовка пакета

требуется ядро ​​>= 4.10

(Конечно, метод зон может быть реализован с помощью nftables ).

Здесь NAT выполняется без сохранения состояния, с отключенным conntrack для сопоставления входящих пакетов и всех исходящих ответных пакетов с перенаправленного порта.

nft add table ip raw
nft add chain ip raw prerouting '{type filter hook prerouting priority -300;}'
nft add chain ip raw output '{type filter hook output priority -300;}'
nft add rule ip raw prerouting ip daddr dstip/32 udp dport 27035 @th,64,32 == 0xffffffff @th,96,32 == 0x54536f75 @th,128,32 == 0x72636520 @th,160,32 == 0x456e6769 @th,192,32 == 0x6e652051 @th,224,32 == 0x75657279 notrack udp dport set 21010
nft add rule ip raw output udp sport 21010 notrack udp sport set 27035

(обратите внимание, что u32эквивалентные необработанные фильтры полезной нагрузки могут быть упрощены и фактически упрощаются автоматически с помощью nftables :кажется, что nftables обрабатывает u128внутренне, как видно изnft --debug=netlink list ruleset -a).

1
17.02.2021, 17:16
0 ответов

Теги

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