# TI - Infraestrutura e Serviços de Rede

# Acesso Remoto



# Acesso Remoto Web - Informações

---

<p class="callout info">Para esclarecer dúvidas ou solucionar problemas relacionados à plataforma de Acesso Remoto Web, verifique as informações disponíveis nos itens a seguir.</p>

---

##### 1. Para que serve a plataforma de [Acesso Remoto Web](https://acessoremoto.ifpe.edu.br/#/ "Clique e será redirecionado para a plataforma de Acesso Remoto Web")?

A plataforma possibilita ao usuário estabelecer uma sessão remota a partir da web, assim, pode ser utilizada para disponibilizar o <span class="il">acesso</span> <span class="il">remoto</span> à aplicações normalmente instaladas em desktops. Dessa forma, será utilizada para acesso ao computador onde estão instalados os sistemas de gestão acadêmica Q-Acadêmico e Q-Biblio (versão desktop) usados no IFPE.

##### 2. O que muda em relação ao acesso remoto realizado até 2020?

Até 2020, realizou-se o acesso ao servidor onde estão instaladas as versões desktop dos sistemas Q-Acadêmico e Q-Biblio a partir de aplicações de sessão remota disponíveis no sistema operacional do computador utilizado pelo usuário. No Microsoft Windows, por exemplo, através da aplicação "Conexão de Área de Trabalho Remota" [![TS-Windows.PNG](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-12/scaled-1680-/TS-Windows.PNG)](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-12/TS-Windows.PNG).   
Com a disponibilização da nova plataforma esse acesso será realizado através de um navegador web (Chrome, Edge, Firefox, Opera, etc). Além disso, no novo formato as credenciais utilizadas serão as do provedor de identidade [Acesso.IFPE](https://acesso.ifpe.edu.br/ "Clique e será redirecionado para o Provedor de Identidade "Acesso.IFPE""), o que permitirá ao usuário gerenciar e recuperar a senha de forma autônoma e com maior celeridade.

<p class="callout warning">As credenciais do Acesso.IFPE são válidas apenas para acesso ao computador onde as aplicações de gestão acadêmica estão instaladas. Para fazer o login nos sistemas Q-Acadêmico ou Q-Biblio é necessário ter uma conta de usuário e senha de acesso aos mesmos (estas não são geridas pela Diretoria de TI). </p>

#####   
3. Como obter as credenciais do Acesso.IFPE, necessárias para entrar na plataforma de Acesso Remoto Web?

Para informações referentes às credenciais do provedor de identidade, verifique o [Manual do Acesso.IFPE](https://wiki.ifpe.edu.br/books/ti---an%C3%A1lise-e-desenvolvimento-de-sistemas/page/manual-do-acessoifpe "Clique e será redirecionado para a página do Manual do Acesso.IFPE").

##### 4. Já possuo as credenciais, como faço para entrar na plataforma de Acesso Remoto Web?

A partir do endereço [https://acessoremoto.ifpe.edu.br/](https://acessoremoto.ifpe.edu.br/ "Acesso Remoto Web") realiza-se o acesso à plataforma. Para informações sobre os demais procedimentos, verifique a página do [tutorial de utilização](https://wiki.ifpe.edu.br/books/ti---infraestrutura-e-servi%C3%A7os-de-rede/page/conex%C3%A3o-remota-ao-q-acad%C3%AAmico-e-q-biblio-atrav%C3%A9s-da-web "Clique e será redirecionado para o tutorial da plataforma de Acesso Remoto Web").

##### 5. Possuo credenciais válidas do Acesso.IFPE, segui os passos do tutorial da plataforma de Acesso Remoto, mas não consigo entrar no sistema. Como devo proceder?

Caso tenha realizado todos os procedimentos anteriores corretamente e mesmo assim não consiga utilizar a plataforma de Acesso Remoto Web, envie e-mail para <suporte.ti@reitoria.ifpe.edu.br> com a descrição do seu problema.

# Conexão de Área de Trabalho Remota (Windows 10)

---

**Este tutorial tem como objetivo orientar os usuários dos sistema Q-Acadêmico e Q-Biblio (versão desktop) na realização do acesso remoto à estas aplicações.**

---

Para utilizar as aplicações Q-Acadêmico e Q-Biblio remotamente, todos os usuários acessam um mesmo computador. Assim, é necessário o uso de credenciais (usuário e senha) fornecidas pela Diretoria de Tecnologia da Informação para fazer o *login* no sistema operacional do mesmo.

<p class="callout info">Este tutorial refere-se apenas aos procedimentos para o acesso remoto ao computador onde os sistemas estão instalados. Se este acesso for realizado com sucesso, é necessário ter outras credenciais (usuário e senha) para abrir os sistemas Q-Acadêmico e Q-Biblio. Essas credenciais, diferentes das anteriores, **não** são fornecidas ou gerenciadas pela Diretoria de TI.</p>

##### 1 Acesso ao serviço de Conexão de Área de Trabalho Remota do Windows 10

# Conexão remota ao Q-Acadêmico e Q-Biblio através da web

###   


### 1. Acessando o sistema através da Web

Para acessar o Q-Acadêmico e o Q-Bilbio, através da aplicação web, é preciso acessar o seguinte endereço: [https://acessoremoto.ifpe.edu.br](https://acessoremoto.ifpe.edu.br) como na imagem a seguir.

[![ejBwiki--1.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/scaled-1680-/ejBwiki--1.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/ejBwiki--1.png)

As credenciais do sistema são as mesmas do Acesso IFPE. Digite no campo "Usuário" seu CPF e no campo "senha" a respectiva senha usada no Acesso IFPE. Depois disso, clique em "Entrar"

[![acesso-guacamole.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/scaled-1680-/acesso-guacamole.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/acesso-guacamole.png)

Depois de autenticar no sistema, a seguinte tela será apresentada ao usuário.

[![inicio-2.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/scaled-1680-/inicio-2.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/inicio-2.png)

Nessa tela, são apresentadas ao usuário as seguintes opções:

- **Todas as conexões** - São as conexões que o usuário tem permissão para acessar;
- **Conexões recentes** - São as últimas conexões acessadas pelo usuário.

Para acessar o Q-Acadêmico e o Q-Biblio, o usuário deverá ir ao menu **Todas as conexões** e clicar no sinal de \[+\] para exibir as conexões disponíveis.

[![conexao.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/scaled-1680-/conexao.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/conexao.png)

Depois de selecionar a conexão, será aberta uma sessão na máquina selecionada como na imagem a seguir.

[![tela-windows.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/scaled-1680-/tela-windows.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/tela-windows.png)

Ao conectar na sessão selecionada, o usuário terá disponível os aplicativos do Q-acadêmico e Q-Biblio e poderá acessá-los desde que tenha as credenciais para os respectivos sistemas.

###   


### 2. Encerrando o acesso ao sistema

Para terminar uma sessão, o usuário deverá clicar no simbolo do *Windows*, no canto inferior esquerdo.

[![botao-windows.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/scaled-1680-/botao-windows.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/botao-windows.png)

E , depois, no botão *power off*, ao lado do nome do usuário.

[![sir-Windows.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/scaled-1680-/sir-Windows.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/sir-Windows.png)

Depois de clicar no botão *power off*, clique em desconectar e, depois, na janela que abrir, clique em principal.

[![principal-guacamole.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/scaled-1680-/principal-guacamole.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/principal-guacamole.png)

Após sair da sessão, para encerrar o acesso é necessário clicar no CPF do usuário, que fica no canto superior direito, e, depois, em sair.

[![encerrar-2.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/scaled-1680-/encerrar-2.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2020-08/encerrar-2.png)

Depois disso, seu acesso foi totalmente encerrado.

### 3. Transferência de arquivos para a máquina remota

Após acessar o ambiente remoto, pressione as teclas **CTRL+Alt+Shift** para abrir o **"*Shared Drive"***

[![com seta.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2023-05/scaled-1680-/com-seta.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2023-05/com-seta.png)

Após abrir o **"Shared Drive"** clique em **"Upload Files"** para selecionar o arquivo que deseja transferir

[![Captura de tela de 2023-05-09 16-54-48.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2023-05/scaled-1680-/captura-de-tela-de-2023-05-09-16-54-48.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2023-05/captura-de-tela-de-2023-05-09-16-54-48.png)

Depois que clicar no **"Upload Files"** clique no arquivo que deseja transferir e em seguida **"Abrir"**

**[![Captura de tela de 2023-05-09 17-18-16.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2023-05/scaled-1680-/captura-de-tela-de-2023-05-09-17-18-16.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2023-05/captura-de-tela-de-2023-05-09-17-18-16.png)**

É possível adicionar diversos arquivos ao mesmo tempo

Para sair da tela do **"Shared Driver"** pressione novamente as teclas **"Crtl+Alt+Shift"**

Para acessar os arquivos transferidos, vá até "Meu Computador" e acesse a unidade que tem seu usuário do acesso.ifpe, no caso o seu CPF

[![Captura de tela de 2023-05-09 17-22-52.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2023-05/scaled-1680-/captura-de-tela-de-2023-05-09-17-22-52.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2023-05/captura-de-tela-de-2023-05-09-17-22-52.png)

### 4. Transferindo arquivos da máquina remota

Para transferir arquivos da máquina remota para a máquina local, o usuário deverá, dentro da pasta com seu usuário do acesso.ifpe, colocar os arquivos que queira baixar para a máquina local dentro da pasta download, assim que adicionar os arquivos nesta pasta eles serão baixados para a máquina local.

[![Captura de tela de 2023-05-09 17-28-37.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2023-05/scaled-1680-/captura-de-tela-de-2023-05-09-17-28-37.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2023-05/captura-de-tela-de-2023-05-09-17-28-37.png)

# Armazenamento



# Config. ISCSI com multipath no Debian 10

## 1. Introdução

<span style="font-weight: 400;">iSCSI é um dos padrões para armazenamento de dados em rede. Utilizado para conexão entre dispositivos como storages, servidores, computadores e outras estações de trabalho. Neste protocolo, os comandos SCSI são transportados sobre a rede IP.</span>

<span style="font-weight: 400;"><span data-ttu-id="48202-108"> Multipath usa componentes redundantes - adaptadores, cabos e comutadores - para criar caminhos lógicos entre o servidor e o dispositivo de armazenamento.</span> <span data-ttu-id="48202-109">Se houver uma falha de componente, fazendo com que um caminho lógico falha, a lógica de vários caminhos usará um caminho alternativo de E/S para que os aplicativos ainda possam acessar seus dados. Eventualmente pode melhorar o desempenho ao rebalancear novamente a carga em todos esses caminhos</span> </span>

## <span style="font-weight: 400;">2. Ferramentas utilizadas</span>

<span style="font-weight: 400;">Os softwares utilizados na produção deste tutorial é apresentado a seguir:</span>

<div id="bkmrk-debian-10%2C-64-bits-o">- <span style="font-weight: 400;">Debian 10, 64 bits  
    </span>
- <span style="font-weight: 400;">open-iscsi 2.0.874-7.1</span>
- <span style="font-weight: 400;">multipath-tools 0.7.9</span>

</div>## <span style="font-weight: 400;">3. Configurando o serviço</span>

<span style="font-weight: 400;">Todos os comandos executados nesse tutorial foram executados com o usuário **root**.</span>

3.1. Instalação dos pacotes

```shell
apt install multipath-tools multipath-tools-boot
```

3.2. Descobrir os targets

```shell
iscsiadm -m discovery -t sendtargets -p 192.168.50.2 # O IP indicado aqui é de uma das interfaces do storage
```

<table id="bkmrk-192.168.50.2%3A3260%2C1-" style="width: 809px;"><tbody><tr><td style="width: 808px;">192.168.50.2:3260,1 iqn.2017-10.com.hpe:storage.msa2052.15088aa10e  
192.168.50.3:3260,2 iqn.2017-10.com.hpe:storage.msa2052.15088aa10e  
192.168.51.2:3260,3 iqn.2017-10.com.hpe:storage.msa2052.15088aa10e  
192.168.51.3:3260,4 iqn.2017-10.com.hpe:storage.msa2052.15088aa10e</td></tr></tbody></table>

3.3. Realizar a conexão ao target

```shell
iscsiadm -m node --login
```

<table id="bkmrk-logging-in-to-%5Biface" style="width: 863px;"><tbody><tr><td style="width: 862px;">Logging in to \[iface: default, target: iqn.2017-10.com.hpe:storage.msa2052.15088aa10e, portal: 192.168.50.2,3260\] (multiple)  
Logging in to \[iface: default, target: iqn.2017-10.com.hpe:storage.msa2052.15088aa10e, portal: 192.168.51.3,3260\] (multiple)  
Logging in to \[iface: default, target: iqn.2017-10.com.hpe:storage.msa2052.15088aa10e, portal: 192.168.51.2,3260\] (multiple)  
Logging in to \[iface: default, target: iqn.2017-10.com.hpe:storage.msa2052.15088aa10e, portal: 192.168.50.3,3260\] (multiple)  
Login to \[iface: default, target: iqn.2017-10.com.hpe:storage.msa2052.15088aa10e, portal: 192.168.50.2,3260\] successful.  
Login to \[iface: default, target: iqn.2017-10.com.hpe:storage.msa2052.15088aa10e, portal: 192.168.51.3,3260\] successful.  
Login to \[iface: default, target: iqn.2017-10.com.hpe:storage.msa2052.15088aa10e, portal: 192.168.51.2,3260\] successful.  
Login to \[iface: default, target: iqn.2017-10.com.hpe:storage.msa2052.15088aa10e, portal: 192.168.50.3,3260\] successful.</td></tr></tbody></table>

3.4. Listar as sessões ativas

```shell
iscsiadm -m session -o show
```

<table id="bkmrk-tcp%3A-%5B1%5D-192.168.50." style="width: 808px;"><tbody><tr><td style="width: 807px;">tcp: \[1\] 192.168.50.2:3260,1 iqn.2017-10.com.hpe:storage.msa2052.15088aa10e (non-flash)  
tcp: \[2\] 192.168.51.3:3260,4 iqn.2017-10.com.hpe:storage.msa2052.15088aa10e (non-flash)  
tcp: \[3\] 192.168.51.2:3260,3 iqn.2017-10.com.hpe:storage.msa2052.15088aa10e (non-flash)  
tcp: \[4\] 192.168.50.3:3260,2 iqn.2017-10.com.hpe:storage.msa2052.15088aa10e (non-flash)</td></tr></tbody></table>

3.5. Exibe informações dos dispositivos

```shell
multipath -v3
```

<table id="bkmrk-...-...%C2%A0-sa%C3%ADda-omi" style="width: 808px;"><tbody><tr><td style="width: 807px;">...

... Saída omitida

...  
===== paths list =====  
uuid hcil dev dev\_t pri dm\_st chk\_st vend/prod  
360080e50002c8d920000146c5d1bca10 2:0:0:0 sdc 8:32 50 undef undef HPE,MSA 1  
360080e50002c8d920000146c5d1bca10 3:0:0:0 sda 8:0 10 undef undef HPE,MSA 1  
360080e50002c8d920000146c5d1bca10 4:0:0:0 sdb 8:16 50 undef undef HPE,MSA 1  
360080e50002c8d920000146c5d1bca10 5:0:0:0 sdd 8:48 10 undef undef HPE,MSA 1  
Dec 13 16:23:15 | libdevmapper version 1.02.155 (2018-12-18)  
Dec 13 16:23:15 | DM multipath kernel driver v1.13.0  
Dec 13 16:23:15 | sdc: udev property ID\_WWN whitelisted  
Dec 13 16:23:15 | wwid 360080e50002c8d920000146c5d1bca10 not in wwids file, skipping sdc  
Dec 13 16:23:15 | sdc: orphan path, only one path  
Dec 13 16:23:15 | sysfs prioritizer refcount 4  
Dec 13 16:23:15 | sda: udev property ID\_WWN whitelisted  
Dec 13 16:23:15 | wwid 360080e50002c8d920000146c5d1bca10 not in wwids file, skipping sda  
Dec 13 16:23:15 | sda: orphan path, only one path  
Dec 13 16:23:15 | sysfs prioritizer refcount 3  
Dec 13 16:23:15 | sdb: udev property ID\_WWN whitelisted  
Dec 13 16:23:15 | wwid 360080e50002c8d920000146c5d1bca10 not in wwids file, skipping sdb  
Dec 13 16:23:15 | sdb: orphan path, only one path  
Dec 13 16:23:15 | sysfs prioritizer refcount 2  
Dec 13 16:23:15 | sdd: udev property ID\_WWN whitelisted  
Dec 13 16:23:15 | wwid 360080e50002c8d920000146c5d1bca10 not in wwids file, skipping sdd  
Dec 13 16:23:15 | sdd: orphan path, only one path  
Dec 13 16:23:15 | sysfs prioritizer refcount 1  
Dec 13 16:23:15 | unloading sysfs prioritizer  
Dec 13 16:23:15 | unloading const prioritizer  
Dec 13 16:23:15 | unloading tur checker

</td></tr></tbody></table>

3.6. Adicionar o WWID do disco compartilhado via iSCSI para a configuração

```shell
multipath -a 360080e50002c8d920000146c5d1bca10
```

<table id="bkmrk-wwid-%27360080e50002c8" style="width: 807px;"><tbody><tr><td style="width: 806px;">wwid '360080e50002c8d920000146c5d1bca10' added</td></tr></tbody></table>

3.7. Associar o WWID a um nome, para facilitar o gerenciamento

```shell
nano /etc/multipath.conf # Abrir o arquivo
```

<table id="bkmrk-%2Fetc%2Fmultipath.conf-" style="width: 810px;"><tbody><tr><td style="width: 809px;">/etc/multipath.conf</td></tr><tr><td style="width: 809px;">\# Adicionar este trecho ao final do arquivo

multipaths {  
 multipath {  
 wwid 360080e50002c8d920000146c5d1bca10  
 alias meusdados  
 }  
}

</td></tr></tbody></table>

3.8. Reiniciar o serviço para aplicar as alterações

```shell
systemctl restart multipathd
```

3.9. Verificar se o dispositivo multipath foi criado

```shell
multipath -l
```

<table id="bkmrk-meusdados-%28360080e50" style="width: 810px;"><tbody><tr><td style="width: 809px;">meusdados (360080e50002c8d920000146c5d1bca10) dm-0 HPE,MSA 2052 SAN  
size=128G features='3 queue\_if\_no\_path queue\_mode mq' hwhandler='1 alua' wp=rw  
|-+- policy='service-time 0' prio=0 status=active  
| |- 3:0:0:0 sdg 8:32 active undef running  
| `- 6:0:0:0 sdf 8:16 active undef running  
`-+- policy='service-time 0' prio=0 status=enabled  
 |- 4:0:0:0 sde 8:0 active undef running  
 `- 7:0:0:0 sdh 8:48 active undef running</td></tr></tbody></table>

3.10. Configurar a conexão aos dispositivos via iSCSI no boot

```shell
sed 's/node.startup = manual/node.startup = automatic/' -i /etc/iscsi/iscsid.conf
sed 's/node.startup = manual/node.startup = automatic/' -i /etc/iscsi/nodes/*/*/default
sed 's/node.conn\[0\].startup = manual/node.conn\[0\].startup = automatic/' -i /etc/iscsi/nodes/*/*/default
```

  
 Referências

[https://openwares.net/2019/07/03/debian-buster-multipath-configuration/](https://openwares.net/2019/07/03/debian-buster-multipath-configuration/)

[https://docs.microsoft.com/pt-br/azure/storsimple/storsimple-8000-configure-mpio-windows-server](https://docs.microsoft.com/pt-br/azure/storsimple/storsimple-8000-configure-mpio-windows-server)

# Backup

Documentações relativas a procedimentos de backup e restauração.

# Backup do pfSense

### Introdução 

Este documento destina-se a demonstração dos procedimentos de implementaçao do backup das configurações de um servidor pfSense. A efetivação destes procedimentos permite rápida restauração de um servidor pfSense com problemas ou implantação de um servidor baseado nas configurações de um anterior.

[![esquema_Backup_gateway_SUAP.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/esquema_Backup_gateway_SUAP.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/esquema_Backup_gateway_SUAP.png)

O backup é realizado conforme a figura acima. Este método de backup é utilizado quando não é possível instalar um cliente diretamente no **host** que sofrerá o backup dos dados. Neste caso, um host intermediário (**Backup-gateway**), este com capacidade de sofrer backup dos dados, realiza a cópia do pfSense para o seu disco local. Em seguida, de acordo com o agendamento, o **servidor de backup** realiza o backup dos dados copiados no host intermediário.

Este método é baseado em uma ferramenta open source que realiza a cópia dos dados do pfSense de forma otimizada via comunicação HTTPS. A ferramenta conecta-se ao pfSense com as credenciais e em seguida realiza o download das configurações do pfSense.

### Backup do pfSense

A máquina **Backup-gateway** tem um S.O do tipo centOs versão 7.3.1611. A partir desta máquina e com um usuário com permissões de administrador:

```updates
$ sudo yum check-updates
$ sudo yum install epel-release
$ sudo yum install python-pip
$ sudo pip install BeautifulSoup4
```

Agora realize o download do código python a ser utilizado. Coloque este código em **/root**, por exemplo.:

```baixar
 $ sudo wget -c https://raw.githubusercontent.com/edgauthier/pfsense-backup/master/pfsense-backup.py
 $ sudo cp pfsense-backup.py /root/pfsense-backup.py
```

A utilização do código é da seguinte forma:

```
Usage: pfsense-backup.py OPTIONS

OPTIONS:

    -h | --help

    -s <server url> | --server <server url>
        The base URL for the pfSense installation.
        Example: https://pfsense.example.com
        
    -t <seconds> | --timeout <seconds>
        Timeout for network requests.

    -u <username> | --username <username>
    
    -p <password> | --password <password>

    -d | --directory <directory>
        Defaults to current directory.

    -r | --rrd
        Includes RRD data with the backup.

    -f | --file <file>
        Defaults to 'pfsense-backup.xml'
```

Um exemplo de uso é o seguinte::

`$ ./pfsense-backup.py -s https://172.20.254.100:443 -t 5 -u admin -p senha123 -r -f arquivo_backup_pfSense.xml`

Para uso em rotinas, fica a sugestão do seguinte script:

```script
#!/bin/bash

data=$(/bin/date +%Y-%m-%d)
hora=$(/bin/date +%X)

DIR=/backup/pfsense/

host1="PFsense"
user1=admin
passwd1=senha123
server1=172.20.254.100
FILE1=backup_"$host1"-$data.xml

method=https
port=443
timeout=5

logFile=/var/log/backup-pfSense.log

# Funcao
writeLog(){
   echo -e "$data $hora - $1\n" >> $logFile
}

backup(){
/root/pfsense-backup.py -s $method://$1:$port -t $timeout -u $2 -p "$3" -r -f "$4"
}

check(){
if [ -e $1 ]; then
        writeLog "Cópia de $2 realizada com sucesso!"
else
        writeLog "Cópia de $2 não realizada, verificar log."
fi
}

writeLog "Iniciando rotina de cópia dos dados"

mkdir -p $DIR
cd $DIR

backup $server1 $user1 $passwd1 $FILE1
writeLog "Realizando a cópia remota dos dados do host: $host1"
check $FILE1 $host1

writeLog "Encerrando rotina..."
```

###  Referências

[https://github.com/edgauthier/pfsense-backup](https://github.com/edgauthier/pfsense-backup)

# Backup do Samba 4

## Introdução

Este documento visa a orientação para a configuração de backup dos dados de configurações do Samba4. Porém, não é uma solução para backup dos arquivos dos usuários, servidor de arquivos e etc. A efetivação destes procedimentos permite rápida restauração de um servidor samba com problemas ou implantação de um servidor novo baseado nas configurações restauradas de um anterior.

São utilizados scripts para a realização do backup e baseados em documentação oficial. A versão do samba que funciona corretamente com estes scripts é o Samba v4.0-v4.8. Para versões acima, existe outra abordagem oficial. Estes scripts podem funcionar no próprio host do samba que deve possuir um cliente de backup. Caso não seja possível instalar o cliente de backup, o script pode funcionar normalmente, mas após a geração dos arquivos de saída, estes devem ser enviados a um host intermediário que sofrerá o backup por meio de um cliente válido. Este segundo esquema pode ser representado pela seguinte figura:

[![esquema_Backup_gateway_SUAP.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/esquema_Backup_gateway_SUAP.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/esquema_Backup_gateway_SUAP.png)

**Host** seria o servidor samba4. O **backup-gateway** é o host intermediário que recebe os dados gerados pelo script de backup do samba e possui um cliente de backup válido. O **servidor de backup** é o Bacula, Bareos ou outro servidor desejado.

### Backup do samba4

#### Preparação

Primeiro, tenha um usuário com permissões de administrador e crie um diretório no qual serão armazenados os arquivos gerados para backup. No caso, será utilizado o diretório `/root/backup/samba`.

`$ sudo mkdir /root/backup/samba -p`

Realize o download do *tarball* do samba contendo o script de backup fornecido pelos desenvolvedores.

```download
$ cd /usr/src 
$ sudo wget http://ftp.samba.org/pub/samba/samba-latest.tar.gz
$ sudo tar -xvzf samba-latest.tar.gz
```

Encontre o script em questão:

`$ find / -iname samba_backup`

Deverá aparecer uma saída apontando esta localização. Onde "x.x" é a especificação da versão do samba no seu cenário:

`/usr/src/samba-4.x.x/source4/scripting/bin/samba_backup`

Copiar para um local adequado, exemplo: **/root/scripts/**:

`$ sudo cp /usr/src/samba-4.8.4/source4/scripting/bin/samba_backup /root/scripts/`

A partir daqui preste bastante atenção. Será necessário **alterar variáveis no script original** e posteriormente inserir um trecho de código se for o seu caso. Caso seu **samba4 seja compilado**, realize da seguinte maneira:

```
$ sudo nano /root/scripts/samba_backup

DIRS="private etc sysvol"
FROMWHERE=/usr/local/samba
WHERE=/root/backup/samba
```

Caso o seu **samba4 seja instalado via pacotes** de repositórios:

```samba
$ sydi nano /root/scripts/samba_backup

DIRS="private /etc/samba sysvol"
FROMWHERE=/var/lib/samba
WHERE=/root/backup/samba
```

Agora insira (cole) o seguinte trecho de código na linha 85 se o seu **samba4 foi instalado via repositório de pacotes**:

```
elif  [ "$d" = "/etc/samba" ]; then
		# Run the backup.
		#    --warning=no-file-ignored set to suppress "socket ignored" messages.
		tar cjf ${WHERE}/${n}.${WHEN}.tar.bz2  $d --warning=no-file-ignored
		Status=$?       # Preserve $? for message, since [ alters it.
		if [ $Status -ne 0 ]; then
				echo "Error while archiving ${WHERE}/${n}.${WHEN}.tar.bz2 - status = $Status"
				exit 1
		fi
```

Este código é necessário pois sem ele uma parte dos arquivos não seria copiada.

 Ajuste permissões:

```
$ sudo chmod 750 /root/backup/samba/
$ sudo chown root:root /root/scripts/samba_backup
```

#### Execução

Antes de rodar o script é NECESSÁRIO parar o serviço do samba. Então, faça da seguinte maneira:

```
$ sudo service samba stop
$ /root/scripts/samba_backup 2>/dev/null
```

<div data-lang="" id="bkmrk-%24-sudo-service-samba-0"><textarea style="display: none;">$ sudo service samba stop $ /root/scripts/samba\_backup 2&gt;/dev/null</textarea><div><div><textarea spellcheck="false" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;" tabindex="0"></textarea></div><div><div><div></div></div></div></div></div>Os arquivos ficarão em **/root/backup/samba/:**

```
$ ls root/backup/samba/
_etc_samba.2018-08-20.tar.bz2 
samba4_private.2018-08-20.tar.bz2 
sysvol.2018-08-20.tar.bz2
```

#### Rotina de backup

Sugere-se a adição deste script à rotina do host para uma execução periódica. Porém, é importante alterar o script para que seja possível **parar o samba antes de executar o script**! Pode ser inserido tal código ao script:

```
# PARAR SAMBA, INÍCIO DO SCRIPT:
/etc/init.d/samba stop

......

# INICIAR SAMBA APÓS TODA A EXECUÇÃO DO SCRIPT, NAS ULTIMAS LINHAS:
# START SAMBA
/etc/init.d/samba start
```

### Restaurando os arquivos

<p class="callout danger">Por se tratar de procedimento **complexo** em que o sucesso depende muito das variáveis envolvidas no ambiente, não é possível garantir o sucesso dos métodos de restauração à seguir para **qualquer caso**. Assim, o administrador deve realizar os devidos ajustes para conseguir ter sucesso na operação.</p>

 Observações importantes:

- Nunca tente restaurar e realizar uma troca de versão do samba ao mesmo tempo. Sempre restaure, tenha um sistema funcional, e depois realize a atualização;
- Não troque o *hostname* nem o endereço de IP para não ter problemas com o kerberos e DNS;
- **RECOMENDADO**: restaure na mesma instância de S.O que estava executando o serviço anteriormente.
- Se for necessário reinstalar o sistema, será necessário que primeiro seja instalado corretamente o seu [*active directory controller*](https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller).

Pare o samba!

```
$ sudo /etc/init.d/samba stop
```

Remova os diretórios anteriores **caso samba4 seja compilado:**

```samba
$ sudo rm -rf /usr/local/samba/etc
$ sudo rm -rf /usr/local/samba/private
$ sudo rm -rf /usr/local/samba/var/locks/sysvol
```

**Apague os diretórios anteriores caso samba4 seja instalado via repositório de pacotes:**

```
$ sudo rm -rf /etc/samba/
$ sudo rm -rf /var/lib/samba/sysvol/
$ sudo rm -rf /var/lib/samba/private/
```

O arquivo compactado por vezes vai gerar uma estrutura de diretórios partindo da raiz "/", assim, ao copiar do backup para a pasta real, copie somente a parte do caminho que resta. Por exemplo, no caso de /etc/samba/ copie o diretório, dentro do arquivo compactado relativo ao etc, a partir do que estiver dentro de "samba", ou seja:

[![samba_backup_etc_conteudo.JPG](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/samba_backup_etc_conteudo.JPG)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/samba_backup_etc_conteudo.JPG)

Estes arquivos devem ser copiados para **/etc/samba/.**

Assim, copie para os caminhos reais os conteúdos dos arquivos do "etc" (**\_etc\_samba.Timestamp.tar.bz2**), "private"(**samba4\_private.Timestamp.tar.bz2**) e "sysvol"(**sysvol.Timestamp.tar.bz2**). Os caminhos reais, como apontado anteriormente, dependem da instalação do seu samba, se compilada ou não. *Timestamp* é um data no formato *AAAA-MM-DD, Ex: 2018-08-24.*

Supondo que esteja no diretório que contém os três arquivos do backup:

```
$ sudo tar -jxf etc.{Timestamp}.tar.bz2 -C /CAMINHO/COMPILADO/OU/NÃO
$ sudo tar -jxf samba4_private.{Timestamp}.tar.bz2 -C /CAMINHO/COMPILADO/OU/NÃO
$ sudo tar -jxf sysvol.{Timestamp}.tar.bz2 -C /CAMINHO/COMPILADO/OU/NÃO
```

Renomeie os arquivos \*.ldp.bak para \*.ldb:

```
$ find /LOCAL/DO/PRIVATE -type f -name '*.ldb.bak' -print0 | while read -d $'\0' f ; do mv "$f" "${f%.bak}" ; done
```

Se o backup não contém ACLs extendidas, execute:

```
$ sudo samba-tool ntacl sysvolreset
```

 Se você utiliza o samba como backend DNS, execute o comando à seguir para consertar os hardlinks das bases DNS:

```
$ sudo samba_upgradedns --dns-backend=BIND9_DLZ
```

Então pode reiniciar o serviço do samba e realizar os devidos ajustes.

```
$ sudo /etc/init.d/samba start
```

### Referências

[https://wiki.samba.org/index.php/Using\_the\_samba\_backup\_script](https://wiki.samba.org/index.php/Using_the_samba_backup_script)

[https://wiki.samba.org/index.php/Back\_up\_and\_Restoring\_a\_Samba\_AD\_DC](https://wiki.samba.org/index.php/Back_up_and_Restoring_a_Samba_AD_DC)

# Solução de backup: Bareos

### Introdução 

[![bareos-full-logo.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/bareos-full-logo.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/bareos-full-logo.png)

Este documento destina-se a demonstração dos procedimentos de instalação e configuração básica da solução de backup Bareos. Tal solução permite a realização de trabalhos de backup e restauração de dados. São suportadas máquinas clientes Linux e Windows.

As máquinas servidoras suportadas são do tipo Linux Debian, RedHat e Suse, porém, NESTE MANUAL será apresentada a instalação em sistemas CentOs na **versão &gt;=7**. A versão contemplada do **Bareos** é a **17.2**.

O Bareos é dividido em três componentes principais: o Director, o Console, o Storage Daemon e o File Daemon. O **Director** é o componente central, atuando como controlador que contata clientes e salva dados de backups nos armazenamentos. O **Console** é um componente utilizado para acessar configurações, verificar status e fazer alterações nos parâmetros do servidor via linha de comando. O **Storage Daemon** é o armazenamento dos dados de backup e é independente do Director pois nem sempre o mesmo servidor que controla é o mesmo que armazena os backups diretamente. E finalmente, o **File Daemon** é o componente cliente, aquele que recebe conexões do Director e provê a este os arquivos de backup referente aos conjuntos de arquivos configurados. Abaixo uma ilustração de como se dá a comunicação entre os componentes:

[![0cbc9d2c54974088996df70580f2a26a.jpg](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/0cbc9d2c54974088996df70580f2a26a.jpg)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/0cbc9d2c54974088996df70580f2a26a.jpg)

É possível notar que alguns nomes e senhas devem ser as mesmas em diferentes componentes do sistema de backup. Isto ocorre pois, **o mesmo atributo tem parâmetros diferentes à depender do contexto**. Por exemplo, o atributo *Director*, no contexto do **Director**, tem a função de definir as principais configurações neste componente. Já no cliente, o atributo *Director* informa qual é o **Director** que pode acessá-lo e a senha autorizada. IMPORTANTE notar estas diferenças.

A primeira seção do documento é a de instalação do servidor da solução e o painel de gerenciamento web. A segunda seção é a de configuração do servidor e da solução de gerência web. A terceira sessão é a instalação e adição do cliente na lista do servidor. A quarta sessão demonstra como criar um trabalho de backup. Por fim, a última seção apresenta como realizar restauração de backupsa anteriores.

### Instalação

Para instalar a solução será necessário primeiro instalar um tipo de banco de dados para uso próprio, em seguida instalar a solução em si, posteriormente instalar o **bareos-webui** e realizar algumas configurações básicas do servidor e de rede.

#### Instalando o PostgreSQL

Neste manual será demonstrada a instalação do PostgreSQL (recomendado) para a solução de backup Bareos. Será instalada a **versão 10** do banco de dados PostgreSQL.

Primeiro, com um usuário com poderes de superusuário, adicione o repositório da versão 10 do banco a seu S.O da família Red Hat:

`$ sudo yum -y install <a href="https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm">https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm</a>`

 Em seguida, instale os pacotes necessários ao PostgreSQL:

`$ sudo yum -y install postgresql10 postgresql10-devel postgresql10-contrib postgresql10-libs postgresql10-test postgresql10-server postgresql10-docs`

Ative o serviço do PostgreSQL:

`$ sudo systemctl enable postgresql-10`

Rode o comando para inicializar a base de dados:

`$ sudo /usr/pgsql-10/bin/postgresql-10-setup initdb`

Inicie o serviço e verifque o statatus:

`$ sudo service postgresql-10 start`  
`$ sudo service postgresql-10 status`

Altere o parâmetro de conexões máximas no arquivo de configuração do PostgreSQL:

```alterar
$ sudo nano /var/lib/pgsql/10/data/postgresql.conf
max_connections = 256
```

Reinicie o postgresql:

`$ sudo service postgresql-10 restart`

#### Ativando o FirewallD

O FirewallD é um firewall disponível no CentOs. Ele é utilizado na demonstração deste manual para filtrar portas na interface de produção do servidor de backup. Ative e inicie o FirewallD:

```ativar
$ sudo systemctl enable firewalld
$ sudo service firewalld start
$ sudo service firewalld status
 firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Qua 2018-09-12 15:19:34 EDT; 41min ago
     Docs: man:firewalld(1)
 Main PID: 731 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─731 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Set 12 15:19:31 t-bareos systemd[1]: Starting firewalld - dynamic firewall daemon...
Set 12 15:19:34 t-bareos systemd[1]: Started firewalld - dynamic firewall daemon.
```

Ative as portas que futuramente serão necessárias para o Bareos:

```liberar
$ firewall-cmd --list-all
$ firewall-cmd --add-port=80/tcp --permanent
$ firewall-cmd --add-port=9101/tcp --permanent
$ firewall-cmd --add-port=9102/tcp --permanent
$ firewall-cmd --add-port=9103/tcp --permanent
$ firewall-cmd --reload
$ firewall-cmd --list-all
```

<p class="callout info">Caso haja mais de uma interface de rede no servidor, uma boa prática é criar "zonas" no FirewallD contemplando as interfaces utilizadas para backup. Em seguida, realizar os filtros de portas nas zonas criadas ao invés de fazê-lo em todas as interfaces.</p>

#### Instalando o Bareos

Considerando o S.O centOs na versão &gt;=7 e o Bareos na versão 17.2, defina algumas variáveis para facilitar o processo de instalação:

```variaveis
$ DIST=CentOS_7  
$ RELEASE=release/17.2/ 
$ URL=http://download.bareos.org/bareos/$RELEASE/$DIST 
```

Faça o download do arquivo que adiciona o repositório do Bareos a seu S.O:

`$ sudo wget -O /etc/yum.repos.d/bareos.repo $URL/bareos.repo `

Agora execute o comando para realizar a instalação dos pacotes do Bareos:

`$ sudo yum install -y bareos bareos-database-postgresql`

Adicione o usuário postgres ao grupo do bareos, isto será necessário nas próximas etapas.

`$ sudo usermod -aG bareos postgres`

Execute os seguintes comandos para realizar o login com o usuário postgres e criar as tabelas do banco de dados da solução de backup:

```criar
$ sudo su - postgres

$ /usr/lib/bareos/scripts/create_bareos_database 
$ /usr/lib/bareos/scripts/make_bareos_tables 
$ /usr/lib/bareos/scripts/grant_bareos_privileges

$ exit
```

Após este ponto o servidor Bareos já estará instalado, mas a configuração da ferramenta será apresentada nas seções seguintes.

#### Instalando o bareos-webui

O bareos-webui é uma interface de gerenciamento web para o Bareos. Similiar ao webacula para o Bacula.

<p class="callout info">O bareos-webui é muito útil para emitir comandos e ver configurações do servidor de backup. Entretanto, para modificar as configurações é necessário utilizar as ferramentas convencionais: **bconsole** e edição dos arquivos de configuração em texto.</p>

A instalação é simples, basta apenas executar o seguinte comando:

`$ sudo yum install -y bareos-webui`

### Configuração

#### Bareos

Configure o arquivo principal do **Director** (componente central do Bareos). Sugere-se alterar parâmetros para os descritos abaixos como segue:

```configurações
$ sudo nano /etc/bareos/bareos-dir.d/director/bareos-dir.conf

Name = #NOME DO SEU DIRECTOR: EX.: ifpe-cafg-bkp1
Maximum Concurrent Jobs = 256
Heartbeat Interval = 1 Minute
FD Connect Timeout = 180s
```

<p class="callout danger">Neste ponto, com a alteração do nome do **Director** no arquivo principal, **É NECESSÁRIO** alterar o nome do *Director* nos arquivos de configuração do **File Daemon** (cliente de backup que o servidor possui) e do **Storage** (componente que armazena os backups). </p>

```alterar
$ sudo nano /etc/bareos/bareos-fd.d/director/bareos-dir.conf
Name = #NOME DO SEU DIRECTOR

$ sudo nano /etc/bareos/bareos-sd.d/director/bareos-dir.conf
Name = #NOME DO SEU DIRECTOR
```

Para este manual, o diretório de backup considerado será o **/backup**. Serão criados subdiretórios para armazenamento dos backups dos tipos COMPLETO, INCREMENTAL e DIFERENCIAL.

```diretórios
$ sudo mkdir -p /backup/COMPLETO
$ sudo mkdir -p /backup/INCREMENTAL
$ sudo mkdir -p /backup/DIFERENCIAL
```

Altere as permissões dos referidos diretórios:

```permissões
$ sudo chown -R bareos:bareos /backup/
$ sudo chmod -R 700 /backup/
```

 Inicie e ative os daemons do Bareos:

```
$ sudo systemctl enable bareos-dir
$ sudo service bareos-dir start 
$ sudo service bareos-sd start 
$ sudo service bareos-fd start
```

##### Storage daemons e Devices

Estes dois atributos são configurações globais que já possuem definições padrão no momento da instalação, entretanto, para uma boa prática no que se refere à configuração do servidor de backup Bareos, devem ser definidas logo no início antes de configurados qualquer trabalhos de backup.

**Device** é o dispositivo no qual volumes serão armazenados. No Linux, aponta basicamente para um caminho dentro da estrutura de diretórios do S.O. Como deve ser de seu conhecimento, um caminho pode apontar para um diretório físico na partição do S.O, para um diretório NFS remoto, para uma partição separada, para um disco completo separado, para um storage, e etc.

**Storage** refere-se a um grupo de armazenamento que dentre outras configurações, irá conter um ou mais *Devices* como atributos configurados. Vejamos à seguir uma configuração de exemplo para os **Devices** e os **Storage Daemons**.

Abaixo, as configurações recomendadas do atributo *Device* <span style="text-decoration: underline;">no contexto do **Storage**</span>. O arquivo configurado é o **/etc/bareos/bareos-sd.d/device/FileStorage.conf.**

```device
$ sudo nano /etc/bareos/bareos-sd.d/device/FileStorage.conf
...
Device {
  Name = Completo-Dev01
  Media Type = File
  Archive Device = /backup/COMPLETO
  LabelMedia = yes
  Random Access = yes
  AutomaticMount = yes
  RemovableMedia = no
  AlwaysOpen = no
  Maximum Concurrent Jobs = 64
}

Device {
  Name = Incremental-Dev01
  Media Type = File
  Archive Device = /backup/INCREMENTAL
  LabelMedia = yes
  Random Access = yes
  AutomaticMount = yes
  RemovableMedia = no
  AlwaysOpen = no
  Maximum Concurrent Jobs = 64
}

Device {
  Name = Diferencial-Dev01
  Media Type = File
  Archive Device = /backup/DIFERENCIAL
  LabelMedia = yes
  Random Access = yes
  AutomaticMount = yes
  RemovableMedia = no
  AlwaysOpen = no
  Maximum Concurrent Jobs = 64

}
```

Note que há um atributo *Device* para cada tipo de backup: completo, incremental e diferencial. Este mapeamento é interessante em um cenário futuro onde o armazenamento dos backups *Full*, por exemplo, seja separado (até fisicamente) dos outros tipos de backup. Essa melhoria não acarretaria em alterações no Bareos, apenas no S.O - fstab. OBS: não há configuração de *Device* <span style="text-decoration: underline;">no contexto do **Director**</span>.

A configuração do atributo *Storage* é feita por meio do arquivo **/etc/bareos/bareos-sd.d/storage/bareos-sd.conf**. Ele contém configurações globais do armazenamento <span style="text-decoration: underline;">em seu próprio contexto</span>.

Abaixo, as configurações recomendadas do atributo *Storage* <span style="text-decoration: underline;">no contexto do **Director**</span>. O arquivo configurado é o **/etc/bareos/bareos-dir.d/storage/File.conf.**

```storage
$ sudo nano /etc/bareos/bareos-dir.d/storage/File.conf
...
Storage {
  Name = Completo-Dev01
  Address = # IP DO STORAGE, geralmente o mesmo IP desta máquina servidora
  SDPort = 9103
  Password = # senha em /etc/bareos/bareos-sd.d/director/bareos-dir.conf
  Device = Completo-Dev01
  Media Type = File
  Maximum Concurrent Jobs = 64
}

Storage {
  Name = Diferencial-Dev01
  Address =  # IP DO STORAGE, geralmente o mesmo IP desta máquina servidora
  SDPort = 9103
  Password = # senha em /etc/bareos/bareos-sd.d/director/bareos-dir.conf
  Device = Diferencial-Dev01
  Media Type = File
  Maximum Concurrent Jobs = 64
}

Storage {
  Name = Incremental-Dev01
  Address = # IP DO STORAGE, geralmente o mesmo IP desta máquina servidora
  SDPort = 9103
  Password = # senha em /etc/bareos/bareos-sd.d/director/bareos-dir.conf
  Device = Incremental-Dev01
  Media Type = File
  Maximum Concurrent Jobs = 64
}
```

O atributo *Address* é o IP ou FQDN do servidor onde está configurado o SD do Bareos.

O atributo SD*Port* informa a porta de acesso que está liberada no Storage (em seu próprio contexto).

O atributo *Password* informa a senha de acesso ao Storage.

O atributo *Device* informa qual dispositivo configurado no Storage será utilizado. Neste caso, um mesmo **Storage** pode ter vários **Devices**, porém, é optado neste manual pela atribução de um único **Device** a um único **Storage**.

O *Media Type* é o tipo de mídia selecionada, por padrão é "File".

*Maximum Concurrent Jobs* é o número máximo de trabalhos sendo executados simultaneamente que podem escrever em no referido **Storage*.***

Findo tais configurações, somente se faz necessário apontar os nomes dos **Storages** como parâmetro nos atributos que o solicitarem ou que este for obrigatório (pools, Jobs...).

Reinicie o **Storage**:

```restart
$ sudo service bareos-sd restart
```

#### Bareos-webui

No arquivo **/etc/bareos-webui/conﬁguration.ini** há configurações que podem ser modificadas à vontade do administrador. Por padrão não há esta necessidade.

Ao final do arquivo **/etc/bareos/bareos-dir.d/profile/webui-admin.conf**, adicione as seguintes linhas antes da chave de fechamento do atributo *Profile*:

```web-ui
$ sudo nano /etc/bareos/bareos-dir.d/profile/webui-admin.conf

Profile {
 ....
Plugin Options ACL = *all*
}
```

Configure o arquivo **/etc/bareos-webui/directors.ini** alterando principalmente as linhas 10 e 16 como segue:

```
$ sudo nano /etc/bareos-webui/directors.ini
....
[ifpe-cafg-bkp1] #linha 10
...

diraddress = # IP ou nome da máquina que contém o bareos (geralmente "localhost") #linha 16

```

Crie um usuário que possa usar a interface web. Basta copiar o original e modificá-lo:

```criar
$ sudo cp /etc/bareos/bareos-dir.d/console/admin.conf.example /etc/bareos/bareos-dir.d/console/cgti.conf
$ sudo nano /etc/bareos/bareos-dir.d/console/cgti.conf

Console {                 
  Name = cgti            
  Password = "cgti"      
  Profile = "webui-admin" 
}                         
```

Como root, execute o seguinte comando:

`$ sudo setsebool -P httpd_can_network_connect on`

Agora reinicie o apache (httpd) e o bareos:

```iniciar
$ sudo service httpd stop
$ sudo service httpd start

$ sudo service bareos-director stop
$ sudo service bareos-director start
```

Acesse a página de login do bareos-webui:

`<a href="http://10.20.254.69/bareos-webui/">http://IP_SERVIDOR/bareos-webui/</a>`

[![imagem-bareos-webui-inicial.JPG](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/imagem-bareos-webui-inicial.JPG)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/imagem-bareos-webui-inicial.JPG)

Utilizando as credenciais anteriormente configuradas é possível obter acesso a página inicial.

[![imagem-bareos-webui-home.JPG](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/imagem-bareos-webui-home.JPG)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/imagem-bareos-webui-home.JPG)

Inicialmente não haverão muitas informações pois ainda não há trabalhos de backup configurados, apenas trabalhos automáticos de backup de arquivos da própria ferramenta configurados inicialmente às 21h00 .

### Instalação do cliente de backup 

#### Etapa obrigatória no servidor

Antes de qualquer operação, primeiro verifique se o servidor possui conectividade com o cliente na interface de rede desejada.   
`$ ping #ip_do_cliente`

Cientes da conexão, NO SERVIDOR, digite o comando **bconsole** e em seguida, dentro do bconsole, rode o seguinte comando:

```adicionar
* configure add client name=#nome_do_cliente address=#ip_do_cliente password=#senha

Exported resource file "/etc/bareos/bareos-dir-export/client/ifpe-cafg-sambafs-fd/bareos-fd.d/director/t-bareos.conf":
Director {
  Name = t-bareos
  Password = "[md5]9af9de4b43cfd0d9d4e196fcced09bfd"
}
Created resource config file "/etc/bareos/bareos-dir.d/client/ifpe-cafg-sambafs-fd.conf":
Client {
  Name = ifpe-cafg-sambafs-fd
  Address = 10.20.253.199
  Password = cgti
}
*
```

Este comando realiza duas operações: cria os arquivos de configuração necessários no servidor e cria um arquivo de configuração do servidor a ser enviado e utilizado no cliente. Este arquivo já contém o nome do **Director** e a senha informada no comando. Guarde este arquivo para momento posterior.

**\#nome\_do\_cliente** geralmente é o hostname do host adicionado do sufixo "-fd". No caso de exemplo, o nome do cliente foi *ifpe-cafg-sambafs-fd*.

**\#ip\_do\_cliente** é o IP do cliente na interface a qual se deseja realizar trabalhos de backup. *10.20.253.199* no caso em questão.

**\#senha** é a senha a qual o **Director** precisará para ter acesso ao **Cliente** bareos-fd. É uma senha de autorização ao **Director**. Mas como dito, esta já é enviada pré-configurada para o cliente.

A configuração no servidor está completa, agora é necessário realizar as configurações do cliente.

Para o nosso exemplo, agora copie via SCP, FTP, rsync, para a máquina cliente, o arquivo de configuração que está no caminho **/etc/bareos/bareos-dir-export/client/ifpe-cafg-sambafs-fd/bareos-fd.d/director/t-bareos.conf**.

As próximas etapas são no host cliente.

#### Clientes Linux

O cliente de backup Linux funciona para várias distribuições e versões, no entanto, a versão do cliente NUNCA deve ser superior a versão do servidor. Ou seja, se o servidor está na versão 17, instalar um cliente versão 18 será um problema, pois a comunicação não é compatível.

No caso do **Debian**, instale o pacote bareos-filedaemon no cliente:

`$ sudo apt install -y bareos-filedaemon`

No caso do **centOs**, rode os seguinte comandos antes da instalação:

```centos
$ DIST=CentOS_7 
$ RELEASE=release/17.2/
$ URL=http://download.bareos.org/bareos/$RELEASE/$DIST 
$ wget -O /etc/yum.repos.d/bareos.repo $URL/bareos.repo 
```

Agora, rode o comando de instalação do pacote:

`$ sudo yum install -y bareos-filedaemon`

Acesse o arquivo de configuração do próprio cliente em **/etc/bareos/bareos-fd.d/client/myself.conf**

```cliente
$ sudo nano /etc/bareos/bareos-fd.d/client/myself.conf 
Client {
  Name = ifpe-cafg-sambafs-fd
  Maximum Concurrent Jobs = 20
 }
```

A principal informação é o atributo **Name** que deve estar igual ao que foi configurado no servidor e vice-versa. Recomenda-se a manutenção do atributo.

Agora copie o arquivo gerado no final do processo de adição do cliente no servidor. Suponha que ele esteja em **/home/cgti/t-bareos.conf**. Copie para **/etc/bareos/bareos-fd.d/director/**. Isto permitirá a conexão do **Director** a este cliente via a senha informada na adição do cliente no lado do servidor.

Reinicie o bareos-fd, caso **Debian**.

`$ sudo service bareos-fd restart`

Ative e inicie o bareos-fd, caso **centOs**.

```ativar
$ sudo systemctl enable bareos-fd
$ sudo systemctl start bareos-fd
```

NO SERVIDOR, rode o comando **bconsole**. Ao abrir o terminal, digite o comando **status client** e selecione na lista o cliente por meio da opção numerada, digite-o seguido de ENTER:

```bconsole
* status client
The defined Client resources are:
     1: ifpe-cafg-sambafs-fd
     2: bareos-fd
Select Client (File daemon) resource (1-2): 1
Connecting to Client ifpe-cafg-sambafs-fd at 10.20.253.199:9102

ifpe-cafg-sambafs-fd Version: 16.2.4 (01 July 2016)  x86_64-pc-linux-gnu debian Debian GNU/Linux 9.3 (stretch)
Daemon started 17-set-18 16:27. Jobs: run=0 running=0.
 Heap: heap=131,072 smbytes=28,182 max_bytes=28,571 bufs=70 max_bufs=73
 Sizeof: boffset_t=8 size_t=8 debug=0 trace=0 bwlimit=0kB/s

Running Jobs:
t-bareos (director) connected at: 17-set-18 18:08
No Jobs running.
====

Terminated Jobs:
 JobId  Level    Files      Bytes   Status   Finished        Name
======================================================================
     6  Full         10    233.3 M  OK       14-set-18 18:56 gab-comunicacoes-job
    14  Incr          0         0   OK       17-set-18 11:14 gab-comunicacoes-job
    15  Incr          0         0   OK       17-set-18 11:25 gab-comunicacoes-job
====
*
```

O servidor tentará obter conexão com o cliente. Caso haja algum problema, verifique se a porta **9102** - padrão na comunicação servidor-cliente - está aberta em prováveis firewalls de rede ou no firewall local do cliente. Para outros problemas, verificar se o IP está correto, se a máquina cliente está conectada, e verifique logs da ferramenta para soluções em casos mais complexos.

#### Clientes Windows

Para instalar clientes windows, primeiro realize o download do executável para a instalação de acordo com a versão do Director. Os binários de instalação podem ser encontrados em `<a href="http://download.bareos.org/bareos/release/latest/windows">http://download.bareos.org/bareos/release/latest/windows</a>`. O instalador segue o padrão da maioria dos programas para Windows.

Após abrir o instalador, clique em <span style="text-decoration: underline;">*Next*</span> e em <span style="text-decoration: underline;">*I Agree*</span>, em seguida selecione o diretório de instalação, sugere-se o padrão. Na próxima tela, marque somente a opção<span style="text-decoration: underline;"> *File Daemon (client)* </span>e <span style="text-decoration: underline;">*Tray Monitor*</span> em *Interfaces*.

Em seguida, prestar bastante atenção aos campos pois devem estar de acordo com o que foi criado no **Director** nos passos anteriores - lembre-se que o cliente é adicionado ao servidor antes de proceder à sua instalação propriamente dita. Então preencha os campos de acordo com as informações. A senha complexa em *Client Monitor Password* não precisa ser alterada. Clique *Next*.

Será mostrado um arquivo em texto para ser adiciona ao servidor, mas lembre-se que este arquivo já está no servidor, então, ignore e clique em *Next*. Pronto, conclua a instalação e **REINICIE O WINDOWS**.

 NO SERVIDOR, rode o comando **bconsole**. Ao abrir o terminal, digite o comando **status client** e selecione na lista o cliente por meio da opção numerada, digite-o seguido de ENTER:

```status
* status client
The defined Client resources are:
     1: ifpe-cafg-sambafs-fd
     2: bareos-fd
     3: ifpe-cafg-maq12-fd
Select Client (File daemon) resource (1-3): 3
Connecting to Client ifpe-cafg-maq12-fd at 10.20.253.112:9102

ifpe-cafg-maq12-fd Version: 17.2.4 (21 Sep 2017)  VSS Linux Cross-compile Win64
Daemon started 20-Sep-18 12:22. Jobs: run=0 running=0.
Microsoft Windows 7 Professional Service Pack 1 (build 7601), 64-bit
 Heap: heap=0 smbytes=40,477 max_bytes=40,671 bufs=81 max_bufs=83
 Sizeof: boffset_t=8 size_t=8 debug=0 trace=1 bwlimit=0kB/s

Running Jobs:
t-win7-aleciano-mon (director) connected at: 20-Sep-18 12:23
t-bareos (director) connected at: 20-Sep-18 14:34
No Jobs running.
====

Terminated Jobs:
====
*
```

O servidor tentará conexão com o cliente. Como podemos ver a conexão teve sucesso, na linha 11 inclusive é possível ver o tipo de S.O, confirmando que é o cliente Windows recém-instalado.

Os binários ficam instalados em `C:\Program Files\Bareos`. E os arquivos de configuração em `C:\ProgramData\Bareos`.

### Criando o primeiro trabalho de backup

#### Atributo Job

A configuração dos trabalhos de backup envolvem a definição de parâmetros nos arquivos de configuração que informarão entre outras coisas, o agendamento do backup, em que local será salvo, informações sobre os volumes utilizados e qual o cliente de backup utilizado.

Abaixo os principais atributos na configuração de um *Job* (trabalho). Serão apresentados cada um destes em detalhes à seguir. O arquivo utilizado é o **/etc/bareos/bareos-dir.d/gab-comunicacoes-fd.conf**:

```
$ sudo nano /etc/bareos/bareos-dir.d/gab-comunicacoes-fd.conf

Job {
Name = gab-comunicacoes-job
Type = Backup
Client = ifpe-cafg-sambafs-fd
FileSet = gab-comunicacoes-fileset
Schedule = gab-comunicacoes-schedule
Pool = gab-comunicacoes-completo-pool
Messages = Standard
}
```

<p class="callout info">Para uma melhor compreensão dos termos no que se refere a ferramenta de backup, consultar referências oficiais da ferramentas que estão linkadas no final deste manual.</p>

*Name* é o nome do trabalho (job) de backup. Ele define de forma única um determinado trabalho, por este motivo, não devem haver diferentes trabalhos com o mesmo nome.

*Type* é o tipo do trabalho. Podem haver trabalhos do tipo *backup*, *restore*, *verify*, *migrate*, dentre outros. Por padrão é utilizado o tipo *backup*, para realizar cópia dos arquivos. O segundo tipo, *restore*, é mais utilizado quando se deseja restaurar os arquivos, porém, é comum ter esse trabalho com o tipo *restore* configurado mas não agendado (sem *Schedule)*, ou seja, só será executado manualmente por intermédio de um administrador do sistema.

*Client* define o nome do cliente que sofrerá a ação de backup. Este nome é definido no ato de configuração do cliente e na adição do cliente de backup às configurações do servidor Bareos. Não é obrigatório ser o mesmo nome do *host* cliente, mas uma boa prática é utilizar este parâmetro como nome para que seja possível rapidamente identificar a qual host um cliente de backup está realacionado.

O *Fileset* ou conjunto de arquivos define quais os diretórios sofrerão ação de backup. Por exemplo, **/srv/arquivos/termos/** é um parâmetro utilizado na configuração de um dos atributos de *Fileset* - este e outros atributos serão detalhados nas seções à seguir..

*Schedule* é o atributo que determina qual tipo de agendamento configurado será utilizado para realização do trabalho de backup. Por exemplo, por meio do schedule é possível informar que o trabalho será realizado todos os dias às 20:15.

Para compreender o *Pool* é preciso compreender os *volumes*. O volume equivale a um arquivo de tamanho ou duração máxima pré-configurado e que vai recebendo os dados salvos nos trabalhos de backup. Quando um volume fica cheio ou tem sua duração encerrada, o Bareos proverá um novo. Assim, essa configuração dos volumes é feita pelo atributo *Pool*. Cada um destes agrupa uma série de volumes. Portanto, o atibuto *Pool* define os parâmetros que os volumes criados naquele trabalho irão possuir por padrão - um volume pode ter seu atributo modificado após a criação. Por exemplo: inicialmente um volume pode ter herdado da configuração do *Pool* o tamanho máximo de 1 GB. Mas é possível alterar esse volume em específico posteriormente e aumentá-lo para 2 GB ou reduzir para 490 MB.

*Messages* é um atributo que define para onde as mensagens ou "logs" do trabalho serão enviadas em tempo real. Por padrão, são enviadas para *Standard*, que é a saída padrão do Bareos. Posteriormente é possível acessar um console (**bconsole**) e ver as mensagens recebidas no "canal" *Standard.*

Os atributos *<span style="text-decoration: underline;">fileset</span>*, *<span style="text-decoration: underline;">pool</span>* e *<span style="text-decoration: underline;">schedule</span>* podem ser configurados para cada trabalho de backup em específico. Isto é necessário pois, por exemplo, nem todos os arquivos que sofrerão backup estarão no mesmo *fileset* e nem todos os trabalhos obedecerão ao mesmo *schedule*. Por isto recomenda-se a sua configuração para cada tipo de trabalho de backup inserido.

#### Atributo Fileset

O fileset é o conjunto de arquivos para backup. Para configurar filesets, no servidor, insira o arquivo no diretório **/etc/bareos/bareos-dir.d/fileset.** Abaixo, um exemplo de configuração básica:

```configurar
$ sudo nano /etc/bareos/bareos-dir.d/fileset/gab-comunicacoes-fileset.conf

FileSet {
  Name = gab-comunicacoes-fileset
  Description = "Fileset dos arquivos de portarias, resoluções e termos."
  Include {
    Options {
      Signature = MD5 
      Compression = GZIP6		
  }
    File = /srv/arquivos/portarias
    File = /srv/arquivos/resolucoes
    File = /srv/arquivos/termos
  }
}
```

#### Atributo Pool

O atributo pool, como dito mencionado, configura os volumes a serem utilizados no trabalho de backup. Abaixo um exemplo de configuração básica. O arquivo localiza-se em **/etc/bareos/bareos-dir.d/pool/gab-comunicacoes-pool.conf**.

```atributo
$ sudo nano /etc/bareos/bareos-dir.d/pool/gab-comunicacoes-pool.conf

Pool {
  Name = gab-comunicacoes-incremental-pool
  Pool Type = Backup
  Storage = Incremental-Dev01
  Recycle Oldest Volume = yes
  Volume Retention = 6 days
  Recycle = yes
  AutoPrune = yes
  LabelFormat = gab-comunicacoes-incr
  Maximum Volume Bytes = 5G
}

Pool {
  Name = gab-comunicacoes-diferencial-pool
  Pool Type = Backup
  Storage = Diferencial-Dev01
  Recycle Oldest Volume = yes
  Volume Retention = 21 days
  Recycle = yes
  AutoPrune = yes
  LabelFormat = gab-comunicacoes-dif
  Maximum Volume Bytes = 15G
}

Pool {
  Name = gab-comunicacoes-completo-pool
  Pool Type = Backup
  Storage = Completo-Dev01
  Recycle Oldest Volume = yes
  Volume Retention = 45 days
  Recycle = yes
  AutoPrune = yes
  LabelFormat = gab-comunicacoes-full
  Maximum Volume Bytes = 25G
}
```

Note que foram selecionados um pool diferente para cada tipo de backup. Isto se deve ao fato de que os requisitos para cada tipo de backup podem ser diferentes: tamanho, duração, nome...

O atributo *Name* define o nome do pool e geralmente este nome é utilizado na configuração do agendamento.

O atributo *Pool Type* define o tipo de pool utilizado.

O atributo *Storage* define o **Storage** utilizado pelo pool em questão.

O atributo *LabelFormat* define o rótulo do nome dos volumes quando estes forem implementados. Geralmente é adicionado um número respeitando uma sequência ao final do nome do volume.

*Volume Retention* e *Maximum Volume Bytes* definem, respectivamente, o tempo desde a sua criação em que o volume continuará sendo escrito, e, o tamanho máximo do volume. Ao se atingir o tempo ou tamanho máximo do volume, na próxima situação em que for solicitada a sua escrita, o Bareos proverá um volume novo.

Os atributos remanescentes podem ser alterados conforme a necessidade do administrador. Para mais informações se faz necessário a consulta na documentação oficial da ferramenta.

#### Atributo Schedule

Este é responsável pela programação ou agendamento de trabalhos, sejam de backups, restauração (*restore*) e etc. Ele não é necessário por padrão na configuração do **Job**, mas em um ambiente em produção este tipo de automatização se faz necessária. Abaixo a configuração de exemplo do **Schedule**. O arquivo configurado é o **/etc/bareos/bareos-dir.d/schedule/gab-comunicacoes-schedule.conf**:

```atributo
$ sudo nano /etc/bareos/bareos-dir.d/schedule/gab-comunicacoes-schedule.conf

Schedule {
  Name = gab-comunicacoes-schedule
  Run = Level=Full Pool=gab-comunicacoes-completo-pool 1st sun at 00:05
  Run = Level=Differential Pool=gab-comunicacoes-diferencial-pool 2nd-5th sun at 00:05
  Run = Level=Incremental Pool=gab-comunicacoes-incremental-pool at 20:05
}
```

Note que o atributo *Pool* configurado anteriormente é utilizado aqui neste ponto. O trabalho de backup que utilizar este agendamento irá executar um trabalho *Full* às 00:05 do primeiro domingo (do mês), um trabalho *Differential* do segundo ao quinto domingo do mês (se houver) e um trabalho *Incremental* todo os dias às 20:05. Para mais exemplos de agendamentos consulte a documentação oficial da ferramenta.

#### Executando o trabalho

Há várias formas de executar o trabalho. Se ele estiver agendado, será executado automaticamente, mas é possível executar o trabalho de forma manual para verificar se as configurações estão corretas. Será demonstrado via **bconsole** e via painel web.

##### **Bconsole**:

Na linha de comando do servidor digite o comando bconsole, em seguida **ative as mensagens automáticas no painel:**

```run
$ sudo bconsole
Connecting to Director localhost:9101
1000 OK: t-bareos Version: 17.2.4 (21 Sep 2017)
Enter a period to cancel a command.
* autodisplay on

```

Digite *run* e ENTER, em seguida digite o número correspondente ao trabalho dentre as opções apresentadas e ENTER:

```run
*run
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
A job name must be specified.
The defined Job resources are:
     1: RestoreFiles
     2: gab-comunicacoes-job
     3: BackupCatalog
     4: backup-bareos-fd
Select Job resource (1-4): 2
```

Agora digite "yes" e ENTER.

```run
Run Backup job
JobName:  gab-comunicacoes-job
Level:    Incremental
Client:   ifpe-cafg-sambafs-fd
Format:   Native
FileSet:  gab-comunicacoes-fileset
Pool:     gab-comunicacoes-completo-pool (From Job resource)
Storage:  Completo-Dev01 (From Pool resource)
When:     2018-09-14 17:03:12
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=6
You have messages.
```

Pronto, o trabalho foi iniciado. As mensagens aparecerão na tela com várias informações, a mais importante é saber no final se o backup foi de sucesso (**OK**) ou apresentou erro (**Error**).

```mensagens
14-Set 17:56 bareos-sd JobId 6: Elapsed time=00:00:19, Transfer rate=12.28 M Bytes/second
14-Set 17:56 t-bareos JobId 6: sql_create.c:872 Insert of attributes batch table done
14-Set 17:56 t-bareos JobId 6: Bareos t-bareos 17.2.4 (21Sep17):
  Build OS:               x86_64-redhat-linux-gnu redhat CentOS Linux release 7.4.1708 (Core)
  JobId:                  6
  Job:                    gab-comunicacoes-job.2018-09-14_17.56.07_33
  Backup Level:           Full (upgraded from Incremental)
  Client:                 "ifpe-cafg-sambafs-fd" 16.2.4 (01Jul16) x86_64-pc-linux-gnu,debian,Debian GNU/Linux 9.3 (stretch)
  FileSet:                "gab-comunicacoes-fileset" 2018-09-14 17:04:00
  Pool:                   "gab-comunicacoes-completo-pool" (From Job resource)
  Catalog:                "MyCatalog" (From Client resource)
  Storage:                "Completo-Dev01" (From Pool resource)
  Scheduled time:         14-Set-2018 17:56:06
  Start time:             14-Set-2018 17:56:09
  End time:               14-Set-2018 17:56:30
  Elapsed time:           21 secs
  Priority:               10
  FD Files Written:       10
  SD Files Written:       10
  FD Bytes Written:       233,394,285 (233.3 MB)
  SD Bytes Written:       233,395,389 (233.3 MB)
  Rate:                   11114.0 KB/s
  Software Compression:   4.2 % (gzip)
  VSS:                    no
  Encryption:             no
  Accurate:               no
  Volume name(s):         gab-comunicacoes-full0003
  Volume Session Id:      2
  Volume Session Time:    1536962107
  Last Volume Bytes:      233,571,320 (233.5 MB)
  Non-fatal FD errors:    0
  SD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Backup OK
```

Pronto, backup OK. Agora execute o trabalho manualmente via painel web na próxima sessão.

##### **Painel do bareos-webui**:

Acesse a página do bareos-webui `<a href="http://10.20.254.69/bareos-webui/">http://IP_SERVIDOR/bareos-webui</a>` e logue com seu usuário e senha. Após isso, na página inicial, clique em **Jobs** no painel superior lado esquerdo.

[![jobs-home.JPG](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/jobs-home.JPG)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/jobs-home.JPG)

Em seguida clique na segunda aba, de nome **Actions**. Na página que será exibida, clique no botão de "play" logo ao lado do nome que deseja executar o trabalho de backup.

[![jobs-actions1.JPG](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/jobs-actions1.JPG)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/jobs-actions1.JPG)

O sistema informará que o trabalho foi agendado e o seu o ID também será apresentado.

[![jobs-queued.JPG](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/jobs-queued.JPG)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/jobs-queued.JPG)

<p class="callout info">O **ID** de um job é uma informação importante para identificá-lo perante outros que foram executados ao longo da vida do sistema.</p>

 Um tempo depois, dependendo do volume dados, será possível notar qual o resultado do trabalho. Como é possível notar na imagem abaixo, o trabalho de ID=15 foi realizado com sucesso. Assim, este trabalho está configurado corretamente, seu cliente está com conexão disponível e será executado conforme o agendamento **(Schedule)** determinado.

[![jobs-Success1.JPG](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/jobs-Success1.JPG)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/jobs-Success1.JPG)

#### Realizando um trabalho de restauração de um backup

O trabalho de restauração *(restore)* tem como objetivo recuperar o backup salvo no servidor e restaurar os arquivos no cliente. Também é possível que este trabalho recupere os arquivos PARA um outro host, por exemplo, quando a máquina cliente não está operacional e se deseja utilizar os arquivos em um host secundário ou reserva. Neste caso, o cliente de backup precisa estar instalado na segunda máquina e configurado no servidor como um dos clientes normais.

Suponha que os arquivos representados pelo fileset **gab-comunicacoes-fileset** tenham sido apagados acidentalmente no cliente. Vamos utilizar o painel web para realizar a restauração. O fileset em questão aponta para os diretórios: /srv/arquivos/portarias; /srv/arquivos/resolucoes; /srv/arquivos/termos.

Acesse a página do bareos-webui `<a href="http://10.20.254.69/bareos-webui/">http://IP_SERVIDOR/bareos-webui/</a>` e logue com seu usuário e senha. Após isso, na página inicial, clique em **Restore** no painel superior lado esquerdo.

[![restore--1.JPG](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/restore--1.JPG)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/restore--1.JPG)

Na próxima tela existem diversas informações sobre como pode ser realizado o trabalho de restauração. No lado esquerdo primeira opção **(Client)** é possível selecionar o cliente a qual os dados a qual deseja recuperação estão relacionados. A segunda opção **(Backup jobs)** seleciona a qual trabalho de backup deseja-se a recuperação, geralmente é escolhido o último - qualquer que seja - ou o último *Full.* A terceira opção **(Merge all Client filesets)**, quando marcada 'Yes'. informa que todos os **filesets** do cliente serão recuperados, mesmo que no último backup incremental algum deles não tenha sido modificado. A quarta opção (**Merge all related...**), quando marcada 'Yes', informa que todos os trabalhos de backups até o último *Full* serão mesclados e recuperados. A quinta opção **(Restore to client)** pergunta a qual cliente se deseja restaurar os dados, geralmente é ao mesmo cliente de onde se originaram os dados no backup, porém, é possível selecionar um outro cliente. A sexta opção não se altera. A sétima opção **(Replace files on client)** pergunta se caso existirem os dados ou diretórios na máquina do cliente no caminho da oitava opção, se podem ser sobrescritos. A última opção **(Restore location on client),** como comentado, é o caminho para o qual os dados serão restaurados. Por padrão, o Bareos seleciona um local temporário ao invés do local original. Após escolher, clicar **Restore**.

[![restore-2.JPG](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/restore-2.JPG)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/restore-2.JPG)

Aparecerá na tela um diálogo informando que o trabalho foi inciado.

[![restore-3.JPG](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/restore-3.JPG)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/restore-3.JPG)

Após algum tempo será possível ver na lista de trabalhos do Bareos no painel web o resultado do trabalho. Então, é possível o administrador mover os dados do diretório temporário para onde necessitar.

[![restore-4.JPG](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/scaled-840-0/restore-4.JPG)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/restore-4.JPG)

### Referências

Referência principal do Bareos, [http://doc.bareos.org/master/html/bareos-manual-main-reference.html](http://doc.bareos.org/master/html/bareos-manual-main-reference.html)

# Certificados SSL



# Emitir e preparar certificados do ICPEdu

## 1. Introdução

<span style="font-weight: 400;">A Infraestrutura de Chaves Públicas para Ensino e Pesquisa (AC ICPEdu) é o serviço de certificação digital oferecido pela RNP, que provê infraestrutura pronta para a emissão de certificados digitais e chaves de segurança.</span>

<span style="font-weight: 400;">A modalidade adotada pelo IFPE é a “Certificado Corporativo”, onde as instituições clientes emitem gratuitamente certificados digitais qualificados pela GlobalSign, uma das maiores autoridades certificadoras do mundo. Isso fortalece a confiança dos usuários, que têm a garantia de estar fazendo negócios com uma instituição idônea.</span>

<span style="font-weight: 400;">Este documento visa a orientar a criação do certificado através do portal web, os comandos necessários para gerar o certificado e a chave privada e a configuração destes nos servidores web Apache e NGinx.</span>

<span style="font-weight: 400;">Observe que todos os passos são obrigatórios.</span>

## 2. Emitindo o certificado

<span style="font-weight: 400;">O procedimento para emissão de certificados é mostrado no link a seguir, provido pela documentação própria do ICPEdu/RNP.   
</span>

**Observe que são necessários os passos do item 2 e 2.1, apenas.**

**[Manuais e instruções de uso da Certificado Corporativa \[Emitindo o certificado\]](https://wiki.rnp.br/pages/viewpage.action?pageId=86102856#CertificadoCorporativa-Instru%C3%A7%C3%B5esdeuso-2.Emitindoocertificado)**

<p class="callout info"><span style="font-weight: 400;">No item 2.1.4 </span><span style="font-weight: 400;">da documentação utiliza um CSR (Requisição de Assinatura de Certificado). Caso não possua uma CSR utilize a opção “Não tenho uma CSR \[…\]” e uma será criada pelo sistema automaticamente.</span></p>

#### 2.1. Baixando o certificado gerado

<span style="font-weight: 400;">O procedimento para baixar os certificados é mostrado no link a seguir, provido pela documentação própria do ICPEdu/RNP. </span>

**Observe que são necessários os passos do item 3, apenas.**

**[Manuais e instruções de uso da Certificado Corporativa \[Baixando os certificados emitidos\]](https://wiki.rnp.br/pages/viewpage.action?pageId=86102856#CertificadoCorporativa-Instru%C3%A7%C3%B5esdeuso-3.Baixandooscertificadosemitidos)**

<p class="callout info"><span style="font-weight: 400;">O nome do arquivo gerado no passo 2.1 é composto por 4 letras maiúsculas e 12 números e com a extensão “.pfx”. O seguinte exemplo será utilizado neste documento: </span>**CEPO171124239914.pfx**</p>

## 3. Configurando os arquivos

<span style="font-weight: 400;">Em um computador com Linux instalado, siga os passos a seguir:</span>

<span style="font-weight: 400;"> 1. Certifique-se que o pacote “openssl” esteja instalado.</span>

<p class="callout danger"><span style="font-weight: 400;">Os passos a seguir não funcionarão caso o pacote “openssl” não esteja instalado.</span></p>

<span style="font-weight: 400;"> 2. Copie o arquivo “.pfx” que foi o certificado gerado no item 2 (“Emissão do certificado”) para o diretório de sua preferência. Recomendamos o diretório "/tmp" e vamos utilizá-lo neste documento.</span>

```shell
[usuario@linux ~]$ cp CEPO171124239914.pfx /tmp
[usuario@linux ~]$ cd /tmp
```

<p class="callout warning"><span style="font-weight: 400;">Nos passos 3.3 e 3.4, no momento da extração será solicitada a senha gerada no item 2 (“Emissão do certificado” </span></p>

<span style="font-weight: 400;"> 3. Dentro do diretório de sua preferência, extraia o certificado do arquivo “.pfx” :</span>

```shell
[usuario@linux /tmp]$ openssl pkcs12 -in CEPO171124239914.pfx -clcerts -nokeys -out CEPO171124239914.crt
```

<span style="font-weight: 400;"> 4. Dentro do diretório de sua preferência, extraia a Chave privada</span>

```shell
[usuario@linux /tmp]$ openssl pkcs12 -in CEPO171124239914.pfx -nocerts -nodes -out CEPO171124239914.key
```

<span style="font-weight: 400;"> 5. Dentro do diretório de sua preferência, faça download da cadeia de certificados raiz do arquivo “.pfx” :</span>

```shell
[usuario@linux /tmp]$ ROOT_CA_URL='https://wiki.rnp.br/download/attachments/86102856/gs_root.pem?version=1&modificationDate=1412194560000&api=v2'
[usuario@linux /tmp]$ INT_CA_URL='https://wiki.rnp.br/download/attachments/86102856/intermediate.pem?version=2&modificationDate=1427380622000&api=v2'
[usuario@linux /tmp]$ wget --no-check-certificate -c "$ROOT_CA_URL" -O /tmp/globalsign-ca.crt
[usuario@linux /tmp]$ wget --no-check-certificate -c "$INT_CA_URL" -O /tmp/icpedu-chain.crt
```

<span style="font-weight: 400;"> 6. Gere o certificado que inclui a cadeia de certificados raiz e do certificado gerado no item 3.3:</span>

```shell
[usuario@linux /tmp]$ cat CEPO171124239914.crt icpedu-chain.crt > CEPO171124239914-chain.crt
```

<span style="font-weight: 400;"> 7. </span><span style="font-weight: 400;">Gere o arquivo que contém os parâmetros Diffie-Hellman:</span>

```shell
[usuario@linux /tmp]$ openssl dhparam -out dh-4096.pem 4096
```

<span style="font-weight: 400;">Neste ponto devemos ter os seguintes arquivos disponíveis:</span>

- ***dh-4096.pem***

<span style="font-weight: 400;">Arquivo contém os parâmetros Diffie-Hellman usado para fortalecer o canal criptografado e dificultar ataques que interceptam o tráfego criptografado.</span>

- ***icpedu-chain.crt***

<span style="font-weight: 400;">Arquivo contém a cadeia de autoridades de certificação que inclui a CA do ICPEdu e as da Globalsign, usado para permitir que o cliente confira a validade dos certificados.</span>

- ***globalsign-ca.crt***

 <span style="font-weight: 400;">Arquivo contém o certificado da CA raiz da Globalsign, usado para permitir que o cliente confira a validade dos certificados.</span>

- ***CEPO171124239914-chain.crt***

 <span style="font-weight: 400;">Arquivo inclui a cadeia de certificados que inclui o do ICPEdu, os da Globalsign, e o certificado gerado para o dispositivo final ou aplicação. É ele que será apresentado aos navegadores dos usuários.</span>

- ***CEPO171124239914.key***

<span style="font-weight: 400;">Arquivo inclui a chave privada do certificado gerado para o dispositivo final ou aplicação. Ele será usada para compor o fluxo criptografado, juntamente com o certificado, aos navegadores dos usuários.</span>

<p class="callout warning"><span style="font-weight: 400;">Nesse momento distribua os arquivos ao usuário e solicite que eles acessem a página "**Instalar certificados do ICPEdu**"  
</span></p>

# Instalar certificados do ICPEdu

## 1. Introdução

<span style="font-weight: 400;">A Infraestrutura de Chaves Públicas para Ensino e Pesquisa (AC ICPEdu) é o serviço de certificação digital oferecido pela RNP, que provê infraestrutura pronta para a emissão de certificados digitais e chaves de segurança.</span>

<span style="font-weight: 400;">A modalidade adotada pelo IFPE é a “Certificado Corporativo”, onde as instituições clientes emitem gratuitamente certificados digitais qualificados pela GlobalSign, uma das maiores autoridades certificadoras do mundo. Isso fortalece a confiança dos usuários, que têm a garantia de estar fazendo negócios com uma instituição idônea.</span>

<span style="font-weight: 400;">Este documento visa a orientar a configuração do certificado emitido através do Sistema de Chamados do IFPE nos servidores web Apache e NGinx.</span>

<span style="font-weight: 400;">Observe que todos os passos são obrigatórios.</span>

## 2. Utilizando os arquivos

<span style="font-weight: 400;">Neste ponto devemos ter os seguintes arquivos disponíveis:</span>

- ***dh-4096.pem***

<span style="font-weight: 400;">Arquivo contém os parâmetros Diffie-Hellman usado para fortalecer o canal criptografado e dificultar ataques que interceptam o tráfego criptografado.</span>

- ***icpedu-chain.crt***

<span style="font-weight: 400;">Arquivo contém a cadeia de autoridades de certificação que inclui a CA do ICPEdu e as da Globalsign, usado para permitir que o cliente confira a validade dos certificados.</span>

- ***globalsign-ca.crt***

 <span style="font-weight: 400;">Arquivo contém o certificado da CA raiz da Globalsign, usado para permitir que o cliente confira a validade dos certificados.</span>

- ***CEPO171124239914-chain.crt***

 <span style="font-weight: 400;">Arquivo inclui a cadeia de certificados que inclui o do ICPEdu, os da Globalsign, e o certificado gerado para o dispositivo final ou aplicação. É ele que será apresentado aos navegadores dos usuários.</span>

- ***CEPO171124239914.key***

<span style="font-weight: 400;">Arquivo inclui a chave privada do certificado gerado para o dispositivo final ou aplicação. Ele será usada para compor o fluxo criptografado, juntamente com o certificado, aos navegadores dos usuários.</span>

<span style="font-weight: 400;">A seguir estão instruções de como utilizar os arquivos gerados nos servidores HTTP Apache e NGinx, instalados nos sistemas operacionais Linux Debian (os comandos são também válidos para Ubuntu) e Centos.</span>

#### <span style="font-weight: 400;">2.1. O diretório dos arquivos</span>

<span style="font-weight: 400;">Para seguir os passos definidos neste documento, copie os arquivos para o diretório “</span>***/etc/ssl/private/***<span style="font-weight: 400;">”.</span>

```shell
[usuario@linux /tmp]$ sudo mkdir -p /etc/ssl/private
[usuario@linux /tmp]$ sudo cp *.crt *.key *.pem *.pfx /etc/ssl/private
```

<p class="callout warning"><span style="font-weight: 400;">Os passos a seguir não funcionarão se os arquivos não estiverem no diretório “/etc/ssl/private/”.</span></p>

#### <span style="font-weight: 400;">2.2. Configuração com Apache</span>

<p class="callout info"><span style="font-weight: 400;">Por padrão, os arquivos de configuração dos sites do Apache **no Debian e Ubuntu ficam localizados em “**</span>***/etc/apache2/sites-available/*"** *.* Caso esteja instalado **no Centos, ficam em** <span style="font-weight: 400;">**“*/etc/httpd/conf.d*”**  
</span></p>

<span style="font-weight: 400;">No arquivo de cada host, dentro da sessão “</span>*<span style="font-weight: 400;">&lt;VirtualHost&gt;</span>*<span style="font-weight: 400;">” </span><span style="font-weight: 400; color: #ff0000;">onde o SSL esteja habilitado </span><span style="font-weight: 400;">inclua as definições de modo que se pareça com o que é mostrado a seguir:</span>

<p class="callout info"><span style="font-weight: 400;">Para identificar qual VirtualHost possui SSL habilitado, observe se uma linha com o conteúdo "***SSLEngine On***" existe</span></p>

<span style="font-weight: 400;">***Caso a versão do apache seja inferior a 2.3.6*  
</span>

```shell
<VirtualHost <server_name>:443>
  Listen 443
  SSLEngine on
  ServerName <server_name>:443
  ...

  # Certificados
  SSLCertificateFile /etc/ssl/private/CEPO171124239914-chain.crt
  SSLCACertificateFile /etc/ssl/private/globalsign-ca.crt
  SSLCertificateKeyFile /etc/ssl/private/CEPO171124239914.key
  SSLCertificateChainFile /etc/ssl/private/icpedu-chain.crt
  ...
</VirtualHost> 
```

<span style="font-weight: 400;">***Caso a versão do apache seja superior a 2.3.6 e inferior a 2.4.8*   
</span>

```shell
<VirtualHost <server_name>:443>
  Listen 443
  SSLEngine on
  ServerName <server_name>:443
  ...
  # OCSP Stappling
  SSLUseStapling On
  SSLStaplingCache "shmcb:/tmp/stapling-cache(150000)"

  # Certificados
  SSLCertificateFile /etc/ssl/private/CEPO171124239914-chain.crt
  SSLCACertificateFile /etc/ssl/private/globalsign-ca.crt
  SSLCertificateKeyFile /etc/ssl/private/CEPO171124239914.key
  SSLCertificateChainFile /etc/ssl/private/icpedu-chain.crt
  ...
</VirtualHost> 
```

<span style="font-weight: 400;">***Caso a versão do apache seja a 2.4.8 ou superior***</span>

<span style="font-weight: 400;">No arquivo de cada host, dentro da sessão “</span>*<span style="font-weight: 400;">&lt;VirtualHost&gt;</span>*<span style="font-weight: 400;">” </span><span style="font-weight: 400; color: #ff0000;">onde o SSL esteja habilitado </span><span style="font-weight: 400;">inclua as definições (da linha 6 até a 14) de modo que se pareça com o que é mostrado a seguir:</span>

```shell
<VirtualHost <server_name>:443>
  Listen 443
  SSLEngine on
  ServerName <server_name>:443
  ...
  # OCSP Stappling
  SSLUseStapling On
  SSLStaplingCache "shmcb:/tmp/stapling-cache(150000)"

  # Certificados
  SSLOpenSSLConfCmd DHParameters /etc/ssl/private/dh-4096.pem
  SSLCACertificateFile /etc/ssl/private/globalsign-ca.crt
  SSLCertificateFile /etc/ssl/private/CEPO171124239914-chain.crt
  SSLCertificateKeyFile /etc/ssl/private/CEPO171124239914.key
  ...
</VirtualHost>
```

 <span style="font-weight: 400;">Após realizar a configuração mostrada é preciso aplicar as alterações. </span>

<span style="font-weight: 400;">Procure por erros de configuração:</span><span style="font-weight: 400;">  
</span>`<span style="font-weight: 400;">[usuario@linux ~]$ sudo apache2ctl -t</span>`<span style="font-weight: 400;">  
</span>

<span style="font-weight: 400;">Se tudo correu bem, reinicie o serviço (no Debian/Ubuntu/Centos):</span><span style="font-weight: 400;">  
</span>`<span style="font-weight: 400;">[usuario@linux ~]$ sudo apache2ctl -k restart</span>`

<p class="callout warning"><span style="font-weight: 400;">Para que as alterações entrem em vigor é necessário reiniciar o serviço  
</span></p>

#### <span style="font-weight: 400;">2.3. Configuração com NGinx</span>

<p class="callout warning">Utilize o comando **nginx -v** para saber a versão do nginx atualmente instalada. **Para este documento, é necessário que versão seja igual ou superior a 1.3.7.** </p>

<p class="callout info"><span style="font-weight: 400;">Por padrão, os arquivos de configuração dos sites do **NGinx no Debian e Ubuntu ficam localizados em “*/etc/nginx/sites-available/*"** *.* Caso esteja instalado **no Centos, ficam em “*/etc/nginx/conf.d*”**</span></p>

<span style="font-weight: 400;">No arquivo de cada host, na sessão “*server*” <span style="font-weight: 400; color: #ff0000;">onde o SSL esteja habilitado</span> inclua as definições (da linha 4 até a 13) de modo que se pareça com o que é mostrado a seguir:  
</span>

<p class="callout info"><span style="font-weight: 400;">Para identificar qual VirtualHost possui SSL habilitado, observe se uma linha com o conteúdo "***listen 443 ssl***" existe</span></p>

```shell
server {
  listen 443 ssl;
  ...
  # OCSP Stappling
  ssl_stapling on;
  ssl_stapling_verify on; 
  resolver 208.67.220.220 208.67.222.222 valid=600s;

  # Certificados
  ssl_dhparam /etc/ssl/private/dh-4096.pem;
  ssl_certificate /etc/ssl/private/CEPO171124239914-chain.crt;
  ssl_certificate_key /etc/ssl/private/CEPO171124239914.key;
  ssl_trusted_certificate /etc/ssl/private/icpedu-chain.crt;
  ...
}
```

 <span style="font-weight: 400;">Após realizar a configuração mostrada é preciso aplicar as alterações. </span>

<span style="font-weight: 400;">Procure por erros de configuração:</span><span style="font-weight: 400;">  
</span>`<span style="font-weight: 400;">[usuario@linux ~]$ sudo nginx -t</span>`<span style="font-weight: 400;">  
</span>

<span style="font-weight: 400;">Se tudo correu bem, reinicie o serviço (no Debian/Ubuntu e Centos):</span><span style="font-weight: 400;">  
</span>`<span style="font-weight: 400;">[usuario@linux ~]$ sudo nginx -s reload</span>`

<p class="callout warning"><span style="font-weight: 400;">Para que as alterações entrem em vigor é necessário reiniciar o serviço  
</span></p>

#### 2.4 Outros sistemas

Caso haja a necessidade de instalar o certificado em outros oftwares (como MS IIS, MS Exchange e CPanel), acesse a documentação de instalação disponibilizada pela Globalsign [clicando neste link.](https://support.globalsign.com/#category_SSL_Installation)

# Monitoramento

Capítulo destinado a receber conteúdos relativos ao monitoramento de ativos de rede.

# Dell OpenManage: Instalação no Centos 7

## 1. Introdução

O Dell EMC OpenManage Server Administrator (OMSA) oferece uma solução de gerenciamento de sistemas abrangente e individualizada de duas formas:

- De uma interface gráfica do usuário (GUI) integrada e baseada em navegador da Web
- Por meio de uma interface de linha de comando (CLI) no sistema operacional (SO)

O Server Administrator foi criado para que os administradores de sistema pudessem focar no gerenciamento de toda a rede, sem deixar de fornecer gerenciamento de sistemas individualizado de forma local e remota.

## <span style="font-weight: 400;">2. Ferramentas utilizadas</span>

<span style="font-weight: 400;">Os softwares utilizados na produção deste tutorial é apresentado a seguir:</span>

- <span style="font-weight: 400;">CentOS 7.4.1708</span>
- <span style="font-weight: 400;">Dell OpenManage 7.4.1-1341</span>
- <span style="font-weight: 400;">Dell PowerEdge R710, com iDRAC6</span>

<span style="font-weight: 400;">O ambiente utilizado é apresentado a seguir:</span>

- <span style="font-weight: 400;">Servidor físico</span><span style="font-weight: 400;">, modelo Dell R710, com o sistema operacional CentOS 7.4</span><span style="font-weight: 400;">  
    </span>

## <span style="font-weight: 400;">3. Instalando o OMSA</span>

<span style="font-weight: 400;">Todos os comandos executados nesse tutorial foram executados com o usuário **root**.</span>

#### <span style="font-weight: 400;">Passos preparatórios</span>

<span style="font-weight: 400;">3.1. </span><span style="font-weight: 400;">Instale as dependências do OMSA:</span><textarea spellcheck="false" style="position: absolute; bottom: -1em; padding: 0px; width: 1px; height: 1em; outline: currentcolor none medium;" tabindex="0" wrap="off"></textarea>

<div data-lang="shell" id="bkmrk-yum-install-libcmpic"><div><div><div><div><div><div><div><div>```
<span role="presentation">yum install libcmpiCppImpl0 openwsman-server openwsman-client sblim-sfcb pciutils</span>
```

</div></div></div></div></div></div></div></div></div><span style="font-weight: 400;">3.2. Altere os dados do sistema para que ele seja identificado como um RHEL 7, não CentOS:</span>

```shell
mv /etc/redhat-release /etc/redhat-release.bak; echo "Red Hat Enterprise Linux Server release 7.0 (Maipo)" >> /etc/redhat-release
```

<span style="font-weight: 400;">3.3. Faça download do OMSA para RHEL 7:</span><textarea spellcheck="false" style="position: absolute; bottom: -1em; padding: 0px; width: 1px; height: 1em; outline: currentcolor none medium;" tabindex="0" wrap="off"></textarea>

<div data-lang="shell" id="bkmrk-wget--c-http%3A%2F%2Fdownl"><div><div><div><div><div><div><div><div>```
<span role="presentation"><span class="cm-builtin">wget</span> <span class="cm-attribute">-c</span> http://downloads.dell.com/FOLDER02645266M/1/OM-SrvAdmin-Dell-Web-LX-7.4.1-1341.RHEL7.x86_64_A00.tar.gz</span>
```

</div></div></div></div></div></div><div><span style="font-weight: 400;">3.4. Descompacte o arquivo baixado e execute a instalação: </span><textarea spellcheck="false" style="position: absolute; bottom: -1em; padding: 0px; width: 1px; height: 1em; outline: currentcolor none medium;" tabindex="0" wrap="off"></textarea></div></div></div></div><div data-lang="shell" id="bkmrk-tar-zxvf-om-srvadmin"><div><div><div><div><div><div><div><div>```
<span role="presentation">tar zxvf OM-SrvAdmin-Dell-Web-LX-7.4.1-1341.RHEL7.x86_64_A00.tar.gz<br></br>./setup.sh</span>
```

</div></div></div></div></div></div><div> <span style="font-weight: 400;">3.5. Restaure o arquivo alterado no passo 3.2:</span><textarea spellcheck="false" style="position: absolute; bottom: -1em; padding: 0px; width: 1px; height: 1em; outline: currentcolor none medium;" tabindex="0" wrap="off"></textarea></div></div></div></div><div data-lang="shell" id="bkmrk-rm-%2Fetc%2Fredhat-relea"><div><div><div><div><div><div><div><div>```
<span role="presentation"><span class="cm-builtin">rm</span> /etc/redhat-release; <span class="cm-builtin">mv</span> /etc/redhat-release.bak /etc/redhat-release</span>
```

</div></div></div></div></div></div><div><span style="font-weight: 400;">3.6. Crie o patch necessário ao funcionamento do OMSA no CentOS:</span><textarea spellcheck="false" style="position: absolute; bottom: -1em; padding: 0px; width: 1px; height: 1em; outline: currentcolor none medium;" tabindex="0" wrap="off"></textarea></div></div></div></div><span style="font-weight: 400;">Crie o arquivo <span role="presentation">`<strong>/tmp/CheckSystemType.patch</strong>` com o conteúdo a seguir. Atente para a formatação na hora da cópia.</span></span>

<div data-lang="shell" id="bkmrk-----checksystemtype-"><div>```YAML
--- CheckSystemType     2019-03-22 19:06:17.956718131 -0300<br></br>+++ CheckSystemType.new 2019-03-22 19:06:35.053476939 -0300<br></br>@@ -204,8 +204,15 @@<br></br><br></br>         IsInSupportedSystemIDs && return $SUPPORTED_DELL_SERVER<br></br><br></br>-        if [ -f /etc/redhat-release ] && [ `grep -c "Maipo" /etc/redhat-release` -gt 0 ]; then<br></br>-                IsSystemSupportedForRHEL7 && return $SUPPORTED_DELL_SERVER<br></br>+        if [ -f /etc/os-release ]; then<br></br>+                . /etc/os-release<br></br>+                case $VERSION_ID in<br></br>+                        7*)<br></br>+                        case "$ID $ID_LIKE" in<br></br>+                                *rhel*)<br></br>+                                IsSystemSupportedForRHEL7 && return $SUPPORTED_DELL_SERVER<br></br>+                        esac<br></br>+                esac<br></br>         fi<br></br><br></br>         IsClientSystem && return $CLIENT_SYSTEM
```

</div></div><span style="font-weight: 400;">3.7. Aplique o patch necessário ao funcionamento do OMSA no CentOS: </span><textarea spellcheck="false" style="position: absolute; bottom: -1em; padding: 0px; width: 1px; height: 1em; outline: currentcolor none medium;" tabindex="0" wrap="off"></textarea>

<div data-lang="shell" id="bkmrk-patch-%2Fopt%2Fdell%2Fsrva"><div data-lang="shell"><div><div><div><div><div><div><div><div>```
<span role="presentation">patch /opt/dell/srvadmin/sbin/CheckSystemType < /tmp/CheckSystemType.patch</span>
```

</div></div></div></div></div></div></div></div></div></div>#### Finalizando as coisas

<span style="border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; box-sizing: border-box; font-family: inherit; font-size: inherit; font-size-adjust: none; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: 400; line-height: inherit; vertical-align: baseline; padding: 0px; margin: 0px; border: 0px none currentColor;">3.8. Configure a iniciação do serviço do OMSA após o boot : </span><textarea spellcheck="false" style="background-color: #ffffff; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; border-top-left-radius: 3px; border-top-right-radius: 3px; bottom: -1em; box-sizing: border-box; color: #666666; display: inline-block; font-family: -apple-system,BlinkMacSystemFont,&quot; segoe ui&quot;,oxygen,ubuntu,roboto,cantarell,&quot;fira sans&quot;,&quot;droid sans&quot;,&quot;helvetica neue&quot;,sans-serif; font-size: 14px; height: 1em; max-width: 100%; outline-color: currentColor; outline-style: none; outline-width: medium; position: absolute; width: 1px; padding: 0px; border: 1px solid #d4d4d4;" tabindex="0" wrap="off"></textarea>

<div data-lang="shell" id="bkmrk-systemctl-enable-dat"><div><div><div><div><div><div><div><div>```
<span role="presentation" style="border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; box-sizing: border-box; font-family: inherit; font-size: inherit; font-size-adjust: none; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; vertical-align: baseline; padding: 0px; margin: 0px; border: 0px none currentColor;">systemctl enable dataeng.service dsm_om_shrsvc.service</span>
```

</div></div></div></div></div></div></div></div></div><span style="border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; box-sizing: border-box; font-family: inherit; font-size: inherit; font-size-adjust: none; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: 400; line-height: inherit; vertical-align: baseline; padding: 0px; margin: 0px; border: 0px none currentColor;"><span style="border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; box-sizing: border-box; color: #616161; font-family: inherit; font-size: inherit; font-size-adjust: none; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: 400; letter-spacing: normal; line-height: inherit; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; vertical-align: baseline; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px; padding: 0px; margin: 0px; border: 0px none currentColor;">3.9. Permita o acesso a porta da interface web do OMSA: </span></span>

<div data-lang="shell" id="bkmrk-firewall-cmd---zone%3D"><div data-lang="shell"><div><div><div><div><div><div><div><div>```
<span role="presentation" style="border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; box-sizing: border-box; font-family: inherit; font-size: inherit; font-size-adjust: none; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; vertical-align: baseline; padding: 0px; margin: 0px; border: 0px none currentColor;">firewall-cmd --zone=public --permanent --add-port=1311/tcp <br></br>firewall-cmd --reload</span>
```

</div></div></div></div></div></div></div></div></div></div><div data-lang="shell" id="bkmrk-caso-tenha-realizado"><div data-lang="shell"><div data-lang="shell"><div><div><div><div><div><div><div><div><div>Caso tenha realizado alguma configuração adicional de zonas no firewall, substitua "public" pelo nome da zona onde se encontra a interface de gerenciamento do servidor. Se o firewall estiver na configuração padrão, mantenha.</div><div> </div></div></div></div></div></div></div></div></div></div></div></div>**Feita a configuração, utilize o navegador para acessar o enderenço IP do servidor, na porta 1311.**

<div data-lang="shell" id="bkmrk-observe-se-a-sua-con"><div><div><div><div><div><div><div><div><div></div><div>Observe se a sua configuração necessita de configurações adicionais decorrentes do uso de outras ferramentas, como o selinux, por exemplo.</div><div></div></div></div></div></div></div></div></div></div></div>#### Referencias

OMSA on CentOS 7 ([https://www.dell.com/community/Systems-Management-General/OMSA-on-CentOs-7/td-p/4553216)](https://www.dell.com/community/Systems-Management-General/OMSA-on-CentOs-7/td-p/4553216))

Dell R720 OpenManage ([https://www.centos.org/forums/viewtopic.php?f=49&amp;t=48532](https://www.centos.org/forums/viewtopic.php?f=49&t=48532))

# templates-e-scripts

#  1. Introdução

<span style="font-weight: 400;">Zabbix é uma solução de código aberto para monitoramento de dispositivos e aplicações, sendo capaz de monitorar parâmetros utilizando agentes em diversas plataformas de sistemas operacionais, além de protocolos como SNMP, IPMI, JMX, entre outros.</span>

<span style="font-weight: 400;">Este documento destina-se a servir de ponto central para o código dos scripts.</span>

## <span style="font-weight: 400;">2. Bareos/Bacula</span>

### <span style="font-weight: 400;">2.1 Bacula/Bareos - Cliente</span>

#### 2.1.1. Atual

> Link do template: [Última versão do template do cliente](https://wiki.ifpe.edu.br/attachments/16 "Última versão do template do cliente")
> 
> Data: 22-10-2019
> 
> Changelog:
> 
> - Solucionado erro durante a importação

#### 2.1.2. Anteriores

**Link:** [20191014](https://wiki.ifpe.edu.br/attachments/8 "Template Bacula Cliente - 14-10-2019") | **Data:** 14-10-2019 | **Changelog:** Adicionados comentários aos itens.

### 2.2. Bacula/Bareos - Storage

#### 2.2.1. Atual

> Link do template: [Última versão do template do storage](https://wiki.ifpe.edu.br/attachments/15 "Última versão do template do storage")
> 
> Data: 22-10-2019
> 
> Changelog:
> 
> - Solucionado erro durante a importação

#### 2.2.2. Anteriores

**Link:** [20191014](https://wiki.ifpe.edu.br/attachments/6 "Template Bacula Cliente - 14-10-2019") | **Data:** 14-10-2019 | **Changelog:** Adicionados comentários aos itens.

### <span style="font-weight: 400;">2.3. Bacula/Bareos - Director  
</span>

#### 2.3.1. Atual

> Link do template: [Última versão do template do director](https://wiki.ifpe.edu.br/attachments/17 "Última versão do template do director")
> 
> Links complementares: [parâmetro de usuário](https://wiki.ifpe.edu.br/attachments/10 "Fazer download do parâmetro de usuário") | [script de monitoramento](https://wiki.ifpe.edu.br/attachments/12 "Fazer download do script de monitoramento") | [script de descoberta](https://wiki.ifpe.edu.br/attachments/11 "Fazer download do script de descoberta")
> 
> Data: 22-10-2019
> 
> Changelog:
> 
> - Solucionado erro durante a importação
> - Removida expressão regular não utilizada

#### 2.3.1. Anteriores

**Link:** [20191014](https://wiki.ifpe.edu.br/attachments/9 "Template Bacula Director - 14-10-2019") | **Data:** 14-10-2019 | **Changelog:** Adicionados comentários aos itens; Pequenas melhorias no código dos scripts.

# Zabbix: Configurando expressões regulares

#  

## 1. Introdução

<span style="font-weight: 400;">Zabbix é uma solução de código aberto para monitoramento de dispositivos e aplicações, sendo capaz de monitorar parâmetros utilizando agentes em diversas plataformas de sistemas operacionais, além de protocolos como SNMP, IPMI, JMX, entre outros.</span>

<span style="font-weight: 400;">Este documento visa a orientar a criação de um conjunto de expressões regulares no servidor Zabbix. Observe que todos os passos são obrigatórios.</span>

## <span style="font-weight: 400;">2. Ferramentas utilizadas</span>

<span style="font-weight: 400;">Os softwares utilizados na produção deste tutorial é apresentado a seguir:</span>

<div id="bkmrk-zabbix-server-3.2.3"><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div>- <span style="font-weight: 400;">Zabbix Server 3.2.3</span>

</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>## <span style="font-weight: 400;">3. Configuração das expressões regulares  
</span>

<span style="font-weight: 400;">**Estes procedimentos devem ser realizados na interface web do servidor, usando um usuário com permissões suficientes.**</span>

#### <span style="font-weight: 400;">3.1. Acesse a interface web  
</span>

<span style="font-weight: 400;">3.2.1. Nela, clique em "**Administração**" &gt; "**Geral**". </span>

<span style="font-weight: 400;">3.2.2. No dropbox a direita, clique em "**Expressões regulares**"</span>

<span style="font-weight: 400;">3.2.3. Clique no botão "**Nova expressão regular**"</span>

<span style="font-weight: 400;">A aba **Expressões** permite que você defina o nome da expressão e adicione as sub-expressões. </span>

[![regexp_expr.jpeg](https://wiki.ifpe.edu.br/uploads/images/gallery/2019-04-Apr/scaled-840-0/regexp_expr.jpeg)](https://wiki.ifpe.edu.br/uploads/images/gallery/2019-04-Apr/regexp_expr.jpeg)

<span style="font-weight: 400;">No dropdown “</span>**Expression Type**<span style="font-weight: 400;">” escolha o tipo da expressão desejada, e</span><span style="font-weight: 400;">m “</span>**Expression**<span style="font-weight: 400;">” digite a expressão desejada. Por fim, no </span><span style="font-weight: 400;">checkbox “</span>**Case sensitive**<span style="font-weight: 400;">” defina se a expressão vai diferenciar as letras minúsculas e maiúsculas ou não.</span>

<span style="font-weight: 400;">Caso haja o desejo que a expressão retorne um valor verdadeiro quando o conjunto de caracteres NÃO for encontrado, usamos o tipo de expressão “Result is FALSE”, para o contrário, deve-se utilizar “Result is TRUE”. O checkbox marcado indica que a regra fará diferenciação entre maiúsculas e minúsculas.</span>

# Zabbix: Importando templates

## 1. Introdução

<span style="font-weight: 400;">Zabbix é uma solução de código aberto para monitoramento de dispositivos e aplicações, sendo capaz de monitorar parâmetros utilizando agentes em diversas plataformas de sistemas operacionais, além de protocolos como SNMP, IPMI, JMX, entre outros.</span>

<span style="font-weight: 400;">Este documento visa <span class="c1">orientar a importação de templates no servidor Zabbix</span>. Ele contém os parâmetros utilizados pelo servidor para monitorar ativos e reportar sua disponibilidade.</span>

## <span style="font-weight: 400;">2. Ferramentas utilizadas</span>

<span style="font-weight: 400;">Este tutorial descreve a instalação do agente no sistema operacional Windows e, apesar da edição utilizada ter sido o Windows 7, pode ter seus passos utilizados para instalar o agente no Windows Server 2008 e 2012, Windows 8/8.1 e Windows 10. Também é abordada a questão de edição posterior à instalação e o controle do processo do agente.</span>

<span style="font-weight: 400;">Os softwares utilizados na produção deste tutorial é apresentado a seguir:</span>

<div id="bkmrk-zabbix-server-3.2.3"><div><div><div><div><div><div><div><div><div><div><div>- <span style="font-weight: 400;">Zabbix Server 3.2.3</span>

</div></div></div></div></div></div></div></div></div></div></div></div>## <span style="font-weight: 400;">3. Importando o template</span>

<span style="font-weight: 400;">**Estes procedimentos devem ser realizados na interface web do servidor, usando um usuário com permissões suficientes.**</span>

#### <span style="font-weight: 400;">3.1. Acesse a interface web  
</span>

<span style="font-weight: 400;">3.2.1. Nela, clique em "**Configuração**", depois "**Templates**" e então "**Importar**"</span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 643.00px; height: 73.41px;">![Captura de tela de 2017-08-04 11-26-33.png](https://lh3.googleusercontent.com/b6wiGyuLBC7oyudDx-FUWLB87dL_r-eYV9RUGWiGShzjQmbvUloooeoCT-wToWuSvqboJCoxWspyLmXkzLCrewzyC4tQt38K4IxnlcEWhS1aU4VgP2DOA4zxPaQ4wEgXmYodzs1r)</span>

<span style="font-weight: 400;">3.2.2. Na tela que surge, e</span><span class="c19">m "</span>Importar arquivo"<span class="c19">, clique em "</span>**Escolher arquivo**"<span class="c1">. </span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 643.00px; height: 99.41px;">![Captura de tela de 2017-08-04 11-33-57.png](https://lh3.googleusercontent.com/DUFuOUECKksvrHNE62SO6Rfscej-RtKW0xAlJv5SV092SicEXi_cjtNrek3LAdFIZMwGsQhMZZgZECGvsmuchhUwRkIjjS7uH5IYhxQyOMDFZ46ddrAUcYxwvaKyqgaTrb45_dyY)</span>

<span style="font-weight: 400;"><span class="c1">Abrirá um repositório semelhante a imagem abaixo. </span></span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 585.91px; height: 206.86px;">![Captura de tela de 2017-08-04 11-53-04.png](https://lh4.googleusercontent.com/YJgsoFWWrDagAMDEI59XVEczbpUyBssqBmQFhzyoNAJ8X3CagJrGfg-vP0rdW24m_GP4Qy80GSzf11x6PEaB-GzuuwsmDap1aRP5EM0uAQM0Uid_hD4ZFYe7ODtX82DpPtJm8goN)</span>

<span style="font-weight: 400;">3.2.3. </span><span class="c19">**Escolha o arquivo do template** (com extensão .xml) e clique em "**A**</span>**brir**"<span class="c1">. (Neste exemplo escolhi o template referente ao ICMP ping).</span>

<span class="c19">O nome do mesmo será mostrado no campo “</span>importar arquivo<span class="c1">” na interface do zabbix, de acordo com a imagem abaixo.</span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 643.00px; height: 101.08px;">![Captura de tela de 2017-08-04 11-52-39.png](https://lh4.googleusercontent.com/jkxgaROH8muMj3BtLouX8o6G0joa2KnjYFELafQ2fv3i-X68PpJI-n7pQG6h5G4JnkY2oPvfaMOdocboldIM2WPkptgsasZZEiTRxuD4ZPJUpC4KepdL7cZNWlbg-0phqqD1gYxF)</span>

<span class="c19">3.2.4. Na mesma página, logo abaixo, clique em "**I**</span><span class="c0">**mportar**".</span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 643.00px; height: 333.08px;">![Captura de tela de 2017-08-04 11-57-17.png](https://lh4.googleusercontent.com/gYXeBVAY-_d-4RBSpSM7Pt2JpjCS05h8SgrLcxbqmihMJWj2qyWle12ovxnpolGCwq-1Vns3-sgzk5kddKy6tKX1M7WYkTDPbrFlu606yunrkI6zOycC3AnrfKaqlJN51Pjx0Y3s)</span>

<span style="font-weight: 400;"><span class="c1">Após concluída a operação aparecerá a seguinte mensagem de acordo com a imagem abaixo.</span></span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 643.00px; height: 363.92px;">![Captura de tela de 2017-08-04 11-59-31.png](https://lh4.googleusercontent.com/naNQsgbmlNbk3BsPtNbWRiSPiqZwnFKy69Hq_2gZLlw5woa5_WIAYrjRFGNzeU5XoPATNAta2fCPrU9jui6gdDLdPRrO5y-dS0Q3SLN_eKzbu1cELCeLMBEAnDJYHhkw1OXLoi_W)</span>

**<span class="c1">Repita os passos anteriores para cada template a ser importado.</span>**

# Zabbix: Instalando o agente em clientes linux

## 1. Introdução

<span style="font-weight: 400;">Zabbix é uma solução de código aberto para monitoramento de dispositivos e aplicações, sendo capaz de monitorar parâmetros utilizando agentes em diversas plataformas de sistemas operacionais, além de protocolos como SNMP, IPMI, JMX, entre outros.</span>

<span style="font-weight: 400;">Este documento visa a orientação para a instalação do agente do Zabbix. Ele é utilizado pelo servidor para monitorar ativos e reportar sua disponibilidade permitindo uma visão proativa do parque tecnológico.</span>

## <span style="font-weight: 400;">2. Ferramentas utilizadas</span>

<span style="font-weight: 400;">Este tutorial descreve a instalação do agente no sistema operacional Linux, nas distribuições Debian 8, Ubuntu 14.04 LTS e CentOS 7. Também é abordada a questão de edição posterior à instalação e o controle do processo do agente.</span>

<span style="font-weight: 400;">Os softwares utilizados na produção deste tutorial é apresentado a seguir:</span>

- <span style="font-weight: 400;">CentOS 7.3</span>
- <span style="font-weight: 400;">Debian 8  
    </span>
- <span style="font-weight: 400;">Ubuntu 14.04  
    </span>
- <span style="font-weight: 400;">Zabbix Agent 3.2.7</span>

## <span style="font-weight: 400;">3. Configurando o serviço</span>

<span style="font-weight: 400;">**Estes procedimentos devem ser realizados na máquina a ser monitorada, usando um usuário com permissões administrativas.**</span>

#### <span style="font-weight: 400;">Configure o repositório  
</span>

<span style="font-weight: 400;">Para obter a versão mais atual do software, adicione o repositório oficial do Zabbix:  
</span>

- <span style="font-weight: 400;">No Centos</span>

```shell
URL='https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm'
rpm -ivh "$URL" # Adiciona o repositório do zabbix
```

<div data-lang="shell" id="bkmrk-url%3D%27https%3A%2F%2Frepo.za-0"><textarea style="display: none;">URL='https://repo.zabbix.com/zabbix/3.4/rhel/7/x86\_64/zabbix-release-3.4-2.el7.noarch.rpm' rpm -ivh "$URL" # Adiciona o repositório do zabbix</textarea></div>- <span style="font-weight: 400;">No Debian</span>

```shell
URL='http://repo.zabbix.com/zabbix/3.2/debian/pool/main/z/zabbix-release/zabbix-release_3.2-1+jessie_all.deb'
wget "$URL"
dpkg -i zabbix-release_3.2-1+jessie_all.deb
apt-get update
```

<div data-lang="shell" id="bkmrk-url%3D%27http%3A%2F%2Frepo.zab-0"><textarea style="display: none;">URL='http://repo.zabbix.com/zabbix/3.2/debian/pool/main/z/zabbix-release/zabbix-release\_3.2-1+jessie\_all.deb' wget "$URL" dpkg -i zabbix-release\_3.2-1+jessie\_all.deb apt-get update</textarea></div>- <span style="font-weight: 400;">No Ubuntu</span>

```shell
URL='http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb'
wget "$URL"
sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
sudo apt update
```

<div data-lang="shell" id="bkmrk-url%3D%27http%3A%2F%2Frepo.zab-2"><textarea style="display: none;">URL='http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release\_3.2-1+xenial\_all.deb' wget "$URL" sudo dpkg -i zabbix-release\_3.2-1+xenial\_all.deb sudo apt update</textarea><div><div><textarea spellcheck="false" style="position: absolute; bottom: -1em; padding: 0px; width: 1px; height: 1em; outline: currentcolor none medium;" tabindex="0" wrap="off"></textarea></div></div></div>#### <span style="font-weight: 400;">Instale o agente</span>

<span style="font-weight: 400;">Uma vez que o sistema já esteja usando o repositório do Zabbix, execute a instalação do agente.  
</span>

- <span style="font-weight: 400;">No Centos</span>

```shell
yum install zabbix-agent zabbix-get # Instala o agente do zabbix
systemctl enable zabbix-agent # Configura o systemd para iniciar o agente do zabbix após o boot
```

<div data-lang="shell" id="bkmrk-yum-install-zabbix-a-0"><textarea style="display: none;">yum install zabbix-agent zabbix-get # Instala o agente do zabbix systemctl enable zabbix-agent # Configura o systemd para iniciar o agente do zabbix após o boo</textarea><textarea style="display: none;"></textarea></div>- <span style="font-weight: 400;">No Debian</span>

```shell
apt-get install zabbix-agent zabbix-get # Instala o agente do zabbix
systemctl enable zabbix-agent # Configura o systemd para iniciar o agente do zabbix após o boot
```

<div data-lang="shell" id="bkmrk-apt-get-install-zabb-0"><textarea style="display: none;">apt-get install zabbix-agent zabbix-get # Instala o agente do zabbix systemctl enable zabbix-agent # Configura o systemd para iniciar o agente do zabbix após o boot</textarea></div>- <span style="font-weight: 400;">No Ubuntu</span>

```shell
apt-get install zabbix-agent zabbix-get # Instala o agente do zabbix
systemctl enable zabbix-agent # Configura o systemd para iniciar o agente do zabbix após o boot
```

<div data-lang="shell" id="bkmrk-apt-get-install-zabb-2"><textarea style="display: none;">apt-get install zabbix-agent zabbix-get # Instala o agente do zabbix systemctl enable zabbix-agent # Configura o systemd para iniciar o agente do zabbix após o boot</textarea><div><div><textarea spellcheck="false" style="position: absolute; bottom: -1em; padding: 0px; width: 1px; height: 1em; outline: currentcolor none medium;" tabindex="0" wrap="off"></textarea></div></div></div>#### Configure o firewall

Configure o firewall para permitir a conexão entre o servidor e o agente

- <span style="font-weight: 400;">No Centos</span>

```shell
firewall-cmd --permanent --add-port=10051/tcp # configura o firewalld para permitir conexões ao proxy do zabbix
firewall-cmd --permanent --add-port=10050/tcp # configura o firewalld para permitir conexões ao agente do zabbix
firewall-cmd --reload
```

<div data-lang="shell" id="bkmrk-firewall-cmd---perma-0"><textarea style="display: none;">firewall-cmd --permanent --add-port=10050/tcp # configura o firewalld para permitir conexões ao agente do zabbix firewall-cmd --reload</textarea>- <span style="font-weight: 400;">No Debian</span>

</div><span style="font-weight: 400;">Não há firewall ativado por padrão.</span>

- <span style="font-weight: 400;">No Ubuntu</span>

<span style="font-weight: 400;">Não há firewall ativado por padrão.</span>

#### Configure o agente

Preencha as informações requeridas para configurar o agente, elas serão iguais nos três sistemas operacionais utilizados aqui.

 Crie o diretório dos arquivos auxiliares do agente

```shell
mkdir -p /etc/zabbix/zabbix_agentd.conf.d
mkdir -p /etc/zabbix/zabbix_scripts
```

Edite o arquivo de configuração

`nano /etc/zabbix/zabbix_agentd.conf`

```shell
# Edite os parâmetros indicados aqui.
# Os outros podem ser mantidos nos valores padrões
#
# Hostname=> Use o IP ou FQDN da máquina que eestá sendo monitorada
# Server=> Use o IP ou FQDN do servidor Zabbix

Hostname = this.machine
Server =  zabbix.int.example.com
ServerActive =  zabbix.int.example.com

LogRemoteCommands = 1
EnableRemoteCommands =  1

StartAgents = 3

Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf
```

Inicie o serviço do agente

```shell
systemctl start zabbix-agent
```

## <span style="font-weight: 400;">4. Gerenciando o serviço</span>

#### Alterações na configuração do agente

Se for necessário modificar o arquivo de configuração do Zabbix, ele pode ser encontrado no caminho `<strong>/etc/zabbix/zabbix_agentd.conf</strong>`. Ao realizar qualquer alteração, é preciso reiniciar o agente.

#### Controlando a execução do serviço do agente

Ao modificar o arquivo de configuração mostrado no item anterior ou por razões fora do escopo deste guia pode ser necessário parar ou reiniciar o serviço usado pelo agente do Zabbix. Os comandos a seguir podem ser utilizados:

Para encerrar a execução do agente:

```shell
systemctl stop zabbix-agent
```

Para reiniciar o agente:

```shell
systemctl restart zabbix-agent
```

Para encerrar a execução do agente:

```shell
systemctl stop zabbix-agent
```

# Zabbix: Instalando o agente em clientes windows

## 1. Introdução

<span style="font-weight: 400;">Zabbix é uma solução de código aberto para monitoramento de dispositivos e aplicações, sendo capaz de monitorar parâmetros utilizando agentes em diversas plataformas de sistemas operacionais, além de protocolos como SNMP, IPMI, JMX, entre outros.</span>

<span style="font-weight: 400;">Este documento visa a orientação para a instalação do agente do Zabbix. Ele é utilizado pelo servidor para monitorar ativos e reportar sua disponibilidade permitindo uma visão proativa do parque tecnológico.</span>

## <span style="font-weight: 400;">2. Ferramentas utilizadas</span>

<span style="font-weight: 400;">Este tutorial descreve a instalação do agente no sistema operacional Windows e, apesar da edição utilizada ter sido o Windows 7, pode ter seus passos utilizados para instalar o agente no Windows Server 2008 e 2012, Windows 8/8.1 e Windows 10. Também é abordada a questão de edição posterior à instalação e o controle do processo do agente.</span>

<span style="font-weight: 400;">Os softwares utilizados na produção deste tutorial é apresentado a seguir:</span>

<div id="bkmrk-microsoft-windows-7-"><div><div><div><div><div>- <span style="font-weight: 400;">Microsoft Windows 7  
    </span>
- <span style="font-weight: 400;">Zabbix Agent 3.2.3</span>

</div></div></div></div></div></div>## <span style="font-weight: 400;">3. Configurando o serviço</span>

<span style="font-weight: 400;">**Estes procedimentos devem ser realizados na máquina a ser monitorada, usando um usuário com permissões administrativas.**</span>

#### <span style="font-weight: 400;">3.1. Faça download do arquivo de instalação  
</span>

<span style="font-weight: 400;">Para obter a versão mais atual do software, faça o download do instalador do agente de acordo com a arquitetura do sistema operacional (32 bits ou 64 bits), acessando o link [http://suiviperf.com/zabbix/index.php](http://suiviperf.com/zabbix/index.php)</span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 538.67px; height: 140.00px;">![](https://lh6.googleusercontent.com/PILAhjPlWNDMDkTxV8oa7NBvlg8s-ITI_8cbjLdLEo12oUUwDRihFVQS7zXZqxb_8TQkCrokGCk5_a42Z56vZB9B8prTYjCCphSEQbVQigTQz5BGMiWmip-l07qeMyIXr_CB-PKA)</span>

#### <span style="font-weight: 400;">3.2. Instale o agente</span>

<span style="font-weight: 400;">Uma vez que o download tenha sido concluído, execute a instalação do agente.  
</span>

<span style="font-weight: 400;">3.2.1. Na primeira tela, clique em "Next"</span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 540.91px; height: 421.48px;">![](https://lh6.googleusercontent.com/sechJazDQJqLCsQVXhIIpBZXgAs6jqm9nvxHW3DJik6D0zEcMXNFmAz8lSQN0crzdJYHntjfpldPQuAC1MhSxsoXf_8vcbHkxokSKn7pa-U77W7Hd6LmI75HMsU0i0F09Ur5uT1m)</span>

<span style="font-weight: 400;">3.2.2. Marque o checkbox "I accept the terms in the License Agreement" e clique em "Next"</span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 535.91px; height: 416.34px;">![](https://lh5.googleusercontent.com/PduyXRIsNSsQD10wpVPrURbyO7ITMpY3cpNvF7lhouxvpL5QHMbTTM3WvBgMO6_iSWgOknSvhm92pSuyD6TRumUXegzlEo0P5xO5C4RT5WQMqDFtX4A5sMb0DO2v4H0hRvAr3cvg)</span>

<span style="font-weight: 400;">3.2.3. Insira as informações requeridas, conforme a imagem a seguir, e clique em "Next"</span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 547.91px; height: 425.70px;">![](https://lh6.googleusercontent.com/4e9Dz-Jl6FRHg6RbFq-bB8ImLqLsO888oanapFXk7-NUdIB-FiiRx1-FqOK3KcK_ji53iW98hO-thdU1BB88glh1bvp0MJVCpgqa6ZqX6-ZgJ8vEQ3wG_EmPbI0p7OuNV1sshnDV)</span>

<span style="font-weight: 400;">3.2.4. Nesta página, clique em "Next" somente.</span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 550.91px; height: 427.69px;">![](https://lh4.googleusercontent.com/6UN8SESSUSL_2pDzRCWByxUecb4YMy7EEBUG5afPYUfYTJR6TDTeMy1Dt6fsn7U6Ey4JNieBS2nDwZ8s-_7vGkW4LtXWBytRclsOzTC_enN-v0D5Qb8W0UUbQcOtIow1hHmct86a)</span>

<span style="font-weight: 400;">3.2.5. Nesta página, clique em "Install".</span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 559.31px; height: 434.58px;">![](https://lh6.googleusercontent.com/-MyEgDVFHSvZ-K2LSM4XDiVYYG-mZQQqYhT8v6FGaFEC2QV36eAJQVyeGU8bYgNBV-ToW3NKx2xuYxbRZjSij3dJV9lK0gWMp0aNqwOYiYzcuRUu6V0PzrxWNY-9eLEEx6slccsw)</span>

<span style="font-weight: 400;">3.2.6 O UAC (Controle de Conta de Usuário) vai solicitar permissão para prosseguir com a instalação. Clique em "Sim".</span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 557.54px; height: 317.58px;">![](https://lh3.googleusercontent.com/Dd-pbk0HAuOV5Pf-65hXbKgknBcEIiuwEWqMcAR2MiooOdWAE-bseHBtkHO64r9Ifop-gABDVrNLASYmJIT1mPLAzB-iDtQftzSOnzhnIzbZxAu3jpXiwvexKR0Kfey_vjhne1Yh)</span>

<span style="font-weight: 400;">A instalação será iniciada e a tela a seguir será exibida:</span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 560.81px; height: 436.58px;">![](https://lh6.googleusercontent.com/O9UKj7esgd84y2OzbZGABG9XKBvjuc3Vo09Njo5jXgwV7RbdsnOoQccgIeKPyJFkuoG1OVMWngxUDxkZ6GH7RPW2oKtNKFpjVKodvUpSC6AC8DHXpO3-eQN1aR2N_eJVl6OWtLEn)</span>

<span style="font-weight: 400;">3.2.7. Clique em "Finish"</span>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 559.91px; height: 435.82px;">![](https://lh6.googleusercontent.com/s0bgCX0giAsaZIkdLLHXpdkpUiUBfSsAS7tkG2o23dsyxKOOngsL2gvvnPN-cPrK3R-EE-zXGgyffuLnlRb9RSV2mWEyAmJXJhHctsBoLt5LyPZUxJrkf83LzokA94FZwJGwnNqB)</span>

#### 3.3 Configure o firewall

<span style="font-weight: 400;">Caso o firewall esteja ativo, c</span>onfigure-o para permitir a conexão entre o servidor e o agente. Será necessária liberar o acesso a porta 10050/TCP.

## <span style="font-weight: 400;">4. Gerenciando o serviço</span>

#### 4.1. Alterações na configuração do agente

Se for necessário modificar o arquivo de configuração do Zabbix, ele pode ser encontrado no caminho `<strong>%programfiles%\zabbix agent\zabbix_agentd.conf</strong>`. Ao realizar qualquer alteração, é preciso reiniciar o agente.

#### 4.2. Controlando a execução do serviço do agente

Ao modificar o arquivo de configuração mostrado no item anterior ou por razões fora do escopo deste guia pode ser necessário parar ou reiniciar o serviço usado pelo agente do Zabbix. Os comandos a seguir podem ser utilizados:

4.2.1. Acesse o painél de controle dos serviços, digitando "services.msc" na barra de buscas:

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 390.91px; height: 498.18px;">![](https://lh6.googleusercontent.com/OgyUxmfTiF--ySUiRpI7aW-jAH96MY3djOl7sEnLtANEdoQFzAN4jExmtyrZsuVXkcYnY1L8nhl7mSMojRPdqGIEn_KBPOaR2eOnlJyJZNIs43rlcEQf76XEWMvCIfVjYZ9n1aEw)</span>

4.2.2. Na janela aberta, clique em Zabbix Agent.

<p class="callout info"><span class="c3">“Zabbix Agent” será mostrado sob o campo “Nome” e provavelmente, será o último item mostrado. Será preciso usar a barra de rolagem para ir até o fim da lista de serviços</span></p>

<span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 642.52px; height: 433.33px;">![](https://lh3.googleusercontent.com/imtbsYsy_0AipI9S1cZJZy7nTycy9EykOUZwZ92JH-XRZGp5vomWEwaO4OddPQseKTR8FsLzAM8SwUdt6SJo8o-EqjLfLMshx8vYv42q7LhVBRVd5vMRvw8Rm8GoOkfPSxhNq3wZ)</span>

Na parte lateral da página existem controles para encerrar ou reiniciar a execução do agente (setas azuis)

<div id="bkmrk--10"><div><div><div><div></div></div></div></div></div>

# Zabbix: Instalando o proxy

## 1. Introdução

<span style="font-weight: 400;">Zabbix é uma solução de código aberto para monitoramento de dispositivos e aplicações, sendo capaz de monitorar parâmetros utilizando agentes em diversas plataformas de sistemas operacionais, além de protocolos como SNMP, IPMI, JMX, entre outros.</span>

<span style="font-weight: 400;">É uma plataforma bastante difundida e não está limitada a ativos de TIC, apenas. Pode ser utilizado em diversas áreas, pois o seu método de coleta é flexível e permitindo personalizá-lo de acordo com necessidades de monitoramento do ambiente.</span>

## <span style="font-weight: 400;">2. Ferramentas utilizadas</span>

<span style="font-weight: 400;">Os softwares utilizados na produção deste tutorial é apresentado a seguir:</span>

- <span style="font-weight: 400;">CentOS 7</span>
- <span style="font-weight: 400;">Zabbix 3.4.1</span>
- <span style="font-weight: 400;">SQLite3</span>

<span style="font-weight: 400;">O ambiente utilizado é apresentado a seguir:</span>

- <span style="font-weight: 400;">U</span><span style="font-weight: 400;">ma MV, com o sistema operacional CentOS 7, destinada ao servidor proxy do Zabbix</span>

<span style="font-weight: 400;">A instalação do CentOS 7 utilizada para validar esse tutorial foi a Minimal-1611. A ISO dessa versão pode ser baixada através deste [link](http://mirror.ufscar.br/centos/7/isos/x86_64/).</span>

## <span style="font-weight: 400;">3. Configurando o serviço</span>

<span style="font-weight: 400;">Todos os comandos executados nesse tutorial foram executados com o usuário **root**.</span>

#### <span style="font-weight: 400;">Passos preparatórios</span>

<span style="font-weight: 400;">3.1. </span><span style="font-weight: 400;">Após a instalação do CentOS, execute o comando abaixo para atualizar os pacotes presentes no sistema:</span>

```
yum update
```

<span style="font-weight: 400;">3.2. Habilite o modo permissivo do SELinux, com os comandos abaixo:</span>

```shell
sed s/SELINUX=enforcing/SELINUX=permissive/g -i /etc/selinux/config
setenforce 0
```

<span style="font-weight: 400;">3.3. Adicione o repositório do Zabbix e MariaDB:</span>

```shell
URL='https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm'
rpm -ivh "$URL" # Adiciona o repositório do zabbix
```

<span style="font-weight: 400;">3.4. Instalar o agente do Zabbix </span>

```shell
yum install zabbix-agent zabbix-get # Instala o agente do zabbix
systemctl enable zabbix-agent # Configura o systemd para iniciar o agente do zabbix após o boot
```

#### <span style="font-weight: 400;">Instalando o banco de dados</span>

<span style="font-weight: 400;">3.5. </span><span style="font-weight: 400;">Após a instalação do CentOS, execute o comando abaixo para atualizar os pacotes presentes no sistema:</span>

```shell
yum install sqlite -y
```

#### <span style="font-weight: 400;">Instalando o proxy do Zabbix</span>

<span style="font-weight: 400;">3.6. </span><span style="font-weight: 400;">Após a instalação do CentOS, execute o comando abaixo para atualizar os pacotes presentes no sistema:</span>

```shell
yum install zabbix-proxy-sqlite zabbix-get zabbix-agent  -y
```

<span style="font-weight: 400;">3.7. Vamos criar os diretórios a serem utilizados pelo proxy:  
</span>

```shell
mkdir /etc/zabbix/{default,zabbix_proxy.conf.d}
chown zabbix:root -P /etc/zabbix/
touch /var/log/zabbix/snmptrap.log
chown zabbix:zabbix /var/log/zabbix/snmptrap.log
```

<span style="font-weight: 400;">3.8. configurar a base de dados do Zabbix e importar os schemas:</span>

```shell
mkdir -p /app/zabbix
cd /usr/share/doc/zabbix-proxy-sqlite3-3*
zcat schema.sql.gz | sqlite3 /app/zabbix/proxy.db
```

<span style="font-weight: 400;">3.9. alterar os parâmetros do banco de dados no arquivo de configuração `/etc/zabbix/zabbix_server.conf`:  
</span>

```shell
cd /etc/zabbix
cp *.conf default/
sed s/'# ProxyMode=0'/'ProxyMode=0'/g -i zabbix_proxy.conf
sed s/'LogFileSize=0'/'LogFileSize=128'/g -i zabbix_proxy.conf
sed s/'# StartPollers=5'/'StartPollers=35'/g -i zabbix_proxy.conf
sed s/'Server=127.0.0.1'/'Server=SERVIDOR_ZABBIX'/g -i zabbix_proxy.conf
sed s/'DBName=zabbix_proxy'/'DBName=\/app\/zabbix\/proxy.db'/g -i zabbix_proxy.conf
sed s/'# StartPollersUnreachable=1'/'StartPollersUnreachable=70'/g -i zabbix_proxy.conf
sed s/'Hostname=Zabbix proxy'/Hostname=$(hostname)/g -i zabbix_proxy.conf
sed s/'# StartIPMIPollers=0'/'StartIPMIPollers=5'/g -i zabbix_proxy.conf
sed s/'# ProxyLocalBuffer=0'/'ProxyLocalBuffer=360'/g -i zabbix_proxy.conf
sed s/'# ConfigFrequency=3600'/'ConfigFrequency=60'/g -i zabbix_proxy.conf
sed s/'# StartHTTPPollers=1'/'StartHTTPPollers=10'/g -i zabbix_proxy.conf
sed s/'# ProxyOfflineBuffer=1'/'ProxyOfflineBuffer=720'/g -i zabbix_proxy.conf
sed s/'# HeartbeatFrequency=60'/'HeartbeatFrequency=30'/g -i zabbix_proxy.conf
sed s/'# DataSenderFrequency=1'/'DataSenderFrequency=45'/g -i zabbix_proxy.conf
sed s/'# StartTrappers=5'/'StartTrappers=15'/g -i zabbix_proxy.conf
sed s/'# StartPingers=1'/'StartPingers=5'/g -i zabbix_proxy.conf
sed s/'# StartVMwareCollectors=0'/'StartVMwareCollectors=10'/g -i zabbix_proxy.conf
sed s/'# VMwareTimeout=10'/'VMwareTimeout=19'/g -i zabbix_proxy.conf
sed s/'# StartSNMPTrapper=0'/'StartSNMPTrapper=1'/g -i zabbix_proxy.conf
sed s/'# StartDBSyncers=4'/'StartDBSyncers=8'/g -i zabbix_proxy.conf
sed s/'# CacheSize=8M'/'CacheSize=32M'/g -i zabbix_proxy.conf
sed s/'# HistoryIndexCacheSize=4M'/'HistoryIndexCacheSize=16M'/g -i zabbix_proxy.conf
sed s/'# HistoryCacheSize=16M'/'HistoryCacheSize=64M'/g -i zabbix_proxy.conf
sed s/'\/var\/log\/snmptrap\/snmptrap.log'/'\/var\/log\/zabbix\/snmptrap.log'/g -i zabbix_proxy.conf
sed s/'Timeout=4'/'Timeout=19'/g -i zabbix_proxy.conf
sed s/'ExternalScripts=\/usr\/lib\/zabbix\/externalscripts'/'ExternalScripts=\/app\/zabbix\/externalscripts'/g -i zabbix_proxy.conf
sed s/'# Include=\/usr\/local\/etc\/zabbix_proxy.conf.d\/*.conf'/'\/etc\/zabbix_proxy.conf.d\/*.conf'/g -i zabbix_proxy.conf

```

<p class="callout info"><span style="font-weight: 400;">Substitua “SERVIDOR\_ZABBIX” pelo IP ou FQDN do servidor do zabbix configurado anteriormente.</span></p>

<span style="font-weight: 400;">3.10. Permita os serviços no Firewall</span>

```shell
firewall-cmd --permanent --add-port=10051/tcp # configura o firewalld para permitir conexões ao proxy do zabbix
firewall-cmd --permanent --add-port=10050/tcp # configura o firewalld para permitir conexões ao agente do zabbix
firewall-cmd --reload
```

<span style="font-weight: 400;">3.11. Configure o serviço do servidor e agente:</span>

```shell
systemctl enable zabbix-proxy zabbix-agent # Configura o systemd para iniciar os serviços do zabbix após o boot
systemctl start zabbix-proxy zabbix-agent  # Inicia os serviços imediatamente
```

# Zabbix: Instalando o servidor

## 1. Introdução

<span style="font-weight: 400;">Zabbix é uma solução de código aberto para monitoramento de dispositivos e aplicações, sendo capaz de monitorar parâmetros utilizando agentes em diversas plataformas de sistemas operacionais, além de protocolos como SNMP, IPMI, JMX, entre outros.</span>

<span style="font-weight: 400;">É uma plataforma bastante difundida e não está limitada a ativos de TIC, apenas. Pode ser utilizado em diversas áreas, pois o seu método de coleta é flexível e permitindo personalizá-lo de acordo com necessidades de monitoramento do ambiente.</span>

## <span style="font-weight: 400;">2. Ferramentas utilizadas</span>

<span style="font-weight: 400;">Os softwares utilizados na produção deste tutorial é apresentado a seguir:</span>

- <span style="font-weight: 400;">CentOS 7</span>
- <span style="font-weight: 400;">Zabbix 3.4.1</span>
- <span style="font-weight: 400;">MariaDB 10.3.9-1.el7.centos</span>

<span style="font-weight: 400;">O ambiente utilizado é apresentado a seguir:</span>

- <span style="font-weight: 400;">Uma MV, com o sistema operacional CentOS 7, destinada ao banco de dados</span>
- <span style="font-weight: 400;">Uma MV, com o sistema operacional CentOS 7, destinada ao servidor e interface Web do Zabbix</span>

<span style="font-weight: 400;">A instalação do CentOS 7 utilizada para validar esse tutorial foi a Minimal-1611. A ISO dessa versão pode ser baixada através deste [link](http://mirror.ufscar.br/centos/7/isos/x86_64/).</span>

## <span style="font-weight: 400;">3. Configurando o serviço</span>

<span style="font-weight: 400;">Todos os comandos executados nesse tutorial foram executados com o usuário **root**.</span>

### <span style="font-weight: 400;">3.1. Instalando o servidor de banco de dados</span>

#### <span style="font-weight: 400;">Passos preparatórios</span>

<span style="font-weight: 400;">3.1.1. </span><span style="font-weight: 400;">Após a instalação do CentOS, execute o comando abaixo para atualizar os pacotes presentes no sistema:</span>

```
yum update
```

<span style="font-weight: 400;">3.1.2. Habilite o modo permissivo do SELinux, com os comandos abaixo:</span>

```shell
sed s/SELINUX=enforcing/SELINUX=permissive/g -i /etc/selinux/config
setenforce 0
```

<span style="font-weight: 400;">3.1.3. Adicione os repositórios do Zabbix e MariaDB:</span>

```shell
URL='https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm'
rpm -ivh "$URL" # Adiciona o repositório do zabbix
printf '[mariadb]\nname = MariaDB\nbaseurl = http://yum.mariadb.org/10.3/centos7-amd64\ngpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB\ngpgcheck=1\n' > /etc/yum.repos.d/MariaDB.repo
```

<span style="font-weight: 400;">3.1.4. Instalar o agente do Zabbix </span>

```shell
yum install zabbix-agent zabbix-get # Instala o agente do zabbix
systemctl enable zabbix-agent # Configura o systemd para iniciar o agente do zabbix após o boot
```

<p class="callout warning"><span style="font-weight: 400;">Caso o local do armazenamento dos arquivos seja numa partição separada, insira a linha correta no fstab, definindo como ponto de montagem o diretório do mysql e monte-a digitando o comando ***mount -a***</span></p>

<span style="font-weight: 400;">3.1.5. Instalar o MariaDB </span>

```shell
yum install mariadb-server mariadb-libs mariadb -y # Instala o servidor
chown -R mysql:mysql /var/lib/mysql # Configura as permissões no diretório usado pelo mariadb
systemctl enable mariadb # Configura o systemd para iniciar o mariadb após o boot
systemctl start mariadb # Iniciar o serviço do mariadb imediatamente
```

<span style="font-weight: 400;">3.1.6. Permita os serviços no Firewall</span>

```shell
firewall-cmd --permanent --add-port=3306/tcp # configura o firewalld para permitir conexões ao mariadb
firewall-cmd --permanent --add-port=10050/tcp # configura o firewalld para permitir conexões ao agente do zabbix
firewall-cmd --reload
```

#### Configure o servidor de banco de dados

<span style="font-weight: 400;">3.1.7. Complete a instalação do MariaDB:</span>

```shell
mysql_secure_installation
```

<span style="font-weight: 400;">Com o comando acima iremos configurar a senha do usuário </span>**root**<span style="font-weight: 400;"> para acessar o MySQL.</span>

```shell
# Enter current password for root (enter for none): <ENTER>
# Change the root password? [Y/n] <Y>
# New password: <DIGITE UMA SENHA SEGURA>
# Re-enter new password: <DIGITE A SENHA NOVAMENTE>
# Remove anonymous users? [Y/n] <Y>
# Disallow root login remotely? [Y/n] <Y>
# Remove test database and access to it? [Y/n] <Y>
# Reload privilege tables now? [Y/n] <Y>
```

<p class="callout warning"><span style="font-weight: 400;">Para manter a segurança num nível aceitável, crie uma senha segura, com no mínimo 8 dígitos, contendo letras maiúsculas e minúsculas e caracteres especiais. </span></p>

<p class="callout info"><span style="font-weight: 400;">Observe também que esta senha deve ser guardada em local seguro para possíveis acesso e manutenções.</span></p>

<span style="font-weight: 400;">3.1.8. Crie a base de dados para o Zabbix</span>

<span style="font-weight: 400;">Acesse o mariadb como </span>**root**<span style="font-weight: 400;">:</span>

```shell
mysql -uroot -p
```

<span style="font-weight: 400;">Digite a senha cadastrada no passo anterior. Deverá aparecer o prompt da console do MySQL. Iremos criar a base de dados que será utilizada pelo Zabbix:</span>

<table id="bkmrk-mysql%3E-mysql%3E-mysql%3E" style="width: 812px; background-color: #f8f8f8;"><tbody><tr><td style="width: 65px;">mysql&gt;

mysql&gt;

mysql&gt;

</td><td style="width: 743.017px;"><span style="font-weight: 400;">create database </span>**BASE\_ZABBIX**<span style="font-weight: 400;">;</span>

<span style="font-weight: 400;">grant all privileges on **BASE\_ZABBIX**.\* to '**USUARIO\_ZABBIX**'@'%' identified by '**SENHA\_ZABBIX**';</span>

<span style="font-weight: 400;">quit;</span>

</td></tr></tbody></table>

 <span style="font-weight: 400;">O comando</span><span style="font-weight: 400;"> ‘</span><span style="font-weight: 400;">create database</span><span style="font-weight: 400;">’ </span><span style="font-weight: 400;">cria a base de dados para o </span>**zabbix**<span style="font-weight: 400;">. Observe que o termo “</span><span style="font-weight: 400;">**base\_z**</span>**abbix**<span style="font-weight: 400;">” deve ser substituído pelo nome escolhido. </span>

<span style="font-weight: 400;">O comando iniciando com</span><span style="font-weight: 400;"> ‘</span><span style="font-weight: 400;">grant all privileges</span><span style="font-weight: 400;">‘ concede</span><span style="font-weight: 400;"> permissão para o usuário do </span>**zabbix**<span style="font-weight: 400;"> com a senha a ser digitada no lugar de</span> "**senha\_zabbix**"<span style="font-weight: 400;">. </span><span style="font-weight: 400;">Observe que o termo “</span><span style="font-weight: 400;">**usuario\_z**</span>**abbix**<span style="font-weight: 400;">” deve ser substituído pelo nome do usuário que o servidor irá utilizar ao se conectar à base de dados. </span>

<p class="callout warning"><span style="font-weight: 400;">Para manter a segurança num nível aceitável, crie uma senha segura, com no mínimo 8 dígitos, contendo letras maiúsculas e minúsculas e caracteres especiais. </span></p>

<p class="callout info"><span style="font-weight: 400;">Observe também que esta senha deve ser guardada em local seguro para possíveis acesso e manutenções.</span></p>

<span style="font-weight: 400;">Essas informações serão utilizadas para o acesso a base de dados no arquivo de configuração do servidor Zabbix.</span>

### <span style="font-weight: 400;">3.2. Instalando o servidor do Zabbix  
</span>

#### <span style="font-weight: 400;">Passos preparatórios</span>

<span style="font-weight: 400;">3.2.1. Após a instalação do CentOS no servidor, execute o comando abaixo para atualizar os pacotes presentes no sistema:</span>

```
yum update
```

<span style="font-weight: 400;">3.2.2. Habilite o modo permissivo do SELinux, com os comandos abaixo:</span>

```shell
sed s/SELINUX=enforcing/SELINUX=permissive/g -i /etc/selinux/config
setenforce 0
```

<span style="font-weight: 400;">3.2.3. Ad</span><span style="font-weight: 400;">icione os repositórios do Zabbix e MariaDB:</span>

```shell
URL='https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm'
rpm -ivh "$URL" # Adiciona o repositório do zabbix
printf '[mariadb]\nname = MariaDB\nbaseurl = http://yum.mariadb.org/10.3/centos7-amd64\ngpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB\ngpgcheck=1\n' > /etc/yum.repos.d/MariaDB.repo
```

<span style="font-weight: 400;">3.2.4. In</span><span style="font-weight: 400;">stale os pacotes necessários </span>

```shell
yum install wget unzip net-snmp net-snmp-utils -y # Instala dependências do SNMP
yum install zabbix-agent zabbix-get -y # Instala o agente do zabbix
yum install zabbix-server-mysql mariadb -y # Instala as bibliotecas do mariadb e o servidor zabbix
yum install zabbix-web-mysql -y # Instala a interface web do servidor zabbix
```

<span style="font-weight: 400;">3.2.5. Permita os serviços no Firewall</span>

```shell
firewall-cmd --permanent --add-port=10050/tcp # configura o firewalld para permitir conexões ao agente do zabbix
firewall-cmd --permanent --add-port=10051/tcp # configura o firewalld para permitir conexões ao servidor do zabbix
firewall-cmd --permanent --add-service=snmp   # configura o firewalld para permitir conexões snmp
firewall-cmd --permanent --add-service=snmptrap # configura o firewalld para permitir conexões snmp
firewall-cmd --reload
```

<span style="font-weight: 400;">3.2.6. Configure as MIBs do SNMP  
</span>

```shell
cd /usr/share/snmp/mibs/
wget -c -m ftp://ftp.cisco.com/pub/mibs/v2/
mv ftp.cisco.com/pub/mibs/v2/* .
rm -fr ftp.cisco.com/
for line in $(ls *.my); do base=$(echo $line|cut -d'.' -f1); mv $line $base; done
```

```
cd /usr/share/snmp/mibs/
wget -c https://github.com/librenms/librenms-mibs/archive/master.zip -O Cisco-SB-MIB.zip
unzip -jo Cisco-SB-MIB.zip
rm -fr Cisco-SB-MIB.zip
for line in $(ls *.mi2); do base=$(echo $line|cut -d'.' -f1); mv -n $line $base; done
```

#### Configure a base de dados

<span style="font-weight: 400;">3.2.7. </span> I<span style="font-weight: 400;">mportar os schemas:</span>

```shell
cd /usr/share/doc/zabbix-server-mysql-3.*
zcat create.sql.gz | mysql -h IP_SERVIDOR_BANCO -u USUARIO_ZABBIX -p BASE_ZABBIX  
```

<span style="text-decoration: underline;"><span style="font-weight: 400;">A senha solicitada, assim como os itens "USUARIO\_ZABBIX" e "BASE\_ZABBIX" devem ser os mesmos configurados no passo "Crie a base de dados para o Zabbix".</span></span>

<p class="callout info"><span style="font-weight: 400;">Substitua o “IP\_SERVIDOR\_BANCO” pelo IP do servidor do banco de dados configurado anteriormente.</span></p>

#### <span style="font-weight: 400;">Configure o servidor zabbix  
</span>

<span style="font-weight: 400;">3.2.8. Será necessário alterar alguns parâmetros do banco de dados no arquivo de configuração `/etc/zabbix/zabbix_server.conf`: </span>

```shell
cd /etc/zabbix             # Entra no diretório do zabbix
mkdir -p original          # Cria diretório para backup, se não existir
cp zabbix*.conf original/  # Copia os arquivos de configuração originais para pasta criada
sed s/'LogFileSize=0'/'LogFileSize=128'/g -i zabbix_server.conf # Define o tamanho máximo de cada arquivo de log
sed s/'Timeout=4'/'Timeout=20'/g -i zabbix_server.conf          # Define o timeout da conexão ao cliente
sed s/'# StartSNMPTrapper=0'/'StartSNMPTrapper=1'/g -i zabbix_server.conf   # Define se o SNMP trapper será ativado
sed s/'# SenderFrequency=30'/'SenderFrequency=60'/g -i zabbix_server.conf   # Frequencia submetida aos senders
sed s/'# StartDBSyncers=4'/'StartDBSyncers=8'/g -i zabbix_server.conf       # Define a quantidade de sicronizadores entre a aplicação e o bd
sed s/'# StartPollers=5'/'StartPollers=35'/g -i zabbix_server.conf          # Quantidade de pollers multipropósito (para java, ipmi e etc)  
sed s/'# HistoryCacheSize=16M'/'HistoryCacheSize=128M'/g -i zabbix_server.conf         # Tamanho do cache para histórico de alterações  
sed s/'# HistoryIndexCacheSize=4M'/'HistoryIndexCacheSize=64M'/g -i zabbix_server.conf # Tamanho do cache para o indice do histórico
sed s/'# TrendCacheSize=4M'/'TrendCacheSize=64M'/g -i zabbix_server.conf # Tamanho do cache usado para armazenar tendências
sed s/'# ValueCacheSize=8M'/'ValueCacheSize=64M'/g -i zabbix_server.conf # Tamanho do cache de valores
sed s/'# CacheSize=8M'/'CacheSize=512M'/g -i zabbix_server.conf          # Tammanho máximo que todos os caches, somados, podem alcançar 
sed s/'# StartVMwareCollectors=0'/'StartVMwareCollectors=16'/g -i zabbix_server.conf # Quantidade de coletores de dados do vmware
sed s/'# VMwareCacheSize=8M'/'VMwareCacheSize=16M'/g -i zabbix_server.conf       # Cache para os dados de vmware coletados
sed s/'# VMwareTimeout=10'/'VMwareTimeout=30'/g -i zabbix_server.conf            # Define timeout para conexão ao agente do vmware
sed s/'# DBHost=localhost'/'DBHost=IP_SERVIDOR_BANCO'/g -i zabbix_server.conf # Servidor onde está a BD do zabbix. Substitua IP_SERVIDOR_BD pelo IP correto 
sed s/'DBName=zabbix'/'DBName=BASE_ZABBIX'/g -i zabbix_server.conf         # BD a ser utilizada pelo zabbix. Substitua pelo nome correto 
sed s/'# DBPassword='/'DBPassword=SENHA_ZABBIX'/g -i zabbix_server.conf    # Senha para conexão a BD. Substitua pela senha correta 
sed s/'DBUser=zabbix'/'DBUser=USUARIO_ZABBIX'/g -i zabbix_server.conf      # Usuário para conexão a BD. Substitua pelo nome correto
```

<span style="text-decoration: underline;"><span style="font-weight: 400;">A senha solicitada, assim como os itens "USUARIO\_ZABBIX" e "BASE\_ZABBIX" devem ser os mesmos configurados no passo "Crie a base de dados para o Zabbix".</span></span>

<p class="callout info"><span style="font-weight: 400;">Substitua o “IP\_SERVIDOR\_BANCO” pelo IP do servidor do banco de dados configurado anteriormente.</span></p>

<span style="font-weight: 400;">3.2.9. Configure o serviço do servidor e agente:</span>

```shell
systemctl enable zabbix-agent zabbix-server-mysql # Configura o systemd para iniciar os serviços do zabbix após o boot
systemctl start zabbix-server zabbix-agent        # Inicia os serviços imediatamente
```

<span style="font-weight: 400;">Realizada a instalação da base de dados e do servidor Zabbix, o próximo passo é configurar e instalar a interface web.</span>

### <span style="font-weight: 400;">3.3. Instalando a interface web servidor do Zabbix</span>

<p class="callout warning"><span style="font-weight: 400;">*A interface web e o servidor podem ser instalados na mesma máquina. No entanto, esse procedimento não é recomendado em ambientes de alta disponibilidade.*</span></p>

#### <span style="font-weight: 400;">Passos preparatórios</span>

<span style="font-weight: 400;">3.3.1. Após a instalação do CentOS no servidor, execute o comando abaixo para atualizar os pacotes presentes no sistema:</span>

```
yum update
```

<span style="font-weight: 400;">3.3.2. Habilite o modo permissivo do SELinux, com os comandos abaixo:</span>

```shell
sed s/SELINUX=enforcing/SELINUX=permissive/g -i /etc/selinux/config
setenforce 0
```

<span style="font-weight: 400;">3.3.3. Ad</span><span style="font-weight: 400;">icione os repositórios do Zabbix e MariaDB:</span>

```shell
URL='https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm'
rpm -ivh "$URL" # Adiciona o repositório do zabbix
printf '[mariadb]\nname = MariaDB\nbaseurl = http://yum.mariadb.org/10.3/centos7-amd64\ngpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB\ngpgcheck=1\n' > /etc/yum.repos.d/MariaDB.repo
```

<span style="font-weight: 400;">3.3.4. In</span><span style="font-weight: 400;">stale os pacotes necessários </span>

```shell
yum install zabbix-agent zabbix-get -y # Instala o agente do zabbix
yum install mariadb zabbix-web-mysql -y # Instala as bibliotecas do mariadb e a aplicação web do zabbix
```

<span style="font-weight: 400;">3.3.5. Permita o serviço no Firewall</span>

```shell
firewall-cmd --permanent --add-service=http   # configura o firewalld para permitir conexões http
firewall-cmd --permanent --add-service=https # configura o firewalld para permitir conexões https
firewall-cmd --reload
```

#### <span style="font-weight: 400;">Configure a aplicação web do Zabbix</span>

<span style="font-weight: 400;">3.3.6. Edite o arquivo contendo as definições do site do zabbix  
</span>

```shell
cd /etc/httpd/conf.d/                            # Diretório de configuração dos sites do apache
sed s/'# php_value'/'php_value'/g -i zabbix.conf # Ativa as definições do PHP dentro do arquivo
sed s/'timezone.*'/'timezone America\/Recife'/g -i zabbix.conf # Define o timezone correto
sed s/'Alias'/'# Alias'/g -i zabbix.conf           # Retira o alias "/zabbix/"
sed '6i Alias / /usr/share/zabbix/' -i zabbix.conf # Adiciona o alias "/", redirecionando o indice no referido diretório
```

<span style="font-weight: 400;">3.3.7. Crie o arquivo de configuração da aplicação web do zabbix</span>

`<span style="font-weight: 400;">vi /etc/zabbix/web/zabbix.conf.php</span>`

<span style="font-weight: 400;">A</span><span style="font-weight: 400;">s configurações deverão ficar conforme o exemplo abaixo:</span>

```
<?php
// Zabbix GUI configuration file.
global $DB;
$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = 'IP_SERVIDOR_BANCO';
$DB['PORT']     = '0';
$DB['DATABASE'] = 'BASE_ZABBIX';
$DB['USER']     = 'USUARIO_ZABBIX';
$DB['PASSWORD'] = 'SENHA_ZABBIX';
 
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';
 
$ZBX_SERVER      = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'zabbix.int.example.com';
 
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
```

<span style="text-decoration: underline;"><span style="font-weight: 400;">Os itens "USUARIO\_ZABBIX" , "SENHA\_ZABBIX" e "BASE\_ZABBIX" devem ser os mesmos configurados no passo "***Crie a base de dados para o Zabbix***".</span></span>

<span style="text-decoration: underline;"><span style="font-weight: 400;">Em **$ZBX\_SERVER**, substitua "localhost" pelo IP ou FQDN da máquina onde o servidor Zabbix está instalado.</span></span>

<span style="text-decoration: underline;"><span style="font-weight: 400;">Em **$ZBX\_SERVER\_NAME**, substitua "zabbix.int.example.com" pelo nome a ser dado ao servidor.</span></span>

<p class="callout info"><span style="font-weight: 400;">Substitua o “IP\_SERVIDOR\_BANCO” pelo IP do servidor do banco de dados configurado anteriormente.</span></p>

<span style="font-weight: 400;">3.3.8. Configure o serviço utilizado pela interface gráfica:</span>

```shell
systemctl enable httpd # Configura o systemd para iniciar o apachea pós o boot
systemctl start httpd  # Inicia osserviço imediatamente
```

### <span style="font-weight: 400;">3.4. Configurações adicionais</span>

#### <span style="font-weight: 400;">Passos preparatórios</span>

<span style="font-weight: 400;">3.4.1. Neste momento, abra o seu navegador favorito e insira o endereço do teu servidor, conforme o exemplo abaixo:</span>

<span style="font-weight: 400;">https://IP-DO-SERVIDOR/</span>

<span style="font-weight: 400;">Será mostrada uma tela solicitando credenciais. </span><span style="font-weight: 400;">Faça login no sistema com o usuário </span>**Admin**<span style="font-weight: 400;"> e a senha </span>**zabbix**<span style="font-weight: 400;">.</span>

#### <span style="font-weight: 400;">Configure o inventário e monitoramento do servidor</span>

<span style="font-weight: 400;">3.4.2. Primeiro, vamos habilitar a capacidade do Zabbix de fazer inventário de alguns itens sobre os dispositivos monitorados:</span>

<span style="font-weight: 400;">Clique em </span>**Administration &gt; General**<span style="font-weight: 400;">. No dropbox à direita, clique em </span>**Others.**

<span style="font-weight: 400;">3.4.3. Feito isso, vamos habilitar o monitoramento do próprio servidor: </span>

<span style="font-weight: 400;">Clique em </span>**Configuration &gt; Hosts**<span style="font-weight: 400;">, </span>**marque** o checkbox ao lado de **“Zabbix Server”**<span style="font-weight: 400;"> e clique no botão “</span>**Enable**<span style="font-weight: 400;">”.</span>

<span style="font-weight: 400;"> </span>

# Zabbix: Templates para o Bacula/Bareos

#  1. Introdução

<span style="font-weight: 400;">Zabbix é uma solução de código aberto para monitoramento de dispositivos e aplicações, sendo capaz de monitorar parâmetros utilizando agentes em diversas plataformas de sistemas operacionais, além de protocolos como SNMP, IPMI, JMX, entre outros.</span>

O Bareos, assim como o Bacula, é uma solução permite a realização de trabalhos de backup e restauração de dados. São suportadas máquinas clientes Linux e Windows.

<span style="font-weight: 400;">Este documento destina-se a demonstração dos procedimentos de instalação e configuração básica da solução de backup Bareos. Tal solução permite a realização de trabalhos de backup e restauração de dados. São suportadas máquinas clientes Linux e Windows.</span>

## <span style="font-weight: 400;">2. Ferramentas utilizadas</span>

<span style="text-decoration: underline;"><span style="font-weight: 400;">Este template foi homologado com os sistemas operacionais listados:</span></span>

- <span style="font-weight: 400;">Centos 6</span>
- <span style="font-weight: 400;">Centos 7</span>
- <span style="font-weight: 400;">Debian Linux 7</span>
- <span style="font-weight: 400;">Debian Linux 8</span>

<span style="text-decoration: underline;"><span style="font-weight: 400;">Versões do Bacula Agent testadas:</span></span>

- <span style="font-weight: 400;">Agente do bacula, versão 5.x</span>
- <span style="font-weight: 400;">Agente do bacula, versão 7.x</span>

<span style="text-decoration: underline;"><span style="font-weight: 400;">Versões do Agente do Zabbix testadas:</span></span>

- <span style="font-weight: 400;">Zabbix Agent 2.4.x</span>
- <span style="font-weight: 400;">Zabbix Agent 3.2.x</span>
- <span style="font-weight: 400;">Zabbix Agent 3.4.x</span>

## <span style="font-weight: 400;">3. Visão geral do Bareos/Bacula  
</span>

<span style="font-weight: 400;">O Bareos e o Bacula são divididos em três componentes principais: o Director, o Storage Daemon e o File Daemon. </span>

<span style="font-weight: 400;">O **Director** é o componente central, atuando como controlador que contata clientes e salva dados de backups nos armazenamentos. O **Storage Daemon** é o armazenamento dos dados de backup e é independente do Director pois nem sempre o mesmo servidor que controla é o mesmo que armazena os backups diretamente. E finalmente, o **File Daemon** é o componente cliente, aquele que recebe conexões do Director e provê a este os arquivos de backup referente aos conjuntos de arquivos configurados. </span>

<span style="font-weight: 400;">Adicionalmente, há o **Console**, que é um componente utilizado para acessar configurações, verificar status e fazer alterações nos parâmetros do servidor via linha de comando, mas que não será abordado neste escopo.  
</span>

<span style="font-weight: 400;">**Estes procedimentos devem ser realizados na interface web do servidor, usando um usuário com permissões suficientes.**</span>

## <span style="font-weight: 400;">4. Templates para os componentes  
</span>

<span style="font-weight: 400;">Conforme a seção anterior, o Bareos e o Bacula são divididos em componentes, sendo necessário um template específico para o monitoramento de cada um deles.  
</span>

#### <span style="font-weight: 400;">4.1. Template para o agente (bareos-fd ou bacula-fd)</span>

<span style="text-decoration: underline;"><span style="font-weight: 400;">Itens monitorados</span></span>

<span style="font-weight: 400;">Utilizando este template as seguintes perguntas poderão ser respondidas:  
</span>

- <span style="font-weight: 400;">É possível, a partir de uma máquina da rede, se conectar a porta do *bacula-fd* no computador cliente?  
    </span>
- <span style="font-weight: 400;">O *bacula-fd* está escutando na sua respectiva porta no computador cliente?</span>
- <span style="font-weight: 400;">Quantos processos do *bacula-fd* estão executando no computador cliente?</span>

<span style="text-decoration: underline;"><span style="font-weight: 400;">Pré requisitos:</span></span>

<span style="font-weight: 400;">Ter instalado, no dispositivo a ser monitorado, os seguintes softwares:</span>

- <span style="font-weight: 400;">zabbix-agent</span>
- <span style="font-weight: 400;">bacula-fd</span>

<span style="text-decoration: underline;"><span style="font-weight: 400;">Procedimento a ser realizado na máquina monitorada:</span></span> **Nenhum procedimento necessário**<span style="text-decoration: underline;"><span style="font-weight: 400;">  
</span></span>

<span style="font-weight: 400;"><span style="text-decoration: underline;">Procedimento a ser realizado na interface web do Zabbix:</span> **Nenhum procedimento necessário** </span>

1. <span style="font-weight: 400;">Importar o arquivo XML do template (listado a seguir)</span>
2. <span style="font-weight: 400;">Adicionar o template ao host monitorado</span>

<span style="font-weight: 400;"><span style="text-decoration: underline;">Arquivo XML do template:</span> [Última versão do template do cliente](https://wiki.ifpe.edu.br/books/tecnologia-da-informa%C3%A7%C3%A3o-redes/page/templates-em-xml#bkmrk-bacula-cliente-atual "templates-em-xml")</span>

#### <span style="font-weight: 400;">4.2. Template para o storage (bareos-sd ou bacula-sd)</span>

<span style="text-decoration: underline;"><span style="font-weight: 400;">Itens monitorados</span></span>

<span style="font-weight: 400;">Utilizando este template as seguintes perguntas poderão ser respondidas:  
</span>

- <span style="font-weight: 400;">É possível, a partir de uma máquina da rede, se conectar a porta do *bacula-sd* no servidor?  
    </span>
- <span style="font-weight: 400;">O *bacula-sd* está escutando na sua respectiva porta no servidor?</span>
- <span style="font-weight: 400;">Quantos processos do *bacula-sd* estão executando no servidor?</span>

<span style="text-decoration: underline;"><span style="font-weight: 400;">Pré requisitos:</span></span>

<span style="font-weight: 400;">Ter instalado, no dispositivo a ser monitorado, os seguintes softwares:</span>

- <span style="font-weight: 400;">zabbix-agent</span>
- <span style="font-weight: 400;">bacula-sd</span>

<span style="text-decoration: underline;"><span style="font-weight: 400;">Procedimento a ser realizado na máquina monitorada:</span></span> **Nenhum procedimento necessário**<span style="text-decoration: underline;"><span style="font-weight: 400;">  
</span></span>

<span style="font-weight: 400;"><span style="text-decoration: underline;">Procedimento a ser realizado na interface web do Zabbix:</span> **Nenhum procedimento necessário** </span>

1. <span style="font-weight: 400;">Importar o arquivo XML do template (listado a seguir)</span>
2. <span style="font-weight: 400;">Adicionar o template ao host monitorado</span>

<span style="font-weight: 400;"><span style="text-decoration: underline;">Arquivo XML do template:</span> [Última versão do template do storage](https://wiki.ifpe.edu.br/books/tecnologia-da-informa%C3%A7%C3%A3o-redes/page/templates-em-xml#bkmrk-bacula-storage-atual "templates-em-xml")</span>

#### <span style="font-weight: 400;">4.3. Template para o director (bareos-dir ou bacula-dir)</span>

<span style="text-decoration: underline;"><span style="font-weight: 400;">Itens monitorados</span></span>

<span style="font-weight: 400;">Utilizando este template as seguintes perguntas poderão ser respondidas:  
</span>

- <span style="font-weight: 400;">É possível, a partir de uma máquina da rede, se conectar a porta do *bacula-dir* no servidor?  
    </span>
- <span style="font-weight: 400;">O *bacula-dir* está escutando na sua respectiva porta no servidor?</span>
- <span style="font-weight: 400;">Quantos processos do *bacula-dir* estão executando no servidor?</span>
- <span style="font-weight: 400;">Qual o status, a duração e o tamanho do último backup incremental?</span>
- <span style="font-weight: 400;">Qual o status, a duração e o tamanho do último backup diferencial?</span>
- <span style="font-weight: 400;">Qual o status, a duração e o tamanho do último completo?</span>
- Quanto tempo se passou desde a última execução de cada job?

<span style="text-decoration: underline;"><span style="font-weight: 400;">Pré requisitos:</span></span>

<span style="font-weight: 400;">Ter instalado, no dispositivo a ser monitorado, os seguintes softwares:</span>

- <span style="font-weight: 400;">zabbix-agent</span>
- <span style="font-weight: 400;">bacula-dir</span>

<span style="text-decoration: underline;"><span style="font-weight: 400;">Procedimento a ser realizado na máquina monitorada:</span></span>

1. Criar um diretório para o script de monitoramento e o de descoberta dos jobs de backup
2. Fazer download do script de monitoramento e o de descoberta dos jobs de backup para o diretório criado
3. Ajustar os parâmetros de usuário para refletir a localização dos scripts, caso necessário
4. Verificar a necessidade de configurações adicionais como o uso do sudo e permissões de execução dos scripts<span style="text-decoration: underline;"><span style="font-weight: 400;">  
    </span></span>

<span style="font-weight: 400;"><span style="text-decoration: underline;">Procedimento a ser realizado na interface web do Zabbix**:**</span></span>

1. <span style="font-weight: 400;">Importar o arquivo XML do template (listado a seguir)</span>
2. <span style="font-weight: 400;">Adicionar o template ao host monitorado</span>

<span style="font-weight: 400;"><span style="text-decoration: underline;">Arquivos do template:</span> [Última versão do template do director](https://wiki.ifpe.edu.br/books/tecnologia-da-informa%C3%A7%C3%A3o-redes/page/templates-em-xml#bkmrk-bacula-director-atual "templates-em-xml")</span>

# Questões e dicas

Capítulo destinado a mostrar soluções conhecidas, de forma compacta, para alguns problemas encontrados no dia a dia do suporte às redes de computadores

# Cliente: SSSD

### Situações frequentes

---

**001. Não é possível fazer login usando as credenciais do domínio quando o SSSD é utilizado**

<p class="callout warning"><span style="font-weight: 400;">Verifique sempre a conectividade, especialmente a qualidade do link e o firewall do lado do cliente e do servidor antes de realizar o procedimento a seguir  
</span></p>

<span style="font-weight: 400;">A conexão iniciada pelo SSSD pode ser incapaz de recuperar os dados necessários para a autenticação do usuário quando o ticket kerberos da máquina expira. É possível verificar se isso acontece ao executar o seguinte comando:  
</span>

```shell
systemctl status sssd
```

<span style="font-weight: 400;">Observe se a saída do comando contém o padrão indicado a seguir:  
</span>

```Nginx
mar 21 13:26:44 hostname-da-maquina [sssd[krb5_child[46811]: Ticket expired
mar 21 13:27:56 hostname-da-maquina [sssd[krb5_child[46818]: Ticket expired
mar 21 13:29:05 hostname-da-maquina [sssd[krb5_child[46824]: Ticket expired
```

<span style="font-weight: 400;">Havendo a confirmação do problema, execute os comandos (como usuário *root*) para que um novo ticket seja obtido:  
</span>

```shell
service sssd stop;
rm -rf /var/lib/sss/db/* /var/lib/sss/mc/*;
service sssd start
```

# Servidores: BareOS/Bacula

### Situações frequentes

---

**001. Alterei o tamanho máximo dos volumes na definição do pool, mas o limite antigo continua a ser aplicado ao realizar o backup.**

<span style="font-weight: 400;">Apesar do novo valor ter sido configurado corretamente, ele não irá funcionar para os volumes já criados, os quais precisam ser atualizados manualmente.</span>

<span style="font-weight: 400;">No shell, abra o console do BareOS/Bacula  
</span>

```shell
bconsole
```

Para cada volume a ser atualizado, digite:

```shell
update volume=Vol001-Pool001 maxvolbytes=200G
```

Neste exemplo, o tamanho máximo do volume "*Vol001-Pool001*" foi alterado para 200 GB

# Servidores: Samba

### Situações frequentes

---

**001. Criei uma GPO para ativar a Assistência Remota do Windows mas não consigo conectar aos clientes.**

<span style="font-weight: 400;">Apesar da Política de Grupo ter sido configurada corretamente, a Assistência Remota não irá funcionar perfeitamente devido a uma incompatibilidade da interface U2U do Kerberos usado para a autenticação do referido recurso do Windows.</span>

<span style="font-weight: 400;">Para a execução com sucesso, é preciso:</span>

- <span style="font-weight: 400;">No Windows: Aplicar um hotfix disponível em </span>[<span style="font-weight: 400;">neste link.</span>](https://support.microsoft.com/en-us/kb/939820)
- <span style="font-weight: 400;">No Samba, definir um Service Principal Name (SPN) para o usuário que vai receber a assistência.</span>

<span style="font-weight: 400;">Para que não seja necessário adicionar um SPN manualmente a cada usuário existente, crie um script com o conteúdo abaixo e execute. Adicionalmente, sua execução pode ser agendada no cron.</span>

```shell
#!/bin/bash

filterString="k/|G/|Ad"
sambaTool=$(which samba-tool)
searchString="has no service"
user=""

# Loop para descobrir os usuários
for user in $( ${sambaTool} user list | grep -v "^[${filterString}]" )
do
 # Procura um SPN configurado para o usuário
 ${sambaTool} spn list "${user}" | grep "${searchString}"
 
 # Se o retorno for zero, não possui um SPN configurado
 if [ $? == 0 ]
 then
 
   # Define um SPN. Ex: se o usuário for "teste", será definido "spn-teste"
   ${sambaTool} spn add spn-"${user}" "${user}"
   
   # Avisa sobre a definição
   echo "Um SPN foi definido para o usuário ${user}"
 else
   : 
 fi

done
```

# Servidores: SSH

### Situações frequentes

---

**001. A senha demora a ser solicitada quanto um acesso SSH é realizado**

<p class="callout warning"><span style="font-weight: 400;">Verifique sempre a conectividade, especialmente a qualidade do link e o firewall do lado do cliente e do servidor antes de realizar o procedimento a seguir  
</span></p>

<span style="font-weight: 400;">As conexões a servidores via SSH podem sofrer atrasos enquanto o servidor e o cliente tentam acordar se será utilizado o GSSAPI como método de autenticação. É possível verificar se isso acontece ao executar o seguinte comando:  
</span>

```shell
ssh -vvv <ip do servidor>
```

<span style="font-weight: 400;">Se houver uma demora até a senha ser solicitada e existirem menções como "*Unspecified GSS failure*" ou "*No Kerberos credentials available*", desabilitar a GSSAPI pode ajudar a tornar o processo mais rápido.</span>

<span style="font-weight: 400;">Para desabilitar a autenticação com GSSAPI, execute os comandos como *root*:</span>

```shell
sed -i '/GSSAPIAuthentication/s/^#//g' /etc/ssh/sshd_config
sed -i '/^GSSAPIAuthentication/s/yes/no/' /etc/ssh/sshd_config
systemctl reload sshd
```

# Sistema: Discos e partições

### Situações frequentes

---

**001. Adicionei um novo disco a um computador ou máquina virtual e ele não aparece para uso.**

<span style="text-decoration: underline;">Se o computador executar o sistema operacional Windows, será necessário reiniciá-lo.</span>

<span style="text-decoration: underline;">Se o computador executar sistemas operacionais Linux</span>

Como root, realize o seguinte procedimento para que o novo disco seja detectado sem a necessidade de reiniciar:

1\. Descubra as interfaces dos adaptadores SCSI:

`ls /sys/class/scsi_host`

Anote a saída do comando. Ela deve ser parecida com: `<span style="color: #33cccc;">host0 host1</span>`.

2\. Execute o comando para cada adaptador :

`echo "- - -" > /sys/class/scsi_host/<span style="color: #33cccc;">host0</span>/scan`

`echo "- - -" > /sys/class/scsi_host/<span style="color: #33cccc;">host1</span>/scan`

---

**002. Aumentei o tamanho de um disco já existente numa máquina virtual linux e o tamanho não foi atualizado.**

Para que o sistema detecte o novo tamanho do disco sem a necessidade de reiniciar a máquina, realize o seguinte procedimento:

<span style="text-decoration: underline;">Se o computador executar o sistema operacional Windows:</span>

Na tela do **Gerenciamento do Computador**, clique com o botão direito em **Gerenciamento de Disco** e clique em **Reescanear Discos.**

OBS: Observe que o procedimento é suportado a partir do Windows Server 2008 e Windows 7

<span style="text-decoration: underline;">Se o computador executar sistemas operacionais Linux:</span>

1\. Como root, execute o comando para o disco que teve o tamanho alterado. Nesse exemplo, trata-se do disco <span style="color: #33cccc;">/dev/sda</span>:

`echo 1 > /sys/block/<span style="color: #33cccc;">sda</span>/device/rescan`

Nota: Se o tamanho não foi atualizado, tente novamente depois de realizar os passos da pergunta 001.

# Sistema: Rede

### Situações Frequentes

---

**001. Como desativar o IPv6 no Linux?**

Como root, execute os seguintes comandos:

```
echo "net.ipv6.conf.all.disable_ipv6=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6=1" >> /etc/sysctl.conf
sysctl -p
```

 Será necessário reiniciar o serviço da rede para que a alteração entre em vigor.

---

# Redes Virtuais Privadas

Capítulo destinado a receber tutoriais diversos relacionados a criação de VPNs, assim como ao acesso.

# Configuração da VPN L2TP/IPsec num desktop Windows

## 1. Introdução

<span style="font-weight: 400;">Uma Rede Virtual Privada, ou VPN, possibilita a criação de um canal de comunicação seguro, usando técnicas de criptografia e autenticação, permitindo assim a troca confiável de dados sobre redes públicas. </span><span style="font-weight: 400;">Quando você conecta o seu dispositivo a uma VPN, ele age como se estivesse na mesma rede do sistema ao qual deseja se conectar e todo o tráfego de dados é enviado de forma segura por meio do canal criptografado.</span>

<span style="font-weight: 400;">Este documento visa a orientar a configuração de uma VPN do tipo acesso remoto, utilizando IPsec e L2TP.</span>

<span style="font-weight: 400;">Observe que todos os passos são obrigatórios.</span>

## 2. Obtendo os dados

**Certifique-se de que possui os dados necessários para configurar a VPN**. Esses dados **devem ter sido enviados pelo departamento de TI**, que pode ser o DGTI ou CGTI ou mesmo DADT, dependendo do Campus no qual é lotado.

### Dados da VPN

Confira se nos dados repassados a você existem os seguintes itens:

- endereço IP do servidor
- nome da conexão
- usuário
- senha
- chave PSK

<p class="callout info">Caso não possua os dados ou estejam incompletos, entre em contato com o departamento de TI do seu campus.</p>

### Dados do computador cliente

<span style="font-weight: 400;">Certifique-se de saber qual Sistema Operacional é utilizado no seu desktop ou notebook no qual deseja conectar à VPN. Neste tutorial são abordados o **Windows 7** e **Windows 10**, somente.</span>

<p class="callout info">Caso deseje configurar o acesso à VPN em um sistema operacional diferentes dos abordados aqui, entre em contato com o departamento de TI do seu campus.</p>

## 3. Configurando o acesso

<span style="font-weight: 400;">Clique no Sistema Operacional que é utilizado no seu desktop ou notebook no qual deseja conectar à VPN.</span>

##### [ Configurando o acesso no Windows 7](#bkmrk-windows7 "Configurando o acesso no Windows 7")

#####  [Configurando o acesso no Windows 10](#bkmrk-windows10 "Configurando o acesso no Windows 10")

### 3.1. Configurando o acesso no Windows 7

**Para configurar a conexão no sistema operacional Windows 7, siga os passos a seguir.**

3.1.<span style="font-weight: 400;">1. Clique com o **botão direito** do mouse no ícone de rede na bandeja da barra de tarefas \[1\] e depois em "</span>**Abrir central de rede e compartilhamento**<span style="font-weight: 400;">"\[2\]. </span>

<div drawio-diagram="213"><img src="https://wiki.ifpe.edu.br/uploads/images/drawio/2018-10-Oct/Drawing-Paulo-Fernando-da-Silva-Martins-1540988188.png" alt=""/></div>

3.1.<span style="font-weight: 400;">2. Clique em "**Configurar nova conexão ou rede**".</span>

<div drawio-diagram="212"><img src="https://wiki.ifpe.edu.br/uploads/images/drawio/2018-10-Oct/Drawing-Paulo-Fernando-da-Silva-Martins-1540987943.png" alt=""/></div>

<span style="font-weight: 400;">3.1.3. Selecione "</span>**Conectar a um local de trabalho**<span style="font-weight: 400;">" \[1\] e clique em "</span>**Avançar**<span style="font-weight: 400;">" \[2\].  
</span>

<div drawio-diagram="214"><img src="https://wiki.ifpe.edu.br/uploads/images/drawio/2018-10-Oct/Drawing-Paulo-Fernando-da-Silva-Martins-1540988770.png" alt=""/></div>

3.1.<span style="font-weight: 400;">4. Clique em "</span>**Usar a minha conexão com a Internet (VPN)**<span style="font-weight: 400;">".</span>

<div drawio-diagram="215"><img src="https://wiki.ifpe.edu.br/uploads/images/drawio/2018-10-Oct/Drawing-Paulo-Fernando-da-Silva-Martins-1540989055.png" alt=""/></div>

<p class="callout info"><span style="text-decoration: underline;"> </span>***Nesse momento, certifique-se de ter à mão os dados recebidos da equipe de TI.***</p>

 3.1.<span style="font-weight: 400;">5. Coloque o </span><span style="text-decoration: underline;">*<span style="font-weight: 400;">endereço IP do servidor</span>*</span><span style="font-weight: 400;"> que você recebeu como "</span>**Endereço na Internet**<span style="font-weight: 400;">" \[1\] e o </span><span style="text-decoration: underline;">*<span style="font-weight: 400;">nome da conexão</span>*</span><span style="font-weight: 400;"> em "</span>**Nome do destino**<span style="font-weight: 400;">" \[2\]. Marque a opção "**Não conectar agora. Apenas configurar...**" \[3\] e clique em "**Avançar**" \[4\].  
</span>

<div drawio-diagram="216"><img src="https://wiki.ifpe.edu.br/uploads/images/drawio/2018-10-Oct/Drawing-Paulo-Fernando-da-Silva-Martins-1540990002.png" alt=""/></div>

<span style="font-weight: 400;">3.1.6. Insira o </span><span style="text-decoration: underline;">*<span style="font-weight: 400;">usuário e senha</span>*</span><span style="font-weight: 400;"> recebidos nos campos “</span>**Nome de usuário**<span style="font-weight: 400;">” \[1\] e “</span>**Senha**<span style="font-weight: 400;">” \[2\], respectivamente. </span><span style="font-weight: 400;">Marque a opção "</span>**Lembrar esta senha**<span style="font-weight: 400;">" \[3\] e clique em "</span>**Criar**<span style="font-weight: 400;">" \[4\].</span>

<div drawio-diagram="217"><img src="https://wiki.ifpe.edu.br/uploads/images/drawio/2018-10-Oct/Drawing-Paulo-Fernando-da-Silva-Martins-1540991638.png" alt=""/></div>

<span style="font-weight: 400;">3.1.7. Clique em “**Fechar**” </span>

<div drawio-diagram="218"><img src="https://wiki.ifpe.edu.br/uploads/images/drawio/2018-10-Oct/Drawing-Paulo-Fernando-da-Silva-Martins-1540992192.png" alt=""/></div>

<span style="font-weight: 400;">3.1.8. Abra a central de rede e compartilhamento (conforme descrito no passo nº 1) e clique em "</span>**Alterar as configurações do adaptador**<span style="font-weight: 400;">". </span>

<div drawio-diagram="219"><img src="https://wiki.ifpe.edu.br/uploads/images/drawio/2018-10-Oct/Drawing-Paulo-Fernando-da-Silva-Martins-1540992326.png" alt=""/></div>

<span style="font-weight: 400;">3.1.9.</span> <span style="font-weight: 400;">**Clique com o botão direito do mouse no adaptador de rede VPN** (ele terá o mesmo nome do item </span><span style="text-decoration: underline;">*<span style="font-weight: 400;">nome da conexão</span>*</span><span style="font-weight: 400;">) \[1\] e então clique em "</span>**Propriedades**<span style="font-weight: 400;">" \[2\]. </span>

<div drawio-diagram="220"><img src="https://wiki.ifpe.edu.br/uploads/images/drawio/2018-10-Oct/Drawing-Paulo-Fernando-da-Silva-Martins-1540992492.png" alt=""/></div>

<span style="font-weight: 400;">3.1.10. </span><span style="font-weight: 400;">Mude para a aba "</span>**Segurança**<span style="font-weight: 400;">" \[1\]. </span>

<span style="font-weight: 400;">3.1.10.1. Selecione o tipo de VPN "</span>***Protocolo de Túnel de Camada 2 com IPsec (L2TP/IPsec)***<span style="font-weight: 400;">" \[2\]. </span><span style="font-weight: 400;">Clique em “</span>**Permitir estes protocolos**<span style="font-weight: 400;">” \[3\] e então marque </span><span style="font-weight: 400;">somente</span><span style="font-weight: 400;"> a opção “</span>**Microsoft CHAP Versão 2 (MS-CHAP v2)**<span style="font-weight: 400;">” \[4\].  
</span>

<span style="font-weight: 400;">3.1.10.2. clique em "</span>**Configurações avançadas**<span style="font-weight: 400;">" \[5\].</span>

<div drawio-diagram="221"><img src="https://wiki.ifpe.edu.br/uploads/images/drawio/2018-10-Oct/Drawing-Paulo-Fernando-da-Silva-Martins-1540993071.png?updated=1540993727830" alt=""/></div>

<span style="font-weight: 400;">3.1.10.3. Escolha "</span>**Usar chave pré-partilhada para autenticação**<span style="font-weight: 400;">" \[1\]. Em “</span>**Chave**<span style="font-weight: 400;">” \[2\], insira o valor do item “</span>*<span style="font-weight: 400;">chave PSK</span>*<span style="font-weight: 400;">” nos dados que você recebeu. Finalmente, clique em “</span>**Ok**<span style="font-weight: 400;">" \[3\] duas vezes.  
</span>

<div drawio-diagram="222"><img src="https://wiki.ifpe.edu.br/uploads/images/drawio/2018-10-Oct/Drawing-Paulo-Fernando-da-Silva-Martins-1540993974.png?updated=1540994273390" alt=""/></div>

3.1.<span style="font-weight: 400;">11. </span>**<span style="font-weight: 400;">Clique com o **botão esquerdo** do mouse no ícone de rede na </span>**<span style="font-weight: 400;">bandeja da barra de tarefas \[1\], </span>**selecione a conexão VPN**<span style="font-weight: 400;"> (ele terá o mesmo nome do item <span style="text-decoration: underline;">*nome da conexão*</span>) \[2\] e clique em "</span>**Conectar**<span style="font-weight: 400;">" \[3\]. Na tela que será aberta, clique novamente em "**Conectar**".</span>

<div drawio-diagram="224"><img src="https://wiki.ifpe.edu.br/uploads/images/drawio/2018-10-Oct/Drawing-Paulo-Fernando-da-Silva-Martins-1540995457.png" alt=""/></div>

3.1.<span style="font-weight: 400;">12. **Clique com o botão esquerdo do mouse no ícone de rede na** bandeja da barra de tarefas. </span><span style="font-weight: 400;">Se a conexão for estabelecida com sucesso, irá aparecer "Conectado".</span>

### 3.2. Configurando o acesso no Windows 10

**No momento, estamos escrevendo os passos necessários. Se for necessário realizar a configuração com o Windows 10, entre em contato com o departamento de TI do seu campus.**

# Habilitando a VPN do cliente no Cloudstack

## 1. Introdução

<span style="font-weight: 400;">Uma Rede Virtual Privada, ou VPN, possibilita a criação de um canal de comunicação seguro, usando técnicas de criptografia e autenticação, permitindo assim a troca confiável de dados sobre redes públicas. </span><span style="font-weight: 400;">Quando você conecta o seu dispositivo a uma VPN, ele age como se estivesse na mesma rede do sistema ao qual deseja se conectar e todo o tráfego de dados é enviado de forma segura por meio do canal criptografado.</span>

<span style="font-weight: 400;">Este documento visa a orientar a configuração de uma VPN do tipo acesso remoto, utilizando IPsec e L2TP.</span>

<span style="font-weight: 400;">Observe que todos os passos são obrigatórios.</span>

## 2. Obtendo os dados

**Certifique-se de que possui os dados necessários para configurar a VPN**. Para este roteiro, os seguintes dados serão necessários:

- Acesso a interface Web do CDC

## 3. Configurando o acesso do usuário

<span style="font-weight: 400;">Primeiro, abra um navegador da web, acesse [https://compute.rnp.br](https://compute.rnp.br,), faça login.</span>

<span style="font-weight: 400;">Na superior esquerda, escolha o projeto então clique em "**Network**". </span><span style="font-weight: 400;">Na tela que se abre, em "**Select view**" , escolha "**VPN Users**"  
</span>

<span style="font-weight: 400;">Na tela que se abre, clique "**Add User**" e preencha os campos solicitados (<span style="text-decoration: underline;">*verifique observação*</span>). Clique em "**Ok**"  
</span>

<p class="callout info"><span style="font-weight: 400;">Se o usuário da VPN a ser criado tiver uma conta de acesso ao CDC, escolha o campo "Domain". Ao fazer isso, surgirá um novo campo, chamado "Account". Nele preencha a conta do usuário (por exemplo "paulo.jose@here.br")</span></p>

### 3.1. Obtendo o IP e a chave PSK para a VPN

<span style="font-weight: 400;">No mesmo projeto escolhido no passo anterior, clique em "**Network**". </span><span style="font-weight: 400;">Na tela que se abre, em "**Select view**" , escolha "**VPC**".  
</span>

<span style="font-weight: 400;">Na tela que se abre, no VPC desejado, clique em "**Configure**". Em "**Router**", clique em "**PUBLIC IP ADDRESSES**" e será exibida uma lista com todos os IPs que estão sendo utilizados.</span>

<span style="font-weight: 400;">Clique no IP que tem a sinalização "**\[Source NAT\]**", na tela que se abre, clique em "**VPN**". Serão exibidas as informações sobre a VPN, as quais serão necessárias para a configuração do cliente. </span>

# Serviços de domínio

Capítulo destinado  aos softwares provedores de serviços de domínio, como Samba e MS AD Directory Services

# Cliente: Configuração do SSSD (controlador de domínio Samba4)

### 1. Introdução

<span style="color: #444444; font-family: 'Open Sans', Arial, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">O System Security Services Daemon é um pacote de software originalmente desenvolvido para o sistema operacional Linux que fornece um conjunto de daemons para gerenciar o acesso a diretórios remotos e mecanismos de autenticação. Funciona como um agregado de daemons que gerenciam mecanismos de autenticação remota, assim como serviços de diretórios que manipula diretamente o PAM e o NSS.</span>

### 2. Obtendo os dados

Para que a configuração seja realizada com sucesso, **certifique-se de:**

- Ter acesso administrativo ao computador no qual o SSSD será instalado
- Saber a distribuição linux utilizada no computador no qual o SSSD será instalado
- Saber o nome do domínio
- Saber o(s) endereço(s) IP do(s) controlador(es) do domínio
- Possuir um arquivo com o certificado da CA utilizada pelo servidor
- Possuir os dados de usuário e senha utilizados pelo SSSD

### 3. Executando a configuração

Instale os pacotes necessários para o funcionamento do serviço do SSSD. A lista varia conforme a distribuição.

##### 3.1. Instalação dos pacotes

**3.1.a. No Debian/Ubuntu:**

```shell
apt install -y sudo cracklib-runtime ldap-utils libbasicobjects0 libc-ares2 libcollection4 \
 libcrack2 libdhash1 libini-config5 libipa-hbac0 libldap-common libnl-3-200 libnl-route-3-200 \
 libldb1 libnspr4 libnss-sss libntdb1 libopts25 libpwquality-common libpwquality1 libpam-pwquality \
 libpath-utils1 libpam-sss libsss-sudo libpython2.7 libref-array1 libsasl2-modules-gssapi-mit \
 libnss3 libsss-idmap0 libtalloc2 libtdb1 libtevent0 libwbclient0 ntp python-sss python-talloc \
 samba-libs sssd sssd-ad sssd-ad-common sssd-common sssd-ipa sssd-krb5 sssd-krb5-common sssd-ldap\
 sssd-proxy krb5-config krb5-user libgssrpc4
```

**3.1.b. No Centos:**

```shell
yum install -y sudo sssd ntp openldap sssd-ldap pam_ldap pam_krb5 krb5-workstation
```

##### 3.2. Configuração do sistema

**3.2.1. Configuração do DNS**

Para que os servidores utilizados por este serviço sejam resolvidos corretamente, defina as configurações de rede para **utilizar o IP do controlador de domínios como o servidor DNS primário do computador cliente** e o **nome do domínio ao qual o computador será ingressado no domínio a ser utilizado para buscas**.

Essa configuração pode ser realizada de formas diferentes. A forma recomendada difere de acordo com o sistemas operacional utilizado.

- No Debian/Ubuntu: Edite o arquivo **/etc/network/interfaces**
- No Centos: Utilize o comando `<em>nmtui</em>`

**3.2.2. Certificado da CA utilizado pelo samba**

A comunicação entre o cliente e o servidor samba utiliza TLS para proteger os dados. Utilizando esta técnica, o cliente usa um certificado para se autenticar com o servidor.

Crie o arquivo **/etc/ssl/private/sssd-ca.pem** contendo o certificado da CA utilizado pelo samba.

**3.2.3. Criação automática da pasta do usuário**

Uma vez que o SSSD tenha autenticado os usuários no domínio e tenham acesso ao sistema, a pasta do usuário não será criada automaticamente.

Para habilitar a criação automática da pasta do usuário, siga o procedimento:

**3.2.3.a. No Debian/Ubuntu**

Execute o seguinte comando no shell do computador

```shell
nano /etc/pam.d/common-session
```

Insira a linha a seguir após o primeiro bloco de comentários

<table id="bkmrk-session-required-pam" style="width: 812px;"><tbody><tr><td style="width: 810.5px;">session required pam\_mkhomedir.so skel=/etc/skel/ umask=0022

</td></tr></tbody></table>

**3.2.3.b. No Centos**

```shell
authconfig --update --enablesssd --enablesssdauth --enablemkhomedir
```

##### 3.3. Configuração do sudo

Execute o comando a seguir no shell do computador cliente:

<p class="callout warning">Neste exemplo, aos membros do grupo chamado "EXEMPLO\_SUDO", será permitido o uso do sudo. <span style="text-decoration: underline;">Substitua pelo grupo correto na hora da execução do comando</span></p>

```shell
echo '%EXEMPLO_SUDO ALL=(ALL) ALL' > /etc/sudoers.d/ldap_sudo_group
chmod 0600 /etc/sudoers.d/ldap_sudo_group
```

O item iniciado por um símbolo de percentual (%EXEMPLO\_SUDO) indica o nome do grupo que irá receber as permissões do sudo.

##### 3.4. Configuração do kerberos

Cabe ao kerberos garantir a troca de chaves, de forma segura, entre os computadores de uma rede que o utilize. Para tal, é necessário configurar o cliente para se comunicar aos provedores deste serviço.

Execute o comando a seguir no shell do computador cliente:

```shell
nano /etc/krb5.conf
```

Deixe o arquivo conforme mostrado a seguir.

<p class="callout warning">Neste exemplo, o nome do domínio utilizado foi "EXEMPLO.LOCAL". Altere o nome para o domínio correto.</p>

<p class="callout warning">Neste exemplo, o FQDN do servidor controlador de domínio utilizado foi "DC01.EXEMPLO.LOCAL". Altere o nome para o FQDN correto.</p>

<table id="bkmrk-%C2%A0-%5Blogging%5D-default" style="width: 812px; background-color: #f8f8f8;"><tbody><tr><td style="width: 778px;"><span style="font-weight: 400;">\[logging\]</span>

<span style="font-weight: 400;"> default = SYSLOG:NOTICE</span>

<span style="font-weight: 400;"> default = FILE:/var/log/krb5.log</span>

  
<span style="font-weight: 400;">\[libdefaults\]</span>

<span style="font-weight: 400;">default\_realm = DOMINIO.LOCAL</span>

  
<span style="font-weight: 400;">\# MIT Kerberos Variables.</span>

<span style="font-weight: 400;">krb5\_config = /etc/krb.conf</span>

<span style="font-weight: 400;">krb5\_realms = /etc/krb.realms</span>

<span style="font-weight: 400;">default\_keytab\_name = /etc/krb5.keytab</span>

  
<span style="font-weight: 400;">dns\_lookup\_kdc = no</span>

<span style="font-weight: 400;">dns\_lookup\_realm = no</span>

<span style="font-weight: 400;">ticket\_lifetime = 24h</span>

<span style="font-weight: 400;">kdc\_timesync = 1</span>

<span style="font-weight: 400;">ccache\_type = 4</span>

<span style="font-weight: 400;">forwardable = true</span>

<span style="font-weight: 400;">proxiable = true</span>

  
<span style="font-weight: 400;">\[realms\]</span>

<span style="font-weight: 400;"> DOMINIO.LOCAL= {</span>

<span style="font-weight: 400;"> </span><span style="font-weight: 400;">kdc = DC01.DOMINIO.LOCAL</span>

<span style="font-weight: 400;"> </span><span style="font-weight: 400;">admin\_server = DC01.DOMINIO.LOCAL  
</span>

<span style="font-weight: 400;"> </span><span style="font-weight: 400;">default\_domain = DOMINIO.LOCAL  
</span>

<span style="font-weight: 400;">}</span>

  
<span style="font-weight: 400;">\[domain\_realm\]</span>

<span style="font-weight: 400;">.ifpe.local = DOMINIO.LOCAL  
</span>

</td></tr></tbody></table>

##### 3.5. Configuração do SSSD

O SSSD é o serviço que realiza a autenticação em si, se apoiando na resolução de nomes e nas facilidades oferecidas pelo kerberos.

**3.5.1. O arquivo de configuração principal**

Execute o comando a seguir no shell do computador cliente:

```shell
touch /etc/sssd/sssd.conf
chmod 600 /etc/sssd/sssd.conf
nano /etc/sssd/sssd.conf
```

Deixe o arquivo conforme mostrado a seguir.

<p class="callout warning">Neste exemplo, o nome do domínio utilizado foi "EXEMPLO.LOCAL". Altere o nome para o domínio correto.</p>

<p class="callout warning">Neste exemplo, o FQDN do servidor controlador de domínio utilizado foi "DC01.EXEMPLO.LOCAL". Altere o nome para o FQDN correto.</p>

<p class="callout warning">Substitua "<span style="font-weight: 400;">CN=USUARIO\_SSSD,OU=SUB,DC=DOMINIO,DC=LOCAL</span>" e "<span style="font-weight: 400;">XXXXX\_SENHA\_DO\_SSSD\_XXXXX</span>" pelo CN e senha corretos</p>

<table id="bkmrk-%5Bsssd%5D-debug_level-%3D" style="width: 812px; background-color: #f8f8f8;"><tbody><tr><td style="width: 813.5px;"><span style="font-weight: 400;">\[sssd\]</span>

<span style="font-weight: 400;">debug\_level = 7</span>

<span style="font-weight: 400;">reconnection\_retries = 2</span>

  
<span style="font-weight: 400;">config\_file\_version = 2</span>

<span style="font-weight: 400;">sbus\_timeout = 10</span>

<span style="font-weight: 400;">services = nss,pam</span>

<span style="font-weight: 400;">domains = DOMINIO.LOCAL  
</span>

  
<span style="font-weight: 400;">\[nss\]</span>

<span style="font-weight: 400;">debug\_level = 7</span>

<span style="font-weight: 400;">reconnection\_retries = 2</span>

  
<span style="font-weight: 400;">filter\_users = root, daemon, bin, sys, sync, games, man, lp, mail, news, uucp, proxy</span>

<span style="font-weight: 400;">override\_homedir = /home/%u.%d</span>

<span style="font-weight: 400;">fallback\_homedir = /home/%u</span>

<span style="font-weight: 400;">default\_shell = /bin/bash</span>

  
<span style="font-weight: 400;">\[pam\]</span>

<span style="font-weight: 400;">debug\_level = 7</span>

<span style="font-weight: 400;">reconnection\_retries = 2</span>

  
<span style="font-weight: 400;">pam\_verbosity = 2</span>

<span style="font-weight: 400;">pam\_id\_timeout = 15</span>

  
<span style="font-weight: 400;">offline\_credentials\_expiration = 2</span>

<span style="font-weight: 400;">offline\_failed\_login\_attempts = 2</span>

<span style="font-weight: 400;">offline\_failed\_login\_delay = 2</span>

  
<span style="font-weight: 400;">\[domain/DOMINIO.LOCAL\]</span>

<span style="font-weight: 400;">debug\_level = 7</span>

<span style="font-weight: 400;">reconnection\_retries = 2</span>

  
<span style="font-weight: 400;">enumerate = False</span>

<span style="font-weight: 400;">cache\_credentials = True</span>

<span style="font-weight: 400;">entry\_cache\_timeout = 600</span>

  
<span style="font-weight: 400;">\# access\_provider = simple</span>

<span style="font-weight: 400;">access\_provider = ldap</span>

<span style="font-weight: 400;">auth\_provider = krb5</span>

<span style="font-weight: 400;">chpass\_provider = krb5</span>

<span style="font-weight: 400;">id\_provider = ldap</span>

  
<span style="font-weight: 400;">krb5\_server = DC01.DOMINIO.LOCAL  
</span>

<span style="font-weight: 400;">krb5\_realm = DOMINIO.LOCAL  
</span>

<span style="font-weight: 400;">krb5\_store\_password\_if\_offline = True</span>

<span style="font-weight: 400;">krb5\_kpasswd = DC01.DOMINIO.LOCAL  
</span>

<span style="font-weight: 400;">krb5\_renew\_interval = 30m</span>

<span style="font-weight: 400;">krb5\_renewable\_lifetime = 7d</span>

  
<span style="font-weight: 400;">ldap\_default\_bind\_dn = CN=USUARIO\_SSSD,OU=SUB,DC=DOMINIO,DC=LOCAL</span>

<span style="font-weight: 400;">ldap\_default\_authtok = XXXXX\_SENHA\_DO\_SSSD\_XXXXX</span>

<span style="font-weight: 400;">ldap\_group\_object\_class = group</span>

<span style="font-weight: 400;">ldap\_id\_mapping = True</span>

<span style="font-weight: 400;">ldap\_id\_use\_start\_tls = True</span>

<span style="font-weight: 400;">ldap\_network\_timeout = 5</span>

<span style="font-weight: 400;">ldap\_referrals = False</span>

<span style="font-weight: 400;">ldap\_schema = ad</span>

<span style="font-weight: 400;">ldap\_search\_base = DC=DOMINIO,DC=LOCAL  
</span>

<span style="font-weight: 400;">ldap\_sudo\_search\_base = DC=DOMINIO,DC=LOCAL  
</span>

<span style="font-weight: 400;">ldap\_tls\_reqcert = never</span>

<span style="font-weight: 400;">ldap\_tls\_cacert = /etc/ssl/private/sssd-ca.pem</span>

<span style="font-weight: 400;">ldap\_uri = ldaps://DC01.DOMINIO.LOCAL</span>

  
<span style="font-weight: 400;">ldap\_access\_order = expire</span>

<span style="font-weight: 400;">ldap\_account\_expire\_policy = ad</span>

<span style="font-weight: 400;">ldap\_user\_member\_of = memberOf</span>

<span style="font-weight: 400;">ldap\_user\_object\_class = user</span>

<span style="font-weight: 400;">ldap\_force\_upper\_case\_realm = True</span>

</td></tr></tbody></table>

**3.5.2. Controlando a execução do serviço**

```shell
systemctl enable sssd # Ativa o início automático do serviço após o boot
systemctl start sssd # Inicia o serviço imediatamente
```

# Solução para Reconhecimento Óptico de Caracteres (OCR)



# F.A.Q

Dúvidas frequentes

***Como adiciono um diretório além do CGTI para realização do OCR?***

<span style="font-weight: 400;">**Crie** o diretório em questão - recomenda-se seguir a estrutura atual, ou seja, </span>`<span style="font-weight: 400;">/srv/shares/novoSetor/ocr/</span>`<span style="font-weight: 400;"> - e **crie** o arquivo .watchmanconfig dentro de “entrada” com o texto </span><span style="font-weight: 400;">`{"settle": 10000}`. Como também **crie** os diretórios "saída" e "originais". </span><span style="font-weight: 400;">Após estas etapas, **rode o** </span><span style="font-weight: 400;">**comando** de criação das triggers</span><span style="font-weight: 400;">: Pronto, novo diretório para processamento OCR adicionado.</span>

---

***Como testar o OCR para um diretório que eu adicionei?***

<span style="font-weight: 400;">Apenas **copie/envie** o PDF para o servidor, </span>**fora do diretório .../ocr/entrada/**<span style="font-weight: 400;">. Então, logado no servidor via linha de comando, **copie** o PDF para dentro do diretório </span><span style="font-weight: 400;">.../ocr/entrada</span><span style="font-weight: 400;"> que você criou anteriormente. O PDF será processado normalmente. </span>

---

***Existe algum log da solução OCR?***

<span style="font-weight: 400;">O arquivo de LOG presente em `/var/log/ocr.log` indica o estado de cada arquivo quanto ao seu processamento.</span>

---

***Como sei que o OCR está instalado?***

<span style="font-weight: 400;">Rode o </span><span style="font-weight: 400;">comando: `ocrmypdf --version`</span>

Deve aparecer um resultado similiar a: `5.7.0`

Mensagens de comando não encontrado indicarão um problema na sua instalação, portanto, revise todas as etapas antes de continuar.

---

***Como sei que o PDF está sendo processado no servidor?***

<span style="font-weight: 400;">O último estado no LOG para o arquivo em questão deve ser "Processando". Além disso, por meio do comando </span>`<span style="font-weight: 400;">top</span>`<span style="font-weight: 400;">, você deverá ver linha(s) com a execução de </span><span style="font-weight: 400;">`gs`, `tesseract` ou `ocrmypdf`</span><span style="font-weight: 400;">. Isto indica que um ou mais arquivos estão sendo processados.</span>

---

***Por que o processamento demora tanto em arquivos grandes?***

<span style="font-weight: 400;">Quanto maior o número de páginas ou características do documento escaneado, maior o tempo necessário para o processamento.</span>

---

***Existe alguma maneira de acelerar o processamento do PDF?***

<span style="font-weight: 400;">Incrementando a quantidade de cores e memória principal da sua VM é possível processar os arquivos PDFs em menor tempo.</span>

---

***O arquivo está recebido pela solução OCR mas não está sendo processado, o que pode estar acontecendo?***

<span style="font-weight: 400;">O watchman pode não estar ativo. Caso isso ocorra, rode o comando </span>`<span style="font-weight: 400;">watchman watch-list</span>`<span style="font-weight: 400;"> e observe se os processamentos foram iniciados no log da solução OCR. Caso não haja entradas no log, verifique o log do watchman: </span>

`<span style="font-weight: 400;">$ tail -f /usr/local/var/run/watchman/root-state/log</span><span style="font-weight: 400;">.</span>`

Mensagens de erro podem ser consultadas no Google para dúvidas.

<span style="font-weight: 400;">Caso o watchman esteja OK e ainda haja problemas para processar o arquivo, verifique se existe disco e memória suficientes para realizar esta operação. </span>

---

***Ao mover um arquivo PDF de dentro do próprio servidor, o OCR funciona. Mas enviando do meu usuário via rede (samba, sftp, outro meio) o OCR não acontece, o que posso verificar?***

<span style="font-weight: 400;">Problemas de permissão local. Siga as políticas definidas para o acesso aos diretórios e certifique-se de que ao enviar o PDF via rede, as permissões estejam adequadas e ajustadas para atender a sua política adotada no campus. </span>

<span style="font-weight: 400;">Adicionalmente, alguns softwares de envio de arquivos, ou mesmos os servidores de arquivos, possuem mecanismos para ajustar as permissões padrão para novos arquivos enviados.</span>

# Instalação da solução OCR

### 1. Introdução

<span style="font-weight: 400;">Este documento visa a orientação para a instalação da solução OCR a ser utilizada no Instituto Federal de Pernambuco para reconhecimento óptico de caracteres em documentos digitalizados. Tal tecnologia permite a busca, indexação de arquivos PDF, como também assistência a deficientes visuais por meio de softwares assistivos.</span>

<span style="font-weight: 400;">Este documento está estruturado como se segue. A seção 2 descreve as características dos softwares utilizados para a solução, na seção 3 demonstra-se os procedimentos de instalação do OCRmyPDF e demais softwares. A seção 4 apresenta as configurações/modificações necessárias para o funcionamento do sistema, incluindo a configuração da impressora caso a TI opte por esta solução. Na seção 5 é demonstrado o uso da solução, e, finalmente, na seção 6 são apresentadas as referências utilizadas.</span>

#### <span style="color: #555555;">Características</span>

- <span style="font-weight: 400;">Processamento OCR;</span>
- <span style="font-weight: 400;">Texto em língua portuguesa do Brasil;</span>
- <span style="font-weight: 400;">Arquivos com saída PDF do tipo PDF/A-1b;</span>
- <span style="font-weight: 400;">Possibilidade de monitoramento de um ou mais diretórios de entrada;</span>
- <span style="font-weight: 400;">Processamento de PDFs mistos (com texto digital e texto escaneado);</span>
- <span style="font-weight: 400;">Processamento de documentos grandes (&gt; 50 pag.);</span>
- <span style="font-weight: 400;">Manutenção dos arquivos PDF originais;</span>
- <span style="font-weight: 400;">Log para registro do processamento da solução OCR.</span>

###  2. Softwares utilizados

<p class="callout info"> <span class="c1">O sistema operacional recomendado é o </span>**<span class="c1 c5">Debian</span>**<span class="c1"> a partir da </span>**<span class="c1 c5">versão 9</span>**<span class="c3 c1">.</span></p>

#### <span style="color: #555555;">OCRmyPDF</span>

<span style="font-weight: 400;">O OCRmyPDF realiza a leitura de documentos escaneados em PDF e permite o reconhecimento do seu texto. Assim, podendo ser buscado e indexado. Além disso, os documentos são automaticamente gerados em formato </span><span style="font-weight: 400;">PDF/A, para arquivamento de longo prazo de documentos eletrônicos. O OCRmyPDF gera documentos no formato PDF/A-1b e PDF/A-2b.</span>

#### <span style="color: #555555;">Watchman</span> 

<span style="font-weight: 400;">O Watchman permite monitorar determinado(s) diretório(s) com o objetivo de realizar operações quando os arquivos são modificados. É possível filtrar os tipos de arquivos com base no nome, tipo, dentre outras características. </span>

<span style="font-weight: 400;">Como o OCRmyPDF não funciona com base no esquema de cliente-servidor até o presente momento, é necessário um software como o Watchman para monitorar determinadas entradas e disparar comandos para executar o processamento dos arquivos inseridos ou modificados.</span>

<span style="font-weight: 400;">Na imagem seguinte, uma demonstração do fluxo de operação de todo o sistema caso a TI local opte pelo uso de um servidor de arquivos como o Samba.</span>

<span style="font-weight: 400;">[![OCR-com-SMB.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-03-Mar/scaled-840-0/OCR-com-SMB.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-03-Mar/OCR-com-SMB.png)</span>

<span style="font-weight: 400;">Na imagem seguinte, uma demonstração do fluxo de operação de todo o sistema caso a TI local opte pelo uso de um servidor de SFTP.</span>

<span style="font-weight: 400;">[![OCR-com-SFTP.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-03-Mar/scaled-840-0/OCR-com-SFTP.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-03-Mar/OCR-com-SFTP.png)</span>

---

![](https://wiki.ifpe.edu.br/images/image10.png)<span style="font-weight: 400;">O método de envio do arquivo para a pasta de entrada não está no escopo desta solução.</span>

#### Vozes NextUp-ScanSoft 

**Se desejar**, este é um pacote de fala disponibilizado pela NextUp com uma voz feminina chamada Raquel. Este pacote é destinado ao uso nos clientes e não é necessária sua instalação no lado do servidor OCR. Atualmente, o software não faz mais parte do portfólio da empresa, mas a instalação é permitida e sem custos com o instalador disponível na Web. O pacote é utilizado por softwares como Adobe Reader e Foxit PDF Reader para a leitura do texto.

### 3. Instalação

####  OCRmyPDF 

<span style="font-weight: 400;">A última versão do OCRmyPDF disponível nos repositórios Debian/Ubuntu é bem anterior a versão já disponibilizada no repositório oficial dos desenvolvedores. Assim, não contempla as últimas atualizações necessárias ao bom funcionamento do pacote no que se refere a demanda de OCR do IFPE. </span>**Portanto, será demonstrada a instalação via compilação do código fonte.**

<span style="font-weight: 400;">Logado como </span>***root***<span style="font-weight: 400;">, execute os comandos:</span>

```Instalar
$ apt-get update
$ apt-get install python3-pip
$ apt-get install libffi-dev
$ apt-get install tesseract-ocr
$ apt-get install ghostscript
$ apt-get install qpdf
$ apt-get install git
$ pip3 install git+https://github.com/jbarlow83/OCRmyPDF.git
```

<span class="c1">Para dar suporte ao idioma </span><span class="c1 c5">Português do Brasil</span><span class="c3 c1">, instale o pacote abaixo:</span>

```c18
 $ apt-get install tesseract-ocr-por -y
```

<span class="c3 c1">Com o OCRmyPDF instalado, faça o teste com algum arquivo PDF escaneado:</span>

```c18
$ ocrmypdf entrada.pdf saida.pdf --output-type pdfa-1 -l por
```

<p class="callout info"> <span class="c1">Os argumentos </span><span class="c1 c43 c5">`--output-type pdfa-1 -l` por</span><span class="c3 c1"> significam respectivamente o tipo de PDF/A gerado e o idioma a ser considerado na interpretação do texto presente no documento PDF.</span> </p>

#### <span style="color: #555555;">Watchman</span>

 <span class="c1">Ainda como </span><span class="c1 c19 c5">***root***, </span><span class="c1">instale alguns pacotes de dependência:</span>

```
$ apt-get install gcc
$ apt-get install autoconf
$ apt-get install automake
$ apt-get install build-essential
$ apt-get install libtool
$ apt-get install libssl-dev
$ apt-get install pkg-config
$ apt-get install python-dev
$ apt-get install python3-dev
```

<span class="c1">Agora procede-se a instalação do Watchman (como </span>***<span class="c1 c19 c5">root</span>***<span class="c3 c1">):</span>

```c18
$ git clone https://github.com/facebook/watchman.git
$ cd watchman
$ git checkout v4.9.0
$ ./autogen.sh
$ ./configure
$ make
$ make install
```

####  <span style="color: #555555;">NextUp-ScanSoft Raquel</span> 

<span class="c3 c1">Apenas baixe e instale o software (Windows) por meio do link abaixo:</span>

<table class="c46" id="bkmrk-https%3A%2F%2Fdrive.google"><tbody><tr class="c58"><td class="c35" colspan="1" rowspan="1"><span class="c9 c1">https://drive.google.com/file/d/0B3aNFZuG\_Yw9cjRCNUJBOUQ3QVk/view?usp=sharing</span>

</td></tr></tbody></table>

#### <span style="color: #555555;">Desinstalação</span>

<span class="c3 c1">Caso seja necessário remover alguns dos softwares para manutenção/atualização, realize os seguintes comandos à seguir. **Para remoção do OCRmyPDF**:</span>

```
 $ pip3 uninstall ocrmypdf
```

**Para a remoção do Watchman**, seria necessário excluir os binários, portanto, não se recomenda esta prática. Entretanto, caso necessite atualizar o Watchman, basta realizar a nova instalação que os binários serão sobrescritos com a nova versão.

---

### 4. Configuração 

<span class="c3 c1">A configuração para a solução OCR fica praticamente com o Watchman e a impressora, já que a utilização do OCRmyPDF é bem simples. Considere a seguinte estrutura:</span>

```c12
root@t-ifpe-ocr-beta:/# tree /srv
/srv
└── shares
    ├── ascom
    │   └── ocr
    │       ├── entrada
    │       ├── originais
    │       └── saida
    ├── cgti
    │   └── ocr
    │       ├── entrada
    │       ├── originais
    │       └── saida
    └── dae
        └── ocr
            ├── entrada
            ├── originais
            └── saida
```

#### Watchman

<span style="font-weight: 400;">O Watchman irá monitorar todos os diretórios “entrada” e dispara um script quando um novo arquivo PDF for criado. No exemplo abaixo, iremos criar três triggers. Para cada diretório “entrada”, **crie o diretório e em seguida o seguinte arquivo** de configuração do Watchman, exemplo para </span>**cgti**<span style="font-weight: 400;">:</span>

```watchman
$ mkdir -p /srv/shares/cgti/ocr/entrada/
$ mkdir -p /srv/shares/cgti/ocr/saida/
$ mkdir -p /srv/shares/cgti/ocr/originais/

$ nano /srv/shares/cgti/ocr/entrada/.watchmanconfig
{"settle": 10000}
```

<p class="callout warning">Sobre os diretórios criados, é importante trabalhar corretamente as permissões de usuário e grupo de acordo com o seu serviço de rede e políticas de acesso.</p>

<span style="font-weight: 400;">A função do arquivo </span>`<span style="font-weight: 400;">.watchmanconfig</span>`<span style="font-weight: 400;"> é passar configurações específicas do diretório ao watchman. Neste caso, a opção "</span>*<span style="font-weight: 400;">settle"</span>*<span style="font-weight: 400;"> impede que o PDF seja processado antes de sua completa transferência para o diretório. **Crie em cada diretório "entrada" antes de executar o próximo comando** de criação dos triggers.</span>

<span style="font-weight: 400;">Os triggers são criados e invocam o script no diretório **/srv/** - o script pode estar em outro local, só necessita de permissão de execução do root. **Crie as triggers**:</span>

```Watchman
$ watchman -- trigger /srv/shares/cgti/ocr/entrada/ 'ocrTrigCgti' '*.pdf' -- /srv/doOcr.sh
$ watchman -- trigger /srv/shares/dae/ocr/entrada/ 'ocrTrigDae' '*.pdf' -- /srv/doOcr.sh
$ watchman -- trigger /srv/shares/ascom/ocr/entrada/ 'ocrTrigAscom' '*.pdf' -- /srv/doOcr.sh
```

 <span class="c3 c1">Detalhes:</span>

- <span class="c1">/srv/shares/</span><span class="c1 c29">cgti</span><span class="c3 c1">/ocr/entrada/ : diretório observado;</span>
- <span class="c3 c1">'ocrTrigCgti': nome do trigger;</span>
- <span class="c3 c1">'\*.pdf': filtro aplicado para o trigger;</span>
- <span class="c3 c1">/srv/doOcr.sh: script a ser invocado quando o Watchman identificar alguma alteração no diretório monitorado;</span>
- <span class="c3 c1">Importante não esquecer os dois hífens duplos no comando “--”.</span>

 <span class="c3 c1">Agora observe o script que está sendo utilizado, **copie e cole no mesmo caminho**, ou seja, /srv/doOcr.sh:</span>

```c12
#!/bin/bash

# Escreve no log. Recebe o nome do arquivo e a ação realizada.
logIt(){
echo -e "$(date +%d/%m/%Y-%T)\t" $1"\t"$2 >> /var/log/ocr.log
}

# Realiza o OCR. Recebe o nome do arquivo de entrada.
ocrFile(){
  logIt "$arg" "Processando"
  filename=$(echo "$1" | cut -f 1 -d '.') # sem extensão
  entrada="$1"
  saida="$filename"-ocr.pdf

  ocrmypdf "$entrada" ../saida/"$saida" -l por --output-type pdfa-1 --skip-text

  chmod g=rw,o= ../saida/"$saida"
  logIt "$arg" "OCR realizado"
  mv "$arg" ../originais
}

# Fluxo principal
for arg in "$@"
do
    if [ -f "$arg" ]; # arquivo existe ?
    then
       logIt "$arg" "Arquivo recebido"
       ocrFile "$arg" &
    fi
done
```

<p class="callout warning"><span class="c3 c13">Caso copie e cole o script acima, antes, edite o texto e organize as linhas e aspas duplas (“ ”).</span></p>

<span class="c3 c13">Dê permissões de execução para o script.</span>

```c12
$ chmod +x /srv/doOcr.sh
```

#### <span style="color: #555555;">Ativando a auto-inicialização</span>

<span style="color: #555555;">O watchman deve monitorar os diretórios assim que o S.O. for iniciado. De forma a permitir que esta função seja realizada, **deve-se adicionar o comando de inicialização do watchman** aos comandos executados após o início do S.O.</span>

<span style="color: #555555;">Para realizar isto, basta seguir o tutorial de [scripts de inicialização com system V](https://wiki.ifpe.edu.br/books/tecnologia-da-informa%C3%A7%C3%A3o-redes/page/scripts-de-inicializa%C3%A7%C3%A3o-com-system-v) que está na WIKI do IFPE. Atente para as variáveis do script que neste caso do watchman devem ser:</span>

`dir="/usr/local/bin/"`

`cmd="watchman -f"`

`user="root" `

#### <span style="color: #555555;">Impressora</span>

<span style="font-weight: 400;">Será demonstrada configuração na impressora Kyocera FS-1135 enviando o PDF para um servidor de arquivos. Para outras impressoras, as configurações são semelhantes, com algumas pequenas diferenças que podem ocorrer na forma como o S.O. da impressora trata os dados inseridos. </span>

<p class="callout warning"><span class="c4 c1">A impressora deve estar conectada diretamente à rede.</span></p>

 <span class="c3 c1">Acesse o painel WEB da impressora:</span>

<span style="overflow: hidden; display: inline-block; margin: -0.00px -0.00px; border: 2.67px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 473.91px; height: 298.17px;">![](https://wiki.ifpe.edu.br/images/image12.png)[![image12.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/scaled-840-0/image12.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/image12.png)</span>

S<span class="c3 c1">erão criados “contatos” na agenda da impressora com configurações pré-definidas para salvar os documentos escaneados. Desta forma, evita-se a inserção manual das configurações de acesso ao servidor de arquivos. Na Kyocera, por exemplo, um contato pode conter informações FTP, SMB e de e-mail para o envio do PDF gerado.</span>

<span class="c3 c1">Acesse o menu “Básico”, depois, nas opções do lado esquerdo, clique “Bloco de endereços” e em seguida “Contatos”. Crie um novo contato clicando em “Adicionar Contato”.</span>

<span style="overflow: hidden; display: inline-block; margin: -0.00px -0.00px; border: 2.67px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 471.00px; height: 381.93px;">![](https://wiki.ifpe.edu.br/images/image5.png)[![image5.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/scaled-840-0/image5.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/image5.png)</span>

 <span class="c3 c1">Tem-se várias opções de envio, será escolhido o protocolo SMB.</span>

<span style="overflow: hidden; display: inline-block; margin: -0.00px 0.00px; border: 2.67px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 612.00px; height: 326.25px;">![](https://wiki.ifpe.edu.br/images/image13.png)[![image13.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/scaled-840-0/image13.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/image13.png)</span>

- <p class="callout info">**<span class="c1 c5">Nome de host</span>**<span class="c3 c1">: IP ou hostname do servidor de arquivos;</span></p>
- <p class="callout info">**<span class="c1 c5">Número da porta</span>**<span class="c3 c1">: porta que o servidor de arquivos escuta para receber arquivos;</span></p>
- <p class="callout info">**<span class="c1 c5">Caminho</span>**<span class="c3 c1">: utilizando contra-barras, o nome do compartilhamento seguido dos sub-diretórios para onde serão enviados os arquivos PDF;</span></p>
- <p class="callout info">**<span class="c1 c5">Nome de login</span>**<span class="c1">: usuário e DOMÍNIO no formato usuario@dominio. </span>**<span class="c4 c1">Recomenda-se a criação de um usuário no seu domínio para cada impressora.</span>**</p>
- <p class="callout info">**<span class="c1 c5">Senha de login</span>**<span class="c3 c1">: senha do usuário no DOMÍNIO.</span> </p>

<span class="c3 c1">Clicar em **Enviar** para salvar as configurações. Posteriormente, para escanear e mandar para o servidor de arquivos, seguir as próximas configurações.</span>

#### <span style="color: #555555;">Envio dos arquivos</span>

<span style="font-weight: 400;">A configuração do envio dos arquivos foge do escopo deste tutorial. Mas o importante é que os usuários criados para o envio dos arquivos tenham permissões de </span>**escrita (write)** <span style="font-weight: 400;">no diretório “entrada” configurado. **O script (**</span>**/srv/doOcr.sh**<span style="font-weight: 400;">**) deve ter configurações de execução habilitadas** para que o Watchman consiga dispará-lo, bem como os usuários do domínio devem ter no mínimo acesso de leitura no diretório de “saída”.</span>

<span style="font-weight: 400;">Recomenda-se uma política de manutenção dos arquivos que ficarão no diretório originais. Pode-se movê-los para um backup ou executar algum script periódico para limpar arquivos antigos.</span>

#### <span style="color: #555555;">LOG</span>

<span style="font-weight: 400;">O log de processamento dos arquivos da solução OCR se encontrará disponível no caminho </span><span style="font-weight: 400;">/var/log/ocr.log</span><span style="font-weight: 400;">. O estado possíveis para arquivo é:</span>

- **Arquivo recebido**<span style="font-weight: 400;"> - o arquivo foi recebido e detectado pelo watchman que já invocou o script </span><span style="font-weight: 400;">doOcr.sh</span><span style="font-weight: 400;">.</span>
- **Processando** <span style="font-weight: 400;">- o OCRmyPDF está processando o arquivo.</span>
- **OCR realizado**<span style="font-weight: 400;">. - o arquivo foi processado pelo OCRmyPDF com sucesso e movido para o diretório “saida”.</span>

### 5. Atualização a partir de uma versão anterior

Se já existia uma versão anterior da solução OCR implantada, basta realizar a atualização de alguns pontos.

**Atualize o OCRmyPDF:**

```Atualizar
$ apt-get update
$ apt-get install python3-pip
$ apt-get install libffi-dev
$ apt-get install tesseract-ocr
$ apt-get install ghostscript
$ apt-get install qpdf
$ apt-get install git
$ pip3 install git+https://github.com/jbarlow83/OCRmyPDF.git@v5.7.0
$ apt-get install tesseract-ocr-por -y
```

**Delete as triggers antigas do** **watchman**, exemplo para **cgti**:

```Deletar
$ watchman watch-del /srv/shares/cgti/ocr/entrada
```

**Crie** o arquivo .watchmanconfig no(s) diretório(s) de entrada do OCR**,** exemplo para **cgti:**

```Arquivo
$ nano /srv/shares/cgti/ocr/entrada/.watchmanconfig
{"settle": 10000}
```

**Faça uma cópia e atualize** o script de execução doOcr.sh para esta versão abaixo**:**

```Backup
$ cp /srv/doOcr.sh /srv/doOcr.sh-bkp

$ nano /srv/doOcr.sh


<<<<<<<<<insira o conteúdo abaixo>>>>>>>>>>>>>>>>>>>>>>>


#!/bin/bash

# Escreve no log. Recebe o nome do arquivo e a ação realizada.
logIt(){
echo -e "$(date +%d/%m/%Y-%T)\t" $1"\t"$2 >> /var/log/ocr.log
}

# Realiza o OCR. Recebe o nome do arquivo de entrada.
ocrFile(){
  logIt "$arg" "Processando"
  filename=$(echo "$1" | cut -f 1 -d '.') # sem extensão
  entrada="$1"
  saida="$filename"-ocr.pdf

  ocrmypdf "$entrada" ../saida/"$saida" -l por --output-type pdfa-1 --skip-text

  chmod g=rw,o= ../saida/"$saida"
  logIt "$arg" "OCR realizado"
  mv "$arg" ../originais
}

# Fluxo principal
for arg in "$@"
do
    if [ -f "$arg" ]; # arquivo existe ?
    then
       logIt "$arg" "Arquivo recebido"
       ocrFile "$arg" &
    fi
done
```

**Crie novamente as triggers do** **watchman**, exemplo para **cgti:**

```Watchman
$ watchman -- trigger /srv/shares/cgti/ocr/entrada/ 'ocrTrigCgti' '*.pdf' -- /srv/doOcr.sh
```

### 6. Operação com scanner

<span style="font-weight: 400;">Aqui é demonstrado o envio dos arquivos de uma impressora para o servidor de arquivos local.</span>

#### Scanner

 <span style="overflow: hidden; display: inline-block; margin: -0.00px -0.00px; border: 2.67px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 490.65px; height: 275.27px;">![](https://wiki.ifpe.edu.br/images/image3.jpg)[![image3.jpg](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/scaled-840-0/image3.jpg)](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/image3.jpg)</span>

<span class="c3 c1">Apertar o botão “Enviar”.</span>

 <span style="overflow: hidden; display: inline-block; margin: -0.00px -0.00px; border: 2.67px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 492.29px; height: 275.83px;">![](https://wiki.ifpe.edu.br/images/image4.jpg)[![image4.jpg](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/scaled-840-0/image4.jpg)](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/image4.jpg)</span>

<span class="c3 c1">Apertar o botão de contatos, ou “Libro de direcciones” como neste caso. Tem a função de acesso a Agenda.</span>

[![image2.jpg](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/scaled-840-0/image2.jpg)](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/image2.jpg)![](https://wiki.ifpe.edu.br/images/image2.jpg)

<span class="c3 c1">Selecione o contato previamente salvo na agenda e apertão o botão “Ok”.</span>

[![image8.jpg](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/scaled-840-0/image8.jpg)](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/image8.jpg)

<span class="c3 c1">Aperte “Ok” para confirmar o endereço. Em seguida, apertar o botão verde principal para dar início a digitalização.</span>

[![image11.jpg](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/scaled-840-0/image11.jpg)](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/image11.jpg)

<p class="callout success"><span class="c3 c1">Se não aparecer nenhuma mensagem de erro ou o LED vermelho não piscar, houve sucesso no escaneamento.</span>![](https://wiki.ifpe.edu.br/images/image6.png)</p>

[![image6.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/scaled-840-0/image6.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/image6.png)

 <span class="c3 c1">Diretório “Ascom”, na estrutura, indicando sucesso no escaneamento e no processamento OCR.</span>

<p class="callout info"><span class="c3 c1"><span class="c4 c1">O OCRmyPDF pode levar alguns minutos para processar o arquivo PDF. </span></span></p>

#### <span style="color: #555555;">Visualização (texto)</span>

 <span class="c3 c1">O arquivo com reconhecimento OCR e padrão PDF/A-1b ou 2b, aparece da seguinte forma em softwares como Adobe Reader. Como é possível notar, o texto é selecionável.</span>

#### Visualização (áudio da leitura)

 <span class="c1">Utilizando o software Adobe Reader como exemplo, acesse as Preferências do software, ative o recurso de Leitura do texto e selecione a voz “Raquel” para uso.</span>

[![image9.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/scaled-840-0/image9.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/image9.png)

<span class="c1">Para escutar a leitura do texto pelo software, pressione os atalhos Shift + Ctrl + Y (</span><span class="c1 c5">Ativar leitura em voz alta</span><span class="c1">) e Shift + Ctrl + B (</span><span class="c1 c5">Ler todo o documento</span><span class="c3 c1">). Também, é possível escutar clicando no texto ou percorrendo com o cursor do mouse.</span>

 <span class="c3 c1">Leitura do arquivo com OCR em ação:</span>

<span style="overflow: hidden; display: inline-block; margin: -0.00px 0.00px; border: 2.67px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 532.85px; height: 423.67px;">![](https://wiki.ifpe.edu.br/images/image7.png)[![image7.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/scaled-840-0/image7.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2017-12-Dec/image7.png)</span>

<span class="c25 c1">[https://www.youtube.com/watch?v=xrBu4fhoXFE&amp;feature=youtu.be](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DxrBu4fhoXFE%26feature%3Dyoutu.be&sa=D&ust=1513610665960000&usg=AFQjCNHz55Qd-BCWilDs-l_6h-LlO_Uhhw)</span>

---

### 7. Referências

 <span class="c1 c25">[https://pt.wikipedia.org/wiki/PDF/A](https://www.google.com/url?q=https://pt.wikipedia.org/wiki/PDF/A&sa=D&ust=1513610665962000&usg=AFQjCNETBMvgm_YZwumaqIGM7nyBJ-Xqig)</span>

<span class="c25 c1">[https://softwarepublico.gov.br/archives/thread/sei-negocio/como-criar-pdfa-conforme-iso-19005-12005](https://www.google.com/url?q=https://softwarepublico.gov.br/archives/thread/sei-negocio/como-criar-pdfa-conforme-iso-19005-12005&sa=D&ust=1513610665962000&usg=AFQjCNHVYFXJb2z-zld7EdWj4FI3sHYe_A)</span>

 <span class="c25 c1">[http://www.admin-magazine.com/Archive/2015/26/Look-for-file-changes-and-kick-off-actions-with-Watchman/(offset)/3](https://www.google.com/url?q=http://www.admin-magazine.com/Archive/2015/26/Look-for-file-changes-and-kick-off-actions-with-Watchman/(offset)/3&sa=D&ust=1513610665963000&usg=AFQjCNHKgfomOHvdD4knmrnoIq5baRUnGA)</span>

 <span class="c25 c1">[https://ocrmypdf.readthedocs.io/en/latest/index.html](https://www.google.com/url?q=https://ocrmypdf.readthedocs.io/en/latest/index.html&sa=D&ust=1513610665964000&usg=AFQjCNHmZWef3SZK74aU8g0B2MJUltb8mQ)</span>

 <span class="c25 c1">[http://facebook.github.io/watchman/](https://www.google.com/url?q=http://facebook.github.io/watchman/&sa=D&ust=1513610665965000&usg=AFQjCNEFUuPIRF2qQcWhakf8RxYGminPqA)</span><span class="c25 c1 c5">[ ](https://www.google.com/url?q=http://facebook.github.io/watchman/&sa=D&ust=1513610665965000&usg=AFQjCNEFUuPIRF2qQcWhakf8RxYGminPqA)</span>

 <span class="c25 c1">[https://stackoverflow.com/questions/1659147/how-to-use-ghostscript-to-convert-pdf-to-pdf-a-or-pdf-x](https://www.google.com/url?q=https://stackoverflow.com/questions/1659147/how-to-use-ghostscript-to-convert-pdf-to-pdf-a-or-pdf-x&sa=D&ust=1513610665966000&usg=AFQjCNEfK4IgJP2Yuj41FkdLGEd0CrfbGw)</span>

 <span class="c25 c1">[https://www.pdf-online.com/osa/validate.aspx](https://www.google.com/url?q=https://www.pdf-online.com/osa/validate.aspx&sa=D&ust=1513610665966000&usg=AFQjCNFw516pjWYyFmyV8dgy0mnEuyZDKA)</span>

 <span class="c25 c1">[http://www.tecassistiva.com.br/servicos?id=105](https://www.google.com/url?q=http://www.tecassistiva.com.br/servicos?id%3D105&sa=D&ust=1513610665967000&usg=AFQjCNE3hKceJ46fu0Qt1YKhV5j1ksUeGg)</span>

# Solução OCR em OVA

### Introdução

Este documento visa a orientação sobre as configurações aplicadas na máquina virtual (VM) da solução OCR versão 1.2.1 Serão apresentadas as configurações de sistema, particionamento, rede, usuários e particularidades da solução OCR.

As CGTIs devem alterar configurações para satisfazer suas necessidades locais. A DADT entrega uma versão simplificada e funcional, com exemplos, demonstrando o serviço. À partir da entrega da VM, a CGTI fica responsável por sua manutenção e uso. Não se responsabilizando a DADT por eventuais problemas decorridos de alterações realizadas pelas coordenações locais de TI dos campi.

### Características da VM

- <span style="font-weight: 400;">VM Version: 8</span>
- <span style="font-weight: 400;">CPU: 2 vCPU</span>
- <span style="font-weight: 400;">Memória: 1024 MB</span>
- Disco provisionado: 5 GB

<p class="callout warning"><span style="font-weight: 400;">O tamanho do disco é pequeno para facilitar o download e implantação da solução. Recomenda-se fortemente que **o disco seja expandido** para evitar falta de espaço em algumas partições.</span></p>

- <span style="font-weight: 400;">Sistema operacional: Debian 9.1, 64 Bits</span>
- <span style="font-weight: 400;">Sistema de armazenamento: LVM (Logical Volume Management). Utilizado por permitir flexibilidade na extensão das partições – útil para quando os discos ficam cheios e for necessário expandi-lo.</span>

<span style="font-weight: 400;">O volume físico está em </span>*<span style="font-weight: 400;">/dev/sda5</span>*<span style="font-weight: 400;">:</span>

<table id="bkmrk-%24-sudo-pvs-pv-%C2%A0%C2%A0%C2%A0" style="width: 600px; height: 97px;"><tbody><tr><td style="width: 605px;"><span style="font-weight: 400;">$ sudo pvs</span>

</td></tr><tr><td style="width: 605px;"><span style="font-weight: 400;">PV VG Fmt Attr PSize PFree</span>

<span style="font-weight: 400;">/dev/sda5 linux lvm2 a-- 4,52g 0</span>

</td></tr></tbody></table>

<span style="font-weight: 400;">Apresenta grupo de volumes (</span>*<span style="font-weight: 400;">linux</span>*<span style="font-weight: 400;">) com um volume físico e três volumes lógicos:</span>

<table id="bkmrk-%24-sudo-vgs-%C2%A0vg-%C2%A0%C2%A0" style="height: 89px;" width="600"><tbody><tr><td style="width: 599px;"><span style="font-weight: 400;">$ sudo vgs</span>

</td></tr><tr><td style="width: 599px;"><span style="font-weight: 400;"> VG #PV #LV #SN Attr VSize VFree</span>

<span style="font-weight: 400;"> linux 1 3 0 wz--n- 4,52g 0</span>

</td></tr></tbody></table>

<span style="font-weight: 400;">Volumes lógicos são </span>*<span style="font-weight: 400;">root</span>*<span style="font-weight: 400;">, </span>*<span style="font-weight: 400;">srv</span>*<span style="font-weight: 400;"> e </span>*<span style="font-weight: 400;">swap</span>*<span style="font-weight: 400;">:</span>

<table id="bkmrk-%24-sudo-lvs-%C2%A0lv-%C2%A0%C2%A0" style="height: 150px;" width="600"><tbody><tr><td style="width: 599px;"><span style="font-weight: 400;">$ sudo lvs</span>

</td></tr><tr><td style="width: 599px;"><span style="font-weight: 400;"> LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert</span>

<span style="font-weight: 400;"> root linux -wi-ao---- 3,11g</span>

<span style="font-weight: 400;"> srv linux -wi-ao---- 956,00m</span>

<span style="font-weight: 400;"> swap linux -wi-ao---- 488,00m</span>

</td></tr></tbody></table>

<span style="font-weight: 400;">Visão geral do sistema de arquivos:</span>

<table id="bkmrk-%24-df--hp-sist.-arq.-" style="height: 290px;" width="600"><tbody><tr><td style="width: 599px;"><span style="font-weight: 400;">$ df -hP</span>

</td></tr><tr><td style="width: 599px;"><span style="font-weight: 400;">Sist. Arq. Tam. Usado Disp. Uso% Montado em</span>

<span style="font-weight: 400;">udev 487M 0 487M 0% /dev</span>

<span style="font-weight: 400;">tmpfs 100M 4,6M 96M 5% /run</span>

<span style="font-weight: 400;">/dev/mapper/linux-root 3,0G 2,2G 725M 75% /</span>

<span style="font-weight: 400;">tmpfs 499M 0 499M 0% /dev/shm</span>

<span style="font-weight: 400;">tmpfs 5,0M 0 5,0M 0% /run/lock</span>

<span style="font-weight: 400;">tmpfs 499M 0 499M 0% /sys/fs/cgroup</span>

**/dev/mapper/linux-srv 925M 2,4M 859M 1% /srv**

<span style="font-weight: 400;">/dev/sda1 472M 37M 411M 9% /boot</span>

<span style="font-weight: 400;">tmpfs 100M 0 100M 0% /run/user/1000</span>

</td></tr></tbody></table>

- <span style="font-weight: 400;">Configurações de rede. Os IPs devem ser trocados de acordo com a rede de cada campi:</span>

<table id="bkmrk-%24-nano-%2Fetc%2Fnetwork%2F" style="height: 316px;" width="350"><tbody><tr><td style="width: 349px;"><span style="font-weight: 400;">$ nano /etc/network/interfaces</span>

</td></tr><tr><td style="width: 349px;"><span style="font-weight: 400;">\# A interface de loopback</span>

<span style="font-weight: 400;">auto lo</span>

<span style="font-weight: 400;">iface lo inet loopback</span>

<span style="font-weight: 400;">\# A interface de rede primaria</span>

<span style="font-weight: 400;">auto ens33</span>

<span style="font-weight: 400;">allow-hotplug ens33</span>

<span style="font-weight: 400;">iface ens33 inet static</span>

<span style="font-weight: 400;"> address 172.16.1.10/24</span>

<span style="font-weight: 400;"> gateway 172.16.1.1</span>

<span style="font-weight: 400;"> dns-nameservers 172.16.1.6</span>

<span style="font-weight: 400;"> dns-search ifpe.edu.br</span>

</td></tr></tbody></table>

Informações das interfaces:

<table id="bkmrk-%24-ip-a-1%3A-lo%3A-%3Cloopb" style="height: 320px;" width="600"><tbody><tr><td style="width: 686px;"><span style="font-weight: 400;">$ ip a</span>

</td></tr><tr><td style="width: 686px;"><span style="font-weight: 400;">1: lo: &lt;LOOPBACK,UP,LOWER\_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1</span>

<span style="font-weight: 400;"> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00</span>

<span style="font-weight: 400;"> inet 127.0.0.1/8 scope host lo</span>

<span style="font-weight: 400;"> valid\_lft forever preferred\_lft forever</span>

<span style="font-weight: 400;"> inet6 ::1/128 scope host</span>

<span style="font-weight: 400;"> valid\_lft forever preferred\_lft forever</span>

<span style="font-weight: 400;">2: ens33: &lt;BROADCAST,MULTICAST,UP,LOWER\_UP&gt; mtu 1500 qdisc pfifo\_fast state UP group default qlen 1000</span>

<span style="font-weight: 400;"> link/ether </span>**00:0c:29:94:08:8d**<span style="font-weight: 400;"> brd ff:ff:ff:ff:ff:ff</span>

<span style="font-weight: 400;"> inet 172.16.1.10/24 brd 172.16.1.255 scope global ens33</span>

<span style="font-weight: 400;"> valid\_lft forever preferred\_lft forever</span>

</td></tr></tbody></table>

- <span style="font-weight: 400;">Usuários ativos. Sugere-se a troca das senhas:</span>

<table id="bkmrk-usu%C3%A1rio-%C2%A0senha-cgt" style="width: 350px; height: 118px;"><tbody><tr><td style="width: 174.5px;"><span style="font-weight: 400;">Usuário</span>

</td><td style="width: 174.5px;"><span style="font-weight: 400;"> Senha</span>

</td></tr><tr><td style="width: 174.5px;"><span style="font-weight: 400;">cgti</span>

</td><td style="width: 174.5px;"><span style="font-weight: 400;">\*@tif0cr</span>

</td></tr><tr><td style="width: 174.5px;"><span style="font-weight: 400;">root</span>

</td><td style="width: 174.5px;"><span style="font-weight: 400;">&amp;\_p0i3TJ</span>

</td></tr></tbody></table>

<span style="font-weight: 400;">Grupos ativos:</span>

<table id="bkmrk-grupo-usu%C3%A1rio-membr" style="height: 153px;" width="350"><tbody><tr><td style="width: 174px;"><span style="font-weight: 400;">Grupo</span>

</td><td style="width: 175px;"><span style="font-weight: 400;">Usuário membro</span>

</td></tr><tr><td style="width: 174px;"><span style="font-weight: 400;">cgti</span>

</td><td style="width: 175px;"><span style="font-weight: 400;">cgti</span>

</td></tr><tr><td style="width: 174px;"><span style="font-weight: 400;">root</span>

</td><td style="width: 175px;"><span style="font-weight: 400;">root, cgti</span>

</td></tr><tr><td style="width: 174px;"><span style="font-weight: 400;">sudo</span>

</td><td style="width: 175px;"><span style="font-weight: 400;">root, cgti</span>

</td></tr></tbody></table>

- <span style="font-weight: 400;">O diretório mapeado como exemplo para OCR é </span><span style="font-weight: 400;">/srv/shares/cgti/ocr/entrada/</span><span style="font-weight: 400;">. A CGTI deve criar os novos diretórios e mapeamentos de acordo com a sua necessidade. </span>

<span style="font-weight: 400;">A estrutura dos diretórios:</span>

<table id="bkmrk-%24-tree-%2Fsrv-%2Fsrv-%E2%94%94" style="height: 220px;" width="350"><tbody><tr><td style="width: 349px;"><span style="font-weight: 400;">$ tree /srv</span>

</td></tr><tr><td style="width: 349px;"><span style="font-weight: 400;">/srv</span>

<span style="font-weight: 400;">└── shares</span>

<span style="font-weight: 400;"> ├── cgti</span>

<span style="font-weight: 400;"> └── ocr</span>

<span style="font-weight: 400;"> ├── </span>**entrada**

<span style="font-weight: 400;"> ├── originais</span>

<span style="font-weight: 400;"> └── saida</span>

</td></tr></tbody></table>

*<span style="font-weight: 400;">Trigger</span>*<span style="font-weight: 400;"> do Watchman criada para o diretório em questão:</span>

<table id="bkmrk-%24-cat-%2Fusr%2Flocal%2Fvar" style="height: 817px;" width="349"><tbody><tr><td style="width: 348px;"><span style="font-weight: 400;">$ cat /usr/local/var/run/watchman/root-state/state</span>

</td></tr><tr><td style="width: 348px;"><span style="font-weight: 400;">{</span>

<span style="font-weight: 400;"> "watched": \[</span>

<span style="font-weight: 400;"> {</span>

<span style="font-weight: 400;"> "triggers": \[</span>

<span style="font-weight: 400;"> </span>**{**

 **"command": \[**

 **"/srv/doOcr.sh"**

 **\],**

<span style="font-weight: 400;"> "expression": \[</span>

<span style="font-weight: 400;"> "anyof",</span>

<span style="font-weight: 400;"> \[</span>

<span style="font-weight: 400;"> "match",</span>

<span style="font-weight: 400;"> </span> **"\*.pdf",**

<span style="font-weight: 400;"> "wholename"</span>

<span style="font-weight: 400;"> \]</span>

<span style="font-weight: 400;"> \],</span>

<span style="font-weight: 400;"> "stdin": \[</span>

<span style="font-weight: 400;"> "name",</span>

<span style="font-weight: 400;"> "exists",</span>

<span style="font-weight: 400;"> "new",</span>

<span style="font-weight: 400;"> "size",</span>

<span style="font-weight: 400;"> "mode"</span>

<span style="font-weight: 400;"> \],</span>

<span style="font-weight: 400;"> "name": "ocrTrigCgti",</span>

<span style="font-weight: 400;"> "append\_files": true</span>

<span style="font-weight: 400;"> }</span>

<span style="font-weight: 400;"> \],</span>

<span style="font-weight: 400;"> </span>**"path": "/srv/shares/cgti/ocr/entrada"**

<span style="font-weight: 400;"> }</span>

<span style="font-weight: 400;"> \],</span>

<span style="font-weight: 400;"> "version": "4.9.0"</span>

<span style="font-weight: 400;">}</span>

</td></tr></tbody></table>

<span style="font-weight: 400;">Arquivo do Watchman para configuração presente de forma obrigatória no diretório “entrada”:</span>

<table id="bkmrk-%24-cat-%2Fsrv%2Fshares%2Fcg" style="height: 73px;" width="350"><tbody><tr><td style="width: 349px;"><span style="font-weight: 400;">$ cat /srv/shares/cgti/ocr/entrada/.watchmanconfig</span>

</td></tr><tr><td style="width: 349px;"><span style="font-weight: 400;">{"settle": 10000} </span>

</td></tr></tbody></table>

### Como importar a VM no ambiente VMWARE

Neste método de importação será utilizado o ambiente vSphere Client versão 6.0.0, disponível em [https://kb.vmware.com/s/article/2089791](https://kb.vmware.com/s/article/2089791). O ESXi utilizado é da versão 6.5.0. Certifique-se de ter instalado o vSphere Client na sua máquina para ter sucesso neste método.

Baixe a OVA: [https://drive.google.com/file/d/1E20S31VW41\_Pu9jc\_MTfURKJRmmmmi2C/view?usp=sharing](https://drive.google.com/file/d/1E20S31VW41_Pu9jc_MTfURKJRmmmmi2C/view?usp=sharing)

<span style="font-weight: 400;">Realize o </span>*<span style="font-weight: 400;">login</span>*<span style="font-weight: 400;"> no ambiente com suas credenciais:</span>

 [![image7.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/scaled-840-0/image7.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/image7.png)

<span style="font-weight: 400;">Após logar, clique em </span>*<span style="font-weight: 400;">File</span>*<span style="font-weight: 400;"> e em seguida, clique </span>*<span style="font-weight: 400;">Deploy OVF Template</span>*<span style="font-weight: 400;">:</span>

<span style="font-weight: 400;">[![image2.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/scaled-840-0/image2.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/image2.png)</span>

Na próxima janela, clique em Browse para procurar o arquivo OVA:

[![image9.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/scaled-840-0/image9.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/image9.png)&lt;&gt;

<span style="font-weight: 400;">Selecione o arquivo e clique em Abrir:</span>

<span style="font-weight: 400;">[![image1.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/scaled-840-0/image1.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/image1.png)</span>

<span style="font-weight: 400;">Na próxima janela clique em </span>*<span style="font-weight: 400;">Next</span>*<span style="font-weight: 400;">, e observe os detalhes da VM:</span>

<span style="font-weight: 400;">[![image4.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/scaled-840-0/image4.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/image4.png)</span>

<span style="font-weight: 400;">Selecione o nome desejado para VM e clique em </span>*<span style="font-weight: 400;">Next</span>*<span style="font-weight: 400;">.</span>

<span style="font-weight: 400;">[![image5.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/scaled-840-0/image5.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/image5.png)</span>

<span style="font-weight: 400;">Selecione o </span>*<span style="font-weight: 400;">storage</span>*<span style="font-weight: 400;"> do ESXi no qual os arquivos do objeto da VM serão armazenados e clique </span>*<span style="font-weight: 400;">Next</span>*<span style="font-weight: 400;">. Na janela seguinte, clique </span>*<span style="font-weight: 400;">Next</span>*<span style="font-weight: 400;"> mais uma vez.</span>

<span style="font-weight: 400;">[![image11.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/scaled-840-0/image11.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/image11.png)</span>

<span style="font-weight: 400;">Agora realize o mapeamento da rede interna criada no ESXi. Na coluna </span>*<span style="font-weight: 400;">Destination Networks</span>*<span style="font-weight: 400;"> deverá existir o nome da rede aplicada no ESXi local, selecione apropriadamente de acordo com o seu ambiente. No caso em tela, a rede de destino possui o mesmo nome.</span>

<span style="font-weight: 400;">[![image3.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/scaled-840-0/image3.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/image3.png)</span>

<span style="font-weight: 400;">Estamos quase lá, agora observe as configurações selecionadas. Clique em </span>*<span style="font-weight: 400;">Finish</span>*<span style="font-weight: 400;"> quando tiver certeza do que será aplicado.</span>

<span style="font-weight: 400;">[![image10.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/scaled-840-0/image10.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/image10.png)</span>

<span style="font-weight: 400;">A VM começará a ser importada:</span>

<span style="font-weight: 400;">[![image12.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/scaled-840-0/image12.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/image12.png)</span>

<span style="font-weight: 400;">A operação pode levar algum tempo. A seguinte tela surge quando concluído.</span>

<span style="font-weight: 400;">[![image6.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/scaled-840-0/image6.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/image6.png)</span>

<span style="font-weight: 400;">Pronto, a VM está pronta para uso.</span>

<span style="font-weight: 400;">[![image8.png](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/scaled-840-0/image8.png)](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-04-Apr/image8.png)</span>