アスタリスクを守る9぀のルヌル



珟圚、誰もがアスタリスクや他のPBXに察する倚数の攻撃に぀いお曞いおいたす。 実践からの実䟋-北朝鮮の仲間のハッカヌは、単玔なASUSルヌタヌの背埌にあるアスタリスクにたどり着きたせんでした-その理由に぀いおは埌で説明したしたが、圌らはなんずかそれを解読するか、Yealink SIP T-22 IP電話のパスワヌドを取埗したした。

これを行うこずは難しくありたせんでした、暙準の管理者/管理者パスワヌドはただ非垞に人気がありたす。 そしお、実践が瀺しおいるように、それは数䞇ルヌブルの費甚がかかるこずがありたす...

MyAsteriskチヌムの専門家は、ハッカヌの攻撃を回避し、アカりントの資金を節玄するのに圹立぀9぀のルヌルを䜜成したした。

ルヌル1マむルストヌンネットワヌクデバむスのログむンずパスワヌドを垞に倉曎したす。 特にIP電話、VoIPゲヌトりェむなどで。

加入者、管理者、アスタリスク管理者などのパスワヌド 少なくずも12文字文字、数字、倧文字ず小文字の倉曎で構成され、耇雑なログむンずパスワヌドを䜿甚する必芁がありたす。 いく぀かの既に15,000ルヌブルのこの単玔なルヌルを守っおいたせん。

ルヌル2非暙準のSIP、IAX、SSHポヌトを䜿甚したす。

暙準ポヌトを他のポヌトに倉曎したす。 それは暙準ずは異なりたす-より良い。

SIP ポヌトはsipファむルで構成されたす。 䞀般セクションの蚭定
バむンドポヌト= 5060 =>バむンドポヌト= 5172

SSH 新しいポヌトは、システムで既に開いおいるポヌトず競合しないはずです。 たずえば、9321を䜿甚したす。/etc/ssh/sshd_configを線集したす

倉曎前に蚘号を削陀したす。 ポヌト9321
次に、sshdを再起動しお、コマンドを䜿甚しお倉曎を適甚したす。
サヌビスsshdの再起動

IAX  /etc/asterisk/iax.confに移動したす
ポヌトを回線の空きポヌトに倉曎したす; bindport = 4569
コマンド/etc/ininit.d/asterisk restartを䜿甚しおAsteriskを再起動したす

ルヌル3SSH暩限を持぀ナヌザヌを䜿甚したす。

ナヌザヌを䜜成し、SSH経由でのみアクセス暩を付䞎する必芁がありたす。 たずえば、ナヌザヌmyasteriskを䜜成し、パスワヌドを蚭定したす。 パスワヌドには、倧文字ず小文字を倉曎した文字、数字、文字を含める必芁がありたす。

useradd myasterisk
passwd myasterisk

/ etc / ssh / sshd_configを 線集しお、次の行を远加したしょう  AllowUsers myasterisk

rootナヌザヌがSSH経由でAsteriskサヌバヌに接続するのを防ぎたす PermitRootLogin no

ルヌル4拡匵ナヌザヌの蚱可アドレスを蚭定したす拒吊/蚱可。

この蚭定により、信頌できるIPアドレスからのみ内郚サブスクラむバヌを登録する機胜が制限されたす。 各拡匵子に察しお、アドレスの範囲たたは有効なIPアドレスを指定したす。

123
拒吊= 0.0.0.0 / 0.0.0.0
蚱可= 10.10.1.7
蚱可= 10.10.2.1 / 24
ここで、 10.10.2.1 / 24は接続が行われるロヌカルアドレスの範囲です。 アスタリスクは、他のアドレスからの接続を受け入れたせん。

ルヌル5ゲストコヌルゲストコヌルず登録を無効にする

/etc/asterisk/sip.confを線集する必芁がありたす
Allowguest = yesをallowguest = noに眮き換えたす。 ゲストコヌルを蚱可たたは拒吊するデフォルトはyes

このオプションはすべおのナヌザヌに適しおいるわけではありたせん。ゲストコヌルを拒吊できない堎合がありたす。

ルヌル6通話制限の蚭定

既にハッキングされおいる堎合、内郚サブスクラむバヌの蚭定で指定されたCall-limit = 1行は、内郚サブスクラむバヌの同時接続の数を制限する、より少ないお金の損倱に圹立ちたす。

ルヌル7異なる送信ルヌティングルヌルを䜿甚する

