A family of functions $\{f_\alpha\}_{\alpha \in A}$ separates $X$ if for every $x, y \in X$, $x \ne y$ there exists $\alpha \in A$ such that $f_\alpha(x) \ne f_\alpha(y)$.
In particular, $X^*$ separates $X$ means that for every $x, y \in X$, $x \ne y$ there exists a bounded linear functional $f \in X^*$ such that $f(x) \ne f(y)$.
This is a consequence of the Hahn-Banach Theorem:
Let $M = \operatorname{span}\{x, y\} \le X$.
If $x$ and $y$ are linearly independent, then define a linear functional $f : M \to \mathbb{F}$ as $f(\alpha x + \beta y) = \alpha$, for all $\alpha, \beta \in \mathbb{F}$. We have $$f(x) = 1 \ne 0 = f(y)$$
Similarly, if $x$ and $y$ are linearly dependent, then WLOG assume $x \ne 0$ and $y = \lambda x$ for some $\lambda \notin\{0, 1\}$ and define $f(\alpha x) = \alpha$ for all $\alpha \in \mathbb{F}$. We have $$f(x) = 1 \ne \lambda = f(\lambda x) = f(y)$$
In any case, $f$ distinguishes between $x$ and $y$, and it's bounded because $M$ is finite-dimensional.
Now use the Hahn-Banach Theorem extend $f$ to a bounded linear functional $\hat{f} \in X^*$ which extends $f$. Since $f(x) \ne f(x)$, then also $\hat{f}(x) \ne \hat{f}(y)$.
Therefore, $\hat{f}$ separates $x$ and $y$.