squid代理http和https方式上网的操作记录

背景:
公司IDC机房有一台服务器A,只有内网环境:192.168.1.150
现在需要让这台服务器能对外访问,能正常访问http和https请求(即80端口和443端口)

思路:
在IDC机房里另找其他两台有公网环境的服务器B(58.68.250.8/192.168.1.8)和服务器C(58.68.250.5/192.168.1.5),且这两台服务器和内网环境的服务器A能相互ping通。
其中:
在服务器B上部署squid的http代理,让服务器C通过它的squid代理上网,能成功访问http
在服务器C上部署squid的https代理,让服务器C通过它的squid代理上网,能成功访问https   [需要在客户端安装stunnel ]

下面开始记录这一需求的操作记录:
---------------------------------------------------------------------------------------------------------------------------
一、服务器B上的的操作记录(http代理)

1)安装squid
yum命令直接在线安装squid
[[email protected] ~]# yum install -y gcc openssl openssl-devel #依赖软件要先提前安装
[[email protected] ~]# yum install squid

安装完成后,修改squid.conf 文件中的内容,修改之前可以先备份该文件
[[email protected] ~]# cd /etc/squid/
[[email protected] squid]# cp squid.conf squid.conf_bak
[[email protected] squid]# vim squid.conf
http_access allow all                                                   #修改deny为allow
http_port 192.168.1.8:3128
cache_dir ufs /var/spool/squid 100 16 256                    #打开这个注释,保证/var/spool/squid这个缓存目录存在

2)启动squid,启动前进行测试和初始化
[[email protected] squid]# squid -k parse                    #测试
2016/08/09 13:35:04| Processing Configuration File: /etc/squid/squid.conf (depth 0)
2016/08/09 13:35:04| Processing: acl manager proto cache_object
..............
..............
2016/08/09 13:35:04| Processing: refresh_pattern . 0 20% 4320
2016/08/09 13:35:04| Initializing https proxy context

[[email protected] squid]# squid -z                            #初始化
2016/08/09 13:35:12| Creating Swap Directories

[[email protected] squid]# /etc/init.d/squid start
Starting squid: . [ OK ]

如果开启了防火墙iptables规则,则还需要在/etc/sysconfig/iptables里添加下面一行,即允许3128端口访问:
-A INPUT -s 192.168.1.0/24 -p tcp -m state --state NEW -m tcp --dport 3128 -j ACCEPT

然后重启iptables服务
[[email protected] squid]# /etc/init.d/iptables restart

---------------------------------------------------------------------------------------------------------------------------
二、服务器C上的的操作记录(https代理)

1)安装squid
yum命令直接在线安装squid
[[email protected] ~]# yum install -y gcc openssl openssl-devel #依赖软件要先提前安装
[[email protected] ~]# yum install squid
[[email protected] ~]# cd /etc/squid/
[[email protected] squid]# cp squid.conf squid.conf_bak

2)现在开始生成加密代理证书:
[[email protected] squid]# pwd
/etc/squid
[[email protected] squid]# openssl req -new > lidongbest5.csr
Generating a 2048 bit RSA private key
..........................................................................+++
.........................................................................................................+++
writing new private key to ‘privkey.pem‘
Enter PEM pass phrase:                                                                   #输入密码,后面会用到,比如这里输入123456
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.
-----
Country Name (2 letter code) [XX]:cn                                                  #国家
State or Province Name (full name) []:beijing                                       #省份
Locality Name (eg, city) [Default City]:beijing                                      #地区名字
Organization Name (eg, company) [Default Company Ltd]:huanqiu        #公司名
Organizational Unit Name (eg, section) []:Technology                            #部门
Common Name (eg, your name or your server‘s hostname) []:huanqiu    #CA主机名
Email Address []:[email protected]                                              #邮箱

Please enter the following ‘extra‘ attributes
to be sent with your certificate request
A challenge password []:123456                                                         #证书请求密钥,CA读取证书的时候需要输入密码
An optional company name []:huanqiu                                                #-公司名称,CA读取证书的时候需要输入名称

