Stunnel을 올바르게 사용하는 방법은 무엇입니까?

Stunnel을 올바르게 사용하는 방법은 무엇입니까?

Wireshark SSL 디버깅을 설정하려고 하는데 이를 위해 다음 지침을 따르려고 합니다.이 기사.

현재 참여 중이며 stunnel실행하려고 합니다.

sudo stunnel -p ps.pem -d 443 -r 8080

이것의 출력은 다음과 같습니다

Clients allowed=500
stunnel 4.53 on i686-pc-linux-gnu platform
Compiled/running with OpenSSL 0.9.8k 25 Mar 2009
Threading:PTHREAD SSL:ENGINE Auth:LIBWRAP Sockets:POLL,IPv6
Reading configuration from file -p
-p: No such file or directory (2)
Cannot read configuration

Syntax:
stunnel [<filename>] ] -fd <n> | -help | -version | -sockets
    <filename>  - use specified config file
    -fd <n>     - read the config file from a file descriptor
    -help       - get config file help
    -version    - display version and defaults
    -sockets    - display default socket options
str_stats: 1 block(s), 3 data byte(s), 34 control byte(s)

아마도 이 경우에는 예상되는 결과가 아닐 것입니다.

제공된 인증서로 Stunnel을 올바르게 사용하려면 어떻게 해야 하나요?

답변1

stunnel은 버전 4 이후로 이전 버전과 호환되지 않는 새로운 인터페이스로 변경되었습니다. 하지만 데비안은 /usr/bin/stunnel레거시 설치와 협력하기 위해 stunnel-3.x처럼 동작하는 래퍼 스크립트를 제공합니다 . 이 래퍼 스크립트는 이전 방식을 따르면 올바른 작업을 수행할 수 있지만, 작은 실수가 있으면 래퍼 스크립트가 이를 처리하지 않고 실제 바이너리의 오류 메시지가 /usr/bin/stunnel4튀어나와 혼란을 야기합니다.

그러니 더 이상 사용하지 마세요. 바이너리를 man stunnel4명시적으로 실행 /usr/bin/stunnel4하고 새로운 구문을 사용해야 합니다 .

stunnel 4.x 이상에서 상황이 어떻게 달라졌는지 간단히 지적하자면, 더 이상 명령줄에서 아무 것도 지정할 수 없다는 것입니다. 당신이 할 수 있고 해야 할 일은 구성 파일을 작성하고 파일 이름을 유일한 인수로 넣는 것뿐입니다.

이제 그러한 구성 파일을 작성하는 방법을 보여 드리겠습니다.

## this is an INI'ish file
##  
foreground = yes
sslVersion = all
pid =                     ## in most cases it is okay to leave pid empty
##  
## above are global options
##  
[ service_A ]             ## you can have as many as you want service sections
                          ## to listen on different ports , have different keys
                          ## and forward to different destinations
                          ##  
client = no               ##"client" set to "no" , mean stunnel speaks ssl on
                          ## listening port , and plaintext on the remote side
                          ## while "yes" is the reverse
verify = 0                ## do not check peer certification
cert = /etc/ssl/certs/stunnel.pem
accept = 443
connect = 80
[ another_section ]
...

그러나 이와 같은 간단한 상황에서는 stunnel을 사용하지 않는 것이 좋습니다. socat은 훨씬 더 귀여운 유틸리티입니다.

socat openssl-listen:443,certificate=a.pem,fork tcp:localhost:80

이 외에도 socat은 매우 달콤하고 예리하며 다른 놀라운 일을 많이 할 수 있습니다. 당신이 그것을 시도한다면 당신은 확실히 그것을 좋아할 것입니다.

관련 정보