We have public IP address hosted on FreeBSD router. We have also a lot of service running inside our LAN network, some of our services need to be accessible outside our home network trough public IP address. Until now I did it forwarding specific ports to specific local ip address. Sample (for Terminal Server i Forwarded port 2305 to local ip server on port 3389, and it is working perfectly when someone call remote desktop connection on "MYpublicIPadres:2305" get access to my Terminal Server.
What I want to do is:
Some how to secure access to that service by specific client (machine or network). Is there a way to I allow access to only specific users (by MAC address or something else) to my service. What I did already is make VPN server-client connection but that method do not offer me a lot. I also can restrict access by specific ip address but most of my clients do not have static public IP address, they coming from DSL connections with different IP addresses each time.
If this is not possible done by using FreeBSD do I have alternatives like IPCOP or something similar to FreeBSD.
Edit: VPN Issues
As You mentioned already that I should go with VPN solution here is issues that I faced
- I am using sample VPN client build inside Windows OS and that allowing that client can set up VPN from any computer machine (Story Behind: I have department outside our network and I want to be sure that for specific service access only can be madded from department.)
- When Client call VPN connection it lose connection with other world and a lot of clients want to have bout access to my services and to other internet resources.