centos stunnel debian centos

CentOS上使用Squid+Stunnel搭建代理服务器教程

代理服务器,就不用介绍了,简单说一下安装过程。开始的时候在hosting24上面,安装,怎么安装都没有成功,换成linode,半个小时就搞定了,猜测hosting24对代理做了限制。

一,服务器说明

一台国外的vps(推荐linode),服务端squid

一台公司内部的PC机,能访问外网就行,客户端stunnel

要达到的目的,公司内部人员,连接公司内部的pc机,通过stunnel通道连接远端squid,上外网查资料,谷歌,众里寻你千百度,蓦然回首你却在高墙外头。唉。

二,服务端安装squid

1,安装squid

代码如下:

# yum install squid openssl openssl-devel 

2,生成加密代理证书

代码如下:

# cd/etc/squid 

# openssl req-new tank.csr   //要求输入密码和确认密码 

# openssl rsa-in privkey.pem-out tank.key //输入上面输入的密码 

# openssl x509-in tank.csr-out tank.crt-req-signkey tank.key-days 3650 

3,配置squid

代码如下:

# vim/etc/squid/squid.conf

acl OverConnLimit maxconn 10  //限制每个IP最大允许10个连接,防止攻击 

minimum_object_size 1 KB     //允午最小文件请求体大小 

maximum_object_size 1 MB     //允午最大文件请求体大小 

cache_swap_low 10            //最小允许使用swap 10% 

cache_swap_high 25           //最大允许使用swap 25% 

cache_mem 300 MB             //可使用内存

/*****************上面是新增,下面是修改************************/

cache_dir ufs/var/spool/squid 2048 16 256       //2048存储空间大小,一级目录16个,二级256个 

https_port 4430 cert=/etc/squid/tank.crt key=/etc/squid/tank.key  //端口可自定义 

http_access allow all 

vps硬盘,内存都不富裕,所以对squid所占用的内存和硬盘等要加以控制。

4,启动squid,并查看

代码如下:

#/etc/init.d/squid start

# ps aux|grep squid 

root    15984 0.0 0.0 103256  844 pts/0   S+  17:31  0:00 grep squid 

root    16585 0.0 0.0 72484 4176?       Ss  15:27  0:00 squid-f/etc/squid/squid.conf 

squid   16587 0.0 0.3 93064 29468?       S   15:27  0:03(squid)-f/etc/squid/squid.conf 

squid   16589 0.0 0.0 48632 2100?       S   15:27  0:00(ncsa_auth)/etc/squid/passwd 

squid   16590 0.0 0.0 48632 1788?       S   15:27  0:00(ncsa_auth)/etc/squid/passwd 

squid   16591 0.0 0.0 48632 1784?       S   15:27  0:00(ncsa_auth)/etc/squid/passwd 

squid   16592 0.0 0.0 48632 1788?       S   15:27  0:00(ncsa_auth)/etc/squid/passwd 

squid   16593 0.0 0.0 48632 1784?       S   15:27  0:00(ncsa_auth)/etc/squid/passwd 

squid   16594 0.0 0.0 20084 1112?       S   15:27  0:00(unlinkd)

VPS很少有,自启动开启防火墙的,如果有先关掉,等都配置好了,在开放端口。

三,客户端安装配置stunnel

1,安装

代码如下:

# yum install stunnel 

2,新增配置/etc/stunnel/stunnel.conf,添加以下内空

代码如下:

client= yes 

fips= no 

[https] 

accept= 7071 

connect=外网VPS的IP:4430 

如果报,FIPS_mode_set: 2D06C06E: error:2D06C06E:FIPS routines:FIPS_module_mode_set:fingerprint does not match,stunnel.conf配置文件中加上,fips= no

3,启动stunnel并查看

代码如下:

# stunnel           //启动,默认配置文件路径/etc/stunnel/stunnel.conf

# ps aux|grep stunnel //查看 

root    15972 0.0 0.0 103256  848 pts/0   S+  17:30  0:00 grep stunnel 

root    21099 0.0 0.0 41532 1060 pts/0   S   15:42  0:00 stunnel 

root    21100 0.0 0.0 41532 1060 pts/0   S   15:42  0:00 stunnel 

root    21101 0.0 0.0 41532 1060 pts/0   S   15:42  0:00 stunnel 

root    21102 0.0 0.0 41532 1060 pts/0   S   15:42  0:00 stunnel 

root    21103 0.0 0.0 41532 1060 pts/0   S   15:42  0:00 stunnel 

root    21104 0.0 0.0 2077984 6824?       Ss  15:42  0:00 stunnel 

到这儿就安装好了,设置浏览器代理,填写局域网IP和端口,就可以访问外网了,这样不太安全,如果能加上用户认证会,安全一点。

四,用户认证

1,添加认证用户 test123

代码如下:

# htpasswd-c/etc/squid/passwd test123 