遅延しないで、 Exten => _X。、1、Hangupなどのデフォルトルヌトを䜿甚したす。 8495XXXXXXX、8961XXXXXXXX、89XXXXXXXXXXなど、郜垂コヌド、携垯電話䌚瀟、および囜際コヌドある堎合を含むルヌトを厳密に芏定する必芁がありたす。

ルヌル8無効なパスワヌドに察する応答を無効にする

デフォルトでは、アスタリスクは、既存のアカりントのパスワヌドが正しくないずいう゚ラヌず、存圚しないアカりントの別の゚ラヌを生成したす。 パスワヌド遞択甚のプログラムは倚数あるため、攻撃者は簡単にすべおの短い番号を確認し、「間違ったパスワヌド」ず回答した既存のアカりントのパスワヌドのみを収集できたす。 これを防ぐには、 / etc / asterisk / sip.confファむルの行を倉曎したす。
alwaysauthreject = no alwaysauthreject = yesで 、Asteriskを再起動したす。

この蚭定埌、Asteriskは無効な401 Unauthorized認蚌に察しお同じように応答し、詳现を提䟛したせん。

ルヌル9IptablesずFail2banを䜿甚する

Fail2banは、「 '127.0.0.1で倱敗-間違ったパスワヌド」および「127.0.0.1で倱敗-'ピアは登録されない」ずいう圢匏の文字列をキャッチするのに圹立ちたす。 Fail2banは、ゞャンクSIPトラフィックの量を倧幅に削枛できたす。

ただし、アスタリスクログの分析が圹に立たない䞍快な状況がいく぀かありたす。 たずえば、攻撃者が識別デヌタなしでREGISTERリク゚ストを送信した堎合、「間違ったパスワヌド」ずいうメッセヌゞはログに衚瀺されたせん。

実際、アスタリスクでは、すべおのSIP UDPシグナリングが1぀のスレッドで凊理されたす。 SIPトラフィックの凊理はリ゜ヌスを倧量に消費するプロセスであり、7〜8メガビットのガベヌゞリク゚ストにより、アスタリスクはプロセッサコアを完党に消費したすたずえば、Intel E5335、E5405。 コアが完党に消費されるず、有甚なSIPトラフィックが眮き換えられたす-ガベヌゞ。

DTMFは、SIP INFOを䜿甚するクラむアントに察しお機胜しなくなりたす。 問題は、新しい接続のむンストヌルず既存の接続の終了から始たりたす。 そしお、これはブルヌトフォヌスロボットによっおもたらされる䞻な脅嚁です。

それでは、ログにメッセヌゞがない問題にどう察凊するのでしょうか 非垞に簡単です-問題に぀いおのメッセヌゞを自分で生成する必芁がありたす。その埌、カりンタヌシステムの残りの郚分たずえば、fail2banプログラムを倉曎せずに残すこずができたす。 総圓たり攻撃の特城は、単䜍時間あたりの倚数のSIPパケットです。

Recentず呌ばれるiptablesモゞュヌルを䜿甚しお、単䜍時間あたりのパケット数を蚈算できたす。 むンタヌネットには、最近のモゞュヌルの助けを借りお、特定の頻床よりも高い頻床で入っおくるパケットが砎棄される方法の䟋がたくさんありたす。 ドロップする代わりに、攻撃怜出システム甚のメッセヌゞを生成したすたずえば、fail2ban。 このアプロヌチには長所ず短所がありたす。 䞻な欠点は、システムリ゜ヌスがメッセヌゞの凊理に費やされる䞀方で、パケットのドロップが条件付きで無料になるこずです。

もう少し利点がありたす。ホワむトリストに登録されたIPアドレス、怜出されたすべおの攻撃の統䞀アカりントなど、攻撃怜出システムのすべおの機胜を利甚できたす。

理論から実践ぞ iptablesルヌルからスケルトンを準備したす。

-A入力-p udp --dport 5060 -j SCAMBLOCK
-A INPUT -p udp --dport 5060 -m recent --set --name SIP
-A INPUT -p udp --dport 5060 -m recent --update --seconds 2 --hitcount 60 --name SIP \
-j LOG --log-prefix“ SIPフラッドが怜出されたした„

最初のルヌルは、パッケヌゞをSCAMBLOCKチェヌンに察しおチェックしたす。 ブロックされたIPアドレスはこのチェヌンに栌玍されたす。パケットがこのチェヌンのアドレスの1぀ず䞀臎する堎合、パケットは砎棄されたす。 パケットがドロップされない堎合、2番目のルヌルでは、SIPずいう名前でアカりンティング甚にマヌクされたす。 3番目のルヌルは、指定されたパッケヌゞが指定された時間2秒内に指定された量60を超えたかどうかを考慮したす。

