Stunnel 的用法

标签: Stunnel

参考网址:[url]http://www.ibm.com/developerworks/cn/security/s-stun/index.html#3[/url]

Stunnel.conf文件配置比较简单,下面我们介绍一些常见应用配置,其中Client端是放在本机,IP是127.0.0.1,Server端是放在外网的服务器上,IP是202.151.90.28。

1.加密邮件传输:

加密邮件,需要将发送和接收的过程都要进行保护,那么我们就要对POP3和SMTP传送方式进行加密。如果我们有一个xxx@colasoft.com.cn信箱,服务器的IP是202.108.44.153,配置文件stunnel.conf如下:

Client端SMTP和POP3文件内容 Server端SMTP和POP3文件内容
        [smtp.colasoft.com.cn]
        accept   = 127.0.0.1:25
        connect = 202.151.90.28:125

        [pop3.colasoft.com.cn]
        accept   = 127.0.0.1:110
        connect = 202.151.90.28:1110
        [smtp.colasoft.com.cn]
        accept   = 125
        connect = 202.108.44.170:25

        [pop3.colasoft.com.cn]
        accept   = 1110
        connect = 202.108.44.153:110


如果有多个邮件传输需要加密,则增加相应的POP3和SMTP设置即可。设置好了配置文件,我们还需要将邮件客户端(常见的为Foxmail或Outlook)与其对应,设置如下:
发送的邮件地址改为:127.0.0.1        端口改为:125
接收的邮件地址改为:127.0.0.1        端口改为:1110

2.加密FTP传输:

FTP是比较早的文件传输协议,内容都是以明文方式传输,我们利用Stunnel后,也可以让FTP的传输非常安全,现在我们只需要在前面的stunnel.conf内容里面增加以下配置信息:

Client端FTP的配置 Server端FTP的配置
        [ftp.net130.com]
        accept   = 127.0.0.1:21
        connect = 202.151.90.28:121
         [ftp.net130.com]
         accept   = 121
         connect = 218.7.9.73:21


FTP软件(如CuteFTP)也要做相应更改:
登录的远程地址改为:127.0.0.1        端口改为121

3.加密HTTP网站访问传输:

我们不能对所有的网站访问都进行加密,因为太多,但对于很重要的网站,我们也可以用Stunnel来保护访问的内容不受到监听。例如我们要访问[url]www.colasoft.com.cn[/url],网站IP地址是202.108.36.172,HTTP的配置如下:

Client端HTTP的配置 Server端HTTP的配置
        [[url]www.colasoft.com.cn[/url]]
        accept   = 127.0.0.1:80
        connect = 202.151.90.28:8080
        [[url]www.colasoft.com.cn[/url]]
        accept   = 8080
        connect = 202.108.36.172:80


通过结合使用科来网络分析系统与Stunnel,既可以做到对网络的安全检测,并找出网络内的潜在安全隐患,又能从防护的角度出发,保护公司内部网络的重要信息。此方案成本低,不改变当前网络内的结构,容易实施,是一个简单有效的安全管理方案。

### Go-Redis 库支持的连接方式 Go-redis 支持多种不同的连接方式来与 Redis 实例交互。以下是几种主要的方式: #### 单机模式连接 对于单个 Redis 服务器,可以使用 `NewClient` 方法建立连接。 ```go import ( "github.com/go-redis/redis/v8" ) func main() { rdb := redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", // no password set DB: 0, // use default DB }) } ``` 此代码片段展示了如何配置客户端去连接本地运行的一个无密码保护的默认数据库实例[^1]。 #### 使用 TLS 进行安全连接 当需要通过加密通道访问远程托管的服务时,如 AWS ElastiCache 或其他云提供商提供的 Redis 服务,则可以通过 Stunnel 设置 TLS 隧道,并利用 go-redis 客户端指定 SSL/TLS 参数来进行安全通信。 ```bash sudo apt install redis-tools stunnel4 ``` 上述命令用于安装必要的工具以便于设置 TLS 加密连接环境。 在应用程序层面,可以在初始化 client 选项中加入 TLS 相关参数: ```go rdb := redis.NewClient(&redis.Options{ Addr: "localhost:6379", // or the address of your remote server with port number. Username: "default", // If using ACLs and requiring username authentication. Password: "yourpassword", // Replace 'yourpassword' with actual password string if required by target instance. TLSEnable: true, RootCAs: nil, // Provide custom CA certificates here if needed. }) ``` 这段代码说明了怎样启用 TLS 并提供可选的身份验证信息以及自定义根证书颁发机构 (CA)。 #### Sentinel 模式下的高可用性集群连接 如果目标是一个由多个哨兵节点监控着主从架构组成的 HA 群集,那么应该采用 `NewFailoverCluster` 来构建一个能够自动发现并切换至新的 master 节点上的会话。 ```go failoverOptions := &redis.FailoverOptions{ MasterName: "mymaster", Sentinels: []string{"sentinel1:26379","sentinel2:26379"}, } client := redis.NewFailoverClient(failoverOptions) ``` 这里展示了一个例子,在其中指定了 sentinel 地址列表和 master 名字作为 failover options 的一部分传递给 NewFailoverClient 函数。 #### Cluster Mode On (CMO) 方式的分布式存储系统接入 针对启用了 cluster mode on 特性的大规模分布式的 key-value store 架构,应选用 `NewClusterClient` 创建一个新的集群级别的 Client 对象。 ```go clusterOptions := &redis.ClusterOptions{ Addrs: []string{"node1:7000", "node2:7000"}, // List all nodes participating in this CMO setup. } clusterc := redis.NewClusterClient(clusterOptions) ``` 以上示例介绍了如何为参与同一套件中的各个 node 提供地址列表从而实现对整个集群范围内的操作能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值