centos+stunnel+squid搭建与应用

您所在的位置:网站首页 win10搭建pxe安装环境 centos+stunnel+squid搭建与应用

centos+stunnel+squid搭建与应用

2023-05-24 01:20| 来源: 网络整理| 查看: 265

网络设计

网站的代理服务器,主要用于存储网站缓存。代理服务是由squid提供,stunnel是提供隧道加密功能,保障数据安全。代理服务器的搭建方式有多种形式,本次示例设计如下图所示。 在这里插入图片描述

腾讯云——前期准备

搭建网络之前,我们需要准备一台云服务器,我们以腾讯云为例,创建一台低配置的云服务器,然后将公网IP改为弹性IP,服务器配置如图所示 在这里插入图片描述

然后再申请一个弹性公网IP,如图所示 在这里插入图片描述

最后返回实例,进入实例的详细信息,在弹性网卡的主网卡新增一个内网IP,并将内网IP绑定刚申请的弹性公网IP,如图所示 在这里插入图片描述 在这里插入图片描述

腾讯云——网络设置

登录云服务器的系统,输入ip addr查看网卡的IP信息,如图所示 在这里插入图片描述 网卡eth0只有一个内网IP,但我们配置了两个内网IP,因此要在系统内配置另外一个内网IP,我们依次输入以下指令

cd /etc/sysconfig/network-scripts cp /etc/sysconfig/network-scripts/ifcfg-eth{0,0:0} cp /etc/sysconfig/network-scripts/route6-eth{0,0:0}

上述指令是在/etc/sysconfig/network-scripts文件夹 下分别创建ifcfg-eth0:0和route6-eth0:0文件,这两个文件是配置我们新增的内网IP,然后分别编辑ifcfg-eth0:0和route6-eth0:0文件,如下所示:

// 编辑ifcfg-eth0:0 vim ifcfg-eth0:0

分别将ifcfg-eth0:0的BOOTPROTO、DEVICE改为static和eth0:0,其中eth0:0与ifcfg-eth0:0文件的eth0:0相同,最后分别增加IPADDR(内网IP)、NETMASK(掩码)和GATEWAY(网关),本示例的配置如下:

IPADDR=172.27.0.5 NETMASK=255.255.240.0 GATEWAY=172.27.0.0

IPADDR是我们新增的内网IP,掩码和网关可以百度搜索掩码计算,输入内网IP和掩码位即可得到,如图所示 在这里插入图片描述 掩码位可以通过ip addr查看,如图所示 在这里插入图片描述 下一步是编辑route6-eth0:0文件:

// 编辑route6-eth0:0 vim route6-eth0:0

将default dev eth0改为default dev eth0:0即可 最后重启系统网络,使配置生效,输入并执行指令systemctl restart network,网络重启后,输入ip addr查看网络信息,如图所示 在这里插入图片描述 至此,我们在系统上已将新建的内网IP(172.27.0.5)添加到系统网络中。

阿里云——网络设置

阿里云的云服务器配置与腾讯云大同小异,具体流程:购买云服务器——>创建弹性网卡——>绑定云服务器,最终云服务器配置如图 在这里插入图片描述 但是阿里云的系统网络配置与腾讯云不相同,腾讯云是一台服务器有一个物理网卡绑定多个IP,阿里云是一台服务器有两个物理网卡,每个网卡独立一个IP,所以两者在系统上的配置各不相同。

登录云服务器,分别输入以下指令:

cd /etc/sysconfig/network-scripts vim /etc/sysconfig/network-scripts/ifcfg-eth1

在ifcfg-eth1文件编写以下内容:

DEVICE=eth1 #表示新配置的网卡接口 BOOTPROTO=no ONBOOT=yes TYPE=Ethernet USERCTL=yes PEERDNS=no IPV6INIT=no PERSISTENT_DHCLIENT=yes DEFROUTE=no # 配置辅助弹性网卡对应的MAC地址 HWADDR=xxxx #配置辅助弹性网卡的主私网IP IPADDR0=xxxx

