企业环境
公司搭建一台代理服务器,需要提高内网访问互联网速度并能够对内部员工的上网行为进行限制,采用squid代理服务器软件,对内部网络进行优化。
需求分析
提高用户访问速度,需要对squid服务器进行优化并且需要使用acl对访问行为进行相应限制。
解决方案
1、路由及NAT设置
设置网卡IP地址
eth0:192.168.8.188 netmask:255.255.255.0
vim /etc/sysconfig/network-scripts/ifcfg-eth0
eth1:dhcp获取
vim /etc/sysconfig/network-scripts/ifcfg-eth1
开启内核路由功能
echo 1 > /proc/sys/net/ipv4/ip_forward
配置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
2、修改selinux设置

setsebool -P squid_disable_trans on
注意:
如果配置squid透明代理,要开启selinux的squid_disable_trans,否则squid不能启动哈~
 
3、添加squid系统用户和组
[root@rhel5 ~]# groupadd squidadmin
[root@rhel5 ~]# useradd squidadmin -g squidadmin -s /sbin/nologin
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
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
6、修改squid配置文件
vim /etc/squid/squid.conf
设置监听地址和端口
http_port 3128 transparent
红色部分是支持透明代理,这是squid新版本的改进
注意:
好多资料说透明代理设置为
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
设置squid内存大小及cahce目录
cache_mem 512 MB
cache_dir ufs /usr/local/squid/cache 10240 16 256
设置日志文件和pid文件位置
access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
cache_store_log none
emulate_httpd_log on
使Squid按照Web服务器的格式创建访问记录,Web访问记录分析程序,就需要设置这个参数
pid_filename /usr/local/squid/var/logs/squid.pid
 
配置访问控制
acl all src 0.0.0.0/0.0.0.0
acl mynet src 192.168.8.0/255.255.255.0
http_access allow mynet
http_access deny all
设置运行时的用户和组权限
设置squid进程所有者
cache_effective_user squidadmin
设置squid进程所属组
cache_effective_group squidadmin
设置管理信息
设置squid可见主机名
visible_hostname 192.168.8.188
swap性能微调
half_closed_clients off
cache_swap_low 80
cache_swap_high 100
maximum_object_size 1024 KB
squid配置逻辑是自上而下,满足条件即不再和下面匹配。
7、检查squid.conf配置文件
当更改过配置文件后最好验证一下配置文件:squid -k parse
8、squid服务初始化
在第一次启动squid服务之前,一定要使用squid -z命令来使squid在硬盘缓存中建立cache目录,或者重新设置了cache_dir字段的值之后也要使用此命令来重新建立硬盘缓存目录哈~
如果我们要观察此过程,我们可以加个-X参数哈~
squid -zX
注意:在cache目录激活后永远不要改变L1和L2的值哈~
9、启动squid服务
service squid start
10、测试
squid -D检查squid服务有没启动
客户端只要设置IP地址、子网掩码、网关及DNS就可以直接上网了哈~
测试http网站
测试https网站
测试邮箱网站
[url]http://ipid.shat.net/[/url],检测你的代理是否成功哈~~~
 
tail /usr/local/squid/var/logs/access.log
我们会发现访问的记录都在access.log中哈~~~
cat /usr/local/squid/var/logs/cache.log
此外我们还可以使用acl和http_access deny组合来禁止指定IP、指定网段、屏蔽访问指定网站及指定固定时间上网等等哈~~~
#################Michael分割线#######################

©著作权归作者所有:来自51CTO博客作者redking的原创作品,谢绝转载,否则将追究法律责任
Linux Squid iptables Linux/Unix

4

分享

微博 QQ 微信

收藏

