Squid代理服务器应用(传统与透明)
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,实验原理图第一步:配置squid代理服务器#远程共享并挂载源码包[root@squid ~]# smbclient -L //192.168.142.1[root@squid ~]# mount.ci
千家信息网最后更新 2024年11月22日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安全错误
数据库的锁怎样保障安全
怎么删除服务器管理员密码
无法和服务器建立安全的链接
红包活动如何设计数据库表
软件开发员职位说明书
停车设备专利数据库免费
嘉定区品质数据库价格查询
视频通讯软件开发
网络安全立法内容的分类
东莞自主可控软件开发报价表
南京嘉锋网络技术有限公司
重庆微信软件开发团队
与江西省有关的网络安全知识
公司网络安全教育内容
服务器维护企业
网络安全周大数据时代的困扰
永大服务器显示等待检查
在云服务器搭建stf
信息网络安全的第二个时代()
无线网络技术规划设计
dss服务器
基于画像网络安全大数据分析
服务器编码一般是多少
服务器硬件组成及分级pdf
滁州做app的软件开发多少钱
停车场管理系统需要服务器
北京ibm服务器虚拟主机
金融软件开发专业大学排名
软件开发原理
下载fdtd时服务器无法启动
软件开发贷款用途