[RHEL5企业级Linux服务攻略]--第9季 Squid服务全攻略之高级配置

简介:
企业环境
公司搭建一台代理服务器,需要提高内网访问互联网速度并能够对内部员工的上网行为进行限制,采用squid代理服务器软件,对内部网络进行优化。
需求分析
提高用户访问速度,需要对squid服务器进行优化并且需要使用acl对访问行为进行相应限制。
解决方案
1、路由及NAT设置
设置网卡IP地址
eth0:192.168.8.188 netmask:255.255.255.0
vim /etc/sysconfig/network-scripts/ifcfg-eth0
image
eth1:dhcp获取
vim /etc/sysconfig/network-scripts/ifcfg-eth1
image
image
开启内核路由功能
echo 1 > /proc/sys/net/ipv4/ip_forward
image
配置iptables设定nat,即透明代理
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128
如果只设置下面一句而上面一句不设置,客户端也可以上网,只是不通过squid哈~
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
保存iptables设置
service iptables save
image
2、修改selinux设置
setsebool -P squid_disable_trans on
image
注意:
如果配置squid透明代理,要开启selinux的squid_disable_trans,否则squid不能启动哈~
image 
3、添加squid系统用户和组
[root@rhel5 ~]#  groupadd squidadmin 
[root@rhel5 ~]#  useradd squidadmin -g squidadmin -s /sbin/nologin
image
4、建立相应目录
[root@rhel5 ~]#  mkdir /usr/local/squid 
[root@rhel5 ~]#  mkdir /usr/local/squid/cache 
[root@rhel5 ~]#  mkdir /usr/local/squid/var 
[root@rhel5 ~]#  mkdir /usr/local/squid/var/logs 
image
5、改变目录的所有者
为了保证服务正常启动并可以写入缓存、日志等信息,我们更改目录所有者为squidadmin哈~
[root@rhel5 ~]#  chown -R squidadmin /usr/local/squid/cache 
[root@rhel5 ~]#  chgrp -R squidadmin /usr/local/squid/cache 
[root@rhel5 ~]#  chown -R squidadmin /usr/local/squid/var/logs 
[root@rhel5 ~]#  chgrp -R squidadmin /usr/local/squid/var/logs
image
6、修改squid配置文件
vim /etc/squid/squid.conf
设置监听地址和端口
http_port 3128 transparent
红色部分是支持透明代理,这是squid新版本的改进
image
注意:
好多资料说透明代理设置为
httpd_accel_host virtual 
httpd_accel_port 80   
httpd_accel_with_proxy on 
httpd_accel_uses_host_header on
实际上透明代理只是在普通代理的基础上加上了http_port 3128 transparent及IPTABLES的端口转发功能,使用Iptables或者Ipchains实现,即把用户对外部www站点的访问转到Squid的端口上去,相对用用户来讲是“透明”的,不需在浏览器中指明代理服务器的IP和端口。
而对于反向代理来说,从squid2.6开始squid.conf已经没有httpd_accel字段了哈~Squid 2.6与3.0一样哈~相对于2.5的accel模式下配置要简单许多,只要设置不同的后端,cache_peer parent originserver就可以进行反向代理,而不再需要httpd_accel系列参数的配置.配置squid时最好制定内部dns,或者修改/etc/hosts文件,否则squid可能会回环访问其自身而出现问题哈~
udp_incoming_address 0.0.0.0
image
设置squid内存大小及cahce目录
cache_mem 512 MB
image
cache_dir ufs /usr/local/squid/cache 10240 16 256
image
设置日志文件和pid文件位置
access_log /usr/local/squid/var/logs/access.log 
cache_log /usr/local/squid/var/logs/cache.log 
cache_store_log none
image
emulate_httpd_log on
使Squid按照Web服务器的格式创建访问记录,Web访问记录分析程序,就需要设置这个参数
image
pid_filename /usr/local/squid/var/logs/squid.pid
image 
配置访问控制
acl all src 0.0.0.0/0.0.0.0 
acl mynet src 192.168.8.0/255.255.255.0
image
http_access allow mynet 
http_access deny all
image
设置运行时的用户和组权限
设置squid进程所有者
cache_effective_user squidadmin
设置squid进程所属组
cache_effective_group squidadmin
image
设置管理信息
设置squid可见主机名
visible_hostname 192.168.8.188
image
swap性能微调
half_closed_clients off
image
cache_swap_low 80 
cache_swap_high 100
image
maximum_object_size 1024 KB
image
squid配置逻辑是自上而下,满足条件即不再和下面匹配。
7、检查squid.conf配置文件
当更改过配置文件后最好验证一下配置文件: squid -k parse
  image
8、squid服务初始化
在第一次启动squid服务之前,一定要使用squid -z命令来使squid在硬盘缓存中建立cache目录,或者重新设置了cache_dir字段的值之后也要使用此命令来重新建立硬盘缓存目录哈~
如果我们要观察此过程,我们可以加个-X参数哈~
squid -zX
image
注意:在cache目录激活后永远不要改变L1和L2的值哈~
9、启动squid服务
service squid start
image
10、测试
squid -D检查squid服务有没启动
image
客户端只要设置IP地址、子网掩码、网关及DNS就可以直接上网了哈~
image
image
测试http网站
image
image
测试https网站
image
image
image
测试邮箱网站
image
image
[url]http://ipid.shat.net/[/url],检测你的代理是否成功哈~~~
image 
tail /usr/local/squid/var/logs/access.log
我们会发现访问的记录都在access.log中哈~~~
image
  cat /usr/local/squid/var/logs/cache.log
image
此外我们还可以使用acl和http_access deny组合来禁止指定IP、指定网段、屏蔽访问指定网站及指定固定时间上网等等哈~~~
#################Michael分割线#######################





本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/146981 ,如需转载请自行联系原作者
相关文章
|
13天前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
40 9
|
15天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
32 5
|
29天前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
48 2
|
1月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
319 3
|
Linux 开发工具
Linux squid配置
yum -y install squid vi /etc/squid/squid.conf http_port 3128 cache_mem 64 MB maximum_object_size 4 MB cache_dir ufs /var/spool...
1235 0
|
Web App开发 缓存 弹性计算
Linux 系统通过 Squid 配置实现代理上网
Squid 介绍 Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
4823 0
|
10天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
90 6
|
11天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
47 3
下一篇
无影云桌面