最后保存文件,重新启动网络并查看网络配置 systemctl restart network ip addr

如图所示

在这里插入图片描述

搭建代理服务

系统网络搭建成功后,我们在依次安装squid、stunnel以及相关依赖,指令如下:

yum install squid yum -y install stunnel openssl openssl-devel

squid和stunnel安装成功后,我们分别为squid和stunnel进行配置,首先创建证书,指令如下:

cd /home openssl genrsa -out key.pem 2048 openssl req -new -x509 -key key.pem -out cert.pem -days 3650 cat key.pem cert.pem >> /etc/stunnel/stunnel.pem

上述指令是在home文件夹创建证书cert.pem和key.pem,然后将证书复制到/etc/stunnel文件夹并命名为stunnel.pem。 下一步在/etc/stunnel文件夹创建stunnel.conf文件,并写入以下配置信息:

client = no cert = /etc/stunnel/stunnel.pem socket = l:TCP_NODELAY=1 [squid6000] accept = 6000 connect = 172.27.0.4:8101 [squid7000] accept = 7000 connect = 172.27.0.5:8101

上述配置中,172.27.0.4:8101和172.27.0.5:8101分别是服务器的内网IP和端口8101,端口8101是用于启动squid服务的,服务器的stunnel负责监听squid服务。配置属性accept分别为6000和7000是服务器的stunnel对外端口,它负责接收用户请求。(服务器的stunnel是服务端角色,所以accept是用来接收客户端的请求)

stunnel配置后,下一步是配置squid,打开配置文件/etc/squid/squid.conf,将文件中所有配置属性全改为以下配置:

# Example rule allowing access from your local networks. # Adapt to list your (internal) IP networks from where browsing # should be allowed acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl localnet src fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT # # Recommended minimum Access Permission configuration: # # Deny requests to certain unsafe ports http_access allow Safe_ports # Deny CONNECT to other than secure SSL ports # http_access deny CONNECT !SSL_ports # Only allow cachemgr access from localhost http_access allow localhost manager http_access deny manager # We strongly recommend the following be uncommented to protect innocent # web applications running on the proxy server who think the only # one who can access services on "localhost" is a local user #http_access deny to_localhost # # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # # Example rule allowing access from your local networks. # Adapt localnet in the ACL section to list your (internal) IP networks # from where browsing should be allowed http_access allow localnet http_access allow localhost # And finally deny all other access to this proxy # 修改为allow http_access allow all # Squid normally listens to port 3128 # 重新设置监听端口,0.0.0.0:8101改为TCP连接 http_port 0.0.0.0:8101 # set out - ip 配置出口IP,即服务器的内网IP acl ip118 myip 172.27.0.4 acl ip119 myip 172.27.0.5 # 为squid接收的IP设置出口 tcp_outgoing_address 172.27.0.4 ip118 tcp_outgoing_address 172.27.0.5 ip119 # Uncomment and adjust the following to add a disk cache directory. #cache_dir ufs /var/spool/squid 100 16 256 # Leave coredumps in the first cache dir coredump_dir /var/spool/squid # # Add any of your own refresh_pattern entries above these. # refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320

最后分别启动stunnel和squid服务,指令如下:

systemctl start squid stunnel 客户端配置

客户端是我们本地PC的Windows系统,在Windows安装stunnel,安装包都是exe,傻瓜式安装即可。 在安装目录下打开config文件夹,将云服务器的创建的stunnel.pem放到客户端的config文件夹,然后创建并设置stunnel.conf文件,如下所示

cert = stunnel.pem client = yes socket = r:TCP_NODELAY=1 [squid6000] accept = 6000 connect = 1.14.4.159:6000 [squid7000] accept = 7000 connect = 1.14.28.151:7000

配置文件1.14.4.159:6000和1.14.28.151:7000分别是云服务器的公网IP,如图所示 在这里插入图片描述 云服务器的对外端口6000和7000必须要自行设置,如果云服务器没有开发这两个端口,则无法通信。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3