Squid代理服务器应用(传统与透明)
发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,实验原理图第一步:配置squid代理服务器#远程共享并挂载源码包[root@squid ~]# smbclient -L //192.168.142.1[root@squid ~]# mount.ci
千家信息网最后更新 2025年01月26日Squid代理服务器应用(传统与透明)
实验原理图
第一步:配置squid代理服务器
#远程共享并挂载源码包[root@squid ~]# smbclient -L //192.168.142.1[root@squid ~]# mount.cifs //192.168.142.1/squid /mnt#解压源码包[root@squid ~]# cd /mnt[root@squid mnt]# tar zxvf squid-3.4.6.tar.gz -C /opt#安装编译环境[root@squid mnt]# yum install gcc gcc-c++ make -y#切入源码包目录[root@squid mnt]# cd /opt/squid-3.4.6/#配置configure组件项[root@squid squid-3.4.6]# ./configure --prefix=/usr/local/squid \>--sysconfdir=/etc \>--enable-arp-acl \>--enable-linux-netfilter \>--enable-linux-tproxy \>--enable-async-io=100 \>--enable-err-language="Simplify_Chinese" \>--enable-underscore \>--enable-poll \>--enable-gnuregex#编译与安装[root@squid squid-3.4.6]# make && make install#建立服务命令软链接到系统中,便于管理[root@squid squid-3.4.6]# ln -s /usr/local/squid/sbin/* /usr/local/sbin#添加程序用户[root@squid squid-3.4.6]# useradd -M -s /sbin/nologin squid#修改服务目录的属主和属组[root@squid squid-3.4.6]# chown -R squid.squid /usr/local/squid/var#修改squid.conf配置文件[root@squid squid-3.4.6]# vim /etc/squid.confhttp_port 3128#在3128端口条目下追加以下条目#指定缓存功能所使用的内存空间大小,建议设为物理内存的1/4cache_mem 64 MB#允许用户下载最大文件大小reply_body_max_size 10 MB#允许保存到缓存空间的站点对象大小maximum_object_size 4096 KB#添加程序用户cache_effective_user squid#添加用户组cache_effective_group squid#检查配置文件语法[root@squid squid-3.4.6]# squid -k parse#初始化缓存目录[root@squid squid-3.4.6]# squid -z#启动服务[root@squid squid-3.4.6]# squid#查看服务端口状态[root@squid squid-3.4.6]# netstat -ntap | grep squidtcp6 0 0 :::3128 :::* LISTEN 31862/(squid-1) #切换启动进程目录[root@squid squid-3.4.6]# cd /etc/init.d#创建启动脚本[root@squid init.d]# vim squid#!/bin/bash#chkconfig: 2345 90 25PID="/usr/local/squid/var/run/squid.pid"CONF="/etc/squid.conf"CMD="/usr/local/squid/sbin/squid"case "$1" instart) netstat -ntap | grep squid &> /dev/null if [ $? -eq 0 ] then echo "squid is running" else echo "正在启动 squid...." $CMD fi ;;stop) $CMD -k kill &> /dev/null rm -rf $PID &> /dev/null ;;status) [ -f $PID ] &> /dev/null if [ $? -eq 0 ] then netstat -ntap | grep squid else echo "squid is not running" fi ;;restart) $0 stop &> /dev/null echo "正在关闭 squid..." $0 start &> /dev/null echo "正在启动 squid..." ;;reload) $CMD -k reconfigure ;;check) $CMD -k parse ;;*) echo "用法:$0{start|stop|reload|status|check|restart}" ;;esac#授予脚本执行权限[root@squid init.d]# chmod +x squid#添加脚本到service管理器[root@squid init.d]# chkconfig --add squid #添加服务开机自启动[root@squid init.d]# chkconfig --level 35 squid on#使用脚本可管理squid服务[root@squid init.d]# service squid stop[root@squid init.d]# service squid start 正在启动 squid....[root@squid init.d]# netstat -ntap | grep squidtcp6 0 0 :::3128 :::* LISTEN 48115/(squid-1) #清除防火墙所有规则[root@squid init.d]# iptables -F#关闭增强型安全功能[root@squid init.d]# setenforce 0#设着防火策略,用以放通3128端口[root@squid init.d]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
第二步:配置Web网站服务器
[root@web ~]# systemctl stop firewalld.service [root@web ~]# setenforce 0[root@web ~]# yum install httpd -y[root@web ~]# systemctl start httpd
第三步:使用客户端访问网页
使用浏览访问192.168.142.139
第四步:配置客户端使用代理服务器,验证代理服务
1.打开浏览器的工菜单,选择"Internet选项"
2.选择"局域网设置",选中"为LAN使用代理服务器""并指定服务器地址和端口
3.再次访问192.168.142.139
4.回到web服务端查看服务日志,可见来访记录是代理服务器的地址
[root@web ~]# vim /etc/httpd/logs/access_log 192.168.142.131 - - [04/Dec/2019:19:04:28 +0800] "GET /noindex/css/fonts/ExtraBold/OpenSans-ExtraBold.eot? HTTP/1.1" 404 248 "http://192.168.142.139/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"
由此可见传统代理是使用代理服务器的地址进行访问web服务的,适用于Internet,当需名却指定服务端!
以上是Squid传统代理服务,下面我们来配置透明代理服务
设置透明代理
第一步:配置代理服务器网卡
1.修改ens33 网卡信息
[root@squid ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 #修改dhcp为staticBOOTPROTO=static#末行追加IP地址、子网掩码和网关IPADDR=192.168.100.1NETMASK=255.255.255.0[root@squid ~]# service network restart Restarting network (via systemctl): [ 确定 ]
2.添加第二块网卡,并修改ens36 网卡信息
[root@squid ~]# cd /etc/sysconfig/network-scripts/[root@squid network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36[root@squid network-scripts]# vim ifcfg-ens36#将33替换成36,并删除UUID条目IPADDR=12.0.0.1NETMASK=255.255.255.0[root@squid network-scripts]# service network restart Restarting network (via systemctl): [ 确定 ]
3.添加转发数据包功能,将服务器用作网关
[root@squid network-scripts]# echo "1" >/proc/sys/net/ipv4/ip_forward
4.设置防火墙策略
#放通80端口,并重定向到3128代理端口[root@squid network-scripts]# iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128##放通https的443端口,并重定向到3128代理端口[root@squid network-scripts]# iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
5.修改squid.conf配置文件
[root@squid ~]# vim /etc/squid.conf#将原3128端口条目替换成以下条目,用以支持透明模式http_port 192.168.100.1:3128 transparent
6.重载代理服务
[root@squid network-scripts]# service squid reload
第二步:Web服务器网卡信息
[root@web ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 #修改dhcp为staticBOOTPROTO=static#末行追加IP地址、子网掩码和网关IPADDR=12.0.0.12NETMASK=255.255.255.0GATEWAY=12.0.0.1[root@web ~]# service network restartRestarting network (via systemctl): [ 确定 ]
第三步:使用客户机访问
1.修改地址
2.取消之前设定的代理服务选项
3.使用浏览器访问12.0.0.12
4.回到web服务端查看服务日志,可见来访记录是外网卡的地址
12.0.0.1 - - [04/Dec/2019:22:41:39 +0800] "GET /noindex/css/fonts/ExtraBold/OpenSans-ExtraBold.eot? HTTP/1.1" 404 248 "http://12.0.0.12/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"
由此可见,透明代理是使用外网卡的地址进行访问web服务的,通过媒人路由和防火墙策略将Web访问从定向给代理服务器处理!
谢谢阅读!!!
服务
代理
服务器
端口
配置
地址
网卡
代理服务
条目
文件
正在
用户
目录
脚本
防火
信息
功能
大小
客户
源码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络安全的情话
行程码后台数据库
软件开发平台 价格
江阴进口软件开发报价表
哪吒监控面板服务器
搭建代码编译服务器
供应链企业网络安全检查表
软件开发企业财务报表特点
网络安全等级保护宣传标语
打印机域服务器不可用
sql服务器叫什么名字
时序数据库 教程
网络安全问题有哪几种类型
信息与网络安全技术简介
数据库安全审计的流程
福建生态软件开发创新服务
网络安全事件调查取证教程
代价最低网络安全
百旺税控盘提示访问数据库错误
哪里可以学习网络技术培训
信息安全入门和软件开发入门
青岛智路软件开发有限公司
网络安全责任的情况汇报
软件开发统计图
零陵网络安全防线
数据库体验
中国移动招聘网络安全题
2017乌镇互联网科技
大龄转行网络安全吗
r730服务器支持哪些CPU