anúncios

segunda-feira, 21 de setembro de 2020

Instalando e Configurando o Nginx e PHP 8 beta4 no Ubuntu

O objetivo deste post é descrever os procedimentos de instalação e configuração do Nginx e PHP 8 beta4 que foi lançado em 17 de Setembro de 2020.

Ressaltando que por ser versão beta, não é recomendado utilizar em ambiente de produção, apenas em ambiente local, ok?

Instalação do servidor web Nginx

$ sudo apt install nginx

Instalação das dependências necessárias

$ sudo apt install -y wget gcc pkg-config libxml2-dev sqlite3 libsqlite3-dev zlib1g libz-dev

Download do PHP 8.0 beta4

$ wget -c https://downloads.php.net/~pollita/php-8.0.0beta4.tar.xz -o-

Extração do PHP 8.0 beta4 que foi feito o download

$ tar -Jxxvf php-8.0.0beta4.tar.xz && mv php-8.0.0beta4.tar.xz php-8

Acessar o diretório extraído

$ cd php-8

Habilitaro FPM e PDO MySQL no PHP

$ ./configure --enable-fpm --with-pdo-mysql

Compilação e instalação

$ make && sudo make install

Renomear o arquivo php.ini-development para php.ini

$ sudo cp php.ini-development /usr/local/php/php.ini

$ sudo vim /usr/local/php/php.ini

/cgi.fix

retira o ; na linha correspondente cgi.fix_pathinfo e deixe conforme abaixo

cgi.fix_pathinfo=0

ESC +:x (salvar e sair do editor vim)

$ sudo /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fmp.d/www.conf
$ sudo cp sapi/fpm/php-fpm /usr/local/bin
$ sudo cp sapi/fpm/php-fpm.conf /usr/local/etc/php-fpm.conf
$ sudo vim /usr/local/etc/php-fmp.d/www.conf

Alterar o usuário e grupo nas linhas correspondentes a user e group para www-data que é o usuário e grupo do servidor na distro Debian e derivados.
ESC +:x

$ sudo vim /usr/local/etc/php-fpm.conf

Adicionar no final do arquivo

