Правильный способ обратного переключения на iptables в Debian 10 или 11

Во всех примерах я предполагаю, что файл состоит из одного IP-адреса на строку.

1. завиток и магия

Вы можете достичь своей цели с помощьюcurl(1)и некоторой магии вокруг

curl -d "{\"data\": [\"UpTimeSinceLastReboot\"]}" \
  -H "Content-Type: application/json" \
  -k \
  -u USERNAME:PASSWORD \
  -w ",%{remote_ip}\t" \
  <(sed 's#^#https://#;s#$#/api/v1/mgmt/config/get#' /path/to/file) \
  | tr -ds '\n\t' '\t\n'

Я разделил команду на несколько строк для лучшего понимания:

  • Я переместил учетные данные из URL в параметр curl
  • Ключ вводится из подоболочки для префикса IP-адреса с протоколом https :// и добавления пути /api/v1/mgmt/config/get
  • Опция
  • -w записывает удаленный _ip после ответа. Формат ,REMOTE_IPиспользуется позже в tr для создания желаемого формата
  • передача этого черезtr(1)удаляет возможную новую строку в конце ответа и создает новую строку в конце (это нехорошо, но должно работать ).

Примечание :В этом примере результат

RESPONSE,IP
…

2. на петлю

for ip in $(cat /path/to/file)
do
  echo -ne "$ip\t"
  curl -d "{\"data\": [\"UpTimeSinceLastReboot\"]}" -H "Content-Type: application/json" -k https://USERNAME:PASSWORD@$ip/api/v1/mgmt/config/get
done

результат:

IP,RESPONSE
…

3. цикл while

цикл while

while read ip
do
  echo -ne "$ip\t"
  curl -d "{\"data\": [\"UpTimeSinceLastReboot\"]}" -H "Content-Type: application/json" -k https://USERNAME:PASSWORD@$ip/api/v1/mgmt/config/get
done < /path/to/file

результат:

IP,RESPONSE
…

0
12.09.2021, 21:40
1 ответ

Вы по-прежнему можете использовать iptables в Debian 10 и 11. Конфигурация по умолчанию в новых развертываниях 11 (, также известных как яблочко ), iptables не устанавливается, но его можно легко добавить.

По умолчанию утилиты iptables (iptables, iptables -save, ebtables и т. д. )фактически настраивают фильтр nftables (и создают правила nftables ). Таким образом, iptables на самом деле является ссылкой на iptables -nft.

Пакеты netfilter -Permanent и iptables по-прежнему доступны, предоставляя как iptables -nft, так и iptables -legacy, см.:

# apt info iptables

Если вы используете iptables -nft, вы можете просто загрузить правила iptables и перечислить их с помощью.

# nft list ruleset

Обратите внимание, -если вы измените конфигурацию с помощью nftables, изменения не будут доступны для чтения iptables, поэтому вы не сможете двигаться вперед и назад.

Вы выбрали правильный подход, не полагаясь на автоматическое преобразование и потратив время на изучение нового сетевого фильтра. После того, как вы привыкнете к новому синтаксису, вы сможете создавать более простые в управлении и эксплуатации конфигурации.

2
06.10.2021, 21:46

Теги

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