「Asterisk SIP セキュリティ」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(iptablesなどソースIPによるフィルタリング)
(iptablesなどソースIPによるフィルタリング)
11行目: 11行目:
 
 特定のIPアドレスないしは、レンジからのREGISTERやSIPのセッションしか通さないのであれば、そのIPアドレスに対してのみSIP(5060)とRTP(UDPの10000~20000など)を開きます。<br>
 
 特定のIPアドレスないしは、レンジからのREGISTERやSIPのセッションしか通さないのであれば、そのIPアドレスに対してのみSIP(5060)とRTP(UDPの10000~20000など)を開きます。<br>
 
 ただしこの方法は「相手」のIPアドレスが明確な場合にのみ使える方法です。<br>
 
 ただしこの方法は「相手」のIPアドレスが明確な場合にのみ使える方法です。<br>
 +
==ドメイン認証を使う==
 +
sip.confのグローバルに以下の設定を追加します。
 +
domain=nanntoka.kanntoka.tld
 +
こうすると、SIPチャネルはこのドメインを持つものからのREGISTER以外は受付けなくなります。ただし、IPアドレスをドメインに使っている場合には、このIPアドレスも併記する必要があります。<br>
 +
domain=nanntoka.kanntoka.tld
 +
domain=192.168.1.120
 +
このように複数を記述することができます。
 +
 
==SIPのユーザ名/パスワードを、わかりにくくする==
 
==SIPのユーザ名/パスワードを、わかりにくくする==
 
===パスワードを長くする===
 
===パスワードを長くする===

2010年5月11日 (火) 22:04時点における版

AsteriskのSIPのセキュリティを向上させる方法

大前提

 まず第一に用事がない(外からREGISTさせる必要がない)Asteriskはインターネットから到達可能な所に置かない、つまりインターネットに出さない/開かないのが当然の措置です。一般的な内線網であれば、外部との接続にはゲートウェイ等が用いられるためIPリーチャブルなところにAsteriskを置く必要はありません。
 サンプル設定ファイルをそのまま使用してはいけません。サンプル設定ファイルの中身は「誰でも」見られますし、公開されています。つまり攻撃者も同じ情報を入手できるということです。
 当たり前の話ですが、外部に対してサーバを開くことの危険性を理解していないのであれば、サーバをインターネット上に出すべきではありません。

総当たり対策

SIPのユーザ名、パスワードを総当たりしてくる攻撃の対策方法。
総当たりで来るので、対策はそこそこ面倒です。

iptablesなどソースIPによるフィルタリング

 一般的なセキュリティ対策と同様に通す/通さないIPアドレスが明確な場合には効果的な対策のひとつです。
 特定のIPアドレスないしは、レンジからのREGISTERやSIPのセッションしか通さないのであれば、そのIPアドレスに対してのみSIP(5060)とRTP(UDPの10000~20000など)を開きます。
 ただしこの方法は「相手」のIPアドレスが明確な場合にのみ使える方法です。

ドメイン認証を使う

sip.confのグローバルに以下の設定を追加します。

domain=nanntoka.kanntoka.tld

こうすると、SIPチャネルはこのドメインを持つものからのREGISTER以外は受付けなくなります。ただし、IPアドレスをドメインに使っている場合には、このIPアドレスも併記する必要があります。

domain=nanntoka.kanntoka.tld
domain=192.168.1.120

このように複数を記述することができます。

SIPのユーザ名/パスワードを、わかりにくくする

パスワードを長くする

まず第一にパスワードを長くし、わかりにくい文字列に変更すると総当たりされた場合に、ヒットする確率を下げることができます。

ピア名を長くする

サンプルの設定ファイルでは簡素化のために"内線番号=SIPピア名"という形で記述していますが、これは必ずしもイコールである必要はありません。ここをイコールにしている理由は

exten => _2XX,1,Dial(SIP/${EXEN})

のように内線番号そのままでSIPピアにダイヤルしたいからです。もし、この利便性を捨ててかまわないのであれば、以下のような記述はアリです。

---sip.conf---
[4207f1257d2a12cb]
username=4207f1257d2a12cb
secret=なんちゃら
 ・
 ・
---extensions.conf
exten => 201,1,Dial(SIP/4207f1257d2a12cb)

内線番号とSIPのピア名の紐付けを行っているのはextenです。なので、extenの中で正しく記述されていれば、SIPのピア(ユーザ)名は内線番号と一致している必要はありません。