Edit: the answer will be no if your surface is not a boundary of some set in the space in general. What I originally wanted to say is how to construct a normal vector. But if you always want to define, or say one is outward or inward, then it is not allowed. I'm sorry for missing your question at first, sorry.
(Original post)
I think the answer is yes for an orientable surface in $\mathbb R^3$, because we can always give a parametrization for each regular surface $S.$
Call $\mathbb X(u,v)$ a parametrization for $S.$ We assume it is regular so we can compute $\mathbb X_u$ and $\mathbb X_v.$ Although such a parametrization may not cover all of the surface $S$, we can parametrize the other part that is not cover by $\mathbb X$. So we will obtain a cover, called atlas for $S$.
So, with the help of $\mathbb X$, we can define the normal vector of $S$ on the image of $\mathbb X$ (since $\mathbb X$ may not cover the whole $S$, we can only consider the image. Think about the case $x^2+y^2+z^2=1$ in $\mathbb R^3.$)
The normal vector $N$ of $S$ is thus given by
$$N=\frac{\mathbb X_u\times \mathbb X_v}{||\mathbb X_u\times \mathbb X_v||}\quad \text{ or }\quad \frac{\mathbb X_v\times \mathbb X_u}{||\mathbb X_v\times \mathbb X_u||}$$
So, in conclusion, we do can define normal vector for a regular surface $S$ in a neighborhood of image of its parametrization $\mathbb X$, namely locally we can define normal vector. Also, as a note, there are some regular surface cannot have its global normal vector, which we called non-orientable. For example, the Möbius strip.