Uma das coisas mais importantes nesse tipo de caso é ter segurança quando ativamos os serviços de compartilhamento de espaço, seja FTP, armazenamento de objetos etc. É por isso que hoje, vamos ver como implantar um certificado SSL Let’s Encrypt sobre o FreeNAS 11.x.
Conexão SSH ao nosso FreeNAS 11.x
O primeiro passo será poder acessar nosso FreeNAS via SSH, para isso iremos para a parte de serviços e, no SSH, clicaremos em Ações para editar as opções:
Várias opções aqui, a mais importante no meu caso, é permitir o login root, pois não tenho mais usuários:Uma vez que tenhamos a configuração que desejamos, habilitaremos o serviço e também o informaremos para iniciar automaticamente, se quisermos acessar com frequência pelo SSH, não é realmente recomendado:
Instalando pacotes Let’s Encrypt e solicitando nosso certificado SSL
Quando estivermos conectados pelo SSH, faremos o download do pacote acme, que permite automatizar as chamadas para Let’s Encrypt:
1
|
curl https://get.acme.sh | sh
|
Além disso, faremos o download do seguinte repositório GitHub que contém o script que nos permite fazer isso automaticamente, graças ao Danb35:
1
|
git clone https://github.com/danb35/deploy–freenas
|
Uma vez baixado tudo, teremos que editar o arquivo chamado deploy_config.example e renomeá-lo para deploy_config, no documento que precisaremos adicionar nossa senha e essa será a única alteração que faremos.
1
2
|
cp /root/deploy–freenas/deploy_config.example /root/deploy–freenas/deploy_config
nano /root/deploy–freenas/deploy_config
|
Agora que já temos quase tudo pronto, retornaremos à pasta raiz principal e iniciaremos os seguintes comandos; no meu caso, estou usando o CloudFlare para meu domínio, para que possamos obter um certificado SSL com muita facilidade usando a autenticação DNS, o que esse script faz automaticamente, precisamos conhecer nosso FQDN para nosso FreeNAS, no meu caso freenas.jorgedelacruz.es:
1
2
3
4
5
|
cd /root
bash
export CF_Key=“NUESTRAKEYDECLOUDFLARE”
.acme.sh/acme.sh —issue –d ELFQDNDETUFREENAS —dns dns_cf —reloadcmd “/root/deploy-freenas/deploy_freenas.py”
|
Para conhecer sua chave do Cloudflare, aqui você pode encontrá-la:
Depois que lançamos bem este comando, podemos ver um resultado semelhante a este:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
[Sat Aug 3 09:44:15 PDT 2019] Create account key ok.
[Sat Aug 3 09:44:15 PDT 2019] Registering account
[Sat Aug 3 09:44:16 PDT 2019] Registered
[Sat Aug 3 09:44:17 PDT 2019] ACCOUNT_THUMBPRINT=‘uYM’
[Sat Aug 3 09:44:17 PDT 2019] Creating domain key
[Sat Aug 3 09:44:17 PDT 2019] The domain key is here: /root/.acme.sh/freenas.jorgedelacruz.es/freenas.jorgedelacruz.es.key
[Sat Aug 3 09:44:17 PDT 2019] Single domain=‘freenas.jorgedelacruz.es’
[Sat Aug 3 09:44:17 PDT 2019] Getting domain auth token for each domain
[Sat Aug 3 09:44:17 PDT 2019] Getting webroot for domain=‘freenas.jorgedelacruz.es’
[Sat Aug 3 09:44:18 PDT 2019] Adding txt value: gr–ctRr for domain: _acme–challenge.freenas.jorgedelacruz.es
[Sat Aug 3 09:44:19 PDT 2019] Adding record
[Sat Aug 3 09:44:20 PDT 2019] Added, OK
[Sat Aug 3 09:44:20 PDT 2019] The txt record is added: Success.
[Sat Aug 3 09:44:20 PDT 2019] Let‘s check each dns records now. Sleep 20 seconds first.
[1;31;32m0[0m
[Sat Aug 3 09:44:42 PDT 2019] Checking freenas.jorgedelacruz.es for _acme–challenge.freenas.jorgedelacruz.es
[Sat Aug 3 09:44:42 PDT 2019] Domain freenas.jorgedelacruz.es ‘_acme-challenge.freenas.jorgedelacruz.es’ success.
[Sat Aug 3 09:44:42 PDT 2019] All success, let‘s return
[Sat Aug 3 09:44:42 PDT 2019] Verifying: freenas.jorgedelacruz.es
[Sat Aug 3 09:44:45 PDT 2019] [1;31;32mSuccess[0m
[Sat Aug 3 09:44:45 PDT 2019] Removing DNS records.
[Sat Aug 3 09:44:45 PDT 2019] Removing txt: gr–ctRr for domain: _acme–challenge.freenas.jorgedelacruz.es
[Sat Aug 3 09:44:46 PDT 2019] Removed: Success
[Sat Aug 3 09:44:46 PDT 2019] Verify finished, start to sign.
[Sat Aug 3 09:44:46 PDT 2019] Lets finalize the order, Le_OrderFinalize: https://acme–v02.api.letsencrypt.org/acme/finalize/6270/8308
[Sat Aug 3 09:44:48 PDT 2019] Download cert, Le_LinkCert: https://acme–v02.api.letsencrypt.org/acme/cert/0311
[Sat Aug 3 09:44:49 PDT 2019] [1;31;32mCert success.[0m
——–BEGIN CERTIFICATE——–
MIIFaDCCBFCgAwIBAgISAxHnDytpXEcvMstuUfbEFWbEMA0GCSqGSIb3DQEBCwUA
ME...
qzyM8YsqdEMSRMkUsPc1WH9gGzyWb1y8L8hzPajy9KZtKe9GwyFWtvpWwUo=
——–END CERTIFICATE——–
[Sat Aug 3 09:44:49 PDT 2019] Your cert is in /root/.acme.sh/freenas.jorgedelacruz.es/freenas.jorgedelacruz.es.cer
[Sat Aug 3 09:44:49 PDT 2019] Your cert key is in /root/.acme.sh/freenas.jorgedelacruz.es/freenas.jorgedelacruz.es.key
[Sat Aug 3 09:44:49 PDT 2019] The intermediate CA cert is in /root/.acme.sh/freenas.jorgedelacruz.es/ca.cer
[Sat Aug 3 09:44:49 PDT 2019] And the full chain certs is there: /root/.acme.sh/freenas.jorgedelacruz.es/fullchain.cer
[Sat Aug 3 09:44:49 PDT 2019] Run reload cmd: /root/deploy–freenas/deploy_freenas.py
Certificate import successful
Certificate list successful
Setting active certificate successful
[Sat Aug 3 09:44:51 PDT 2019]
[1;31;32m Reload success
|
Vemos como o script cuidou de tudo, desde a criação da entrada DNS até a solicitação de Let’s Encrypt, o download do SSL e a inclusão nos caminhos para o FreeNAS ver.
Altere a interface do FreeNAS 11.x para ser acessível apenas a partir de HTTPS
Iremos passar por HTTP e FQDN ou IP para o nosso FreeNAS, até System – General, e mudaremos a interface para HTTPS e selecionar Let’s Encrypt SSL SSL Certificate:Depois de salvar as alterações, acesse HTTPS://TUNOMBREDEFREENAS.TUDOMINIO.COM e podemos ver o aguardado cadeado verde, se explorarmos, podemos ver que é um certificado SSL válido:Se quisermos ver os detalhes, aqui podemos ver o FQDN que eu uso com meu SSL válido.Parabéns! Temos tudo pronto e seguro para começar a oferecer serviços NAS com segurança, espero que você goste do artigo.