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`文件启动,通过查看日志输出确认启动状态。