If $x, y \in X$ with $x \neq y$, then there exists $f \in X^*$ such that $f(x) \neq f(y)$.
Let $x,y \in X$ such that $x \neq y$.
Assume that $f(x)=f(y) ,\forall f \in X^*\Rightarrow f(x-y)=0$
From the consequences of Hahn-Banach exists $f_0 \in X^*$ such that $||f_0||=1$ and $f_0(y-x)=||x-y||$.
But $$f_0(x-y)=0 \Rightarrow ||x-y||=0 \Rightarrow x=y$$ contradicting our hypothesis that $x \neq y$
Hint: Your idea is good. Apply Hahn-Banach on $x-y\neq 0$.
Hahn-Banach is the right way. Just notice that the sets $\{x\}$ and $\{y\}$ are convex, nonempty, disjoint and compact.