Pesquise...

Últimos Posts

Arquivo de Posts

2021 - 2020 - 2019 - 2018 - 2017 - 2016 - 2015 - 2014 - 2013 - 2012

Postagens Populares

Vem Comigo

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

Total de Acessos


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...

...

'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...

...

'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...

...

'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...

...

'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...

...

'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...

...

'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

...

phpIniOverride {
 php_admin_value open_basedir "/tmp:$VH_ROOT"
}

...


PARA

...

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

...

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

...


PARA

...

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...

...

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. 😉