ADSL Squid代理部署

HTTP代理相关知识
  • 透明代理:也叫普通代理,它不但改变了我们的请求信息,还会传送真实的IP地址。从:HTTP_X_FORWARDED_FOR 等代理信息可以查到我们IP地址!

  • 匿名代理:普通匿名代理,它能隐藏客户机的真实IP,但会改变我们的请求信息。它不传送正式ip,但是可能会发送HTTP_VIA、 HTTP_PROXY_CONNECTION 信息,还是可以通过这些判断出使用了代理!

  • 高级匿名代理:不改变客户机的请求,这样在服务器看来就像有个真正的客户浏览器在访问它,这时客户的真实IP是隐藏的,服务器端不会认为我们使用了代理!

  • HTTP通道:http代理服务器支持Connect请求,这类代理服务器基本可以代理所有软件,如:QQ,FoxMail,FTP等等,不支持通道的HTTP代理,基本上只支持简单的Http GET,POST等请求服务!

SOCKS代理知识

SOCKS5:常见SOCKS代理有Socks4,socks5,不过目前基本上以socks5代理为主,它基本支持所有客户端请求协议,Http,Ftp,Smtp等,可以具备高级匿名代理隐藏功能!

核心技术原理
  • 一条ADSL一个vlan,和服务器相连的端口做trunk。为什么要一条adsl一个vlan?因为南京电信会对每个adsl账号做mac地址限制,一个mac地址只能拨两个号,这也是为什么当多个adsl同时拨号时只有两条adsl可用。

  • linux服务器上创建和adsl的vlan ID相同的虚拟接口。为什么要在linux创建vlan虚接口?实现和adsl的隔离,减少相互干扰,每条adsl彼此独立,而且如果用子网卡的话,不能修改mac地址,即使修改成功,所有的子网卡和主网卡的mac也是一致的,不能满足多条adsl同时拨号的的要求,故必须采用vlan虚接口。

  • 接光纤的网卡采用子网卡挂多个公网ip

  • linux服务器采用源地址路由技术。为什么?squid的tcp_outgoing_address只支持ip地址,不支持设备名(如ppp0、eth0),且adsl拨号获得的ip也会变化,故需要给vlan子接口配置私有固定ip,通过源地址路由绑定出口adsl。

  • 通过squid的账号进行出口ip选择tcp_outgoing_address

vlan交换机配置(省略)
准备工作

开始之前

操作系统版本:Ceontos6.5 X64
网卡接入:eth0(内网IP 10.10.10.248 ) eth1:adsl拨号
添加静态路由后,删除eth0默认网关(10.10.10.250)

安装squid、pppoe组件
yum -y install squid *pppoe*
ADSL帐号密码、相应vlan id、虚拟网卡地址等(以下以铁通adsl为例)
id account pasword vlan_id virtual_mac virtual_ip port ppp
1 z68237300 68237300 1001 78:2B:CB:24:63:01 192.168.101.2 3000 ppp0
2 z68237301 68237301 1002 78:2B:CB:24:63:02 192.168.102.2 3001 ppp1
配置虚拟网卡及对应VLAN配置(以eth1.1001为例)
modprobe 8021q
vconfig add eth1 1001
配置ifcfg-eth1.1001网卡文件(配置虚拟IP地址、DEVICE设备名称)

ip link set dev eth1.1001 address 78:2B:CB:24:63:01(设置虚拟MAC地址)

pppoe配置(修改配置文件/etc/ppp/pap-secrets,添加帐号密码等信息)

新增配置文件/etc/sysconfig/network-scripts/ifcfg-ppp0(按需修改红色部分)
USERCTL=yes
BOOTPROTO=dialup
NAME=DSLppp0
DEVICE=ppp0
TYPE=xDSL
ONBOOT=yes
PIDFILE=/var/run/pppoe-adsl0.pid
FIREWALL=NONE
PING=.
PPPOE_TIMEOUT=80
LCP_FAILURE=3
LCP_INTERVAL=20
CLAMPMSS=1412
CONNECT_POLL=6
CONNECT_TIMEOUT=60
DEFROUTE=no
SYNCHRONOUS=no
ETH=eth0.1001
PROVIDER=DSLppp0
USER=z68237300
PEERDNS=no
DEMAND=no

修改/etc/sysconfig/network-scripts/route-ppp0

策略路由及NAT
ip rule add from 192.168.101.2 lookup 1001
/sbin/iptables -t nat -A POSTROUTING -s 192.168.101.2/255.255.255.255 -o ppp0 -j MASQUERADE
启动squid
cp /etc/squid/squid.conf /etc/squid/squid_ppp0.conf

修改如下3项

http_port 3000
tcp_outgoing_address 192.168.101.2
pid_filename /var/run/squid_ppp0.pid
启动squid
/usr/sbin/squid -f /etc/squid/squid_ppp0.conf

备注:最后重复完成剩余线路配置!

代理检测网站
  • http://www.stilllistener.com/checkpoint1/Java/
  • http://web.chacuo.net/netproxycheck
  • http://www.ip181.com/
Squid代理设置高匿

未设置前(X_FORWARDED_FOR HTTP_VIA暴露客户端及代理服务器信息,容易被封杀)

设置后

#高匿设置(Centos6.7 squid-3.1.23-16.el6_8.6.x86_64)
request_header_access Via deny all
request_header_access X-Forwarded-For deny all


#高匿设置(Centos5.5 squid-2.6.STABLE21-7.el5_10)
via off
forwarded_for off

0%