I would use a forward proxy running on the system that has Internet access. Analogx provides free proxy server software at Proxy. I've used it in the past in situations similar to the one you describe and found it simple to set up. I've included the description for the program from the developer's website:
Do you have several machines on a network, but only one connection to
the internet? Wish you could browse the net from the other machines,
just like you can from the machine that's connected? Then what you're
looking for is called a Proxy Server, and AnalogX has just what you
want. AnalogX Proxy is a small and simple server that allows any other
machine on your local network to route its requests through a central
machine. So what does that mean in English? Simple, run Proxy on the
machine with the internet connection, configure the other machines to
use a proxy (it's very easy, there's a detailed description in the
readme), and voila! You're surfing the web from any other machine on
your network! Supports HTTP (web), HTTPS (secure web), POP3 (receive
mail), SMTP (send mail), NNTP (newsgroups), FTP (file transfer), and
Socks4/4a and partial Socks5 (no UDP) protocols!
Once it is installed and operational, you can then configure the browsers on the systems without Internet access to use the proxy server. See Checking Microsoft Windows proxy server settings for the steps to configure proxy server support in Internet Explorer 11, which changes the system-wide proxy server settings, so any other browser software that uses the system-wide proxy server settings rather than using browser-specific settings will also then use the proxy server. Put the IP address of the system running the proxy server software in the HTTP and Secure (to use HTTPS) fields in the Proxy Settings window and specify the port on which you have the proxy server software listening in the port fields for both.
Google Chrome uses the system-wide proxy server settings, but you can change those settings in Chrome by following the steps at Checking the proxy server settings with Google Chrome on a Windows system. Firefox has its own specific settings, which you can set for both HTTP and HTTPS by specifying the HTTP and SSL proxy server settings, which in your case would both be the IP address for the proxy server on the system with Internet access. Firefox can also be configured to use the system-wide proxy server settings by selecting "Use system proxy settings". You can view and configure its proxy server configuration by using the Alt-T
key combination in Firefox to bring up the Tools menu then selecting Options, then Settings under the Network tab to see the Connection Settings.
A forward proxy server is suited for the scenario you are describing. I haven't tried this myself, but you can find instructions at Creating a Forward Proxy Using Application Request Routing on "how to use the Application Request Routing (ARR) and URL Rewrite features of Internet Information Services (IIS) to implement a forward proxy server." The steps, without the images provided at that link are as follows, if ARR and URL Rewrite are already installed:
- Open Internet Information Services (IIS) Manager.
- In the Connections pane, select the server.
- In the server pane, double-click Application Request Routing Cache.
- In the Actions pane, click Server Proxy Settings.
- On the Application Request Routing page, select Enable proxy.
- In the Actions pane, click Apply. This enables ARR as a proxy at the server level.
- To start the process of turning ARR into a forward proxy, click on the server node in the Connections pane.
- In the server pane, double-click URL Rewrite.
- In the Actions pane, click Add Rule(s).
- In the Add Rule dialog box, double-click Blank Rule.
- In the Edit Inbound Rule dialog box, enter "Forward Proxy" for Name. In the Match URL area, enter the following:
- Using: Wildcards
- Pattern: *
- Scroll down to the Conditions area of the Edit Inbound Rule dialog box, and then click Add….
- In the Add Condition dialog box, select or enter the following:
- Condition Input: {HTTP_HOST}
- Type: Matches the Pattern
- Pattern: *
- Scroll down to the Action area of the Edit Inbound Rule dialog box, and then enter the following:
- Action Type: Rewrite
- Rewrite URL: http://{C:1}/{R:0}
- In the Actions pane, click Apply.
Note: This rule enables HTTP messages to pass through the forward proxy. HTTPS (443) messages are not supported on this forward proxy because ARR does not support HTTP CONNECT.
- Configure the proxy settings as appropriate in your applications, browsers, etc.
Does the IIS server have multiple nics or do you use separate vlans/firewall rules? – Abraxas – 2015-06-24T22:21:22.547
Hi and thanks for the reply. Its a simple wifi LAN where there is an IIS 7 server with internet(connected to the LAN with WIFI but connected to internet with an RJ45), and some devices without internet, that are connected to the LAN with WIFI. – SlashJ – 2015-06-24T22:27:22.823