Linux Squid 代理服务

squid使用端口:3128
代理的基本类型
  传统代理:适用于Internet,需明确指定服务端
  透明代理:适用于共享上网网关,不需指定服务端
使用代理的好处
  提高Web访问速度
  隐藏客户机的真实IP地址
代理服务器工作流程:
1、客户机访问网站,其实是访问的代理服务器
2、当客户机第一次请求页面的时候,代理服务器缓存内没有被请求的页面
   代理服务器就会去网站服务器请求页面
3、当代理服务器得到被请求的页面后,就保存到本地缓存中
4、当客户机再次请求该页面的时候,代理服务器直接响应
   不会再访问网站服务器

网站+DNS服务器A(192.168.1.1/24 DNS1:192.168.1.1)
安装httpd和DNS
echo "www.benet.com" >> /var/www/html/index.html

squid代理服务器B(192.168.1.2/24 DNS1:192.168.1.1)
安装squid
tar -zxf squid....
cd squid...
./configure 
--prefix=/usr/local/squid    指定安装路径
--sysconfdir=/etc            指定配置文件路径
--enable-linux-netfilter     启用内核过滤
--enable-async-io=240        提高性能
--enable-default-err-language=Simplify_Chinese  启用中文报错
--disable-poll               禁用poll模式
--enable-epoll               启用epoll模式
--enable-gnuregex            启用正则

./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

make  &&  make install

优化执行路径、创建程序用户
ln -s /usr/local/squid/sbin/*  /usr/local/sbin
useradd -M -s /sbin/nologin squid
chown -R squid:squid /usr/local/squid/var/
chmod -R 757 /usr/local/squid/var/

修改配置文件
vim  /etc/squid.conf
添加
cache_effective_user  squid    #指定程序用户
cache_effective_group  squid  
在http_access deny前添加
http_access allow  all

检测语法
squid  -k parse    检测语法
squid  -z           清空缓存
squid               启用squid
netstat  -anpt | grep  squid    查看squid是否已运行

测试:客户机C(192.168.1.3/24 DNS1:192.168.1.1)
浏览器上手动指定代理服务器(192.168.1.2)
访问网站,查看网站服务器的访问日志,没有192.168.1.3的访问记录

透明代理(代理服务器是内网网关)
1、网站服务器同上(使用公网网卡IP:192.168.2.2/24 GW:192.168.2.1)
2、代理服务器B(内网网卡:192.168.1.1/24、公网网卡:192.168.2.1/24)
  安装squid、优化执行路径、创建程序用户
  修改配置文件,在传统代理基础上
    修改:http_port 3128
    为:http_port 内网网卡IP:3128 transparent

  修改内核文件,添加路由功能
    vim  /etc/sysctl.conf
    添加
    net.ipv4.ip_forward = 1
  保存退出后使用sysctl  -p使文件生效
  启用防火墙,添加防火墙规则
  systemctl start  firewalld
  
  firewall-cmd --zone=external --add-interface=内网网卡名
  firewall-cmd --zone=internal --add-interface=公网网卡名
  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 内网网卡名 -p tcp --dport 80 -j REDIRECT --to-ports 3128
  firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i 内网网卡名 -p tcp --dport 443 -j REDIRECT --to-ports 3128
  firewall-cmd --runtime-to-permanent
  
  前两句:设置网卡所属区域
  3、4句:添加区域允许通过的服务
  5句:添加区域允许通过的端口号
  6、7句:把来自内网要访问80端口的请求改成访问3128端口,激活代理

3、验证:客户机(内网网卡 IP:192.168.1.2/24 GW:192.168.1.1)
  直接用浏览器访问192.168.2.2,
  然后查看网站服务器的访问记录(/etc/httpd/logs/access_log)

ACL访问控制方式
根据源地址、目标URL、文件类型等定义列表
acl  列表名称  列表类型  列表内容 ... 

针对已定义的acl列表进行限制
http_access  allow或deny  列表名称 ... 

常用的ACL列表类型
src    源地址
dst    目标地址
port    目标端口
dstdomain    目标域
time    访问时间
maxconn    最大并发连接
url_regex    目标URL地址
Urlpath_regex    整个目标URL路径

举例:允许1.2访问,拒绝1.3访问
acl yx src 192.168.1.2
acl byx src 192.168.1.3
http_access allow yx
http_access deny byx

应用规则:从上往下匹配,匹配到就不再继续往下匹配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据库从删库到跑路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值