It is based on amount of posts you send (note that posts in Soap-Box Square don't count). Ranks per posts:
Private 0
Corporal 50
Master Corporal 100
Sergeant 150
Warrant Officer 200
Chief Warrant Officer 250
Second Lieutenant 300
Lieutenant 350
Captain 400
Major 450
Lieutenant Colonel 500
Brigadier-General 600
Major-General 800
Lieutenant-General 1,000
General 1,200
Monarch 1,500
------
I don't know for rest.