MSMQ is a proprietary Microsoft technology that runs on Windows Server, that being done you cannot talk directly to it unless you go through Microsoft protocols first (like SMB) and properly set up security.
If you ABSOLUTELY want to send MSMQ messages from a Linux box to a Windows box (which will be running MSMQ) then it would be a lot easier for you to create a service (like a REST service in IIS) which would take HTTP/REST calls and forward them to MSMQ for you than to hack the protocol and the security until you can get it to work.
If you have ample time and resources to waste, you could eventually get it to work - I'll even give you a head start and let you know that you'll need to mimick a Microsoft Distributed Transaction Coordinator in order to hack the protocol... Really not worth the whole effort but thank God no, you don't need to run MSMQ on the client per se in order to send messages but that all depends on what you are trying to do.
Personally...
I would use Rabbit MQ if you are already familiar with it, it can work on Windows Server so you could use AMQP to send messages through Rabbit MQ from Linux and have something on the Windows box process them.
To be candid... this sounds like one of these questions where you may be more curious about the "is it possible" curiosity than the "should I even do it" question.
MSMQ
- it's a windows only, proprietary technology. If you're wanting to do message passing, probably start your research with Java Message Service