[[email protected] squid]# openssl rsa -in privkey.pem -out lidongbest5.key
Enter pass phrase for privkey.pem:                                                     #输入上面设置的密码123456
writing RSA key

[[email protected] squid]# openssl x509 -in lidongbest5.csr -out lidongbest5.crt -req -signkey lidongbest5.key -days 3650
Signature ok
subject=/C=cn/ST=beijing/L=beijing/O=huanqiu/OU=Technology/CN=huanqiu/[email protected]
Getting Private key

修改squid.conf配置文件
[[email protected] squid]# vim squid.conf
http_access allow all #deny修改为allow
#http_port 3128                                                                    #注释掉
https_port 192.168.1.5:443 cert=/etc/squid/lidongbest5.crt key=/etc/squid/lidongbest5.key            #添加这一行
cache_dir ufs /var/spool/squid 100 16 256                             #打开这个注释,保证/var/spool/squid这个缓存目录存在

3)重启squid服务
[[email protected] squid]# squid -k parse
[[email protected] squid]# squid -z
[[email protected] squid]# squid reload
[[email protected] squid]# /etc/init.d/squid restart

如果开启了防火墙iptables规则,则还需要在/etc/sysconfig/iptables里添加下面一行,即允许443端口访问:
-A INPUT -s 192.168.1.0/24 -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

然后重启iptables服务
[[email protected] squid]# /etc/init.d/iptables restart

---------------------------------------------------------------------------------------------------------------------------
三、服务器A(即客户端)上的操作记录

1)安装配置stunnel

关闭客户端的iptables防火墙
[[email protected] ~]# /etc/init.d/iptables stop

[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# pwd
/usr/local/src
[[email protected] src]# ls
stunnel-5.35.tar.gz
[[email protected] src]# tar -zvxf stunnel-5.35.tar.gz
[[email protected] src]# ls
stunnel-5.35 stunnel-5.35.tar.gz
[[email protected] src]# cd stunnel-5.35
[[email protected] stunnel-5.35]# ./configure
[[email protected] stunnel-5.35]# make && make install

安装完成后,配置stunnel.conf
[[email protected] stunnel-5.35]# cd /usr/local/etc/stunnel/
[[email protected] stunnel]# ls
stunnel.conf-sample
[[email protected] stunnel]# cp stunnel.conf-sample stunnel.conf
[[email protected] stunnel]# ls
stunnel.conf stunnel.conf-sample
[[email protected] stunnel]# cat stunnel.conf              #把原来内容清空,写入:
client = yes
[https]
accept = 127.0.0.1:8088
connect = 192.168.1.5:443                               #运行本机stunnel端口8088连接squid服务端192.168.1.5的443端口,然后在/etc/profile里配置本机8088端口代理(如下)

2)启动stunnel服务
[[email protected] stunnel]# /usr/local/bin/stunnel /usr/local/etc/stunnel/stunnel.conf
[[email protected] stunnel]# ps -ef|grep stunnel
root 20281 1 0 02:23 ? 00:00:00 /usr/local/bin/stunnel /usr/local/etc/stunnel/stunnel.conf
root 20283 13002 0 02:23 pts/0 00:00:00 grep --color stunnel
[[email protected] stunnel]# lsof -i:8088
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
stunnel 20281 root 7u IPv4 745475 0t0 TCP localhost:radan-http (LISTEN)

3)配置/etc/profile系统环境变量
底部添加下面两行
[[email protected] stunnel]# vim /etc/profile
...............
export http_proxy=http://192.168.1.8:3128                          #这个是通过服务端A机器的3128端口的squid上网(http代理)
export https_proxy=http://127.0.0.1:8088                            #这个是通过服务端B机器的443端口的squid上网(https代理)

[[email protected] stunnel]# source /etc/profile                   #配置生效