include=/usr/local/etc/php-fpm.d/*.conf

Reload das configurações feitas

$ sudo /usr/local/bin/php-fpm
$ sudo vim /etc/nginx/sites-available/default

Adicionar index.php antes de index.html em index

Ajustar também as configurações feitas anteriormente no PHP FPM

location ~\.php$ {
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}

ESC + :x (salvar e sair do editor vim)

$ sudo service nginx restart

Como o ambiente PHP 8 beta4 está em ambiente local e para ter permissão de escrita no DocumentRoot default do servidor web Nginx, então pode atribuir permissão ao seu usuário regular no /var/www/html

$ sudo chown -R $USER:USER /var/www/html $ sudo vim /var/www/html/info.php
    <?php 
      phpinfo();
  

Salva o arquivo e acessa no browser http://localhost/info.php

Feito!

sexta-feira, 18 de setembro de 2020

Configurando NAT no roteador

Você tem um servidor web de um projeto que está funcional na máquina virtual dentro de sua rede intranet e deseja disponibilizar o acesso externo, então, esse é o objetivo desse howto.

O presente howto explica os procedimentos utilizado no roteador TP-LINK, mas nos demais roteadores também deve funcionar, pois o conceito é o mesmo, apenas adequar a localização as configurações de NAT no seu roteador.

Pré-requisitos:

Saber o IP e credenciais do roteador

  1. No browser, acesse o IP do roteador com usuário e password
  2. No menu Forwarding e Virtual Server
  3. Adicione um novo redirecionamento em Add New
  4. Informe os campos: Interface, Service Port, IP Address, Internal Port, Protocol, Status e Common Service Port, após preencher, clicar no botão Save

Service Port: Especificar a porta utilizada no serviço no acesso externo.
PS: As portas 80, 21, 22 geralmente são bloqueadas no link residencial. No entanto, precisa escolher porta alta.

IP Address: Informar o IP da rede local que irá responder as requisições.

Internal Port: Especificar a porta utilizada no serviço interno. Por exemplo, a requisição pode chegar na porta 8080 no externo e na porta 80 no interno. O usual é bom utilizar a mesma porta no externo e interno.

Protocol: Qual protocolo irá redirecionar?

  • ALL: significa protocolo TCP e UDP serão redirecionados.
  • TCP: apenas o protocolo TCP irá ser redirecionado.
  • UDP: apenas o protocolo UDP irá ser redirecionado.

Status: Para habilitar a regra, selecione Enable.

Common Service Port: Selecione os serviços pré-configurados defaults. Por exemplo, caso o objetivo for configurar NAT para servidor web, selecione HTTP e o IP Address, finalize clicando no botão Save.

Observações

O redirecionamento não funciona na rede intranet. Para testar o redirecionamento é necessário estar fora da rede intranet, faça o teste no smartphone conectado no 3G, 4G ou peça para algum conhecido acessar de fora.

Esteja ciente que abrir as portas no roteador, qualquer pessoa conectada a Internet irá ter acesso, então alinhe com a segurança do servidor que liberou acesso externo.

Feito!

segunda-feira, 14 de setembro de 2020

Conhecendo o TeamViewer

O que é TeamViewer?

O TeamViewer é um software proprietário para acesso remoto, compartilhamento de área de trabalho, conferência online e transferência de arquivos entre computadores. O software opera dentro dos sistemas operacionais: Microsoft Windows, macOS, Linux, Android, iOS. Também é possível conectar a uma máquina com o TeamViewer via browser.

Enquanto o foco principal da aplicação é o acesso remoto a computadores, também estão incluídos recursos de colaboração e de apresentação.

Procedimentos de instalação do TeamViewer

Acesse a versão do TeamViewer e faça o download conforme a versão da máquina que irá conectar que deve ser a mesma.

Debian e derivados (Ubuntu, Mint)


TeamViewer v14.7.250049

$ wget -c https://download.teamviewer.com/download/linux/version_14x/teamviewer_amd64.deb

OU TeamViewer v13.2.256470

$ wget -c https://download.teamviewer.com/download/linux/version_13x/teamviewer_amd64.deb

OU TeamViewer v12.0.250640

$ wget -c https://download.teamviewer.com/download/version_12x/teamviewer_amd64.deb

OU TeamViewer v11.0.256402

$ wget -c https://download.teamviewer.com/download/version_11x/teamviewer_amd64.deb

OU TeamViewer v10.0.254577

$ wget -c https://download.teamviewer.com/download/version_10x/teamviewer_amd64.deb

Execução do TeamViewer para instalar o pacote que foi feito o download de uma das versões mencionadas via DPKG

$ sudo dpkg -i teamviewer_amd64.deb

CentOS e derivados (Fedora)


TeamViewer v14.7.250049

$ wget -c https://download.teamviewer.com/download/linux/version_14x/teamviewer.x86_64.rpm

OU TeamViewer v13.2.256470

$ wget -c https://download.teamviewer.com/download/linux/version_13x/teamviewer.x86_64.rpm

OU TeamViewer v12.0.250640

$ wget -c https://download.teamviewer.com/download/version_12x/teamviewer.i686.rpm

OU TeamViewer v11.0.256402

$ wget -c https://download.teamviewer.com/download/version_11x/teamviewer.i686.rpm

OU TeamViewer v10.0.254577

$ wget -c https://download.teamviewer.com/download/version_10x/teamviewer.i686.rpm

Para versões TeamViewer 14 e 13

$ sudo rpm -i teamviewer.x86_64.rpm

Para versões TeamViewer 12, 11 e 10

$ sudo rpm -i teamviewer.i686.rpm

Feito!

domingo, 13 de setembro de 2020

Conhecendo o Remmina

O que é Remmina?

Remmina é um cliente de ambiente de trabalho remoto para sistemas operacionais baseados em POSIX. Ele possui suporte aos protocolos Remote Desktop Protocol, VNC, NX, XDMCP, SPICE e SSH.

É utilizado para acessar máquinas Windows a partir do Linux de forma remota.

O Remmina é software livre sob licença GNU GPL, escrito em C e GTK+.

Características do Remmina

  • Permite manter uma lista de perfis de conexão, organizados por grupos;
  • Permite fazer conexões colocando diretamente o endereço do servidor;
  • Os desktops remotos com resoluções mais elevadas são roláveis/escaláveis na janela e no modo de tela cheia;
  • Modo de tela cheia View-port: a área de trabalho remota ajusta automaticamente quando o mouse se move sobre a borda da tela;
  • Barra de ferramentas flutuante no modo de tela cheia, permite alternar entre os modos, ativar o teclado, minimizar, etc;
  • Interface com guias, opcionalmente gerenciada por grupos;
  • Ícone da bandeja, permite acessar rapidamente perfis de conexão configurados.

Instalação do Remmina no Ubuntu/Mint via APT

Adicionar o repositório do Remmina

$ sudo add-apt-repository ppa:remmina-ppa-team/remmina-next

Atualizar o gerenciador de pacotes

$ sudo apt update

Instalar o pacote e os plugins do Remmina

$ sudo apt install remmina remmina-plugin-rdp remmina-plugin-secret

Instalação do Remmina no Fedora

Adicionar o repositório do Remmina

$ dnf copr enable hubbitus/remmina-next

Instalação do pacote Remmina

$ dnf upgrade --refresh 'remmina*' 'freerdp*'

Raspberry Pi

$ sudo apt install dirmngr
$ sudo apt-key adv --fetch-keys https://www.remmina.org/raspbian/remmina_raspbian.asc
$ sudo bash -c 'echo "deb https://www.remmina.org/raspbian/ buster main" > /etc/apt/sources.list.d/$ remmina_raspbian.list'
$ sudo apt update
$ sudo apt install remmina
$ sudo apt install gnome-keyring

Referências

https://remmina.org/how-to-install-remmina/

Feito!

sábado, 12 de setembro de 2020

Habilitando o Instant Client Oracle no PHP com CentOS

Ambiente PHP com MariaDB e OCI8 habilitado no CentOS

# yum update
# yum install epel-release -y
# yum install php php-cli php-pdo php-curl php-gd php-xml php-mbstring systemtap-sdt-devel php-pear php-devel mariadb-server make curl

Configuração de segurança do MySQL/MariaDB

# mysql_secure_installation

Logar no usuário administrador do MariaDB

# mysql -u root

Criar o banco de dados, usuário e permissão do usuário no MariaDB

MariaDB [(none)]> CREATE DATABASE ;
MariaDB [(none)]> CREATE USER 'usuario'@'127.0.0.1' IDENTIFIED BY 'secret';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nomedb.* TO user@127.0.0.1;
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

Download do Instant Client Oracle.

Se a versão do Oracle for 10g ou 11g, faça o download da versão 11.2.x do Instant Client Oracle. Nesse post, foi instalado a versão 11.2.0.4.0-1.

Como essa versão não é atual, então precisará criar uma conta no site do Oracle para poder fazer o download pelo link mencionado.

Após de ter feito o download Instant Client Oracle (basic, devel, sqlplus), segue o procedimento para instalação.

# rpm -Uvh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
# rpm -Uvh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
# rpm -Uvh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

# dnf install libnsl

Definição de variáveis de ambiente e adicionar no PATH

export LD_LIBRARY_PATH="/usr/lib/oracle/11.2/client64/lib/"
export ORACLE="/usr/lib/oracle/11.2/client64/"
export PHP_DTRACE=yes
export PATH=$PATH:$LD_LIBRARY:$ORACLE:$PHP_DTRACE

Download OCI8

Acesse https://pecl.php.net/package/oci8 e faça o download do OCI8 e segue os procedimentos.

$ tar xzvf oci8-2.2.0.tgz
$ cd oci8-2.2.0/
$ phpize
$ ./configure --with-oci8=instantclient,/usr/lib/oracle/11.2/client64/lib/
$ make
# make install

Installing shared extensions: /usr/lib64/php/modules/

Criar o arquivo oci8.ini no /etc/php.d

# vim /etc/php.d/oci8.ini

Adicionar a linha abaixo

extension=oci8.so
# systemctl reload httpd

Verificar se o OCI8 foi habilitado no PHP

# php -i | grep oci8
/etc/php.d/oci8.ini
oci8
oci8.connection_class => no value => no value
oci8.default_prefetch => 100 => 100
oci8.events => Off => Off
oci8.max_persistent => -1 => -1
oci8.old_oci_close_semantics => Off => Off
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20

Inicialização dos serviços Apache (httpd), MariaDB (fork do MySQL)

# systemctl stop httpd
# systemctl start httpd
# systemctl enable httpd
# systemctl start mariadb
# systemctl enable mariadb

Liberar a porta 80 no firewall para o acesso no INPUT e FORWARD

# firewall-cmd --add-port=80/tcp --permanent

Teste básico

Testar com a função phpinfo() no info.php se a extensão OCI8 foi habilitada corretamente.

# vim /var/www/html/info.php
    <?php 
       phpinfo();

Confere o screenshot abaixo

Caso não exibir o OCI8 habilitado no phpinfo() e tenha feito a configuração conforme os procedimentos descritos de forma correta, então reinicie no comando
# reboot

Feito!

sexta-feira, 11 de setembro de 2020

Conhecendo o ZoneMinder

Foram publicados dois howtos de procedimentos de Instalação e Configuração do ZoneMinder no CentOS e Instalação e Configuração do ZoneMinder no Debian

O objetivo deste post é apresentar as principais funcionalidades de uso do ZoneMinder

O idioma default do ZoneMinder é em inglês, então os procedimentos são explicados nesse idioma.

Com o ZoneMinder instalado e configurado no Debian ou CentOS, conforme os howtos dos links mencionados, acesse no browser http://IPSERVIDOR/zm

O ZoneMinder considera as câmeras como dispositivos monitorados, que é indicado pelo Monitor, assim para adicionar uma câmera, clicarr no botão "Add New Monitor".

Cadastro de câmera IP ou DVR

Para adicionar as câmeras IP ou DVR, segue as etapas abaixo:

Na aba General

Informa o nome da câmera, para facilitar, coloque o nome do local onde a câmera está localizada.

Source Type, selecione FFmpeg

Function, inclui as funções, Monitor, Modetec, Record, Mirecord.

Monitor - apenas visualização

Modetec - detecção de movimento

Record - gravação em tempo real a cada minuto que a câmera é renderizada

Mirecord - idem ao Record e Modetec simultâneos

Clicar no botão Save

Na aba Source

Source Path, informar a URL RTSP no padrão para câmera IP rtsp://username:password@ipaddress:port/live1.sdp ou
DVR rtsp://username:password@ipaddress:portRTSP/Streaming/Channels/number_cam01

Informe a resolução da câmera nos campos Capture With (pixels) e Capture Height (pixels).

Clicar no botão Save

Acessar as câmeras IP ou DVR cadastrados

Após cadastrar a câmera IP ou DVR, na página principal, clique no link correspondente ao nome definido no cadastro para acessar a câmera IP ou DVR, que irá redirecionar e visualizará conforme a resolução definida.

Alterar idioma no ZoneMinder

Esse post foi definido a alteração do idioma para o português do Brasil

Acesse o menu

<Options>System e no campo LANG_DEFAULT selecione pt_br

Autenticação de usuário e criar novos usuários no ZoneMinder

Por default o ZoneMinder acessa sem autenticação, mas pode habilitar e criar novos usuários com permissionamento.

Acesse o menu Options>Users

Clica no link do nome de usuário, o primeiro usuário é admin e define uma senha e salva, a partir deste ponto ao acessar o ZoneMinder, irá pedir usuário e senha.

Para criar novo usuário com permissionamento, vai em Options>Users e clicar no botão ADD USER/ADICIONAR USUÁRIO, informe o nome de usuário, password e os módulos que o usuário irá ter acesso.

Storage do ZoneMinder

Acesse o menu Options>Storage

O diretório default é /var/cache/zoneminder, onde tem os diretórios events, images correspondentes a câmera IP e DVR.

Pode integrar com o S3 da AWS ou criar uma partição LVM de pelo menos 1TB se for utilizar o recurso de gravação de imagens das câmeras IP ou DVR.

Feito!

quinta-feira, 10 de setembro de 2020

Instalando e Configurando o ZoneMinder no Debian

O que é ZoneMinder?

É um sistema com licença GPL, código aberto, de CFTV/IP que possui as principais funções de visualização, gravação, detecção de movimento, possui suporte a câmeras USB, IP e DVR.

O objetivo deste post é explicar os procedimentos de instalação e configuração do ZoneMinder no Debian 10

Instalação dos pacotes necessários

# apt install apache2 mariadb-server php php-mysql libapache2-mod-php

Adicionar o repositório no sources.list

# vim /etc/apt/sources.list
deb https://zmrepo.zoneminder.com/debian/release-1.34 buster/

Salvar e sair do editor vim
ESC +:x

Importação da chave do Zoneminder

# apt install apt-transport-https gnupg
$ wget -O - https://zmrepo.zoneminder.com/debian/archive-keyring.gpg | sudo apt-key add -

Atualização do repositório

# apt update
# apt install zoneminder

Configuração de segurança do MySQL/MariaDB

# mysql_secure_installation
# mysql -u root

MariaDB [(none)]> CREATE DATABASE zm;
MariaDB [(none)]> CREATE USER 'zmuser'@'127.0.0.1' IDENTIFIED BY 'secret';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON zm.* to 'zmuser'@'127.0.0.1';
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)


Habilitar e inicializar o serviço do MySQL/MariaDB


# systemctl enable mariadb
# systemctl start mariadb


Importação do banco de dados criado

# mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql

Adicionar as credenciais do banco de dados no arquivo de configuração

# vim /etc/zm/zm.conf
ZM_DB_HOST=127.0.0.1
ZM_DB_NAME=zm
ZM_DB_USER=zmuser
ZM_DB_PASS=secret

Inicializar o serviço

# systemmctl enable httpd
# systemctl enable zoneminder
# systemctl start zoneminder


Criar o link símbolico

# ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf

Reiniciar o Apache

# systemctl restart apache2

No browser acesse http://IPSERVIDOR/zm

Feito!

quarta-feira, 9 de setembro de 2020

Instalando e Configurando o ZoneMinder no CentOS

O que é ZoneMinder?

É um sistema com licença GPL, código aberto, de CFTV/IP que possui as principais funções de visualização, gravação, detecção de movimento, possui suporte a câmeras USB, IP e DVR.

O objetivo deste post é explicar os procedimentos de instalação e configuração do ZoneMinder no CentOS 8

Instalação dos pacotes necessários

# yum -y install httpd mariadb mariadb-server mod_ssl php-mbstring php php-mysql wget
# yum -y install epel-release

# dnf install --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
# dnf install zoneminder

Desabilitar o SELINUX

# setenforce 0
# sed -i --follow-symlinks 's/^SELINUX=.*/SELINUX=disabled/g' /etc/sysconfig/selinux


