Попробуйте эту простую команду sed,
sed 's/\([A-Za-z]\+\)/=\1/g' file
Пример:
$ (echo 'A B C'; echo 'A C D F') | sed 's/\([A-Za-z]\+\)/=\1/g'
=A =B =C
=A =C =D =F
Эта команда поместит знак =
перед A – Z
, a – z
.
ИЛИ
попробуйте также эту команду,
sed 's/\([ ]\+\)/\1=/g; s/^\(.*\)$/=\1/g' file
Пример:
$ (echo 'A B C'; echo 'A C D F') | sed 's/\([ ]\+\)/\1=/g; s/^\(.*\)$/=\1/g'
=A =B =C
=A =C =D =F
Эта команда заменит один или несколько пробелов одним или несколькими пробелами плюс знак =
, а также поместит =
при запуске.
Решение найдено Ошибка была в синтаксисе многих конф. файлы Сначала файл
/etc/inet/ike.preshared
должно быть так, ip для использования должен быть IP-адрес туннеля, а не IP-адрес «основного» интерфейса.
# ike.preshared on hostA
#…
{ localidtype IP
localid 10.4.0.1
remoteidtype IP
remoteid 10.4.0.2
key keyinhexformat
# The preshared key can also be represented in hex
# as in 0xf47cb0f432e14480951095f82b
# key "This is an ASCII Cqret phrAz, use str0ng p@ssword tekniques"
}
Чтобы сгенерировать ключ в шестнадцатеричном формате, используйте эту команду
echo "mypassword" | od -t x1|head -1|tr -d ' '
Файл
/etc/inet/ike/config
должно быть похоже на это, даже в этом случае используйте IP-адрес туннеля, а не IP-адрес основного интерфейса.
p1_xform
{ auth_method preshared oakley_group 5 auth_alg sha encr_alg 3des }
p2_pfs 2
{ label "test1-test2" local_addr 10.4.0.1 remote_addr 10.4.0.2 p1_xform { auth_method preshared oakley_group 5 auth_alg sha256 encr_alg aes } p2_pfs 5 }
Конечно, в hostB нужно поменять местами 10.4.0.1 с 10.4.0.2 для обоих файлов.
Наконец, отредактируйте файл /etc/inet/ipsecinit.conf
{laddr 192.168.0.21 dir both} bypass {}
{laddr 10.4.0.1 raddr 10.4.0.2} ipsec {encr_algs aes encr_auth_algs sha256 sa shared}
Конечно, в хосте B должно быть наоборот 10.4.0.1 с 10.4.0.2 и 192.168.0.21 должен быть изменен с основным IP-адресом узла hostB
Теперь запустите скрипт на hostA
ifconfig ip.tun0 unplumb
ifconfig ip.tun0 plumb
ifconfig ip.tun0 10.4.0.1 10.4.0.2 netmask 255.255.255.0 tsrc 192.168.0.21 tdst 192.168.0.199 router up
for i in ike ipsec/policy;do svcadm refresh $i; done
Теперь запустите скрипт на hostB
ifconfig ip.tun0 unplumb
ifconfig ip.tun0 plumb
ifconfig ip.tun0 10.4.0.2 10.4.0.1 netmask 255.255.255.0 tsrc 192.168.0.199 tdst 192.168.0.21 router up
for i in ike ipsec/policy;do svcadm refresh $i; done
И все работает, проверяйте с помощью ping и snoop.