久しぶりにiPhone用のソフトフォンについて書いてみます。私のiPhoneも先日3GSから4Sに変わり、iOSもバージョンアップでiOS5となりました。
iPhone用のソフトフォンは、これまではsipクライアントというsipフォン群 vs Skypeといった感じでしたが、最近はソーシャル系ソフトフォンというジャンル(勝手に命名ww)が新しく出てきました。
ViberとかOnSayと言われるサービスですが、特にOnSayはTwitterの相互フォロワー同士であればすぐに会話が出来るという優れものです。音質もなかなかで日本製というのもポイント高いです。
今回はZoiperがiPhone用に無料アプリを出したのでインプレッションを書いてみます。2011/10/17にアップされているのでまだ出たばかりですが、Zoiperは元々PC用のソフトフォンでは結構老舗のブランドです。使い方はとても簡単で設定も迷うところはあまりありません。
また、Zoiperは使用するプロトコルがsipとiax2の両方をサポートしている珍しいというか貴重なソフトフォンです。もちろん、iPhone用もしっかり両方使えるようになっています。今回はiax2を使った設定を紹介します。
本来iax2はAsterisk(IP電話交換機のソフトウェア)同士が通信するために作られたプロトコルですが、1つのポートで制御情報と音声データを流すので、NATを簡単に越えることができます。また、Asterisk側でもsipクライントで音声用に使うrtpの為に広い範囲のUDPポートを開放する必要もなく、iax2用に1つのポートを開くだけでグローバル側のiax2クライントとの接続が可能となります。
Settingのメニュー画面よりAccountsを選択し、画面右上の+をタップして新しいアカウントを作成します。まずは、sipかiax2かを選択する画面がでるので、IAX accountを選択します。
Account nameは任意、ServerはAsteriskが動いているサーバ名、もしくはIPアドレスです。
次に、User name、Password、Caller IDを入力します。最後にEnable on startをONにすればアカウントの設定は完了です。
Codecの設定画面です。残念ながら無料版ではG729aは使えないので、私はGSMを一番上にしてuLawを二番目に設定しています。3G環境でZoiperを使う予定がないのであれば、uLawを一番上にしておくと良いでしょう。
最後にConnectivityにあるKeep aliveですが、これはWiFi環境でしか有効ではありません。このKeep aliveをONにして3Gに切り替えるとしばらくはバックグランドで待ち受けが可能ですが、数分すると接続が切れてしまいます。
しかし、WiFi環境であればこの設定をONにしておけばバックグランドでの待ち受けが可能です。
※通信エラーを起こすとどうもリカバリーは自動では行わないみたいなので、一度WiFiエリアから離れて、再びエリア内に戻ってもレジストが復活しません。これはちょっとバグっぽい?ww
※バッテリーの持ちについては試験中~
音質に関してはCodecに依存するのは当たり前ですが、WiFi環境であれば全く問題ありません。しかし、3G環境では遅延とエコーがちょっと気になるかもしれません(一昔前の国際電話の雰囲気です)。有料版がでてエコーキャンセルやG729aが使え、転送もしっかり動作するようになると実用レベルになると思います。
fai2banのdovecot用フィルタの続きです。
前に書いたフィルタを設置した後しばらく様子を見ていたのですが、pop3での総当たり攻撃にはmail.logだけを監視していてはだめ
なことが解りました。
auth.logを監視するフィルタを追加します。
この手のフィルタは一度設定したからといって安心しないで、しばらくはしっかりログを監視して検知漏れがないよう気をつけなくてはいけません… と、反省しています。
■ログを監視していて気になることがあれば、また追記します。
前に書いたフィルタを設置した後しばらく様子を見ていたのですが、pop3での総当たり攻撃にはmail.logだけを監視していてはだめ

