1) Taking over their iron mine will only work in lower level game. When you play Demi- or Deity level, AI will out expand you and took all iron mines before you do (they know where all resources are without the need of civil advancement).
2) As for city wall, I rarely build them because if AI figure they have less chance of beating you, they will pillage your improvements instead. By turtling yourself, you will see find all improvement gone.
Here is what you can do -
1) Play Celt or Iroquois. Celt's Agr and Relig civ and you will get a faster start. As long as you can hold on to an iron mine and start pumping Gallic Swordsman, you can defeat Legionaries. When you look at 3-2-2 vs 3-3-1, since you have the speed advantage, you can always be the one attacking and hence getting a 50% of winning chance. Another thing about having a movement speed of 2 is that even if you lose the fight, there is a big chance that you unit will flee from the battle and you get to keep your unit. Just build plenty of barracks for faster heal and producing veterans.
Iroquois's UU is 3-1-2 and if you can make sure you are always the one init the attack, it is as good as Gallic Swordsman and cost only 30 shields to build instead of 40. Also, for Iroquois, you only need to get horse to build your UU instead of iron. Horse is easiler to get in the game.
2) If you don't play those 2, your best bet is make roman your friend in early game. Get ahead in tech and give them 2gpt for free in early game so they will not attack you. If you can get a good size in army with good cult pts, you can pay some money to allie or sign passage deal with them. After that, you should be safe.
3) If you can't be peace with them, you can only try a combination of horseman and swordsman to defend your towns. Use horseman's 2 movement advantage to attack first to hurt the Legionaries and then flee back. Then followed by swordsman to finish them off. If you can't get iron, then you have to relie on horsemen or just pay them for peace.