Попробуйте:
openssl x509 -noout -serial -in cert.pem | cut -d'=' -f2 | sed 's/../&:/g;s/:$//'
openssl x509 -noout -serial -in cert.pem
выведет серийный номер сертификата, но в формате serial=0123456709AB
.
Таким образом, он передается в cut -d'=' -f2
, который разделяет вывод на знак равенства и выводит вторую часть-0123456709AB
.
Это отправлено sed
. Первая часть команды sed
s/../&:/g
разбивает строку через каждые два символа(..
)и вставляет двоеточие (:
). Это приводит к01:23:45:67:89:AB:
(обратите внимание на двоеточие в конце ).
Вторая часть команды sed
(s/:$//
)ищет двоеточие в конце вывода и заменяет его пустой строкой, что приводит к желаемому результату.
Или только для ответов openssl
и sed
:
openssl x509 -noout -serial -in test2.crt | sed 's/.*=//g;s/../&:/g;s/:$//'
Добавление s/.*=//g
в начале команды sed
заменяет cut
в первой версии.
Это предполагает, что вы уже удалили нарушенные правила и позаботились о правилах SSH в цепочке INPUT
Ваше заявление DNAT должно выглядеть следующим образом:
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 161 -j LOG --log-prefix "DNAT: " --log-level 0
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 161 -j DNAT --to 192.168.4.2:161
Ваш оператор FORWARD должен выглядеть следующим образом:
iptables -A FORWARD -d 37.34.63.177 -p udp --dport 161 -j LOG --log-prefix "FWD: " --log-level 0
iptables -A FORWARD -d 37.34.63.177 -p udp --dport 161 -j ACCEPT
И, наконец, разрешить обратный трафик:
iptables -A FORWARD -o eth0 -p udp -s 192.168.4.2 --sport 161 -m state --state RELATED,ESTABLISHED -j ACCEPT
Вам действительно не нужен оператор INPUT для работы DNAT