Should a reference letter for a student always be positive? I am finding the following moral problem, and possibly people with more experience could help me. 

One of my Master students (who recently finished his master studies) is applying for PhD positions. Despite my good scientific opinion about him (and his master thesis research), my personal opinion is starting to change. He is a good student, but not an exceptional student. This means that he can of course prepare a good PhD. The problem comes when I start suggesting places he could apply (and you know, getting PhD funding is not straightforward), he has many obstructions: things like 'I do not like this country', 'in this country phd's are of 3 years and with teaching', 'The subject of this phd is the same area of my master, but not directly related', and things like these.

I am happy to help, but this is becoming tiring. As a master thesis advisor I am the one who is expected to write the recommendation letter.  After having these encounters I do not feel I should write a very positive letter. 

How should I manage this situation?
The general answer is yes, a reference letter should always be positive.  If one cannot write a positive letter for a student, one should decline to write a reference.

In this case, the student is having difficulty, perhaps even internal conflict, in choosing programs to which to apply.  Captain Emacs has it right in the comments; that's not relevant to his ability to complete a Ph.D. program.  If repeated requests to suggest programs are becoming tiring for you, say, "Repeated requests to suggest programs are becoming tiring for me.  You are an adult.  Find and select the program that you believe will suit you best.  I've already suggested those I believe will best suit you."

While you are having that discussion, set a limit, perhaps three to five, on the number of recommendation letters you will write.  Applications are usually kept to a reasonable number by the fact of application fees, but sometimes students get carried away anyway.