Skip to content

GUIA install anexo2

Peter edited this page Sep 6, 2021 · 5 revisions

Lembrete: https://www.public-software-group.org/mercurial/liquid_feedback_core/file/e0b8175fda29/README indica como usar comenados de pg_dump para UPDATE de logica mantendo os dados.

Install PostGIS

Lembrar que não basta apt postgis, precisa indicar a versão do pacote: sudo apt install postgis postgresql-13-postgis-3

Firewall

....

SSH

Secure Shell para conectar ao servidor através de terminal Unix. Requer os dois lados com aplicações devidamente configuradas: “server SSH” e “client SSH”. Para client em ambiente Windows, ver também Moba. A conexão segura pode ser realizada através de login (user e senha) ou, mais seguro e menos burocrático, através do registro de chaves.

Configuração de Timeout de conexões inativas

Editar o arquivo /etc/ssh/sshd_config e configurar os parâmetros abaixo

# parâmetro para definir o intervalo para enviar pacotes para não perder a conexão com o cliente SSH, foi configurado a 240s
ServerAliveInterval 240

# Contagem total de pacotes de inatividade a serem enviados ao cliente, o valor  é multiplicado pelo intervalo acima para definir o tempo máximo da conexão no exemplo 2x240s = 480s = 8min
ServerAliveCountMax 2

# Parâmetro para manter a conexão ativa, caso não esteja definido, ainda que os parâmetros anteriores estejam definidos, não manterá a conexão ativa
TCPKeepAlive yes

(verificar com grep -i alive /etc/ssh/sshd_config) = ?? cadê ServerAliveInterval??

Túnel SSH para redirecionamento de portas

O SSH permite o acesso externo de serviços internos a usuários conectados por meio de redirecionamento de portas no cliente, o comando é o abaixo ssh -L <listen_port>:<host_tolisten>:<origin_remote_port> <user>@<host>

Exemplo: para que um usuário (nome de usuário: john) tenha acesso ao mysql (porta 3306) que está configurado no servidor com endereço 122.100.0.2, o usuário precisaria digitar o comando em um terminal:

ssh -L 1000:localhost:3306 john@122.100.0.2

Com o comando acima, o usuário conseguiria acessar o mysql no endereço local 127.0.0.1:1000 (desde que previamente registrado no SSH ou sempre livre? e o firewall?)

Comando para acessar PostgreSQL externo no PC local ssh -L 5432:localhost:5432 user@server (pede senha? precisa key?)

Configuração Passwordless

Criação de chaves.. ?Indicar como proceder nos lados server e client.

Fail2Ban

Ver https://www.fail2ban.org

Instalação

# Se necessário ativar o repositório onde o pacote se encontra
# sudo add-apt-repository universe

# Instala o fail2ban
sudo apt update
sudo apt install fail2ban

# Habilitar o serviço para início automático e iniciar, preferindo comando “service”
sudo service fail2ban status

sudo systemctl enable fail2ban
# sudo systemctl start fail2ban
sudo service fail2ban start

sudo service fail2ban status

Configuração e backups

(conferir migração ida e volta pro git)

Copiar arquivos de configuração

# Criar fail2ban.local, que será usado ao invés do fail2ban.conf
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
  
# Fazer o mesmo com o jail.conf
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Configuração mínima para funcionamento a ser definida na seção DEFAULT

[DEFAULT] 
# ip range que ignorado pelas políticas do fail2ban
ignoreip = 192.168.56.2/24
# tempo em segundos em quem um ip ficará bloqueado
bantime  = 21600
# intervalo de máximo para aplicação que punição por eventos malsucedidos
findtime  = 300
# máximo de tentativas durante o intervalo anterior
maxretry = 3
banaction = iptables-multiport
backend = systemd

Serviços a serem monitorados

O Fail2ban permite a monitoração de vários serviços, mas é necessários configurar na seção respectiva, por exemplo para habilitar o monitoramento do SSH é necessário definir o parâmetro enabled=true

[sshd] 
enabled = true

Também é possível redefinir os parâmetros definidos na seção DEFAULT acrescentando-os dentro da seção.

Obter informações do fail2ban

# mostra o status do serviço
sudo fail2ban-client status

# Mostra o log do jail do SSH (mostra o total de ips banidos e também os lista)
sudo fail2ban-client status sshd

# monitorar o log
sudo tail -f /var/log/fail2ban.log


# monitorar o status fail2ban
sudo journalctl -b -u fail2ban

PHP CONFIG

Bug !! sudo nano /etc/php/7.4/fpm/php.ini com display_errors = On e depois sudo service nginx restart.

Mesmo assim nada, ainda fica con Off no Master

PostgreSQL

Banco de dados. Ver também PostgreSQL, install, upgrade e restart.

Antes de configurar

Os arquivos de configuração do PostgreSQL possuem como proprietário o usuário postgres, sendo assim, qualquer arquivo de configuração dele devem ser feitos por esse usuário e não pelo root.

Para definir o usuário atual como postgres é necessário executar os comandos:

# muda o usuário para o root
sudo su

# muda para o usuário postgres
su postgres

Configuração

Configurar o PostgreSQL para rodar localmente

Abrir o arquivo /etc/postgresql/12/main/postgresql.conf e alterar o parâmetro listen_address.

listen_addresses = '*' para listen_addresses = '127.0.0.1'

Autenticação PostgreSQL direta Baseada no Host (PasswordLess)

  1. Modificar o pg_hba (host based authentication): abrir o arquivo /etc/postgresql/10/main/pg_hba.conf

1.1 Modificar a linha:

# Database administrative login by Unix domain socket
local   all             postgres                                peer

para

local   all             postgres                                peer   map=superuser

1.2 Modificar a linha

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

para

host    all             all             127.0.0.1/32            trust
  1. Modificando /etc/postgresql/10/main/pg_ident.conf abaixo da linha:
# MAPNAME       SYSTEM-USERNAME         PG-USERNAME

foi adicionada configuração para o usuário

superuser       <USUARIO>               postgres
superuser       root                    postgres
superuser       postgres                postgres

3 - Exportar o usuário postgres na variável de ambiente

Adicionar abaixo ao final do arquivo .bashrc uma linha com export PGUSER=postgres, e carregar usando source .bashrc ou exportar na linha de comando.

4 - Reiniciar o serviço do PostgreSQL com service postgresql restart

Criação de usuário e permissões

Os comandos a seguir devem ser executados no psql.

-- comando para criar um super usuário
CREATE ROLE user1 SUPERUSER CREATEDB NOCREATEROLE INHERIT LOGIN ENCRYPTED PASSWORD 'senhadousuario’;
-- permissão para que o usuário user1 se conecte ao banco1
GRANT CONNECT ON DATABASE banco1 TO user1;
-- concede todas as permissões de acesso do banco1 ao usuário user1
GRANT ALL ON DATABASE banco1 TO user1;
-- alterar o proprietário de um banco
ALTER DATABASE banco1 OWNER TO user1;

Clone this wiki locally