Я пытаюсь ввести новое правило в iptables. Я хотел бы поместить правило в предпоследний номер строки (т.е. непосредственно перед оператором DENY ALL). например.
[vagrant@controller ~]$ sudo iptables -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
2 ACCEPT icmp -- anywhere anywhere
3 ACCEPT all -- anywhere anywhere
4 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
5 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
тогда,
sudo iptables -I INPUT 5 -t filter -d 192.168.33.10 -m state --state NEW -j ACCEPT
было бы:
[vagrant@controller ~]$ sudo iptables -L --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
2 ACCEPT icmp -- anywhere anywhere
3 ACCEPT all -- anywhere anywhere
4 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
5 ACCEPT all -- anywhere 192.168.33.10 state NEW
6 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
проблема в том, что я не могу понять, как я могу автоматизировать это с помощью соли, не зная явно, какой номер последней строки? Есть ли способ запустить команду в стеке соли и использовать результат этой команды в качестве переменной для шаблона jinja?
sudo iptables -L INPUT --line-numbers | tail -n1 | awk '{print $1}'