Final Fantasy XI

From Protocolinfo

Jump to: navigation, search

Final Fantasy XI Online is a MMORPG game produced by Square Enix Co., LTD.

Contents

[edit] Identification

The following pertains to PlayOnline (including all related software such as FFXI):

[edit] Ports

PlayOnline Server Group:

  • [OUT] TCP 25 SMTP – (PlayOnline) Email client communication outbound.
  • [OUT] TCP 80 HTTP – (PlayOnline) Web information and updates.
  • [OUT] TCP 110 POP3 – (PlayOnline) Email client communication inbound.
  • [OUT] TCP 443 HTTPS – (PlayOnline) Secure 128-bit SSL member data.
  • [OUT] TCP 50000 – 65535 Game Updates, and PlayOnline data.
  • [OUT] UDP 50000 – 65535 Game Play.

According to PlayOnline Q&A the following ports may be used by gaming consoles such as Sony PlayStation 2 and Microsoft XBox.

  • [OUT] TCP 1024 - 65535 (unverified)
  • [OUT] UDP 50000 - 65535 (unverified)

PlayOnline can also be connected via proxy.

[edit] Server Subnets

Observed Subnets:

  • 61.195.56.0/22 [Japan? Square Enix Co. Ltd] (Whois: 61.195.56.0/22) – Game updates?
  • 202.67.48.0/20 [Japan? Square Enix Co. Ltd] (Whois: 202.67.48.0/20) – PlayOnline?
  • 219.117.144.0/20 [US? Square Enix Co. Ltd] (Whois: 219.117.144.0/20) – PlayOnline?

[edit] CIDR

One method of classifying game client data is using the CIDR and ports 50000 to 65535.

# This example classifies traffic one-way; will need to classify the other end of traffic as well.
	if [ $ENABLE_FFXI = "1" ]; then
		echo "		FFXI ENABLED"
		cidrs="61.195.56.0/22 219.117.144.0/20 202.67.48.0/20"
			for cidr in $cidrs; do
				$iptables -t mangle -A $gotochain -p udp --sport 50000:65535 -s $cidr -j MARK --set-mark ${mark}
				$iptables -t mangle -A $gotochain -p tcp --sport 50000:65535 -s $cidr -j MARK --set-mark ${mark}
			done
	fi

[edit] Notes

It maybe possible to create a pattern for PlayOnline communication based off the client "User-Agent" or the PlayOnline server header response: "Content-Type: text/x-playonline-pml". Traffic here transmits on outbound ports 50000-65535 not HTTP port 80. Secure data transmissions communicate through port 443.

Client Request:

"wh000.pol.com" or similar host always seems to resolve to net block 202.67.48.0/20; maybe different depending on regional settings.

GET /pml/game/ff11/optional/oppm01.pml?df=6&ds=0&dt=-1 HTTP/1.1
Host: wh000.pol.com
User-Agent: PlayOnline-PML-Viewer/1.00 [en] (Windows XP)
X-POL-VIEWER-VERSION: Ver.1.18.11
Accept: text/x-playonline-pml, image/x-playonline-ang, image/png, image/jpeg, */*
Accept-Language: en-US
Connection: Keep-Alive
Referer: http://wh000.pol.com/pml/game/ff11/index.pml?SC=0&PF=WIN
Authorization: Digest userName="(snip)", realm="POL", (snip)...

Server Response:

HTTP/1.1 200 OK
Date: Fri, 26 Dec 2008 03:40:08 GMT
Server: Apache/1.3.26 Ben-SSL/1.48 (Unix)
Authentication-Info: rspauth="69197c2ed003aa1cfbb845c013726be8"
Last-Modified: Mon, 31 Mar 2008 11:38:57 GMT
ETag: "11edfd-3030-47f0cd51"
Accept-Ranges: bytes
Content-Length: 12336
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/x-playonline-pml

Other observed content-types: text/x-playonline-pml, image/x-playonline-ang...

It maybe possible to create a pattern for PlayOnline Updates. Traffic here transmits on outbound ports 50000-65535.

Client Request:

Always seems to resolve to net block 61.195.56.0/22.

00000000  44 00 00 00 dc 1e c9 91  50 4f 4c 50 03 00 00 00 D....... POLP....
00000010  00 00 00 00 00 00 01 00  57 32 30 00 30 30 30 31 ........ W20.0001
00000020  20 00 00 00 33 30 30 38  31 32 31 32 5f 31 2f 44  ...3008 1212_1/D
00000030  69 72 65 63 74 2f 70 61  74 63 68 2e 74 78 74 2e irect/pa tch.txt.
00000040  73 6c 63 00                                      slc.

Server Response:

00000000  3c 00 01 00 52 92 f2 61  50 4f 4c 50 04 00 00 00 <...R..a POLP....
00000010  00 00 00 00 00 00 01 00  20 00 00 00 33 30 30 38 ........  ...3008
00000020  31 32 31 32 5f 31 2f 44  69 72 65 63 74 2f 70 61 1212_1/D irect/pa
00000030  74 63 68 2e 74 78 74 2e  73 6c 63 00             tch.txt. slc.
(snip)... data.

[edit] l7-filter

Please add to this section.

[edit] See also

Personal tools