Ich habe den Squid3-Server auf meinem Remote-Server (Ubuntu 12.04) installiert und möchte ihn als Proxy-Server verwenden. Welche Konfigurationen muss ich vornehmen, um ihn von jedem Computer mit Internetverbindung aus verwenden zu können?
Antwort1
Ich musste nur eine Einstellung gegenüber der Standardeinstellung ändern: die Zeile http_port. So wie es klingt, möchten Sie das tun, was ich eingerichtet habe: den Verkehr automatisch über Squid als transparenten Proxy umleiten. Dazu sollte die Zeile lauten:
http_port 3128 transparent
Ich verwende in meinem System auch dansguardian, daher funktionieren meine iptables-Regeln möglicherweise nicht für Sie, aber Sie müssen es verwenden, um den Datenverkehr, der aus Ihrem Netzwerk kommt, über Squid ins Internet umzuleiten. Etwa so:
#!/bin/sh
# squid server IP
SQUID_SERVER="10.0.0.1"
# Interface connected to Internet
INTERNET="bond0"
# Interface for 10.0.0.1
LAN_IN="bond1"
# Dansguardian port
DG_PORT="8080"
#DG_PORT="3128"
echo "Applying proxy rules for packets routing through $LAN_IN -> $SQUID_SERVER:$DG_PORT"
# DO NOT MODIFY BELOW
# Clean old firewall
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
# Unlimited access to loop back
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Allow UDP, DNS and Passive FTP
iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT
# set this system as a router for Rest of LAN
iptables --table nat --append POSTROUTING --out-interface $INTERNET -j MASQUERADE
iptables --append FORWARD --in-interface $LAN_IN -j ACCEPT
# unlimited access to LAN
iptables -A INPUT -i $LAN_IN -j ACCEPT
iptables -A OUTPUT -o $LAN_IN -j ACCEPT
# port forwarding
# HTTP (example)
iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j DNAT --to 10.0.0.1:80
iptables -A INPUT -p tcp -m state --state NEW --dport 80 -i $INTERNET -j ACCEPT
# Divert traffic for external web pages through squid (dansguardian)
iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$DG_PORT
iptables -A OUTPUT -p tcp -o $LAN_IN --dport 80 -j ACCEPT
Ich habe eine (ausführlichere) Version dieses Skripts in meiner Datei /etc/network/if-up.d/proxyrules. Mit ein paar Optimierungen sollte alles problemlos laufen.
Eine weitere Squid-Einstellung, an der Sie möglicherweise herumfummeln müssen, sind ACLs, die Benutzern den Zugriff auf Ihren Proxyserver ermöglichen. Meine funktioniert mit der Standardeinstellung, aber Sie müssen diesen Abschnitt möglicherweise ändern, um einen Squid-Fehler „Zugriff verweigert“ zu umgehen.