Pesquise...

Últimos Posts

Arquivo de Posts

2024 - 2023 - 2022 - 2021 - 2020 - 2019 - 2018 - 2017 - 2016 - 2015 - 2014 - 2013 - 2012

Postagens Populares

Vem Comigo

     
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Tecnologia do Blogger.

Total de Acessos

×
LGPD? Navegando neste blog, você entende e aceita as práticas de privacidade do Google.
GDPR? By browsing this blog, you understand and accept Google's privacy practices.


Saudações,

No final da semana passada eu fiz uma instalação de um VPS com 2GB, e eu confesso que não esperava muito do sistema.

Eu instalei o que precisava, e para minha surpresa tudo está funcionando "suavemente"!

O que o cliente me pediu foi a instalação de um Nextcloud; que na presente data está na versão 22.


Dica: Nextcloud com CyberPanel e OpenLiteSpeed


Conhecendo a demanda do cliente eu imaginei que 2GB de RAM não seria suficiente para o servidor que eu tinha em mente. Então parti para outra estratégia: usar o Nginx ou o OpenLiteSpeed. Devido a questão de tempo, eu optei por usar o CyberPanel com o OpenLiteSpeed.

Eu instalei o Nextcloud via web installer usado o setup-nextcloud.php. Depois iniciei a configuração dos requisitos do sistema.

Foi assim que eu fiz, iniciando com o config/config.php...


Língua padrão

Eu adicionei as seguinte diretivas...

...

1
2
'default_language' => 'pt_BR',
'force_language' => 'pt_BR',

...


Diretório data

Modifiquei a localização onde os arquivos dos usuário serão armazenados...


Coloquei o diretório data fora do public_html com a diretiva...

...

1
'datadirectory' => '/home/nome-do-subdomínio/pasta-privada/data',

...


Telefone padrão

Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code...

Havia uma mensagem sobre um tal de "default_phone_region" que não tinha sido definido. Eu setei esta diretiva para pt_BR...

...

1
'default_phone_region' => 'pt_BR',

...


Autenticação dos usuários

Por praticidade, eu optei por usar o próprio endereço de e-mail/senha do usuário para acessar o Nextcloud. Assim o cliente não tem o trabalho de adicionar usuários ao sistema; basta ter um e-mail dentro do domínio dele.

Para usar a autenticação externa, eu ativei o plugin...

External user authentication


