The usual way of working with proxy servers is the following: the Web browser sends requests to a certain port in the proxy server and the proxy provides these required objects, whether they are in its cache or not. When working in a network, several situations may arise:
For security reasons, it is recommended that all clients use a proxy to surf the Internet.
All clients must use a proxy, regardless of whether they are aware of it.
The proxy in a network is moved, but the existing clients should retain their old configuration.
In all these cases, a transparent proxy may be used. The principle is very easy: the proxy intercepts and answers the requests of the Web browser, so the Web browser receives the requested pages without knowing from where they are coming. As the name indicates, the entire process is done transparently.
The options to activate in the
file to get the transparent proxy up and running are:
The port number where the actual HTTP server is located
Now redirect all incoming requests via the firewall with help of a port
forwarding rule to the Squid port. To do this,
use the enclosed tool SuSEfirewall2, described in Section 37.4.1, “Configuring the Firewall with YaST”. Its configuration file can be found in
/etc/sysconfig/SuSEfirewall2. The configuration
file consists of well-documented entries. To set a transparent
proxy, you must configure several firewall options:
Device pointing to the Internet:
Device pointing to the network:
Define ports or services (see
/etc/services) on the
firewall that are accessed from the secure (internal) network, both via TCP
FW_SERVICES_INT_TCP="domain www 3128" FW_SERVICES_INT_UDP="domain"
This allows accessing Web services and Squid
(whose default port is
The service “domain” stands for DNS (domain name service). This
service is commonly used.
The most important option is option number
Example 31.1. Firewall Configuration: Option 15
# 15.) # Which accesses to services should be redirected to a local port # on the firewall machine? # # This can be used to force all internal users to surf via your # Squid proxy, or transparently redirect incoming Web traffic to # a secure Web server. # # Format: list of <source network>[,<destination network>,<protocol>[,dport[:lport]] # Where protocol is either tcp or udp. dport is the original # destination port and lport the port on the local machine to # redirect the traffic to # # An exclamation mark in front of source or destination network # means everything EXCEPT the specified network # # Example: "10.0.0.0/8,0/0,tcp,80,3128 0/0,172.20.1.1,tcp,80,8080" # # Note: contrary to previous SuSEfirewall2 versions it is no longer necessary # to additionally open the local port
The comments above show the syntax to follow. First, enter the IP address
and the netmask of the internal networks accessing the proxy firewall.
Second, enter the IP address and the netmask to which these clients send
their requests. In the case of Web browsers, specify the networks
0/0, a wild card that means “to
everywhere.” After that, enter the original port to which these
requests are sent and, finally, the port to which all these requests are
redirected. Because Squid supports protocols other than HTTP,
from other ports to the proxy, such as FTP (port 21), HTTPS, or SSL (port
443). In this example, Web services (port
redirected to the proxy port (port
3128). If there are
more networks or services to add, they must be separated by a blank space
in the respective entry.
To start the firewall and the new configuration with it, change an entry in
/etc/sysconfig/SuSEfirewall2 file. The entry
START_FW must be set to
Start Squid as shown in Section 31.3, “Starting Squid”. To check if
everything is working properly, check the Squid logs in
To verify that all ports are correctly configured, perform a
port scan on the machine from any computer outside your network. Only the
Web services (port 80) should be open. To scan the ports with
nmap, the command syntax is