Небольшой скрипт, который увеличивает переменную счетчика для каждой начальной -кавычки и уменьшает ее для каждой конечной -кавычки. Если переменная-счетчик больше 0
, то текстовые фрагменты пропускаются.
#!/bin/bash
# disable pathname expansion
set -f
cnt=0
for i in $(<$1); do
# start quote
if [ "${i##[quote=}" != "$i" ] && [ "${i: -1}" = "]" ]; then
((++cnt))
elif [ "$i" = "[/quote]" ]; then
((--cnt))
elif [ $cnt -eq 0 ]; then
echo -n "$i "
fi
done
echo
Выход:
$ cat q1
text part 1 [quote=foo] outer quote 1 [quote=bar] inner quote [/quote] outer quote 2 [/quote] text part 2 [quote=foo-bar] next quote [/quote] text part 3
$./parse.sh q1
text part 1 text part 2 text part 3
$ cat q2
text part 1 [quote=foo] outer quote 1 [quote=bar] inner quote [foo] [/quote] outer quote 2 [/quote] text part 2 [quote=foo-bar] next quote [/quote] text part 3
$./parse.sh q2
text part 1 text part 2 text part 3
Вы не разрешили петлевое устройство, которое не является -необязательным:
-A INPUT -i lo -m comment --comment loopback -j ACCEPT
добавьте это в качестве самого первого правила, и все готово. Я нашел для вас хорошее развернутое объяснение относительно , что представляет собой это устройство и т. д. на AskUbuntu .
Кроме того, я рекомендую необязательные шаги -шаг 2 :разрешение протокола ICMP:
-A INPUT -p icmp -m limit --limit 5/sec --limit-burst 15 -m comment --comment icmp -j ACCEPT
И, наконец, я советую необязательные шаги -шаг 3 :ограничить SSH-соединения только локальной сетью, просто убедитесь, что вы переключились на свою подсеть:
-A INPUT -s 192.168.0.0/24 -p tcp -m conntrack --ctstate NEW,ESTABLISHED -m tcp --dport 22 -m comment --comment ssh -j ACCEPT
Примечание :Через несколько часов вы должны увидеть такие числа DROP при использовании правила INPUT DROP:
Chain INPUT (policy DROP 8354 packets, 732K bytes)
num pkts bytes target prot opt in out source destination
1 6315 612K ACCEPT all -- lo any anywhere anywhere /* loopback */
2 13 1072 ACCEPT icmp -- any any anywhere anywhere limit: avg 5/sec burst 15 /* icmp */
3 190K 697M ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED /* traffic */
4 0 0 ACCEPT tcp -- any any 192.168.0.0/24 anywhere ctstate NEW,ESTABLISHED tcp dpt:ssh /* ssh */