E na configuração e escolhi o IMAP ( github.com/nextcloud/user_external#imap ) como meio de autenticação...

...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
'user_backends' => 
 array (
  0 => 
  array (
   'class' => 'OC_User_IMAP',
   'arguments' => 
   array (
    0 => 'nome-do-servidor-imap',
    1 => 993,
    2 => 'ssl',
    3 => 'nome-do-dominio-do-cliente',
    4 => false,
    5 => false,
   ),
  ),
 ),

...

Note que no 4º item da array eu "falo" para o Nextcloud que somente usuários deste domínio podem acessar!

Para mais informações, acesse github.com/nextcloud/user_external#readme.


Arquivos padrões

Sempre que o usuário loga, o Nextcloud cria alguns arquivos de exemplo...


Como eu não preciso desta função, eu a desativei com a diretiva...

...

1
'skeletondirectory' => '',

...

Saiba mais  em docs.nextcloud.com/server/22/admin_manual/configuration_files/default_files_configuration.html.


Cache Redis

Mais simples impossível. Ao instalar o CyberPanel, eu optei por ativar o Redis ( cyberpanel.net/docs/redis-mass-hosting-with-cyberpanel ), e o instalar fez todo o resto....


A mim restou apenas conferir com o netstat se o Redis estava escutando na porta padrão, e inserir a configuração necessária...

...

1
2
3
4
5
6
7
8
9
10
'memcache.local' => '\\OC\\Memcache\\Redis',
 'memcache.distributed' => '\\OC\\Memcache\\Redis',
 'memcache.locking' => '\\OC\\Memcache\\Redis',
 'filelocking.enabled' => 'true',
 'redis' => 
 array (
  'host' => 'localhost',
  'port' => 6379,
  'timeout' => 0.0,
 ),

...

Se você desejar saber mais, acesse:

docs.nextcloud.com/server/22/admin_manual/configuration_server/caching_configuration.html#additional-redis-installation-help

techandme.se/install-redis-cache-on-ubuntu-server-with-php-7-and-nextcloud


Mais configurações

Outras configurações referente ao config/config.php podem ser encontradas no link docs.nextcloud.com/server/22/admin_manual/configuration_server/config_sample_php_parameters.html.


Agora vamos as configurações dentro do CyberPanel...


PHP open_basedir

Error: file_exists(): open_basedir restriction in effect. File(/templates/) is not within the allowed path(s):

No Nextcloud, verificando em Configurações -> Administração -> Registro, eu notei que havia mensagens de erro referente ao acesso aos diretórios "/templates/" e "/appinfo/"; acho que tem outras pasta também. Depois vou conferir isto com calma, mas eu achei estranho, visto que ambos os diretórios estão dentro da raiz do site, e este por sua vez tem permissão para manusear seus arquivos e pasta. Enfim...

No painel, na função vHost Conf...


... e alterei o bloco phpIniOverride...

DE

...

1
2
3
phpIniOverride {
 php_admin_value open_basedir "/tmp:$VH_ROOT"
}

...


PARA

...

1
2
3
phpIniOverride {
 php_admin_value open_basedir "/tmp:$VH_ROOT:/templates/:/appinfo/"
}

...


Salvei, reiniciei o servidor web pelo próprio CyberPaneil e o Nextcloud parou com as mensagens de erro.


Monitor do sistema

O Nextcloud não conseguia exibir informações sobre o sistema; tipo uso de memória. Neste caso não é um erro, mas uma questão de segurança devido as restrições do open_basedir.

Como o VPS é exclusivo para uso com o Nextcloud, então eu adicionei os devidos caminhos ao bloco phpIniOverride...

DE

...

1
2
3
phpIniOverride {
 php_admin_value open_basedir "/tmp:$VH_ROOT:/templates/:/appinfo/"
}

...


PARA

...

1
2
3
phpIniOverride {
 php_admin_value open_basedir "/tmp:$VH_ROOT:/templates/:/appinfo/:/proc/meminfo:/proc/cpuinfo:/proc/uptime"
}

...

Salvei, reiniciei o servidor web e... 



Strict-Transport-Security, output_buffering e o memory_limit

Usando o bloco de contexto do OpenLiteSpeed, no final da configuração do vHost, para a raiz do site, eu adicionei o seguinte bloco...

...

1
2
3
4
5
6
7
context / {
 extraHeaders Strict-Transport-Security "max-age=15552000; includeSubDomains"
 phpIniOverride {
   php_admin_flag output_buffering "Off"
   php_admin_value memory_limit "512M"
 }
}


😍 Note o phpIniOverride dentro do bloco context...

O OLS é bem reflexível.

Maiores informações, acesse:

cyberpanel.net/docs/how-to-set-hsts-header-strict-transport-security-using-cyberpanel-openlitespeed

openlitespeed.org/kb/ols-configuration-examples/#Virtual_Host_Configuration_Files


Ufa! ehehehe acho que chegamos ao fim.

Depois de configurado o sistema, o Nextcloud me mostrou esta tela...

✅ Nextcloud devidamente configurado.

Aproveita que chegamos ao fim do post,  e dá uma lida completa na seção Hardening and security guidance da documentação; tem muita coisa legal por lá! 😉


Paz a todos!


Ah!!! Se você quiser que o OLS atenda requisições IPv6, você precisa adicionar os Listeners separadamente...



litespeedtech.com/docs/webserver/config/listener-general#listenerIP
By default, LiteSpeed uses separate listeners for IPv4 and IPv6 addresses. Should the need to serve both  IPv4 and IPv6 arise, separate listeners should be created for each.


E não esquece de ativar o firewall para o seu IPv6. Neste VPS eu ativei o ConfigServer Security & Firewall, então em fiz assim...

CyberPanel -> Segurança -> Firewall


Ativando o IPv6

Depois que você gravar as mudanças o firewall será recarregado com o suporte ao IPv6; confira com o comando ip6tables -L -n. 😉


0 comentários:

Postar um comentário