Habilitar e inicializar o serviço do MySQL/MariaDB


# systemctl enable mariadb
# systemctl start mariadb


Configuração de segurança do MySQL/MariaDB

# mysql_secure_installation
# mysql -u root

MariaDB [(none)]> CREATE DATABASE zm;
MariaDB [(none)]> CREATE USER 'zmuser'@'127.0.0.1' IDENTIFIED BY 'secret';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON zm.* 'zmuser'@'127.0.0.1';
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)


Importação do banco de dados criado

# mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql

Adicionar as credenciais do banco de dados no arquivo de configuração

# vim /etc/zm/zm.conf
ZM_DB_HOST=127.0.0.1
ZM_DB_NAME=zm
ZM_DB_USER=zmuser
ZM_DB_PASS=secret

Inicializar o serviço

# systemmctl enable httpd
# systemctl enable zoneminder
# systemctl start zoneminder


Criar o link símbolico

# ln -s /etc/zm/www/zoneminder.httpd.conf /etc/httpd/conf.d/zoneminder.conf

Reiniciar o Apache

# systemctl restart httpd

O CentOS tem firewall com regras restritivas por padrão, então precisa liberar as portas necessárias, se caso for utilizar certificado SSL, deve ser liberado a porta 443.

# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --zone=public --add-port=443/tcp --permanent
# firewall-cmd --reload


