Introdução a stunnel
O pacote stunnel contém um
aplicativo que permite encriptar conexões arbitrárias TCP dentro de
SSL (Secure Sockets Layer), de modo que você consiga se comunicar
facilmente com clientes ao longo de canais seguros. stunnel também pode ser usado para encapsular
PPP ao longo de soquetes de rede de comunicação sem mudanças no
código-fonte do pacote do servidor.
Esse pacote é conhecido por construir e funcionar adequadamente
usando uma plataforma LFS 11.3.
Informação do Pacote
Dependências do stunnel
Opcionais
libnsl-2.0.0, netcat (exigido para os
testes), tcpwrappers
e TOR
Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/stunnel
Instalação do stunnel
O processo de segundo plano stunnel será executado em uma
jaula chroot por
um(a) usuário(a) sem privilégios. Crie o(a) novo(a) usuário(a) e
grupo usando os seguintes comandos como o(a) usuário(a)
root
:
groupadd -g 51 stunnel &&
useradd -c "Processo de segundo plano stunnel" -d /var/lib/stunnel \
-g stunnel -s /bin/false -u 51 stunnel
Nota
Um certificado SSL assinado e uma chave privada é necessário(a)
para executar o processo de segundo plano stunnel. Depois que o pacote
estiver instalado, existem instruções para gerá-lo(a). No
entanto, se você é dono(a) ou já criou um Certificado SSL
assinado que deseja usar, [então] copie-o para /etc/stunnel/stunnel.pem
antes de iniciar a
construção (certifique-se de que somente o(a) root
tenha acesso de leitura e gravação). O
arquivo .pem
precisa ser formatado
conforme mostrado:
-----BEGIN PRIVATE KEY-----
<muitas linhas encriptadas da chave privada>
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
<muitas linhas encriptadas do certificado>
-----END CERTIFICATE-----
-----BEGIN DH PARAMETERS-----
<linhas encriptadas dos parâmetros dh>
-----END DH PARAMETERS-----
Instale stunnel executando os
seguintes comandos:
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--disable-systemd &&
make
Se você tiver instalado o aplicativo opcional netcat, [então] os
testes de regressão podem ser executados com make check.
Agora, como o(a) usuário(a) root
:
make docdir=/usr/share/doc/stunnel-5.68 install
Se você ainda não tiver um certificado SSL assinado e uma chave
privada, [então] crie o arquivo stunnel.pem
no diretório /etc/stunnel
usando o comando abaixo. Você será
solicitado(a) a inserir a informação necessária. Certifique-se de
responder ao
Common Name (FQDN of your server) [localhost]:
prompt com o nome ou o endereço IP que você usará para acessar o(s)
serviço(s).
Para gerar um certificado, como o(a) usuário(a) root
, emita:
make cert
Explicações do Comando
--disable-systemd
: Essa
chave desabilita o suporte a ativação de soquete do systemd que não
está disponível no BLFS.
make docdir=...
install: Esse comando instala o pacote e muda o
diretório de instalação da documentação para convenções de
nomenclatura padrão.
Configurando stunnel
Arquivos de
Configuração
/etc/stunnel/stunnel.conf
Informação de Configuração
Como o(a) usuário(a) root
, crie o
diretório usado para o arquivo .pid
criado quando o processo de segundo plano stunnel inicia:
install -v -m750 -o stunnel -g stunnel -d /var/lib/stunnel/run &&
chown stunnel:stunnel /var/lib/stunnel
Em seguida, crie um arquivo básico de configuração /etc/stunnel/stunnel.conf
usando os seguintes
comandos como o(a) usuário(a) root
:
cat > /etc/stunnel/stunnel.conf << "EOF"
; File: /etc/stunnel/stunnel.conf
; Observação: os locais da saída gerada e do PID são relativos ao local do chroot.
pid = /run/stunnel.pid
chroot = /var/lib/stunnel
client = no
setuid = stunnel
setgid = stunnel
cert = /etc/stunnel/stunnel.pem
;debug = 7
;output = stunnel.log
;[https]
;accept = 443
;connect = 80
;; "TIMEOUTclose = 0" é um contorno para uma falha de projeto no Microsoft SSL
;; Implementações Microsoft não usam alerta de notificação de fechamento SSL e, portanto,
;; elas são vulneráveis a ataques de truncamento
;TIMEOUTclose = 0
EOF
Finalmente, adicione o(s) serviço(s) que deseja encriptar ao
arquivo de configuração. O formato é como segue:
[<service>
]
accept = <nome_dispositivo:número_porta>
connect = <nome_dispositivo:número_porta>
Para uma explicação completa dos comandos e da sintaxe usados no
arquivo de configuração, emita man
stunnel.
Script de
Inicialização
Para iniciar automaticamente o processo de segundo plano
stunnel quando o
sistema for inicializado, instale o script de inicialização
/etc/rc.d/init.d/stunnel
a partir
do pacote blfs-bootscripts-20230101.
make install-stunnel