Why does an anion have a negative charges?
Because when electrons were first discovered, they were assigned a negative charge.
Nuclear protons are assigned a positive electronic charge. Electrons are assigned a negative electronic charge. There is nothing fundamental in this assignment - it simply reflects the fact that at a fundamental level, subatomic particles have equal BUT opposite charge.
Had the assignment been made today, electrons would receive a positive charge, and nuclear protons a negative charge. This would have save generations of quantum chemists getting the wrong sign on their answers simply because they counted odd and not even. (Of course, maybe particle physicists would object, but there are not that many of them, and they are wierdos, so their objection would not count.)
So to your question, an anion has a surfeit of electrons, maybe one or two extra electrons. These species thus have negative charge. Their counterions have a corresponding deficiency of electrons.