Jump to content
Sign in to follow this  
Dwarden

ARMA 2: Operation Arrowhead - Linux Server beta 1.60.87589

Recommended Posts

Thx guys! It's my mistake with that bad english! I will try it and will post the result. But I think this is my solution too!

Thx!

Share this post


Link to post
Share on other sites
The Linux DS calculates the mod hash improperly, causing every Linux server to appear as yellow or maybe even red depending on the client configuration.

We use a Python script to fix this and replace the broken hash with the proper one (requires python-nfqueue):

#!/usr/bin/env python
# ArmA 2: OA GameSpy query responder

import sys
import os
import socket
import nfqueue
import string

def handle_pkt(dummy, payload):
   pkt     = payload.get_data()
   pkt_len = len(pkt)

   if pkt_len >= 29:
       data = string.replace(
           pkt[28:],
           'da39a3ee5e6b4b0d3255bfef95601890afd80709',
           'c7fec358b415d6c61ea65ff9e2b2dede8afdc1e6'
       )

       pkt = "%s\x00\x00%s" % (pkt[:26], data)

       return payload.set_verdict_modified(nfqueue.NF_ACCEPT, pkt, pkt_len)

   payload.set_verdict(nfqueue.NF_ACCEPT)

if __name__ == '__main__':
   if len(sys.argv) != 2:
       sys.exit("Usage: %s <queue number>" % (sys.argv[0]))

   try:
       queue_num = int(sys.argv[1])
   except ValueError:
       sys.exit("Invalid queue number")

   q = nfqueue.queue()

   q.open()

   # Required for some reason
   q.unbind(socket.AF_INET)

   q.bind(socket.AF_INET)
   q.set_callback(handle_pkt)
   q.create_queue(queue_num)
   q.try_run()

You will also need an iptables rule:

iptables -A OUTPUT -m udp -p udp --sport 2302 -m string --string "da39a3ee5e6b4b0d3255bfef95601890afd80709" --algo bm --to 65535 -j NFQUEUE --queue-num 1

The mod hash starting with c7fec is the proper one as of 1.60 if you are running a vanilla OA or CO server. If you are running any mods, you will need to run a 1.60 Windows server with those mods to obtain the appropriate mod hash.

Hi eddieck,

Python V2.6 and V2.7 and nfqueue-bindings-python is installed. I can set the Iptables rule with Webmin. How do you named your script and into wich folder did you saved this script?

I think Iptables start the NFQUEUE module and this module start your script and all scripts needs to be in one folder.

I read to many english manuals and it will be nice to get a quickinfo.

Some informations where to read more is nice too.

Thx.

New: I saved your script and start this script with this line: python2.6 ./checksumadjuster 1

Iptables -L shows

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

NFQUEUE udp -- anywhere anywhere udp spt:2020 STRING

match "da39a3ee5e6b4b0d3255bfef95601890afd80709" ALGO name bm TO 65535 NFQUEUE num 1

I hope that's right. But the Server will be show red. Is there anybody who can check my hashs postet above?

Thx....

Edited by Pillord
News

Share this post


Link to post
Share on other sites
How do you named your script and into wich folder did you saved this script?

I have it named nfqueue-gamespy.py and in /opt/arma2oa/scripts, though that's not important (it can be named anything and placed anywhere).

I think Iptables start the NFQUEUE module and this module start your script and all scripts needs to be in one folder.

The iptables module does not start any external scripts. You'll need to arrange that yourself (I have an init script for it I can send you).

I hope that's right. But the Server will be show red. Is there anybody who can check my hashs postet above?

Are you running any mods client-side? If not, can you start it up and post the name of the server?

Share this post


Link to post
Share on other sites

I was sick yesterday, so I do it today.

I start it up and wait for your answer.

Thx!

Share this post


Link to post
Share on other sites

Thx for your help eddieck!

The Linuxserver shows green now. This is needed for our events.

The last issue was some old V1 keys in the mainfolder /keys .

We created our own new keys for mods with old V1 keys.

Now we can use verifySignatures = 2 in server.cfg with other mods.

Share this post


Link to post
Share on other sites
The Linux DS calculates the mod hash improperly, causing every Linux server to appear as yellow or maybe even red depending on the client configuration.

Hi,

in order to find + understand + fix the never green linux servers we need to know the following:

When some Win32 server works and is GREEN, are you sure the very same copy of its content on linux is not GREEN? I mean, is it really the same, with no BAF and PMC folders present on Win32 installation (because linux cannot work with BAF/PMC)?

Edit: another question is: are such Linux servers yellow for all players regardless whether have BAF/PMC installed or not?

Edited by Bebul

Share this post


Link to post
Share on other sites
When some Win32 server works and is GREEN, are you sure the very same copy of its content on linux is not GREEN? I mean, is it really the same, with no BAF and PMC folders present on Win32 installation (because linux cannot work with BAF/PMC)?

Yes. I did not have PMC, BAF or any other mods on both my Linux and Windows installations.

Edit: another question is: are such Linux servers yellow for all players regardless whether have BAF/PMC installed or not?

I pretty much immediately installed BAF and PMC when 1.60 came out (due to the signature check fixes), and the servers were still yellow. With 1.59, I did not have BAF or PMC installed and they were still yellow.

Share this post


Link to post
Share on other sites

No server is to have PMC/BAF in their arma folder. So the question about Linux in the regards I find confusing.

Share this post


Link to post
Share on other sites
No server is to have PMC/BAF in their arma folder. So the question about Linux in the regards I find confusing.

As I understood it, the question is whether a player with BAF/PMC installed sees a yellow indicator for linux servers and a player without BAF/PMC installed sees a green indicator for linux servers.

Share this post


Link to post
Share on other sites

Ok. You can easily test both cases if you own the DLC - just rename the folder to BAFz or anything you like.

Share this post


Link to post
Share on other sites

Tested client without and with BAF/PMC installed (renamed the folders for the purpose), without and with addons on the client, without and with (identical) set of addons on the linux server and all combinations showed a yellow icon on the linux server.

Share this post


Link to post
Share on other sites

Thank you for your research. I have believed hard it cannot work on Windows servers too but you were right.

I have fixed it. Not sure how it would cooperate with "old" windows clients, but it could hopefully work. Tests are promissing.

Edit: here you are ftp://downloads.bistudio.com/arma2.com/update/a2oa-server-1.60.89986.tar.bz2

Edited by Bebul

Share this post


Link to post
Share on other sites

Hi, in first I apologize, my english is not so good. :(

Well, I have some trouble with the installation and the configuration of the server.

It is running on an Ubuntu Server 14.04 amd64.

When I write "./server" in the terminal (step #4 of the tutorial) I have the response : "None file of this type" (In french : "aucun fichier ou dossier de ce type").

Next, I don't understand what I have to do in step #6.

And for the step #7, here are the configuration parameters between lines 12 & 18 :

ARMA_DIR=

CONFIG=

PORT=2302

PIDFILE=${ARMA_DIR}/${PORT}.pid

RUNFILE=${ARMA_DIR}/${PORT}.run

LOGFILE=${ARMA_DIR}/log.${PORT}.txt

SERVER=${ARMA_DIR}/server

OTHERPARAMS=-cpucount=2 -pid=pidFile -port=2302 //Not sure

What I have to edit/put in the parameters ?

Thank you for your help.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×