squid 代理服务器配置

squid 代理服务器配置

我已经在远程服务器 (ubuntu 12.04) 上安装了 squid3 服务器,我想将其用作代理服务器。我需要进行哪些配置才能在每台有互联网连接的计算机上使用它?

答案1

我只需要更改一个默认设置:http_port 行。听起来,你想按照我设置的那样做;自动通过 squid 作为透明代理分流流量。为此,该行应为:

http_port 3128 transparent

我的系统中也使用了 dansguardian,所以我的 iptables 规则可能不适用于您,但您需要使用它来引导通过 squid 从您的网络传入的流量并传出到互联网。如下所示:

#!/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

我的 /etc/network/if-up.d/proxyrules 中有此脚本的(更完善的)版本。只需进行一些调整,您就能顺利开始运行。

您可能需要调整的另一个 Squid 设置是 ACL;允许人们访问您的代理服务器。我的设置使用默认设置,但您可能需要修改此部分以避开 Squid“拒绝访问”错误。

相关内容