Don't punish her in any way because this will just reinforce her belief that visitors are bad news and you'll just make her even more aggressive towards them. She'll think it is their presence that causes her punishment, not her behaviour towards them.

The best thing would be to try and teach her that visitors bring nice things. Cut out some of her food on days when you know visitors are coming and save it for when they arrive and let them feed her some. Let them toss a toy for her over the room or something. If she gets fed more than once a day and a visitor turns up unexpected, give them some treats to feed her and then just cut a bit off her evening meal so she isn't overfed. Once she realises that visitors are a prelude to something pleasant, she'll start to look forward to them rather than driving them off. Maybe have them reward her when they first arrive and then again before they leave so that she learns the whole visit is good rather than just the initial arrival.
If she growls when they try to touch her, this is a warning which means she'd rather not bite them. All they have to do is take heed of the warning and not touch her and she'll not bite them. If you let people know this, I doubt she'll resort to biting them anyway.

Maybe you can find a volunteer who visits on purpose to help you teach the dog that visitors bring good things.

It's normal for dogs to be territorial and to try and guard property from strangers. In the end she should know that defending your den should be your job because you are supposed to be in charge so be sure that she knows that you are in charge.

Hope this helps. I'm sure other people will have other ideas also.