1、squid的服务说明
主配置文件: /etc/squid.conf
检查语法: squid -k parse
初始化: squid -z
启动服务: squid
重新加载服务: squid -k reconfigure
端口号: tcp 3128
查看端口: netstat -anpt | grep squid
用内部服务器通过squid代理访问外部web服务器
2、安装squid服务
共三台Linux,内部linux需要配置默认网关,外部linux web不需要配置默认网关 ifconfig查看网卡
(1)内部Linux配置ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33
(添加)
IPADDR=192.168.1.20
GATEWAY=192.168.1.1
systemctl restart network
route -n查看网关
(2)Linux squid服务器
ifconfig 查看网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33
(添加)
IPADDR=192.168.1.1
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens37
vim ifcfg-ens37
(修改)
NAME=ens37
DEVICE=ens37
IPADDR=200.0.0.1
systemctl restart network
(3)外部Linux web服务器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
(添加)
IPADDR=200.0.0.10
systemctl restart network
3、web服务器安装
(1)安装yum服务
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/test.repo
(添加)
[aaa]
name=aaa
baseurl=file:///media
gpgcheck=0
(2)安装并测试 web
插入1611光盘
yum -y install httpd (安装http)
echo 1234 > /var/www/html/index.html (创建一个测试网页)
systemctl start httpd
systemctl enable httpd
用内部Linux访问web,为访问失败
4、安装及运行控制squid
(1)编译安装squid
插入squid光盘
tar zxf squid-3.5.23.tar.gz -C /usr/src/
cd /usr/src/squid-3.5.23/
./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-linux-netfilter --enable-async-io=240 --enable-default-err-language=Simplify_Chinese --disable-poll --enable-epoll --enable-gnuregex
make && make install
(2)创建链接文件、创建用户和组
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
useradd -M -s /sbin/nologin squid
chown -R squid:squid /usr/local/squid/var/
(3)squid的配置文件
vim /etc/squid.conf
(添加)
cache_effective_user squid
cache_effective_group squid (指定squid的程序用户,用来设置初始化,运行时缓存的账户)
squid -k parse (检查配置文件语法是否正确)
(4)squid的运行控制
squid -z (初始化缓存目录)
squid (启动squid服务)
squid -k reconfigure (重新启动squid服务)
netstat -anpt | grep "squid"
5、传统代理
(5)内部Linux访问代理
打开火狐浏览器→首选项→高级→网络→设置→指定代理服务器ip,
直接访问web服务器ip200.0.0.10,显示1234则成功
(6) 限制下载文件大小
squid服务器上配置
vim /etc/squid.conf
(添加)
reply_body_max_size 10 MB (允许下载文件大小为10MB)
squid -k reconfigure (重启服务)
在web服务器上设置
cat /dev/zero > /var/www/html/000 (生成一个大文件)
ll -hd /var/www/html/000 (查看大小)
在内部Linux访问webIP地址,会提示文件过大,无法访问,
6、透明代理
(1)查看squid访问日志的新增记录
tail -f /usr/local/squid/var/logs/access.log (在squid服务器上查看)
(2)查看web 访问日志的新增记录
tail -f /var/log/httpd/access_log (在web服务器上查看)
(3)配置squid支持透明代理
vim /etc/squid.conf
(在端口号添加)
http_port 192.168.1.1:3128 transparent (添加支持透明代理)
squid -k reconfigure
(4)开启路由转发
vim /etc/sysctl.conf
(添加)
net.ipv4.ip_forward = 1
sysctl -p
(5)设置firewalld重定向策略
防火墙做端口转发操作,将访问本机80, 443端口的请求转发到3128端口。
systemctl start firewalld (开启防火墙)
firewall-cmd --zone=external --add-interface=ens33
firewall-cmd --zone=internal --add-interface=ens37
firewall-cmd --zone=external --add-service=http
firewall-cmd --zone=external --add-service=https
firewall-cmd --zone=external --add-port=3128/tcp
firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens33 -p tcp --dport 80 -j REDIRECT --to-ports 3128
firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens33 -p tcp --dport 443 -j REDIRECT --to-ports 3128
firewall-cmd --runtime-to-permanent
内部Linux客户端访问web服务器即可(浏览器不需任何配置)
7、ACL访问控制
192.168.1.0、24网段在周一到周五的9:00--17:00才能使用代理上网
vim /etc/squid.conf
#acl localnet src 192.168.0.0/16 (注释掉)
acl MYLAN src 192.168.1.0/24 (添加)
acl WORKTIME time MTWHF 9:00-17:00
http_access allow MYLAN WORKTIME (应用规则必须放在拒绝所有http_access deny all 之前)
squid -k reconfigure
修改日期和时间测试
date -s 年-月-日 (修改日期)
date -s 时:分 (修改时间)
8、squid日志分析
squid服务器插入 1611镜像
(1)安装yum
(2)安装GD库和http
yum -y install gd gd-devel httpd
systemctl start httpd
systemctl enable httpd
(3)安装SARG
插入squid光盘
mkdir /usr/local/sarg
tar zxf sarg-2.3.7.tar.gz -C /usr/src/
cd /usr/src/sarg-2.3.7/
./configure --prefix=/usr/local/sarg --sysconfdir=/etc/sarg --enable-extraprotection && make && make install
(4)配置
vim /etc/sarg/sarg.conf
(以下去掉#注释)
access_log /usr/local/squid/var/logs/access.log
title "Squid User Access Reports"
output_dir /var/www/html/sarg (修改路径)
www_document_root /var/www/html
(5)运行
touch /usr/local/sarg/noreport
ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
sarg
(6)查看日志报告
squid访问:squid服务器IP/sarg