
Я использую asterisk намалина пи 3; поэтому я хочу защитить пароли. Кто-нибудь может извлечь SD-карту, и пароли будут в открытом виде! Я знаю, что могу зашифровать всю ОС, но было бы неплохо, если бы я мог этого не делать, так как мне нужно защитить только один файл.
Есть3типы ключей/паролей, которые я хочу защитить. Пока что мне удалось защитить 2 пароля из дерева.
В любом случае, вот мой старый sip.conf
незащищенный:
[general]
keepalive=30
bindport=5060
... etc
; Allow tls !
tlsenable=yes
tlsbindaddr=0.0.0.0
tlscertfile=/keys/asterisk.pem ; <---- 1st key unprotected
tlscafile=/keys/ca.crt
tlscipher=ALL
tlsclientmethod=tlsv1
; Peers info ---------------------------------------------
[user1]
secret=somePassword ; < -------- 2nd key unprotected
type=peer
... etc
[user2]
... etc.. ; more unprotected keys
; ----------------------------------------------------------
; elastic sip trunks used to make outbound calls -----------
[Trunk-Provider-1] ;
type=peer
host=someProvider.com
secret=plainTextPassword ; <------------ 3rd password unprotected
username=foo
; ---------------------------------------------------------
А вот и мой новый sip.conf
«защищенный»:
[general]
keepalive=30
bindport=5060
... etc
; Allow tls !
tlsenable=yes
tlsbindaddr=0.0.0.0
tlscertfile=/dev/shm/keys/asterisk.pem ; <---- 1st key located on memory (/dev/shm/)
tlscafile=/dev/shm/keys/ca.crt ; same thing. File is on memory and NOT on disk.
tlscipher=ALL
tlsclientmethod=tlsv1
; Peers info ---------------------------------------------
[user1]
md5secret=4a8e71480c5b1ef0a5d502a8eb98576 ; < -------- 2nd key hashed (protected)
type=peer
... etc
[user2]
... etc.. ; more hashed keys
; ----------------------------------------------------------
; elastic sip trunks used to make outbound calls -----------
[Trunk-Provider-1] ;
type=peer
host=omeProvider.com
secret=password-Of-Provider ; <------------ 3rd password I do not know how to protect this :/ ?
username=foo
; ---------------------------------------------------------
Поэтому мне приходится защищать 3 типа ключей/паролей.
Сертификаты ключей Сертификаты, используемые для шифрования звонков. Я защищаю их, загружая их при загрузке компьютера и помещая их в память (
/dev/shm/
). Если компьютер выключится, файлы будут потеряны.Пароли IP-телефонов (пиры) Это пароли, используемые телефонами (пирами). Чтобы защитить их, я хэширую их. В этой статье объясняется, как это делается:https://www.voip-info.org/wiki/view/Asterisk+sip+md5secret
Пароли провайдера (используются для совершения исходящих звонков) Я не знаю, как защитить эти пароли. Я думал о перемещении местоположения моего файла sip.conf в память, но это нелегко. Для этого, как я полагаю, необходимо переместить все файлы конфигурации.
решение1
Отвечая на свой собственный вопрос:
Я переместил файл /etc/asterisk/sip.conf, создав символическую ссылку. https://stackoverflow.com/a/1951752/637142
# 1. Delete /etc/asterisk/sip.conf we do not want that file on disk. It contains passwords!
rm /etc/asterisk/sip.conf
# 2. create sip.conf on memory (/dev/shm/sip.conf)
touch /dev/shm/sip.conf
... add configuration and passwords... to that file
# 3. Trick asterisk by placing a symbolic link.
# Point file /etc/asterisk/sip.conf ---> /dev/shm/sip.conf
ln -s /dev/shm/sip.conf /etc/asterisk/sip.conf
Нет, когда я обращаюсь к /etc/asterisk/sip.conf, на самом деле я обращаюсь к /dev/shm/sip.conf!