auth.logを監視するフィルタを追加します。
/etc/fail2ban/filter.d/dovecotauth.conf |
この手のフィルタは一度設定したからといって安心しないで、しばらくはしっかりログを監視して検知漏れがないよう気をつけなくてはいけません… と、反省しています。
■ログを監視していて気になることがあれば、また追記します。
logを見てアクセスを遮断してくれるfail2banがとても便利なので、最近は管理している全てのサーバに投入しています。sipサーバへの総当たり攻撃用のフィルタは以前書いたので、今回は標準のフィルターには入っていないQpopperとdovecotのフィルタについて書いてみます。
フィルタを作成するには正規表現が解っていないといけないのですが、しっかり理解するのはなにげに大変です。最後に参照ページをまとめておきますので、興味があれば読んでみてください。
1.QpopperはQUALCOMM社がメンテしていて、pop3デーモンとしては歴史のあるプログラムです。最近はimapが主流になってきましたが、まだまだ現役で使われています。
※フィルタは2個作りましたが、たぶんどちらか一つで大丈夫だと思います。
※デフォルトのbanタイム(アクセスを遮断する時間)は600秒ですが、7,200秒(2時間)程度が良いと思います。
2.dovecotはimapデーモンではなんとなくデファクトっぽい感じになってきました。
mail dir形式でもmail box形式どちらも対応していて、もちろん暗号化も出来ますのでとても使いやすいプログラムです。
下記のフィルターでpop3とimapどちらのアクセスでも動作します。
3.最後にフィルタで検知したときの動作を指定するのを忘れずに!
4./etc/fail2ban/jail.confの[DEFAULT]の中にignoreip = 127.0.0.1 という行があります。
ここにネットワークアドレスを書いておくと、そのアドレスからのアクセスについてはフィルタが働かなくなります。
DMZにサーバがいて、社内からはローカルIPでアクセスするような場合は、そのネットワークアドレス(例:192.168.0.0/24)を書いておくと良いです。もし社内からのアクセスはIPマスカレード等で一個のアドレスに絞られていて、その状態で誰かがフィルターに引っかかると、社内全員がサーバにアクセス出来なくなります。
■出来上がったフィルタは、fail2ban-regex で動作をテスト出来ます。
もし、logファイルにフィルタに引っかかるようなアクセスが記録されている場合、
fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/dovecot.conf
と入力してエンターを押すと、logファイルを調べフィルタに引っかかる行があるとリストアップしてくれます。
フィルタを作成するには正規表現が解っていないといけないのですが、しっかり理解するのはなにげに大変です。最後に参照ページをまとめておきますので、興味があれば読んでみてください。
【環境】
Debian GNU 6.0 squeeze
linux-image-2.6.32-5-686
fail2ban 0.8.4-3
dovecot-imapd 1:1.2.15-7
dovecot-pop3d 1:1.2.15-7
qpopper 4.0.9.dfsg-1
1.QpopperはQUALCOMM社がメンテしていて、pop3デーモンとしては歴史のあるプログラムです。最近はimapが主流になってきましたが、まだまだ現役で使われています。
※フィルタは2個作りましたが、たぶんどちらか一つで大丈夫だと思います。
※デフォルトのbanタイム(アクセスを遮断する時間)は600秒ですが、7,200秒(2時間)程度が良いと思います。
1-1.auth.logを監視するフィルタ |
2.dovecotはimapデーモンではなんとなくデファクトっぽい感じになってきました。
mail dir形式でもmail box形式どちらも対応していて、もちろん暗号化も出来ますのでとても使いやすいプログラムです。
下記のフィルターでpop3とimapどちらのアクセスでも動作します。
/etc/fail2ban/filter.d/dovecot.conf |
3.最後にフィルタで検知したときの動作を指定するのを忘れずに!
/etc/fail2ban/jail.conf |
4./etc/fail2ban/jail.confの[DEFAULT]の中にignoreip = 127.0.0.1 という行があります。
ここにネットワークアドレスを書いておくと、そのアドレスからのアクセスについてはフィルタが働かなくなります。
DMZにサーバがいて、社内からはローカルIPでアクセスするような場合は、そのネットワークアドレス(例:192.168.0.0/24)を書いておくと良いです。もし社内からのアクセスはIPマスカレード等で一個のアドレスに絞られていて、その状態で誰かがフィルターに引っかかると、社内全員がサーバにアクセス出来なくなります。
■出来上がったフィルタは、fail2ban-regex で動作をテスト出来ます。
もし、logファイルにフィルタに引っかかるようなアクセスが記録されている場合、
fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/dovecot.conf
と入力してエンターを押すと、logファイルを調べフィルタに引っかかる行があるとリストアップしてくれます。
【参照サイト】
○正規表現について サルにもわかる正規表現入門
○dovecotのフィルタ Using Fail2ban with Dovecot