2,配置代理以及用户认证

代码如下:

# vim/etc/squid/squid.conf //添加以下内容

auth_param basic program/usr/lib64/squid/ncsa_auth/etc/squid/passwd //认证方式为basic,认证程序路径和密码文件路径 

auth_param basic children 5       //认证程序的进程数 

auth_param basic credentialsttl 1 hours   //认证有效时间 

auth_param basic realm my test prosy      //浏览器显示输入用户/密码对话框时,显示的内容 

acl test123 proxy_auth REQUIRED 

http_access allow test123    //普通用户需要通过认证才能访问 

http_access deny all  //最下面,匹配是从上到下的 

3,重启squid

代码如下:

#/etc/init.d/squid restart 

这样squid代理就搭好了,浏览器里面设置一下代理IP和端口,会弹出认证框,输入用户名和密码就行了。

4,php也可以利用代理服务器

代码如下:

function testCurl($url){ 

    $ch= curl_init(); 

    curl_setopt($ch, CURLOPT_URL,$gurl); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE); 

    curl_setopt($ch, CURLOPT_PROXY,"192.168.1.18:7071");   //ip/端口 

    curl_setopt($ch, CURLOPT_PROXYUSERPWD,'test123:123456'); //认证用户和密码 

    $result=curl_exec($ch); 

    curl_close($ch); 

   return$result; 

}

echo testCurl("google.com");

CentOS Squid+Stunnel

为了实现Ubuntu客户端通过CentOS的Squid访问外部网络并解决访问GitHub的问题,我们采用Squid+Stunnel的方式,确保数据传输安全。以下是详细步骤:

首先,通过以下步骤安装Squid:

在CentOS虚拟机上安装Squid

其次,创建自签名证书用于HTTPS连接,确保数据传输安全。

安装OpenSSL

生成证书请求文件

填写证书请求信息

生成私钥

使用私钥自签证书

接着,创建Squid密码文件与用户,确保身份认证。

安装HTTPD

创建密码文件和用户

密码长度限制为8位

然后,配置Squid:

备份配置文件

修改配置文件,包括代理、缓存、防火墙等参数

检查防火墙状态及策略,确保Squid端口未被阻止

验证配置正确性

启动服务并查看端口状态

随后,配置Ubuntu客户端的Stunnel:

安装Stunnel

配置Stunnel,确保与Squid的TLS连接

启动Stunnel并验证启动成功

最后,调整Firefox浏览器设置,通过代理访问GitHub:

在Firefox中设置代理,指定本地Squid服务器

访问GitHub,确保数据传输全程加密

使用抓包工具检查数据传输过程,确保数据安全

至此,通过Squid+Stunnel的方式,Ubuntu客户端成功通过CentOS的Squid访问外部网络并解决了访问GitHub的问题,实现了数据传输的安全性。

stunnel 配置(contos7 windows)

stunnel是一款功能强大的开源网络数据加密软件,全称为"Secure Tunnel",能够为非加密的网络连接提供 TLS加密保护。它的主要应用包括 SMTP、POP3、IMAP、LDAP、FTP等网络服务,通过 stunnel可以在不修改现有代码的前提下,对客户端至服务端的数据进行加密传输,确保数据在传输过程中不被第三方窃取或窥视。

stunnel实际上是一个代理工具,包含客户端和服务端。在使用时,客户端将数据先发送给 stunnel的客户端进行加密,之后,stunnel客户端将加密后的数据发送给 stunnel服务端。服务端接收到数据后进行解密,并将数据转发至服务器。数据传输路径为:客户端-> stunnel客户端-> stunnel服务端->服务器。通过这种方式,数据在客户端至服务端之间形成加密隧道,最大程度地避免了数据明文传输。

stunnel的安装与配置通常分为服务端和客户端两部分。在 CentOS 7系统上,可以通过命令 `yum-y install stunnel`进行安装。安装后,会在系统目录 `/usr/bin/`下生成一个配置样例文件,该文件位置可能不固定,可以通过 `find/-name stunnel*`命令进行全局搜索。配置文件可以存放在任意路径,例如 `/root/stunnel/`。配置文件中的 `verify= 2`设置非常重要,它要求 stunnel检查对方证书。更多配置细节与参数解释,请参阅 stunnel官方文档。

安装完成后,需要配置服务端证书、私钥、客户端证书与私钥。这些证书与私钥的获取与制作通常涉及加解密、证书认证与校验等知识。推荐从 Google学习相关知识,以确保正确配置。证书制作的流程可以参考相关教程,例如博客文章,以确保不会出错。

stunnel的客户端配置相对简单,通常在安装目录的 `config`文件夹中找到配置文件 `stunnel.conf`,进行相应的参数设置即可。配置完成后,双击 `bin`目录下的 `stunnel.exe`文件启动,通过查看日志输出确认启动状态。

阅读剩余
THE END