Squid代理服务器
1.传统代理: 需在客户端配置代理服务器
客户机基本配置
echo "GATEWAY=192.168.100.2" >> /etc/sysconfig/network-scripts/ifcfg-ens33
#配置Squid服务器的ens33接口为客户机的网关
Systemctl stop firewalld #关闭防火墙
Systemctl restart network #重启网络
Squid服务器配置
Yum install squid #使用yum命令安装squid代理服务
Systemctl start squid #传统代理 直接启动squid即可
Systemctl stop firewalld #关闭防火墙
Web服务器配置
Systemctl start httpd #启动httpd服务
Systemctl stop firewalld #关闭防火墙
测试
客户机测试, 在浏览器配置代理服务器配置
在浏览器输入web服务器IP地址成功访问,
并且不能ping通web服务器
2.透明代理: 无需在客户端配置代理服务器配置
在传统代理的基础上修改配置文件:
Squid-Server配置
echo "net.ipv4.ip_forword=1" > /etc/sysctl.conf #开启路由转发功能,实现本机中不同网段的地址转发
Sysctl -p # 重读配置文件
Systemctl start firewalld #开启防火墙-用于端口转换
firewall-cmd --zone=internal --change-interface=ens37 #定义内网区域-设置ens37为内网口
firewall-cmd --zone=external --change-interface=ens33 #定义外网区域-设置ens33为外网口
firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens33 -p tcp --dport 80 -j REDIRECT --to-ports 3128
--add-rule ipv4 nat #定义nat策略
PREROUTING #先进行nat策略在进行路由转发
-i ens33 #指定nat应用接口
-p tcp #指定tcp端口
-dport 80 -j REDIRECT --to-ports 3128 #指定接收到的目标端口为80的数据转发至3128端口
firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens33 -p tcp --dport 443 -j REDIRECT --to-ports 31
#同上面命令一样只是将接收的目标端口该为443
firewall-cmd --runtime-to-permanent #开启端口伪装
vim /etc/squid/squid.conf #编辑squid的配置文件
http_port 192.168.100.2:3128 transparent #将配置文件的该字段修改
systemctl reload squid #重启服务
客户机测试: 无需配置代理服务器直接访问web服务器ip地址访问站点
3.反向代理: 直接通过访问代理服务器从而访问到web服务器
ulimit -n # 默认打开文件描述符为 1024 ,要增大它
Vim /etc/security/limits.conf #编辑limits配置文件
* - nofile 65535 #修改shell对进程的最大资源数
Mkdir /opt/squid_cache #创建缓存目录
Chown -R squid.squid /opt/squid_cache #更改属主、属组
Vim /etc/squid/squid.conf #编辑配置文件
cache_effective_user squid
cache_effective_group squid
http_port 80 vhost vport accel #配置vhost用于转发请求虚拟主机、虚拟端口,accel指加速模式
cache_peer 100.0.0.1 parent 80 0 proxy-only # Cache_peer指后端web服务器地址,80为后端服务器端口
visible_hostname study.localhost.localdomain #计算机名,可以为 IP 地址,用于错误页面的显示
cache_mem 300 MB #内存缓存大小,指定使用多少物理内存作为高速缓存
cache_dir ufs /opt/squid_cache 1024 10 230
#缓存目录大小为 1G ,这个可以按实际磁盘大小来定,有 10 二级目录,每个二级目录下有 230个子目录
maximum_object_size 4 MB #最大缓存文件大小为 4MB ,超过的直接传给用户,不作缓存
cache_access_log /var/log/squid/access.log #访问日志文件路径,记录了用户访问 Internet 的详细信息,可以查看每用户的上网记录
ache_log /var/log/squid/cache.log #缓存日志文件路径,记录了缓存相关的日志信息
http_access allow all #允许所有人访问代理服务器(必须开启)
:wq #保存退出
Squid -z #初始化squid
Systemctl start squid #启动squid
Systemctl stop firewalld #关闭防火墙
客户机测试:
在客户机通过直接使用代理服务器ip 成功访问web服务器
并且无法与web服务器进行通信