Поддерживает ли upset hash:net,port 0.0.0.0/0

Для извлечения, например, значения узла valuesub -каждого узла instruction, который также имеет узел namesub -, значение которого равно Exterior Color, с использованием XMLStarlet:

xmlstarlet sel -v '//instruction[name = "Exterior Color"]/value' -nl file.xml

Учитывая файл



  
    
      Interior Finish
      WHITE
      0
    
    
      Exterior Color
      WHITE
      0
    
    
      Base Vinyl Color
      WHITE
      0
    
  
  False

Это вернет строку WHITE.

Следующее будет возвращать каждый name, который соответствует значению WHITEво всех instructionузлах:

xmlstarlet sel -t -v '//instruction[value = "WHITE"]/name' -nl  file.xml

1
03.04.2020, 16:19
1 ответ

Правильным синтаксисом было бы использование 0.0.0.0/0, так как 0.0.0.0 по умолчанию равно 0.0.0.0/32. Увы, как вы обнаружили, это не поддерживается:

# ipset add testset 0.0.0.0/0,22
ipset v7.3: The value of the CIDR parameter of the IP address is invalid

Вместо этого вы можете использовать тот же трюк, что и в OpenVPN при переопределении маршрутов :разделить 0.0.0.0/0 пополам :0.0.0.0/1 и 128.0.0.0/1:

ipset add testset 0.0.0.0/1,22
ipset add testset 128.0.0.0/1,22

Примечание:

Обычно для сервера, на котором работает локальный ssh-сервер, параметры iptables , вероятно, должны быть такими:

iptables -I INPUT 1 -m set --match-set testset src,dst -j ACCEPT

Поскольку мы находимся в цепочке INPUT , то есть получение , src,dstозначает проверку удаленного (источника )IP и локального (пункта назначения )порт, а src,srcбудет означать проверку удаленного (исходного )IP-адреса и удаленного (исходного )порта. Единственным использованием для этого было бы разрешить ответный трафик от удаленных серверов ssh, но это обычно уже обрабатывается с помощью -m conntrack --ctstate ESTABLISHEDв другом месте.

0
28.04.2021, 23:18

Теги

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