OP and others: Your talk of having a 'right' indicates your question is, at bottom, about morality. Is it (morally) acceptable to disallow immigration?
The answer: no. Whether I was born in the same street as you or the other side of the world to you, we have the same rights and obligations viv-a-vis one another. That's just how morality works. Discrimination based on place of birth is just plain immoral, as you implicitly recognise, OP.
Immigration control is, fundamentally, racist, and racism is immoral. So immigration control is immoral. This is often hidden by self-interest, but of course self-interest is no justification for immoral behaviour.
If you are a good (moral) person, you ought to be in favour of open borders. This is difficult, of course. Morality is often difficult.
What to do about this? A popular response is the so-called "dirty hands" doctrine, associated particularly, with Machiavelli. "It is necessary to a Prince," Machiavelli wrote (in The Prince), "to learn how not to be good." In short, the thought is, our rulers should themselves shoulder the moral burden of doing wrong on our behalf.
This may be an uncomfortable thought, but it is very common, I suspect. We know we shouldn't persecute immigrants and asylum seekers ... but, well, it's those nasty people in the Home Office (or, those terrible politicians) who really are to blame: what can we ordinary folk do?
Some politicians themselves are aware of this thought - that they, the rulers, shoulder the moral burden of doing wrong in order to thereby absolve the ruled from blame whilst nevertheless acting in their (sc. the ruled's) best interests.
None of this makes discrimination and racism - or closed borders - morally right, of course. It's a way of accepting it whilst recognising that fact, though.