shawn1m / overture

A customized DNS relay server
MIT License
1.79k stars 284 forks source link

tcp-tls模式发送Client Hello能否不发送SNI或者自定义SNI #223

Open koolwiki opened 4 years ago

koolwiki commented 4 years ago

如题,目前通过抓包发现tcp-tls模式发送Client Hello时会发送SNI信息,实测谷歌8.8.8.8等服务器支持无SNI模式。所以想能否设置一个选项不发送SNI或者伪造成其他域名,这样应该更有利于防止SNI阻断。谢谢!

PS:其实最好是提供选项改写SNI,同时也能提供选项检查服务区证书的真实性。类似于smartdns的这种 -spki-pin: TLS spki pin to verify. -tls-host-check: cert hostname to verify. -host-name: TLS sni hostname.

qyb commented 4 years ago

fake.domain.whatever:853@8.8.8.8 这样,然后 InsecureSkipVerify (我不确认这个应该在哪里配置,这个是 golang 的 tcp-tls 的一个参数)应该要设置成 true,默认 tls 还是会校验服务器的证书看看是否和请求的匹配.

koolwiki commented 4 years ago

fake.domain.whatever:853@8.8.8.8 这样,然后 InsecureSkipVerify (我不确认这个应该在哪里配置,这个是 golang 的 tcp-tls 的一个参数)应该要设置成 true,默认 tls 还是会校验服务器的证书看看是否和请求的匹配.

对的,有软件是可以这样配置。

qyb commented 4 years ago

fake.domain.whatever:853@8.8.8.8 这样,然后 InsecureSkipVerify (我不确认这个应该在哪里配置,这个是 golang 的 tcp-tls 的一个参数)应该要设置成 true,默认 tls 还是会校验服务器的证书看看是否和请求的匹配.

对的,有软件是可以这样配置。

现在就支持这样的配置,是我将 tcp-tls patch 加入进来的...

koolwiki commented 4 years ago

fake.domain.whatever:853@8.8.8.8 这样,然后 InsecureSkipVerify (我不确认这个应该在哪里配置,这个是 golang 的 tcp-tls 的一个参数)应该要设置成 true,默认 tls 还是会校验服务器的证书看看是否和请求的匹配. 对的,有软件是可以这样配置。

现在就支持这样的配置,是我将 tcp-tls patch 加入进来的...

谢谢,我去试试。有没有办法设置成不发SNI?

rampageX commented 4 years ago

这个目前并不支持在配置文件改呀,要改源码:

https://github.com/shawn1m/overture/blob/566cf9f738faf726cb1011d14bd909b10a383f91/core/outbound/clients/resolver/tcptls_resolver.go#L41

koolwiki commented 4 years ago

这个目前并不支持在配置文件改呀,要改源码:

https://github.com/shawn1m/overture/blob/566cf9f738faf726cb1011d14bd909b10a383f91/core/outbound/clients/resolver/tcptls_resolver.go#L41

谢谢,改源码可以了。如果能增加这个功能就好了。