Proxy(代理)服务器

时间:2024-04-10 12:35:05
代理服务器:---代理服务器必须有DNS地址。如果开启转发需要在客户端设置DNS地址
  NAT:是直接与目标服务器通信的。也就是直接访问的baidu服务器,目标地址是baidu服务器的地址,所以必须要有DNS来解析主机名。
   如果是通过代理客户端是没有设置DNS的,这是因为客户端会将数据包先发给代理服务器,然后再由代理服务器将数据包转发出去的。也就是产生了2个不同的数据包。
  当用户访问服务器的时候,会先请求代理服务器,代理服务器会查看自己的缓存是否有请求的网页,如果有直接返回给用户,如果没有,则向服务器发送请求,服务器响应给代理服务器,当代理服务器收到请求后,会将请求被分到自己的缓存中,然后再拷贝一份发给用户。如果再有用户访问这个网页,代理服务器检查到自己的缓存中有用户想要的网页,则会直接返回给用户。这样就很大的节省了服务器的带宽。


启用代理服务器的转发功能:在做完NAT后需要转发功能:
   echo  1 > /proc/sys/net/ipv4/ip_forward
# 临时修改
   vim /etc/sysctl.conf
# 修改配置文件中 :net.ipv4.ip_forward = 1
   sysctl -p
# 修改后立即生效。
开启转发后需要设置客户端的 DNS

防火墙规则:
   iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
 
  iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
#开启NAT,转发 需要注意的是:在开启转发的时候需要设置客户端--DSN
   iptables -t nat -I PREROUTING 1 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT  --to-ports 8080
 #将10 网段的所有请求80端口的,重定向到 8080端口(8080是代理服务的端口),需要在代理服务的配置文件中 开启转发:http_port  8080  transparent

出现错误:
WARNING: Could not determine this machines public hostname. Please configure one or set 'visible_hostname'.
visible_hostname 自己的主机名(#vim /etc/squid/squid.conf添加即可)

squid服务启动日志:
/var/log/squid/squid.out

安装软件包:
     yum  -y  install squid
主目录:
     /etc/squid/
需要最关心的配置文件;squid.conf
Proxy(代理)服务器


配置文件:
1、acl 给网段定义一个别名。
   需要注意的是:如果是具体的IP地址的话子网掩码应该写 32
   192.168.10.123/32  否则会报错
   acl  baidu  dstdomain  .baidu.com
  #目标地址
   acl  test   url_regex  ^http://www.kun.cc/test/.*\.txt
  # 以定义正则,定义不允许访问类型的文件。
Proxy(代理)服务器
2、http_access:允许哪些网段可以使用代理服务器。后面跟的是定义好的别名。
  需要注意的是:http_access 的顺序很重要。是从上至下匹配的,如果上一条匹配成功就不会再往下匹配了。
Proxy(代理)服务器
3、http_port  3128:客户端与代理服务器建立连接访问的端口号。
   3128用的不多,用的比较多的是8080
Proxy(代理)服务器


不允许访问baidu,其他网站是允许的 
Proxy(代理)服务器
这里有个细节需要注意:
  fanli  baidu  2行的顺序,因为fanli是指的是当前的网段是允许的,而访问baidu是拒绝的,在匹配的时首先匹配允许了网段是可以访问的,所以就不会匹配拒绝baidu这行。所以当再访问baidu的时候也是可以正常访问的。如果调换位置就会拒绝baidu了。
Proxy(代理)服务器

拒绝访问指定类型的后缀的网页:
Proxy(代理)服务器
Proxy(代理)服务器
后缀为:.txt的网站不可以访问:
Proxy(代理)服务器

根据上面的test别名:
   cache  deny   test
#凡是 .txt 结尾的网站都不做缓存。 allowe 则是:做缓存
Proxy(代理)服务器

配置文件中:cache_dir  ufs /var/spool/squid  100  16  256
  代理服务器缓存网页的存放目录。
  :100
#代理服务器会在这个目录里面创建一个100M的告诉缓存,硬盘当中创建
  :16
#这个目录下有16个子目录
  :256
#这个16个子目录下又有256个子目录
Proxy(代理)服务器
其中:cache_mem 10 MB:是从内存中划分10MB来做存储,这是个默认选项。存储:访问比较频繁的网页
Proxy(代理)服务器

重新指定squid的缓存目录位置:---用于存放缓存的服务器可以做逻辑卷,在逻辑卷上进行扩充。
Proxy(代理)服务器
Proxy(代理)服务器
Proxy(代理)服务器
Proxy(代理)服务器

当缓存无限增加的时候,设置缓存的限制:
     cache_swap_low  90
     cache_swap_high   95
#当磁盘使用率达到95%的时候,删除旧的缓存,直至使用率为:90%
Proxy(代理)服务器

系统缓存时间:
Proxy(代理)服务器
其中:
    1440:为最小缓存时间:单位分钟
    10080:最大缓存时间:单位分钟
    20%:当缓存的文件时间大于  10080 的20%时候,系统就会标记为旧的数据。
    

防火墙做NAT:这里做的是SNAT:
     因为有的人会避开浏览骑上的代理,从而可以直接使用NAT,上网。所以这里做了 SNAT
   iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE

需要将FORWARD中的过滤去掉
   iptables -nL
# 不反向解析,查看防火墙列表
   iptables -nL --line-numbers
# 查看时标记行号
Proxy(代理)服务器

squid监控:---基于apache的,所以需要安装apache
Proxy(代理)服务器
安装完后直接输入命令:  sarg
Proxy(代理)服务器

进入到字体文件所在目录位置:
Proxy(代理)服务器
创建目录:报错的目录是默认是不存在的,所以需要手动创建
Proxy(代理)服务器
将字体文件拷贝到创建的目录下
Proxy(代理)服务器
在图形界面的网页中输入: localhost/sarg
     可以查看客户端访问的记录