kaillera Serverの使用ポートについて
20140110
調査環境
IOS12.4(6)T
CentOS7.x
CentOS6.x
CentOS5.x
kaillerasrv0.92
◆調査理由
Linux版はWindows版とは違うポートを使用するのは周知の事実ではありますが、
使用ポートについての情報が少ない為調査を実施します。
サーバーの立て方については以下参照
→LinuxでkailleraServer
◆調査方法について
UDPポート1000-6000,32700-65535をアクセス許可した状態での運用ログを元に調査。
→TCP/UDP27888については、使用理由が明確な為除外します。
下限値を調査する為、ルータ側にてUDP30000-32700への接続ログを調査。
◆ログについて
kaillera Server(以下、kaillerasrv)のログに有る「Negotiating login: HELLOD00D○○○○○○」部分に注目します。
→ルーターの接続ログと上記ログを照らし合わせることにより、上記ログ「○」部分がUDPポートと同一である事が分かります。
◆調査結果
以上の内容を当サーバーログ約半年分を元に調査した結果、以下の事が判明しました。
使用された最低ポート 32768
使用された最大ポート 60991
最大ポートについては、「65535」までのアクセス許可設定であるにもかかわらず、
半年間一度も「60991」を超えていない事から、「61000」を上限値と断定。
最低ポートについては、ルーター側ログにて30000-32700間で該当すると思われるログは見当たらず、
kaillerasrvログから「32700」が下限値と断定。
◆UDP1000-6000について
ここで一つ疑問が生まれます。「UDP1000-6000ポートはいつ使用されている?」
kaillerasrvログからは確認出来ない事から、ルータにてログを取得するよう設定して調査を実施。
◆調査結果
約1週間分のログを精査したところ、ルーターにてpermitされたIPアドレスと
kaillerasrvに接続しているIPアドレスで一致する物が見当たりませんでした。(ゲーム開始時に使用されると推測していた為)
結果、UDP1000-6000は使用されていないと断定
◆以上を踏まえ、Linux版kaillerasrvに必要なポートをまとめてみましょう。
TCP
27888
UDP
27888
32700-61000(訂正理由は最下部にて)
32768-61000(デフォルト設定の場合)
◆Windows版kaillerasrvは以下
TCP
27888
UDP
1000-6000
◆最後に
全て書き終えてから調べて判明した事ですが、Linuxは「/proc/sys/net/ipv4/ip_local_port_range」
にて自由利用が可能なポートを指定しているそうです。
当サーバー設定を確認したところ、「32768 61000」となっており、調査結果とほぼ一致。
→セキュリティの観点から、kaillerasrvの使用ポートを少なくしたい場合はこの値を変更する事で可能
→設定方法は下記参照
〜設定方法〜
まずは現在の設定値を確認しておきましょう。
[root@server ~]# cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
試しに自由使用ポート「49152-65535」辺りに変更してみましょう。
[root@server ~]# echo "49152 65535" > /proc/sys/net/ipv4/ip_local_port_range
設定の確認
[root@server ~]# cat /proc/sys/net/ipv4/ip_local_port_range
49152 65535
再起動時にデフォルト設定に戻ってしまう為、デフォルトの値を変更する。
[root@server ~]# echo "net.ipv4.ip_local_port_range = 49152 65535" >> /etc/sysctl.conf
ネットワークのリスタートorシステムの再起動で反映
[root@server ~]# /etc/rc.d/init.d/network restart
or
[root@server ~]# reboot
※システムでの使用ポートを制限している点に注意して値を設定して下さい。
以上