Any Pokemon that is a Ghost type in any capacity is completely immune to Fighting type attacks.
The way you can think of super-effective, not very effective and immune damage working is in the form of multipliers. So if a Fighting-type attack is used against a Steel/Ghost-type, the attack would do (BASE DAMAGE) x 2 x 0 = 0 damage.
Also, the type of the attacker does not matter when it comes to type checking for effectiveness (or any other mechanic) except for certain special cases like Sheer Cold being 20% accurate on non-Ice-types, or Toxic ignoring accuracy checks on Poison-types