4)测试:
[[email protected] stunnel]# curl http://www.baidu.com                           #访问80端口ok
[[email protected] stunnel]# curl https://www.xqshijie.com                      #访问443端口ok
[[email protected] stunnel]# yum list                                                     #yum可以正常使用
[[email protected] stunnel]# wget http://www.autohome.com.cn/3442      #wget正常下载

时间: 2024-10-29 10:46:15

squid代理http和https方式上网的操作记录的相关文章

msysgit使用https方式连接并操作[email protected]

参考资料:http://git.oschina.net/progit/index.htmlhttp://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001373962845513aefd77a99f4145f0a2c7a7ca057e7570000 -------------- 下载Git工具 -------------- 下载地址http://msysgit.github.io/ ---

配置squid 代理

一.什么是squid    1. squid可以做代理也可以做缓存       2.squid缓存不仅可以节省宝贵的带宽资源,也可以大大降低服务器的I/O       3.squid即可以做正向代理也可以做反向代理        4.正向代理,squid后面是客户端,客户端上网要通过squid去上:反向代理后面是服务器,服务器返回给用户数据的时候需要走squid        5.正向代理用在企业的办公环境中,员工上网需要通过squid代理来上网,这样子可以节省网络带宽资源,而反向代理用来搭建网

nfs、samba、squid代理部署及优化

nfs部署及优化 nfs服务器上: [[email protected] vhosts]# yum install -y nfs-utils rpcbind [[email protected] vhosts]#  vim /etc/exports /mnt/ 192.168.137.21(rw,sync) //  /mnt/共享的目录,192.168.137.21允许访问的主机IP,(rw,sync)权限 [[email protected] vhosts]#  /etc/init.d/rpc

squid 代理缓存服务器

Squid cache(简称为Squid)是一个流行的自由软件,它符合GNU通用公共许可证.Squid作为网页服务器的前置cache服务器,可以代理用户向web服务器请求数据并进行缓存,也可以用在局域网中,使局域网用户通过代理上网.Squid主要设计用于在Linux一类系统运行 代理服务器原理 代理服务器接受到请求后,首先与访问控制列表中的访问规则相对照,如果满足规则,则在缓存中查找是否存在需要的信息. 对于Web用户来说,Squid是一个高性能的代理缓存服务器,可以加快内部网浏览Interne

squid代理加用户认证

squid代理加用户认证 用authentication helpers添加身份验证 有如下几种认证方式 :=> NCSA: Uses an NCSA-style username and password file.=> LDAP: Uses the Lightweight Directory Access Protocol=> MSNT: Uses a Windows NT authentication domain.=> PAM: Uses the Linux Pluggab

squid 代理

目录 squid代理 课程目标 一.squid基本概述 二.squid代理类型 三.squid代理服务器和SNAT|DNAT的区别 四.了解squid代理软件相关信息 五.squid端正向代理配置 六.squid的透明代理配置 七.squid实现访问控制 八.反向代理(扩展) squid代理 课程目标 了解squid的应用场景 理解squid的工作原理和作用 理squid的代理类型(重点) 掌握squid的正向和透明代理的配置(重点) 能够根据需求对squid服务器做简单的访问控制 一.squi

Linux下squid代理缓存服务环境部署

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快.Squid 可以代理HTTP.FTP.GOPHER.SS

java中设置代理的两种方式

1 前言 有时候我们的程序中要提供可以使用代理访问网络,代理的方式包括http.https.ftp.socks代理.比如在IE浏览器设置代理. 那我们在我们的java程序中使用代理呢,有如下两种方式.直接上代码. 2 采用设置系统属性 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 import jav

squid代理配置

squid:作用:代理,缓存,不可访问的通过代理可访问. 正向代理:squid后面是客户端,客户端上网要通过squid常用在企业办公环境中,节省网络带宽资源,员工上网需通过squid代理. 用户<--->访问<--->代理服务器<--->防火墙|资源服务器反向代理:squid后面是服务器,服务器返回给用户数据需要走squid.用在网站架构中,常用来搭建网站静态项(图片,css,html,js,流煤体等)缓存服务器. 用户<--->代理服务器<---&g