No, there's no such restriction. Within a crate, you are allowed to split implementations across files. Of course the entities involved in the implementation must be visible at the place of the impl.
Putting impl From<A> for B in either the module of A or the module of B should be fine. Which one you prefer is mostly a philosophical question. Obviously, scattering inherent impls of a simple type across files just because you can is usually not wise, but sometimes it can come in handy.