Can I publish a private NuGet package?
Check out the ProGet free edition; we built it exactly for this purpose. It takes much less time to setup and offers many features above and beyond those offered by the standard NuGet server, such as multiple feeds, feed aggregation, and additional repository types (npm, Bower, etc.)
If you want to pay for the enterprise version, you also get the ability to use LDAP for authentication, and the ability to filter feeds by name/license from connected feeds (i.e. NuGet's official feed).
Yes, you can have local feeds. It's dead-simple to set up, take a look here.
MyGet is popular for hosting private feeds. It's not free, but take a look at their pricing and maybe it suits you well!
Another option for hosting your own NuGet server is to use JetBrains TeamCity as a build server. The setup is described here.
The Team City server acts as a NuGet repository that would/could/should only be accessible within your company.
Based on your usage, there are free versions of the software.
It has some nice options such as the ability to publish a new NuGet version on demand, with each new continuous integration build, etc. One of the most useful bits (as with all NuGet server implementations) is that it will keep dozens of older versions of your assemblies so if you have one project that needs to reference the newest version, and another project that needs to reference an older version, everything will work out.
Yes! You can host your own NuGet server!
The easiest way is creating a shared folder on your server and referencing that as your Nuget Server.
You can find more information about how to do that at: Hosting Your Own NuGet Feeds