No browser acesse http://IPSERVIDOR/zm

Feito!

sexta-feira, 4 de setembro de 2020

Atualizar Ubuntu Server 14-04 para 20-04 LTS

LTS é uma abreviatura de "Long Term Support". Uma nova versão do LTS é lançada a cada dois anos e recebe cinco anos de suporte e patches de cinco anos.

A versão mais recente do Ubuntu até a data de publicação deste post é 20.04 LTS, e codinome como Focal Fossa. Ubuntu 20.04 lançado em 23 de Abril de 2020.

O objetivo deste post é atualizar a versão existente do Ubuntu Server Linux 14.04 LTS para o Ubuntu Server 20.04 LTS.

root@perolanegra:~# lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.6 LTS
Release:        14.04
Codename:       trusty

Na primeira vez, atualiza para 16.04

Na segunda vez, atualiza para 18.04

Na terceira vez, atualiza para 20.04

Detalhe foi definido a chave LTS no arquivo /etc/update-manager/release-upgrades

Atualização dos pacotes instalados na versão existente

$ sudo apt update
$ sudo apt upgrade
$ sudo apt dist-upgrade

Remover o kernel antigo

$ sudo apt-get --purge autoremove

Instalar a ferramenta update-manager-core

$ sudo apt install update-manager-core

$ sudo vim /etc/update-manager/release-upgrades

Deve estar como abaixo


Prompt=lts

Instalar a versão da próxima release

$ sudo do-release-upgrade

Reinicie o sistema

$ sudo reboot

Feito!