Я использую звездочку на Raspberry Pi 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 типа ключей / паролей.

  1. Ключи сертификатов Сертификаты, используемые для шифрования вызовов. Я защищаю его, загружая его при загрузке компьютера и помещая в память (/dev/shm/). Если компьютер выключится, файлы будут потеряны.

  2. Пароли IP-телефонов (одноранговые) Это пароль, используемый телефонами (одноранговыми). Чтобы защитить их, я хеширую их. В этой статье объясняется, как это сделать: https://www.voip-info.org/wiki/view/Asterisk+sip+md5secret

  3. Пароли провайдера (используются для исходящих звонков) Я не знаю, как защитить эти пароли. Я думал о перемещении расположения моего файла sip.conf в память, но это не так просто. Это требует, чтобы переместить все файлы конфигурации, я верю.

1 ответ1

0

Отвечая на мой собственный вопрос:

Я переместил файл /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!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .