راه اندازی SRTP و TLS برای سیموتل

در این آموزش یاد خواهیم گرفت که چگونه از پروتکل سیگنالیگ و RTP در شبکه خود محافظت کنیم.

به صورت پیش فرض انتقال صدا در شبکه به صورت غیر رمز منتقل میگردد.با فعال کردن SRTP صدای ارسالی به صورت رمز و با فرکانس درهم ریخته ارسال میگردد.این پروتکل جهت رمزنگاری انتقال صدا با استاندارد RFC3711 از سوی بنیاد IETF است.

به جهت احراز هویت قوی با استفاده از پروتکل TLS یک گواهی نامه احراز هویت صادر می گردد.با این کار تنها EndPoint هایی که دارای این گواهی نامه هستند اجازه رجیستر شدن روی سرور را خواهند داشت.
این پروتکل نسخه ارتقا یافته SSLاست که از سوی کمپانی Netscape معرفی شده است.در واقع بعد از ورژن سوم SSL معرفی و از سوی بنیاد IETF با استاندارد RFC5246 تصویب گردید.این پروتکل در لایه انتقال است و وظیفه ایمن نمودن تراکنش‌های ارتباطی وتولید کلید امن بین کلاینت و سرور را دارد.

ابتدا کتابخانه libSRTP با استفاده از دستورالعمل های زیر در مسیر usr/src نصب میکنیم.

cd /usr/src/

اول این کتابخانه دانلود میکنیم

wget https://github.com/cisco/libsrtp/archive/refs/tags/v2.5.0.tar.gz

سپس آنرا استخراج میکنیم

tar zxvf v2.5.0.tar.gz

سپس دستور های زیر را به ترتیب برای نصب وارد می کنیم

cd libsrtp-2.5.0/

./configure

make

make runtest

make install

cd /usr/src/asterisk-18.14.0.s.2/

./configure --with-crypto --with-ssl --with-srtp=/usr/local/lib

make

make install

سپس در مسیر etc/simotel/ یک فولدر با نام keys می سازیم.

mkdir /etc/asterisk/keys

سپس اسکریپت simo_tls_cert در مسیر usr/src قرار دهید

جهت ایجاد دسترسی لازم از دستور زیر استفاده کنید

chmod 755 simo_tls_cert

و یک مجوز certificate self-signed و همچنین یک asterisk certificate ایجاد کنید.
استفاده از گواهینامه ها یا Certificate ها یکی از راه های تامین امنیت و رمزنگاری ارتباطات است. گواهی self-signed یک گواهی TLS/SSL است که توسط شخصی که آن را ایجاد کرده است به‌جای یک CA قابل‌اعتماد امضاشده است.
گواهی‌های خود-امضا، ارتباط بین سرور و کلاینت‌ها را رمزنگاری می‌کنند. با این حال از آنجا که این ارتباط از سوی هیچ مرجع تأیید مورد اعتماد از سوی مرورگرهای وب تأیید نشده است، کاربران نمی‌توانند از این گواهی برای اعتبارسنجی خودکار سرور شما استفاده کنند.

./simo_tls_cert -O “simotel” -d /etc/simotel/keys -b 2048

آپشن های دستور بالا :

آپشن O- : نام سازمانی مان را مشخص میکند.

آپشن d- : برای مشخص کردن مسیر قرار گرفتن key ها مورد استفاده قرار میگیرد.

آپشن b- : اندازه فایل کلید خصوصی را مشخص می کند

فایل پیکربندی etc/simotel/keys/tmp.cfg را ایجاد می کند.

می‌توانید از این فایل پیکربندی برای ایجاد گواهی‌های اضافی بدون وارد کردن مجدد اطلاعات فیلدهای گواهی استفاده کنید.

از شما خواسته میشود تا برای/etc/simotel/keys/ca.key یک پسورد وارد کنید که باید پسوردی انتخاب کنید که بعدا آن را به خاطر بیاورید.

فایل/etc/simotel/keys/ca.crt ایجاد خواهد شد.

مجددا از شما خواسته میشود که پسورد وارد کنید و سپس فایل /etc/simotel/keys/simotel.key ایجاد خواهد شد.

فایل /etc/simotel/keys/simotel.crt به صورت اتوماتیک ایجاد میشود.

برای بار سوم از شما خواسته میشود تا پسورد را وارد کنید و فایل /etc/simotel/keys/simotel.pem ایجاد خواهد شد که ترکیبی از فایل های simotel.key و simotel.crt میباشد.

سپس برای دیوایس sip مان یک certificate کلاینت ایجاد میکنیم.

./simo_tls_cert -m client -c /etc/simotel/keys/ca.crt -k /etc/simotel/keys/ca.key -O “simotel” -d /etc/simotel/keys -o client -b 2048

آپشن -m client- : به اسکریپت میگوید که نیاز به یک client certificate داریم و نه یک server certificate

آپشن c- : مشخص کننده مجوز certificate (برای خودمان) است که از آن استفاده میکنیم.

آپشن k- : برای مجوز certificate تعریف شده در بالا key فراهم میکند.

آپشن O- : نام سازمانی مان را مشخص میکند.

آپشن d- : پوشه برای قرار گرفتن فایل های key را مشخص مینماید.

آپشن o- : نام فایل key میباشد که میخواهیم ایجاد شود.

اگر وارد پوشه با دستور زیر شویم.

ls /etc/simotel/keys/

فایل های زیر موجود است.

ca.cfg ca.crt ca.key client.crt client.csr client.key client.pem simotel.crt simotel.csr simotel.key simotel.pem tmp.cfg

دستور زیر را در فایل modules.conf با مسیر etc/asterisk/modules.conf قرار میدهیم

load => res_crypto.so

فایل /etc/asterisk/sip.conf به شکل زیر ویرایش می کنیم

[general]

tlsenable=yes

tlsbindaddr=0.0.0.0:5061

tlscertfile=/etc/simotel/keys/simotel.crt

tlsprivatekey=/etc/simotel/keys/simotel.key

در پنل وب سیموتل از بخش PBX => User داخلی مدنظر را ویرایش کرده و در بخش More Options مقادیر زیر را اضافه می کنیم

transport=tls
encryption=yes

سپس با دستور زیر سرویس استریسک ری استارت می کنیم.

service asterisk restart

همانطور که دیدید تماس ها را با استفاده از TLS و SRTP امن کردیم.

1 پسندیده

با سلام
ممنون از مطلب خوبتون،

دو نکته:
۱-توضیح نداده‌اید که فایل simo_tls_cert را از کجا باید بگیریم؟

۲-آیا روی تلفن ویپ (مثلاً تلفن یالینک) هم باید تنظیمات خاصی انجام بدهیم؟ یا صرفاً تنظیمات سمت سرور انجام میشود؟

ممنون میشم که آموزش خوبتون را با افزودن دو مورد فوق، ویرایش و کامل کنید.

1 پسندیده

با سلام و احترام

به محتوای فایل simo_tls_cert از طریق لینک زیر میتوانید دسترسی داشته باشید.
https://dl.mysup.ir/support/simo_tls_cert
برای کانفیگ های لازم در آی پی فون میتوانید لینک زیر را مطالعه بفرمایید.

باتشکر از همراهی شما

1 پسندیده