老E的博客

  • 首页
  • 关于
  • 技术应用
    • VPS相关
    • AI相关
    • 盒子相关
    • 其他
  • 订阅Youtube频道
  • 网络加速
    • expressvpnNo.1 ExpressVPN
    • 最佳免费VPN-PrivadoVPN
    • NordVPN
    • 廉价王者-Surfshark
    • PrivateInternetAccess
    • 解锁一切-PrivateVPN
  • 公益资源
    • AI导航
    • 工具下载
    • Docker镜像加速
  • 友情链接
    • tickcloudTickcloud
老E的博客
专注记录并分享跨境技术应用及随想
  1. 首页
  2. 技术应用
  3. VPS相关
  4. 正文

stunnel配置文件主要选项

2023年10月9日 2421次阅读 0条评论
clawcloud
expressvpn best vpn
privado vpn
surfshark vpn
private vpn
pia vpn
nord vpn

Stunnel是一个“历史悠久”的隧道工具,从其官方网站(www.stunnel.org)风格可见一斑。Stunnel官方「man手册」非常详细,但在实际配置过程中用不到过多的选项。本文结合实际部署过程中可能会用到的主要选项加以列举说明。

Stunnel配置文件采用ini文件结构,配置定义使用 “配置名 = 值”(Option Name = Value),stunnel自4.0开始废弃了包括“verify”等在内的配置选项,所有已经废弃但仍可使用的选项本文均不列入。Stunnel配置属性/选项分为全局和服务两类,部分服务选项也可以作为全局选项使用,更为详细的内容可参考官方man手册。

1.全局属性/Global Options

compression = deflate | zlib

默认为no,即不启用压缩

debug = LEVEL

默认为5,即notice,所有低于5的信息均被记录入日志。各级别代码分别为emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), info (6), or debug (7)

output = FILE

日志输出文件,当前版本默认为/var/log/stunnel4/stunnel.log。

foreground = yes | quiet | no (仅unix)

默认为no,后台运行。

pid = FILE (仅unix)

pid文件,当前版本默认定义在/var/run/stunnel4/目录下。

2.服务属性/Service Options

accept = [HOST:]PORT

监听地址(主机)与端口,省略地址即监听本机所有的IPv4地址,使用“:::PORT”则监听本机所有的IPv4和IPv6地址。

connect = [HOST:]PORT

指定连接的远程主机地址及端口,省略远程主机地址为本地localhost,单个服务部分中允许多个连接选项。如果主机解析为多个地址和/或指定了多个连接选项,则使用轮循机制算法选择连接的远程地址。

CAfile = CA_FILE

加载可信CA证书文件,一般用于客户端配置定义服务端证书(公钥)。

cert = CERT_FILE

加载本机证书文件。

exec = EXECUTABLE_PATH

执行本地程序,exec 路径相对于 chroot 目录(如果已指定)。

execArgs = $0 $1 $2 ...

exec 的参数,包括程序名称 ($0)。目前不支持引用。参数用任意数量的空格分隔。

key = KEY_FILE

加载本机私钥文件。

ciphers = CIPHER_LIST

指定加密算法,此选项不会影响 TLSv1.3 密码套件。

client = yes | no

是否为客户端模式,默认为no,因此,服务端可省略。

options = SSL_OPTIONS

SSL协议选项,默认值为options = NO_SSLv2 以及 options = NO_SSLv3

protocol = PROTO

指定使用的协议,包括cifs、capwin、capwinctrl、connect、imap、ldap、nntp、pgsql、pop3、proxy、smtp、socks,其中capwinctrl、connect、nntp仅支持客户端模式。

PSKsecrets = FILE

指定包含 PSK 标识和相应密钥的文件,文件的每一行采用“IDENTITY:KEY”的格式。十六进制KEY会自动转换为二进制形式,密钥的长度至少为 16 个字节,因此密钥至少需要 32 个十六进制字符(0-F)。

redirect = [HOST:]PORT

在基于证书的身份验证失败时重定向 TLS 客户端连接,仅服务端模式有效。

renegotiation = yes | no

是否支持TLS协商,默认为yes。

requireCert = yes | no

要求客户端提供证书。一般仅仅在服务端使用,等效于同时指定verifyPeer=yes和verifyChain=yes。默认为no。

securityLevel = LEVEL

指定安全(加密)等级,默认值为2,1-5级分别为:

0-全部接受

1-不接受SSLv2,RSA/DSA/DH密钥不低于1024位,ECC密钥不低于160位,禁止将 MD5 用于 MAC 的任何密码套件

2-不接受SSLv2/3,RSA/DSA/DH密钥不低于2048位,ECC密钥不低于224位,禁止使用 RC4 的任何密码套件

3-TLS版本不低于1.1,RSA/DSA/DH密钥不低于3072位,ECC密钥不低于256位,禁止使用不提供前向保密的密码套件,禁用Session Tickets

4-TLS版本不低于1.2,RSA/DSA/DH密钥不低于7680位,ECC密钥不低于384位,禁止使用 SHA1 作为 MAC 的密码套件

5- RSA/DSA/DH密钥不低于15360位,ECC密钥不低于512位

sslVersion = SSL_VERSION

指定ssl版本,可选择的值包括all、SSLv2、SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。

sslVersionMax = SSL_VERSION

指定ssl最高版本。

sslVersionMin = SSL_VERSION

指定ssl最低版本,默认为TLSv1。

transparent = none | source | destination | both (仅unix)

启用透明代理支持,需结合iptables配置和路由规则配置。

verifyChain = yes | no

验证由根CA开始的证书链,自签名根CA证书需要存储在使用 CAfile 指定的文件中,或者存储在使用 CApath 指定的目录中。默认为no。

verifyPeer = yes | no

验证对端证书,对端证书需要存储在使用 CAfile 指定的文件中,或存放在使用 CApath 指定的目录中。默认为no。

 

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
标签: proxy stunnel vpn 代理 隧道
最后更新:2024年5月27日

老E

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

站内搜索
归档
  • 2025 年 5 月
  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2024 年 1 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 10 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 7 月
  • 2023 年 6 月

Copyright ©2023-2025 Appscross. All Rights Reserved.