0

ipf + ipnatを使用してFreeBSD 8.2にファイアウォールをインストールし、WebプロキシとしてSQUID 2.7もインストールしました

すべてのユーザーは問題なくインターネットにアクセスできますが、私の大きな問題は IP 電話です。インターネット上の sip サーバー (外部プロバイダー サービス) にアクセスしようとすると、接続を確立できません。

SIP: ポート 5060-5070 UDP/TCP RTP (音声) トラフィック: ポート 10000-20000 UDP

これは私の現在のシステム構成です。何か問題がありますが、何が原因かわかりません

インターフェイス: rl0 = LAN オフィス 192.168.10.x bge0 = WAN インターネット接続

rc.conf:

squid_enable="YES"
ipfilter_enable="YES"
ipfilter_rules="/etc/ipf.rules"
ipmon_enable="YES"
ipmon_flags="-Ds"
gateway_enable="YES"
ipnat_enable="YES"
ipnat_rules="/etc/ipnat.rules"

ipf.rules:

pass out quick on rl0 all
pass in quick on rl0 all

pass out quick on bge0 all
pass in quick on bge0 all

pass in quick on lo0 all
pass out quick on lo0 all

両方のインターフェイスへのすべてのトラフィックを (一時的に) 開きましたが、良い結果が得られませんでした。すべての IP 電話はまだ機能していません。

ipnat.rules:

rdr rl0 0.0.0.0/0 port 80 -> 127.0.0.1 port 8080 tcp # transparent proxy
rdr bge0 0.0.0.0/0 port 22 -> 127.0.0.1 port 22 tcp # ssh server
map bge0 192.168.10.0/16 -> 0.0.0.0/32 proxy port ftp ftp/tcp
map bge0 192.168.10.0/16 -> 0.0.0.0/32 portmap tcp/udp auto
map bge0 192.168.10.0/16 -> 0.0.0.0/32

すべての ip 電話とコンピューターには、静的 ip、ゲートウェイとしての freebsd サーバー、および有効な DNS サーバーがあります。

4

2 に答える 2

2

NAT の背後にある SIP 電話が機能するには、STUN サーバーが必要です。

(sip プロバイダーから提供されたものを使用するか、ポート コレクションから net/stund を試してください)

電話が 1 台しかない場合は、ポート転送を試すこともできます。

#SIP
#rdr pass on $ext_if proto tcp from any to $ext_addr port = 5060 -> \
    $IP_PHONE port 5060
#RTP
#rdr pass on $ext_if proto tcp from any to $ext_addr port = 5004 -> \
#        $IP_PHONE port 5004
#stun
#rdr pass on $ext_if proto tcp from any to $ext_addr port = 10000 -> \
 #        $IP_PHONE port 10000
于 2011-11-21T16:19:43.463 に答える
1

最初のオプションは、SIP Express Router、またはSERである必要があります。 ウェブサイトは始めるのに最適な場所です。それが失敗すると(何らかの理由でインストールできなくなります)、おそらく古い学校に行かなければならないでしょう。

発生する可能性のある問題は、電話への着信接続がネットワークの外部から来ているため、着信トラフィック用に「保存」されたポートがないことです。定期的に登録することでこの問題の一部を克服できます。または、プロバイダーから特定の電話にトラフィックを渡すようにファイアウォールとNAT構成を設定できますが、接続を確立する電話は1台だけです。各電話の接続を異なるポート経由で送信し、そのポートを特定のIPおよびポートに接続するようにアップストリームプロバイダーを構成する必要があります。例えば:

rdr rtk0 123.123.123.123/32 port 5061 -> 192.168.100.11 port 5061 udp
rdr rtk0 123.123.123.123/32 port 5062 -> 192.168.100.12 port 5062 udp
etc. 

ここで、123.123.123.123はプロバイダーのSIPホストアドレスです。ポート5060+オフセットでも通信するように電話を設定します。

それが接続に役立つ場合でも、RTPの問題が発生する可能性があります。STUNはそれをいくらか助けますが、RTPポートが一意になるように(ある電話からのトラフィックが突然別の電話に現れ始めないように)SIP電話を制限する必要があるかもしれません。SIPとRTPのポート範囲は途方もなく巨大です。たとえば、電話を1台あたり10に制限して、ほとんど問題なく多くの地面をカバーできます。これは次のようになります。

rdr rtk0 123.123.123.123/32 port 10000-10009 -> 192.168.100.11 port 10000 udp
rdr rtk0 123.123.123.123/32 port 10010-10019 -> 192.168.100.12 port 10010 udp

電話のRTP範囲を固有の範囲に設定すると、比較的うまくいくはずです。

RDRでSIPサーバーのアドレスを使用すると、包括的0.0.0.0/0アドレスリダイレクトよりもはるかにリスクが低くなることに注意してください。

于 2012-03-07T22:54:29.680 に答える