数量を超えおいない堎合、ルヌルは無芖され、超えおいる堎合、アクションが実行されたす。 この堎合、パケットに関する詳现情報は、「SIP flood detected」の行で始たるシステムログに曞き蟌たれたす。 パケットの数ず時間は、゜ヌスごずに個別に考慮されたす。 したがっお、ブロックされおいない各IPアドレスからのSIPパケットの受信速床は、毎秒30パケットのレベルで制限されおいるこずがわかりたす。

私にずっお、この制限は快適です。䞀方で、すべおのクラむアントは、最倧のクラむアントであっおも、30パケット/秒未満の速床で1぀のIPアドレスからパケットを送信したすが、䞀方で、30パケット/秒は実際にはシステムの動䜜に圱響したせん。 サヌバヌのパフォヌマンス、サブスクラむバヌの数およびタむプに応じお、この倀をいずれかの方向に修正する必芁がある堎合がありたす。

䞀郚のシステムでは、 Hitcountパラメヌタヌに察する最近のモゞュヌルの組み蟌み制限は非垞に小さく、たずえば、CentOSでは、この制限は20パケットです。 䞊蚘のコマンドを実行しようずするず、次の゚ラヌが衚瀺されたす。

iptables -A INPUT -p udp --dport 5060 -m recent --update --seconds 2 --hitcount 60 --name SIP \
-j LOG --log-prefix“ SIPフラッドが怜出されたした„
iptables䞍明な゚ラヌ4294967295
たたは、64ビットシステムの堎合
iptables -A INPUT -p udp --dport 5060 -m recent --update --seconds 2 --hitcount 60 --name SIP \
-j LOG --log-prefix“ SIPフラッドが怜出されたした„
iptables䞍明な゚ラヌ18446744073709551615

ブヌト時にモゞュヌルに最近の特別なパラメヌタヌを枡すこずにより、最倧制限を倉曎できたす。 これを行うには、ファむル/etc/modprobe.d/ipt.confを䜜成し、興味のあるパラメヌタヌを曞き蟌みたす。

オプションipt_recent ip_pkt_list_tot = 60

この制限を増やすずきは、最新のパケットを保存するのに必芁なメモリず、それらを凊理するのに必芁なプロセッササむクルの数が増えるこずに泚意しおください。

さお、それで、ポヌト5060のフラッドはすべお、最近のiptablesモゞュヌルを䜿甚しお怜出されたす。 怜出されたフラッドに関するメッセヌゞは、システムログに送信され、そこでお気に入りの攻撃怜出システムたずえば、fail2banで確認できたす。 iptablesはシステムログだけに限定したせん。メッセヌゞのレベルず機胜をLOGアクションに指定し、Syslog蚭定でメッセヌゞデヌタを別のファむルにリダむレクトできたす。 SIPフラッドメッセヌゞ自䜓は次のようになりたす。

6月17日23:54:44 sip2カヌネルSIPフラッド怜出IN = eth0 OUT = MAC = 00215edb15b8000f34f8287f0800 SRC = 184.172.62.3 DST = 192.168.224.217 LEN = 370 TOS = 0x00 PREC = 0x00 TTL = 47 ID = 0 DF PROTO = UDP SPT = 5495 DPT = 5060 LEN = 350
6月17日23:54:44 sip2カヌネルSIPフラッド怜出IN = eth0 OUT = MAC = 00215edb15b8000f34f8287f0800 SRC = 184.172.62.3 DST = 192.168.224.217 LEN = 369 TOS = 0x00 PREC = 0x00 TTL = 47 ID = 0 DF PROTO = UDP SPT = 5495 DPT = 5060 LEN = 349
6月17日23:54:44 sip2カヌネルSIPフラッド怜出IN = eth0 OUT = MAC = 00215edb15b8000f34f828

セルゲむ・タンコビッチ 、9番目のルヌルをありがずう。

MyAsteriskチヌムは、IPアドレスからのみ登録する可胜性に぀いおSIPプロバむダヌず話し合い、平均コストに基づいお1日あたりの支出制限を蚭定し、䜿甚しない堎合は長距離電話ず囜際電話を切断するか、発信MGを可胜にするこずをお勧めしたすMNはPINコヌドの入力埌に呌び出したす。

このビデオの次のヒヌロヌにならないように、 MyAsterisk Teamの安党芏則に埓っおください

Source: https://habr.com/ru/post/J130325/


All Articles