上一篇:RHCE课程-RH253Linu... 下一篇:[RHEL5企业级Linux服务...
redking

374篇文章,647W+人气,51粉丝

关注

转载于:https://blog.51cto.com/redking/146981

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

  1. [RHEL5企业级Linux服务攻略]--第6季 Vsftpd服务全攻略之常规配置

    1.vsftpd服务软件包 vsftpd-2.0.5-10.el5.i386.rpm:vsftpd主程序包 2.vsftpd相关文档 /etc/vsftpd/vsftpd.conf:vsftpd的核心 ...

  2. [RHEL5企业级Linux服务攻略]--第5季 Sendmail服务全攻略之高级配置

    企业环境 公司邮件服务器,统一为员工设置企业邮箱,公司业务以销售为主,员工数量为300人并办公地点不固定.员工收发邮件一般较小,大部分为产品信息及销售报表.为了减少邮件服务器负荷,提高邮件传输效率,需 ...

  3. [RHEL5企业级Linux服务攻略]--第3季 DHCP服务全攻略

    1 DHCP原理  1.1 DHCP概述 DHCP(Dynamic Host Configuration Protocal)就是动态主机配置协议哈,可以自动配置主机的IP地址.子网掩码.网关及DNS等 ...

  4. [RHEL5企业级Linux服务攻略]--第2季 Samba服务全攻略答疑贴

    回答mlk0416第一个问题: 现在我以joy用户登录samba,如果不用重启系统或注销用户的方法解决多用户切换问题,关闭后重新登录samba还是会以joy帐号登录.现在我们用windows命令提示符 ...

  5. [RHEL5企业级Linux服务攻略]--第1季 Linux服务器的搭建与测试

    1 Red Hat Enterprise Linux 5的安装 安装Red Hat Linux的硬件要求如下,一般现在的电脑配置都可以满足这些要求了哈: CPU:Pentium以上处理器.文本模式推荐 ...

  6. [RHEL5企业级Linux服务攻略]--第6季 Vsftpd服务全攻略之高级配置

    企业环境 公司为了宣传最新的产品信息,计划搭建FTP服务器,为客户提供相关文档的下载.对所有权互联网开放共享目录,允许下载产品信息,禁止上传.公司的合作单位能够使用FTP服务器进行上传和下载,但不可以 ...

  7. [RHEL5企业级Linux服务攻略]--第4季 DNS服务全攻略

    1 DNS原理 1.1 DNS简介 DNS(Domain Name System)域名系统,在TCP/IP网络中有非常重要的地位,能够提供域名与IP地址的解析服务. 1.2 域名空间 DNS是一个分布 ...

  8. linux下php-5.4.8.tar.gz编译安装全攻略

    首先安装基础依赖组建,注:这些依赖组建也是LINUX+PHP+MYSQL+APACHE+NGINX+MEMCACHED时必要的系统组件  LANG=C yum -y install gcc gcc-c ...

  9. 2019阿里云开年Hi购季云安全分会场全攻略!

    为什么80%的码农都做不了架构师?>>>    2019阿里云云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶 ...

最新文章

  1. nmap脚本(nse)使用总结
  2. 恢复 root 本地无权限 Access denied for user 'root'@'localhost' (using password: NO)
  3. oracle将查询结果声明为伪表,Oracle查询操作(增删改查,伪表,高级查询)实例讲解...
  4. Mysql数据备份恢复及主从同步
  5. 产品微操的艺术:提高核心指标的5个需求原理(1~5完)
  6. JZOJ__Day 9:【普及模拟】算法学习(sfxx)
  7. 阿里动物园新成员来了,10本书带你读懂这个新物种
  8. PHP错误:Warning: preg_replace() [function.preg-replace]: Unknown modifier '[' in
  9. js数组依据下标删除元素
  10. 浏览器插件之ActiveX开发(三)
  11. Android的单位及屏幕分辨率
  12. python 消息队列 go_Python并发编程-RabbitMq消息队列
  13. MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
  14. maven创建eclipse wtp项目
  15. 学习,积累,10000小时定律
  16. Spark SQL_JZZ158_MBY
  17. Linux极简快速入门|Linux操作系统(四)
  18. 传播知识,分享快乐--我的相关资源下载(不定期更新)
  19. HS光流法及其代码示例
  20. PELCO-D协议校验位

热门文章

  1. java comet_用java实现comet,基于 HTTP长连接的实现,用于从服务端实时发送信息到客户端...
  2. mysql centos7 默认密码忘记_centos7 mysql忘记密码解决办法
  3. 鸿蒙系统突破,华为解锁新成就!新系统用户突破1亿,鸿蒙系统也传来了新消息...
  4. JS 将负数转化为正数
  5. 面试题整理9 连续子数组的最大和
  6. 【Linux】20.shell脚本 检测是否 ping 通
  7. face recognition[翻译][深度人脸识别:综述]
  8. word2vec原理之CBOW与Skip-Gram模型基础
  9. 《卓有成效的程序员》----读书笔记二
  10. Java 基本数据类型 sizeof 功能